From 838905164d29dc9802178e84d4a03d60b40759e7 Mon Sep 17 00:00:00 2001 From: RuudHurkmans Date: Fri, 23 Sep 2022 13:12:32 +0200 Subject: [PATCH 01/22] feat Initial commit rtc files, generated from XsDate File structure as discussed. factory.py is a placeholder for convenience functions (.e.g. make_TimeController())) Ref: #226 --- hydrolib/core/io/rtc/factory.py | 9 + hydrolib/core/io/rtc/pi_state/models.py | 854 ++ hydrolib/core/io/rtc/pi_timeseries/models.py | 1124 +++ hydrolib/core/io/rtc/rtcDataConfig/models.py | 442 + .../core/io/rtc/rtcObjectiveConfig/models.py | 1702 ++++ .../core/io/rtc/rtcRuntimeConfig/models.py | 3252 ++++++ hydrolib/core/io/rtc/rtcToolsConfig/models.py | 8937 +++++++++++++++++ 7 files changed, 16320 insertions(+) create mode 100644 hydrolib/core/io/rtc/factory.py create mode 100644 hydrolib/core/io/rtc/pi_state/models.py create mode 100644 hydrolib/core/io/rtc/pi_timeseries/models.py create mode 100644 hydrolib/core/io/rtc/rtcDataConfig/models.py create mode 100644 hydrolib/core/io/rtc/rtcObjectiveConfig/models.py create mode 100644 hydrolib/core/io/rtc/rtcRuntimeConfig/models.py create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/models.py diff --git a/hydrolib/core/io/rtc/factory.py b/hydrolib/core/io/rtc/factory.py new file mode 100644 index 000000000..f3b277cff --- /dev/null +++ b/hydrolib/core/io/rtc/factory.py @@ -0,0 +1,9 @@ +from hydrolib.core.rtc.pi_state.models import RtcPeriod + + +class RtcTimeController: + pass + + +class RtcPIDController: + pass diff --git a/hydrolib/core/io/rtc/pi_state/models.py b/hydrolib/core/io/rtc/pi_state/models.py new file mode 100644 index 000000000..b4a4b937b --- /dev/null +++ b/hydrolib/core/io/rtc/pi_state/models.py @@ -0,0 +1,854 @@ +# generated by datamodel-codegen: +# filename: pi_state.json +# timestamp: 2022-09-23T08:47:48+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, Extra, Field, conint, constr + +from . import _ + + +class FewsGeoDatumEnumStringType(Enum): + LOCAL = 'LOCAL' + WGS_1984 = 'WGS 1984' + Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' + TWD_1967 = 'TWD 1967' + Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' + Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' + Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' + Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' + Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' + JRC = 'JRC' + DWD = 'DWD' + KNMI_Radar = 'KNMI Radar' + CH1903 = 'CH1903' + PAK1 = 'PAK1' + PAK2 = 'PAK2' + SVY21 = 'SVY21' + + +class FewsGeoDatumStringTypeEnum(Enum): + LOCAL = 'LOCAL' + WGS_1984 = 'WGS 1984' + Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' + TWD_1967 = 'TWD 1967' + Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' + Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' + Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' + Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' + Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' + JRC = 'JRC' + DWD = 'DWD' + KNMI_Radar = 'KNMI Radar' + CH1903 = 'CH1903' + PAK1 = 'PAK1' + PAK2 = 'PAK2' + SVY21 = 'SVY21' + + +class FewsGeoDatumStringType(BaseModel): + __root__: Union[ + FewsGeoDatumStringTypeEnum, + constr(regex=r'^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$'), + ] + + +class FewsLocationIdSimpleType(BaseModel): + __root__: str = Field(..., description='Location ID, defined by the model') + + +class FewsParameterSimpleType(BaseModel): + __root__: str = Field( + ..., + description='Content of the data (Discharge, Precipitation, VPD); defined by the model', + ) + + +class _Type(Enum): + file = 'file' + directory = 'directory' + + +class _Unit(Enum): + integer_1 = 1 + integer_2 = 2 + integer_3 = 3 + integer_4 = 4 + + +class FewsTimeZoneSimpleType(BaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS', + ) + + +class FewsUtmGeoDatumStringType(BaseModel): + __root__: constr(regex=r'^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$') + + +class FewsValueTypeEnumStringType(Enum): + boolean = 'boolean' + int = 'int' + float = 'float' + double = 'double' + string = 'string' + + +class FewsBooleanStringType(BaseModel): + __root__: Union[bool, constr(regex=r'^([\w\D]*[@][\w\D]*)$')] = Field( + ..., description=' \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t' + ) + + +class FewsCommentString(BaseModel): + __root__: str + + +class FewsDateType(BaseModel): + __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + + +class FewsDoubleStringType(BaseModel): + __root__: Union[float, constr(regex=r'^([\w\D]*[@][\w\D]*)$')] = Field( + ..., + description='\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t', + ) + + +class FewsEventCodeString(BaseModel): + __root__: constr(regex=r'^(\^\:)$') + + +class FewsIdString(BaseModel): + __root__: str + + +class FewsIdStringType(BaseModel): + __root__: constr(min_length=1, max_length=64) + + +class FewsIntStringType(BaseModel): + __root__: Union[ + conint(ge=-2147483648, le=2147483647), constr(regex=r'^([\w\D]*[@][\w\D]*)$') + ] = Field( + ..., description='\n\t\t\t\tInteger that allows (global) properties\n\t\t\t' + ) + + +class FewsNameString(BaseModel): + __root__: str + + +class FewsNonEmptyStringType(BaseModel): + __root__: constr(min_length=1) + + +class FewsPropertyReferenceString(BaseModel): + __root__: constr(regex=r'^([\w\D]*[@][\w\D]*)$') + + +class FewsTimeSeriesType1(Enum): + accumulative = 'accumulative' + instantaneous = 'instantaneous' + mean = 'mean' + + +class FewsTimeSeriesTypeEnumStringType(Enum): + external_historical = 'external historical' + external_forecasting = 'external forecasting' + simulated_historical = 'simulated historical' + simulated_forecasting = 'simulated forecasting' + temporary = 'temporary' + + +class FewsTimeStepUnitEnumStringType(Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + month = 'month' + year = 'year' + nonequidistant = 'nonequidistant' + + +class FewsTimeType(BaseModel): + __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + + +class FewsVersionString(Enum): + field_1_2 = '1.2' + field_1_3 = '1.3' + field_1_4 = '1.4' + field_1_5 = '1.5' + field_1_6 = '1.6' + field_1_7 = '1.7' + field_1_8 = '1.8' + field_1_9 = '1.9' + field_1_10 = '1.10' + field_1_11 = '1.11' + field_1_12 = '1.12' + field_1_13 = '1.13' + field_1_14 = '1.14' + + +class XsAnyURI(BaseModel): + __root__: str + + +class XsBoolean(BaseModel): + __root__: bool + + +class XsDouble(BaseModel): + __root__: float + + +class XsFloat(BaseModel): + __root__: float + + +class XsGDay(BaseModel): + __root__: str + + +class XsGMonth(BaseModel): + __root__: str + + +class XsGMonthDay(BaseModel): + __root__: str + + +class XsInt(BaseModel): + __root__: conint(ge=-2147483648, le=2147483647) + + +class XsNonNegativeInteger(BaseModel): + __root__: conint(ge=0) + + +class XsPositiveInteger(BaseModel): + __root__: conint(ge=1) + + +class XsString(BaseModel): + __root__: str + + +class FewsEnsembleId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsLocationIdItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsModuleInstanceId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsParameterId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsQualifierIdItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsTimeSeriesType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsTimeSeriesTypeEnumStringType] = Field(None, alias='$') + + +class FewsDescription(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsBoolPropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsBoolean = Field(..., alias='@value') + fews_description: Optional[FewsDescription] = Field(None, alias='fews:description') + + +class FewsColumnIdsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _A: XsString = Field(..., alias='@A') + _B: Optional[XsString] = Field(None, alias='@B') + _C: Optional[XsString] = Field(None, alias='@C') + _D: Optional[XsString] = Field(None, alias='@D') + _E: Optional[XsString] = Field(None, alias='@E') + _F: Optional[XsString] = Field(None, alias='@F') + _G: Optional[XsString] = Field(None, alias='@G') + _H: Optional[XsString] = Field(None, alias='@H') + _I: Optional[XsString] = Field(None, alias='@I') + _J: Optional[XsString] = Field(None, alias='@J') + _K: Optional[XsString] = Field(None, alias='@K') + _L: Optional[XsString] = Field(None, alias='@L') + _M: Optional[XsString] = Field(None, alias='@M') + _N: Optional[XsString] = Field(None, alias='@N') + _O: Optional[XsString] = Field(None, alias='@O') + _P: Optional[XsString] = Field(None, alias='@P') + _Q: Optional[XsString] = Field(None, alias='@Q') + _R: Optional[XsString] = Field(None, alias='@R') + _S: Optional[XsString] = Field(None, alias='@S') + _T: Optional[XsString] = Field(None, alias='@T') + _U: Optional[XsString] = Field(None, alias='@U') + _V: Optional[XsString] = Field(None, alias='@V') + _W: Optional[XsString] = Field(None, alias='@W') + _X: Optional[XsString] = Field(None, alias='@X') + _Y: Optional[XsString] = Field(None, alias='@Y') + _Z: Optional[XsString] = Field(None, alias='@Z') + + +class FewsColumnMetaDataComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _A: XsString = Field(..., alias='@A') + _B: Optional[XsString] = Field(None, alias='@B') + _C: Optional[XsString] = Field(None, alias='@C') + _D: Optional[XsString] = Field(None, alias='@D') + _E: Optional[XsString] = Field(None, alias='@E') + _F: Optional[XsString] = Field(None, alias='@F') + _G: Optional[XsString] = Field(None, alias='@G') + _H: Optional[XsString] = Field(None, alias='@H') + _I: Optional[XsString] = Field(None, alias='@I') + _J: Optional[XsString] = Field(None, alias='@J') + _K: Optional[XsString] = Field(None, alias='@K') + _L: Optional[XsString] = Field(None, alias='@L') + _M: Optional[XsString] = Field(None, alias='@M') + _N: Optional[XsString] = Field(None, alias='@N') + _O: Optional[XsString] = Field(None, alias='@O') + _P: Optional[XsString] = Field(None, alias='@P') + _Q: Optional[XsString] = Field(None, alias='@Q') + _R: Optional[XsString] = Field(None, alias='@R') + _S: Optional[XsString] = Field(None, alias='@S') + _T: Optional[XsString] = Field(None, alias='@T') + _U: Optional[XsString] = Field(None, alias='@U') + _V: Optional[XsString] = Field(None, alias='@V') + _W: Optional[XsString] = Field(None, alias='@W') + _X: Optional[XsString] = Field(None, alias='@X') + _Y: Optional[XsString] = Field(None, alias='@Y') + _Z: Optional[XsString] = Field(None, alias='@Z') + _id: Optional[XsString] = Field(None, alias='@id') + _type: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@type') + + +class FewsColumnTypesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _A: FewsValueTypeEnumStringType = Field(..., alias='@A') + _B: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@B') + _C: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@C') + _D: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@D') + _E: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@E') + _F: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@F') + _G: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@G') + _H: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@H') + _I: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@I') + _J: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@J') + _K: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@K') + _L: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@L') + _M: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@M') + _N: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@N') + _O: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@O') + _P: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@P') + _Q: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Q') + _R: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@R') + _S: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@S') + _T: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@T') + _U: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@U') + _V: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@V') + _W: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@W') + _X: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@X') + _Y: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Y') + _Z: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Z') + + +class FewsDateTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _date: FewsDateType = Field(..., alias='@date') + _time: FewsTimeType = Field(..., alias='@time') + + +class FewsDescription1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsDateTimePropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _date: FewsDateType = Field(..., alias='@date') + _key: XsString = Field(..., alias='@key') + _time: FewsTimeType = Field(..., alias='@time') + fews_description: Optional[FewsDescription1] = Field(None, alias='fews:description') + + +class FewsDescription2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsDoublePropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsDouble = Field(..., alias='@value') + fews_description: Optional[FewsDescription2] = Field(None, alias='fews:description') + + +class FewsEnsembleMemberComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _index: XsNonNegativeInteger = Field(..., alias='@index') + _weight: Optional[XsDouble] = Field(None, alias='@weight') + + +class FewsEnsembleMemberRangeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _end: Optional[XsNonNegativeInteger] = Field(None, alias='@end') + _start: XsNonNegativeInteger = Field(..., alias='@start') + _weight: Optional[XsDouble] = Field(None, alias='@weight') + + +class FewsDescription3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsFloatPropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsFloat = Field(..., alias='@value') + fews_description: Optional[FewsDescription3] = Field(None, alias='fews:description') + + +class FewsDescription4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsIntPropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsInt = Field(..., alias='@value') + fews_description: Optional[FewsDescription4] = Field(None, alias='fews:description') + + +class FewsDayItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGDay] = Field(None, alias='$') + + +class FewsEndMonthDay(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGMonthDay] = Field(None, alias='$') + + +class FewsMonthItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGMonth] = Field(None, alias='$') + + +class FewsMonthDayItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGMonthDay] = Field(None, alias='$') + + +class FewsStartMonthDay(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGMonthDay] = Field(None, alias='$') + + +class FewsTimeZone(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias='$') + + +class FewsPeriodConditionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_day: Optional[List[FewsDayItem]] = Field(None, alias='fews:day') + fews_endDate: Optional[FewsDateTimeComplexType] = Field( + None, alias='fews:endDate', description='End date and time for this period.' + ) + fews_endMonthDay: Optional[FewsEndMonthDay] = Field( + None, alias='fews:endMonthDay', description='End month and day of this season.' + ) + fews_month: Optional[List[FewsMonthItem]] = Field(None, alias='fews:month') + fews_monthDay: Optional[List[FewsMonthDayItem]] = Field(None, alias='fews:monthDay') + fews_startDate: Optional[FewsDateTimeComplexType] = Field( + None, alias='fews:startDate', description='Start date and time for this period.' + ) + fews_startMonthDay: Optional[FewsStartMonthDay] = Field( + None, + alias='fews:startMonthDay', + description='Start month and day of this season.', + ) + fews_timeZone: Optional[FewsTimeZone] = Field( + None, alias='fews:timeZone', description='Timezone' + ) + fews_validAfterDate: Optional[FewsDateTimeComplexType] = Field( + None, + alias='fews:validAfterDate', + description='Valid for entire period after this date and time.', + ) + fews_validBeforeDate: Optional[FewsDateTimeComplexType] = Field( + None, + alias='fews:validBeforeDate', + description='Valid for entire period prior to this date and time.', + ) + + +class FewsDescription5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsRowComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _A: XsString = Field(..., alias='@A') + _B: Optional[XsString] = Field(None, alias='@B') + _C: Optional[XsString] = Field(None, alias='@C') + _D: Optional[XsString] = Field(None, alias='@D') + _E: Optional[XsString] = Field(None, alias='@E') + _F: Optional[XsString] = Field(None, alias='@F') + _G: Optional[XsString] = Field(None, alias='@G') + _H: Optional[XsString] = Field(None, alias='@H') + _I: Optional[XsString] = Field(None, alias='@I') + _J: Optional[XsString] = Field(None, alias='@J') + _K: Optional[XsString] = Field(None, alias='@K') + _L: Optional[XsString] = Field(None, alias='@L') + _M: Optional[XsString] = Field(None, alias='@M') + _N: Optional[XsString] = Field(None, alias='@N') + _O: Optional[XsString] = Field(None, alias='@O') + _P: Optional[XsString] = Field(None, alias='@P') + _Q: Optional[XsString] = Field(None, alias='@Q') + _R: Optional[XsString] = Field(None, alias='@R') + _S: Optional[XsString] = Field(None, alias='@S') + _T: Optional[XsString] = Field(None, alias='@T') + _U: Optional[XsString] = Field(None, alias='@U') + _V: Optional[XsString] = Field(None, alias='@V') + _W: Optional[XsString] = Field(None, alias='@W') + _X: Optional[XsString] = Field(None, alias='@X') + _Y: Optional[XsString] = Field(None, alias='@Y') + _Z: Optional[XsString] = Field(None, alias='@Z') + + +class FewsComment(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsCommentString] = Field(None, alias='$') + + +class FewsStateId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdString] = Field(None, alias='$') + + +class FewsStateName(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsNameString] = Field(None, alias='$') + + +class FewsTimeZone1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias='$') + + +class FewsReadLocation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsAnyURI] = Field(None, alias='$') + + +class FewsWriteLocation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsAnyURI] = Field(None, alias='$') + + +class FewsStateReadWriteDirectoryComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _type: _Type = Field(..., alias='@type') + fews_readLocation: FewsReadLocation = Field( + ..., + alias='fews:readLocation', + description='The name of the input state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally', + ) + fews_writeLocation: FewsWriteLocation = Field( + ..., + alias='fews:writeLocation', + description='The name of the output state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally', + ) + + +class FewsDescription6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsStringPropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsString = Field(..., alias='@value') + fews_description: Optional[FewsDescription6] = Field(None, alias='fews:description') + + +class FewsTimeStepComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') + _multiplier: Optional[XsNonNegativeInteger] = Field(None, alias='@multiplier') + _unit: FewsTimeStepUnitEnumStringType = Field(..., alias='@unit') + + +class FewsTimeStepUnitComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _divider: Optional[XsInt] = Field(None, alias='@divider') + _unit: _Unit = Field(..., alias='@unit') + + +class FewsArchiveTimeSeriesSetComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_ensembleId: Optional[FewsEnsembleId] = Field( + None, + alias='fews:ensembleId', + description="Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow.", + ) + fews_locationId: List[FewsLocationIdItem] = Field( + ..., alias='fews:locationId', min_items=1 + ) + fews_moduleInstanceId: FewsModuleInstanceId = Field( + ..., alias='fews:moduleInstanceId' + ) + fews_parameterId: FewsParameterId = Field(..., alias='fews:parameterId') + fews_qualifierId: Optional[List[FewsQualifierIdItem]] = Field( + None, alias='fews:qualifierId' + ) + fews_timeSeriesType: FewsTimeSeriesType = Field(..., alias='fews:timeSeriesType') + fews_timeStep: FewsTimeStepComplexType = Field(..., alias='fews:timeStep') + + +class FewsGlobalTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_columnIds: Optional[FewsColumnIdsComplexType] = Field( + None, alias='fews:columnIds' + ) + fews_columnMetaData: Optional[List[FewsColumnMetaDataComplexType]] = Field( + None, alias='fews:columnMetaData' + ) + fews_columnTypes: Optional[FewsColumnTypesComplexType] = Field( + None, alias='fews:columnTypes' + ) + fews_columnUnits: Optional[FewsColumnIdsComplexType] = Field( + None, alias='fews:columnUnits' + ) + fews_row: List[FewsRowComplexType] = Field(..., alias='fews:row', min_items=1) + + +class FewsPropertiesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_bool: Optional[List[FewsBoolPropertyComplexType]] = Field( + None, alias='fews:bool' + ) + fews_dateTime: Optional[List[FewsDateTimePropertyComplexType]] = Field( + None, alias='fews:dateTime' + ) + fews_description: Optional[FewsDescription5] = Field(None, alias='fews:description') + fews_double: Optional[List[FewsDoublePropertyComplexType]] = Field( + None, alias='fews:double' + ) + fews_float: Optional[List[FewsFloatPropertyComplexType]] = Field( + None, alias='fews:float' + ) + fews_int: Optional[List[FewsIntPropertyComplexType]] = Field(None, alias='fews:int') + fews_string: Optional[List[FewsStringPropertyComplexType]] = Field( + None, alias='fews:string' + ) + + +class FewsStateComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _version: FewsVersionString = Field(..., alias='@version') + fews_comment: Optional[FewsComment] = Field( + None, + alias='fews:comment', + description='use this field as a notebook to add comments, suggestions\n description of data entered etc.', + ) + fews_dateTime: Optional[FewsDateTimeComplexType] = Field( + None, + alias='fews:dateTime', + description='date and time this state is valid for/was taken', + ) + fews_stateId: FewsStateId = Field( + ..., alias='fews:stateId', description='id of this state, defined by the module' + ) + fews_stateLoc: List[FewsStateReadWriteDirectoryComplexType] = Field( + ..., alias='fews:stateLoc', min_items=1 + ) + fews_stateName: Optional[FewsStateName] = Field( + None, + alias='fews:stateName', + description='optional descriptive name of this state', + ) + fews_timeZone: Optional[FewsTimeZone1] = Field( + None, + alias='fews:timeZone', + description='the time zone of the pi input files is assumed when the time zone in a pi output file is missing', + ) + + +class Model(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _xmlns_fews: Optional[Any] = Field( + 'http://www.wldelft.nl/fews/PI', alias='@xmlns:fews' + ) + _xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + ) + fews_State: Optional[_.FewsState] = Field(None, alias='fews:State') diff --git a/hydrolib/core/io/rtc/pi_timeseries/models.py b/hydrolib/core/io/rtc/pi_timeseries/models.py new file mode 100644 index 000000000..b367f65db --- /dev/null +++ b/hydrolib/core/io/rtc/pi_timeseries/models.py @@ -0,0 +1,1124 @@ +# generated by datamodel-codegen: +# filename: pi_timeseries.json +# timestamp: 2022-09-23T08:48:17+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, Extra, Field, conint, constr + +from . import _ + + +class FewsGeoDatumEnumStringType(Enum): + LOCAL = 'LOCAL' + WGS_1984 = 'WGS 1984' + Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' + TWD_1967 = 'TWD 1967' + Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' + Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' + Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' + Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' + Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' + JRC = 'JRC' + DWD = 'DWD' + KNMI_Radar = 'KNMI Radar' + CH1903 = 'CH1903' + PAK1 = 'PAK1' + PAK2 = 'PAK2' + SVY21 = 'SVY21' + + +class FewsGeoDatumStringTypeEnum(Enum): + LOCAL = 'LOCAL' + WGS_1984 = 'WGS 1984' + Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' + TWD_1967 = 'TWD 1967' + Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' + Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' + Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' + Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' + Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' + JRC = 'JRC' + DWD = 'DWD' + KNMI_Radar = 'KNMI Radar' + CH1903 = 'CH1903' + PAK1 = 'PAK1' + PAK2 = 'PAK2' + SVY21 = 'SVY21' + + +class FewsGeoDatumStringType(BaseModel): + __root__: Union[ + FewsGeoDatumStringTypeEnum, + constr(regex=r'^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$'), + ] + + +class FewsLocationIdSimpleType(BaseModel): + __root__: str = Field(..., description='Location ID, defined by the model') + + +class FewsParameterSimpleType(BaseModel): + __root__: str = Field( + ..., + description='Content of the data (Discharge, Precipitation, VPD); defined by the model', + ) + + +class _Unit(Enum): + integer_1 = 1 + integer_2 = 2 + integer_3 = 3 + integer_4 = 4 + + +class FewsTimeZoneSimpleType(BaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS', + ) + + +class FewsUtmGeoDatumStringType(BaseModel): + __root__: constr(regex=r'^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$') + + +class FewsValueTypeEnumStringType(Enum): + boolean = 'boolean' + int = 'int' + float = 'float' + double = 'double' + string = 'string' + + +class FewsBooleanStringType(BaseModel): + __root__: Union[bool, constr(regex=r'^([\w\D]*[@][\w\D]*)$')] = Field( + ..., description=' \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t' + ) + + +class FewsCommentString(BaseModel): + __root__: str + + +class FewsDateType(BaseModel): + __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + + +class FewsDoubleStringType(BaseModel): + __root__: Union[float, constr(regex=r'^([\w\D]*[@][\w\D]*)$')] = Field( + ..., + description='\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t', + ) + + +class FewsEventCodeString(BaseModel): + __root__: constr(regex=r'^(\^\:)$') + + +class FewsIdString(BaseModel): + __root__: str + + +class FewsIdStringType(BaseModel): + __root__: constr(min_length=1, max_length=64) + + +class FewsIntStringType(BaseModel): + __root__: Union[ + conint(ge=-2147483648, le=2147483647), constr(regex=r'^([\w\D]*[@][\w\D]*)$') + ] = Field( + ..., description='\n\t\t\t\tInteger that allows (global) properties\n\t\t\t' + ) + + +class FewsNameString(BaseModel): + __root__: str + + +class FewsNonEmptyStringType(BaseModel): + __root__: constr(min_length=1) + + +class FewsPropertyReferenceString(BaseModel): + __root__: constr(regex=r'^([\w\D]*[@][\w\D]*)$') + + +class FewsTimeSeriesType(Enum): + accumulative = 'accumulative' + instantaneous = 'instantaneous' + mean = 'mean' + + +class FewsTimeSeriesTypeEnumStringType(Enum): + external_historical = 'external historical' + external_forecasting = 'external forecasting' + simulated_historical = 'simulated historical' + simulated_forecasting = 'simulated forecasting' + temporary = 'temporary' + + +class FewsTimeStepUnitEnumStringType(Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + month = 'month' + year = 'year' + nonequidistant = 'nonequidistant' + + +class FewsTimeType(BaseModel): + __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + + +class FewsVersionString(Enum): + field_1_2 = '1.2' + field_1_3 = '1.3' + field_1_4 = '1.4' + field_1_5 = '1.5' + field_1_6 = '1.6' + field_1_7 = '1.7' + field_1_8 = '1.8' + field_1_9 = '1.9' + field_1_10 = '1.10' + field_1_11 = '1.11' + field_1_12 = '1.12' + field_1_13 = '1.13' + field_1_14 = '1.14' + + +class XsBoolean(BaseModel): + __root__: bool + + +class XsDate(BaseModel): + __root__: str + + +class XsDouble(BaseModel): + __root__: float + + +class XsFloat(BaseModel): + __root__: float + + +class XsGDay(BaseModel): + __root__: str + + +class XsGMonth(BaseModel): + __root__: str + + +class XsGMonthDay(BaseModel): + __root__: str + + +class XsInt(BaseModel): + __root__: conint(ge=-2147483648, le=2147483647) + + +class XsNonNegativeInteger(BaseModel): + __root__: conint(ge=0) + + +class XsPositiveInteger(BaseModel): + __root__: conint(ge=1) + + +class XsString(BaseModel): + __root__: str + + +class XsTime(BaseModel): + __root__: str + + +class FewsEnsembleId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsLocationIdItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsModuleInstanceId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsParameterId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsQualifierIdItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdStringType] = Field(None, alias='$') + + +class FewsTimeSeriesTypeModel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsTimeSeriesTypeEnumStringType] = Field(None, alias='$') + + +class FewsDescription(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsBoolPropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsBoolean = Field(..., alias='@value') + fews_description: Optional[FewsDescription] = Field(None, alias='fews:description') + + +class FewsColumnIdsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _A: XsString = Field(..., alias='@A') + _B: Optional[XsString] = Field(None, alias='@B') + _C: Optional[XsString] = Field(None, alias='@C') + _D: Optional[XsString] = Field(None, alias='@D') + _E: Optional[XsString] = Field(None, alias='@E') + _F: Optional[XsString] = Field(None, alias='@F') + _G: Optional[XsString] = Field(None, alias='@G') + _H: Optional[XsString] = Field(None, alias='@H') + _I: Optional[XsString] = Field(None, alias='@I') + _J: Optional[XsString] = Field(None, alias='@J') + _K: Optional[XsString] = Field(None, alias='@K') + _L: Optional[XsString] = Field(None, alias='@L') + _M: Optional[XsString] = Field(None, alias='@M') + _N: Optional[XsString] = Field(None, alias='@N') + _O: Optional[XsString] = Field(None, alias='@O') + _P: Optional[XsString] = Field(None, alias='@P') + _Q: Optional[XsString] = Field(None, alias='@Q') + _R: Optional[XsString] = Field(None, alias='@R') + _S: Optional[XsString] = Field(None, alias='@S') + _T: Optional[XsString] = Field(None, alias='@T') + _U: Optional[XsString] = Field(None, alias='@U') + _V: Optional[XsString] = Field(None, alias='@V') + _W: Optional[XsString] = Field(None, alias='@W') + _X: Optional[XsString] = Field(None, alias='@X') + _Y: Optional[XsString] = Field(None, alias='@Y') + _Z: Optional[XsString] = Field(None, alias='@Z') + + +class FewsColumnMetaDataComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _A: XsString = Field(..., alias='@A') + _B: Optional[XsString] = Field(None, alias='@B') + _C: Optional[XsString] = Field(None, alias='@C') + _D: Optional[XsString] = Field(None, alias='@D') + _E: Optional[XsString] = Field(None, alias='@E') + _F: Optional[XsString] = Field(None, alias='@F') + _G: Optional[XsString] = Field(None, alias='@G') + _H: Optional[XsString] = Field(None, alias='@H') + _I: Optional[XsString] = Field(None, alias='@I') + _J: Optional[XsString] = Field(None, alias='@J') + _K: Optional[XsString] = Field(None, alias='@K') + _L: Optional[XsString] = Field(None, alias='@L') + _M: Optional[XsString] = Field(None, alias='@M') + _N: Optional[XsString] = Field(None, alias='@N') + _O: Optional[XsString] = Field(None, alias='@O') + _P: Optional[XsString] = Field(None, alias='@P') + _Q: Optional[XsString] = Field(None, alias='@Q') + _R: Optional[XsString] = Field(None, alias='@R') + _S: Optional[XsString] = Field(None, alias='@S') + _T: Optional[XsString] = Field(None, alias='@T') + _U: Optional[XsString] = Field(None, alias='@U') + _V: Optional[XsString] = Field(None, alias='@V') + _W: Optional[XsString] = Field(None, alias='@W') + _X: Optional[XsString] = Field(None, alias='@X') + _Y: Optional[XsString] = Field(None, alias='@Y') + _Z: Optional[XsString] = Field(None, alias='@Z') + _id: Optional[XsString] = Field(None, alias='@id') + _type: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@type') + + +class FewsColumnTypesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _A: FewsValueTypeEnumStringType = Field(..., alias='@A') + _B: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@B') + _C: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@C') + _D: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@D') + _E: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@E') + _F: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@F') + _G: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@G') + _H: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@H') + _I: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@I') + _J: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@J') + _K: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@K') + _L: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@L') + _M: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@M') + _N: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@N') + _O: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@O') + _P: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@P') + _Q: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Q') + _R: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@R') + _S: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@S') + _T: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@T') + _U: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@U') + _V: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@V') + _W: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@W') + _X: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@X') + _Y: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Y') + _Z: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Z') + + +class FewsDateTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _date: FewsDateType = Field(..., alias='@date') + _time: FewsTimeType = Field(..., alias='@time') + + +class FewsDescription1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsDateTimePropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _date: FewsDateType = Field(..., alias='@date') + _key: XsString = Field(..., alias='@key') + _time: FewsTimeType = Field(..., alias='@time') + fews_description: Optional[FewsDescription1] = Field(None, alias='fews:description') + + +class FewsDescription2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsDoublePropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsDouble = Field(..., alias='@value') + fews_description: Optional[FewsDescription2] = Field(None, alias='fews:description') + + +class FewsEnsembleMemberComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _index: XsNonNegativeInteger = Field(..., alias='@index') + _weight: Optional[XsDouble] = Field(None, alias='@weight') + + +class FewsEnsembleMemberRangeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _end: Optional[XsNonNegativeInteger] = Field(None, alias='@end') + _start: XsNonNegativeInteger = Field(..., alias='@start') + _weight: Optional[XsDouble] = Field(None, alias='@weight') + + +class FewsEventComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _comment: Optional[XsString] = Field(None, alias='@comment') + _date: FewsDateType = Field(..., alias='@date') + _flag: Optional[XsInt] = Field(None, alias='@flag') + _flagSource: Optional[XsString] = Field(None, alias='@flagSource') + _time: FewsTimeType = Field(..., alias='@time') + _user: Optional[XsString] = Field(None, alias='@user') + _value: XsDouble = Field(..., alias='@value') + + +class FewsDescription3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsFloatPropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsFloat = Field(..., alias='@value') + fews_description: Optional[FewsDescription3] = Field(None, alias='fews:description') + + +class FewsCreationDate(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDate] = Field(None, alias='$') + + +class FewsCreationTime(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsTime] = Field(None, alias='$') + + +class FewsEnsembleId1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdString] = Field(None, alias='$') + + +class FewsEnsembleMemberId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdString] = Field(None, alias='$') + + +class FewsEnsembleMemberIndex(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsNonNegativeInteger] = Field(None, alias='$') + + +class FewsFileDescription(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsLat(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class FewsLocationId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsLocationIdSimpleType] = Field(None, alias='$') + + +class FewsLon(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class FewsLongName(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsMissVal(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class FewsParameterId1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsParameterSimpleType] = Field(None, alias='$') + + +class FewsQualifierIdItem1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsIdString] = Field(None, alias='$') + + +class FewsRegion(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsSourceOrganisation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsSourceSystem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsStationName(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsNameString] = Field(None, alias='$') + + +class FewsType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsTimeSeriesType] = Field(None, alias='$') + + +class FewsUnits(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsX(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class FewsY(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class FewsZ(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class FewsHighLevelThresholdsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _groupId: Optional[XsString] = Field(None, alias='@groupId') + _groupName: Optional[XsString] = Field(None, alias='@groupName') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + _value: XsFloat = Field(..., alias='@value') + + +class FewsDescription4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsIntPropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsInt = Field(..., alias='@value') + fews_description: Optional[FewsDescription4] = Field(None, alias='fews:description') + + +class FewsDayItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGDay] = Field(None, alias='$') + + +class FewsEndMonthDay(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGMonthDay] = Field(None, alias='$') + + +class FewsMonthItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGMonth] = Field(None, alias='$') + + +class FewsMonthDayItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGMonthDay] = Field(None, alias='$') + + +class FewsStartMonthDay(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsGMonthDay] = Field(None, alias='$') + + +class FewsTimeZone(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias='$') + + +class FewsPeriodConditionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_day: Optional[List[FewsDayItem]] = Field(None, alias='fews:day') + fews_endDate: Optional[FewsDateTimeComplexType] = Field( + None, alias='fews:endDate', description='End date and time for this period.' + ) + fews_endMonthDay: Optional[FewsEndMonthDay] = Field( + None, alias='fews:endMonthDay', description='End month and day of this season.' + ) + fews_month: Optional[List[FewsMonthItem]] = Field(None, alias='fews:month') + fews_monthDay: Optional[List[FewsMonthDayItem]] = Field(None, alias='fews:monthDay') + fews_startDate: Optional[FewsDateTimeComplexType] = Field( + None, alias='fews:startDate', description='Start date and time for this period.' + ) + fews_startMonthDay: Optional[FewsStartMonthDay] = Field( + None, + alias='fews:startMonthDay', + description='Start month and day of this season.', + ) + fews_timeZone: Optional[FewsTimeZone] = Field( + None, alias='fews:timeZone', description='Timezone' + ) + fews_validAfterDate: Optional[FewsDateTimeComplexType] = Field( + None, + alias='fews:validAfterDate', + description='Valid for entire period after this date and time.', + ) + fews_validBeforeDate: Optional[FewsDateTimeComplexType] = Field( + None, + alias='fews:validBeforeDate', + description='Valid for entire period prior to this date and time.', + ) + + +class FewsDescription5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsRowComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _A: XsString = Field(..., alias='@A') + _B: Optional[XsString] = Field(None, alias='@B') + _C: Optional[XsString] = Field(None, alias='@C') + _D: Optional[XsString] = Field(None, alias='@D') + _E: Optional[XsString] = Field(None, alias='@E') + _F: Optional[XsString] = Field(None, alias='@F') + _G: Optional[XsString] = Field(None, alias='@G') + _H: Optional[XsString] = Field(None, alias='@H') + _I: Optional[XsString] = Field(None, alias='@I') + _J: Optional[XsString] = Field(None, alias='@J') + _K: Optional[XsString] = Field(None, alias='@K') + _L: Optional[XsString] = Field(None, alias='@L') + _M: Optional[XsString] = Field(None, alias='@M') + _N: Optional[XsString] = Field(None, alias='@N') + _O: Optional[XsString] = Field(None, alias='@O') + _P: Optional[XsString] = Field(None, alias='@P') + _Q: Optional[XsString] = Field(None, alias='@Q') + _R: Optional[XsString] = Field(None, alias='@R') + _S: Optional[XsString] = Field(None, alias='@S') + _T: Optional[XsString] = Field(None, alias='@T') + _U: Optional[XsString] = Field(None, alias='@U') + _V: Optional[XsString] = Field(None, alias='@V') + _W: Optional[XsString] = Field(None, alias='@W') + _X: Optional[XsString] = Field(None, alias='@X') + _Y: Optional[XsString] = Field(None, alias='@Y') + _Z: Optional[XsString] = Field(None, alias='@Z') + + +class FewsDescription6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class FewsStringPropertyComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _key: XsString = Field(..., alias='@key') + _value: XsString = Field(..., alias='@value') + fews_description: Optional[FewsDescription6] = Field(None, alias='fews:description') + + +class FewsThresholdComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_highLevelThreshold: List[FewsHighLevelThresholdsComplexType] = Field( + ..., alias='fews:highLevelThreshold', min_items=1 + ) + + +class FewsTimeZone1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias='$') + + +class FewsComment(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[FewsCommentString] = Field(None, alias='$') + + +class FewsTimeStepComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') + _multiplier: Optional[XsNonNegativeInteger] = Field(None, alias='@multiplier') + _unit: FewsTimeStepUnitEnumStringType = Field(..., alias='@unit') + + +class FewsTimeStepUnitComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _divider: Optional[XsInt] = Field(None, alias='@divider') + _unit: _Unit = Field(..., alias='@unit') + + +class FewsArchiveTimeSeriesSetComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_ensembleId: Optional[FewsEnsembleId] = Field( + None, + alias='fews:ensembleId', + description="Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow.", + ) + fews_locationId: List[FewsLocationIdItem] = Field( + ..., alias='fews:locationId', min_items=1 + ) + fews_moduleInstanceId: FewsModuleInstanceId = Field( + ..., alias='fews:moduleInstanceId' + ) + fews_parameterId: FewsParameterId = Field(..., alias='fews:parameterId') + fews_qualifierId: Optional[List[FewsQualifierIdItem]] = Field( + None, alias='fews:qualifierId' + ) + fews_timeSeriesType: FewsTimeSeriesTypeModel = Field( + ..., alias='fews:timeSeriesType' + ) + fews_timeStep: FewsTimeStepComplexType = Field(..., alias='fews:timeStep') + + +class FewsGlobalTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_columnIds: Optional[FewsColumnIdsComplexType] = Field( + None, alias='fews:columnIds' + ) + fews_columnMetaData: Optional[List[FewsColumnMetaDataComplexType]] = Field( + None, alias='fews:columnMetaData' + ) + fews_columnTypes: Optional[FewsColumnTypesComplexType] = Field( + None, alias='fews:columnTypes' + ) + fews_columnUnits: Optional[FewsColumnIdsComplexType] = Field( + None, alias='fews:columnUnits' + ) + fews_row: List[FewsRowComplexType] = Field(..., alias='fews:row', min_items=1) + + +class FewsHeaderComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_creationDate: Optional[FewsCreationDate] = Field( + None, + alias='fews:creationDate', + description='Date on which this TimeSeries was\n created', + ) + fews_creationTime: Optional[FewsCreationTime] = Field( + None, + alias='fews:creationTime', + description='Time on which this TimeSeries was\n created', + ) + fews_endDate: FewsDateTimeComplexType = Field( + ..., alias='fews:endDate', description='date/time of the last event' + ) + fews_ensembleId: Optional[FewsEnsembleId1] = Field( + None, + alias='fews:ensembleId', + description="\n\t\t\t\t\t\t\tSince version 1.4\n\t\t\t\t\t\t\tAn ensemble forecast consists of a number of simulations made by making small changes to the\n\t\t\t\t\t\t\testimate of the current state used to initialize the simulation. These small changes are\n\t\t\t\t\t\t\tdesigned to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberIndex\n\t\t\t\t\t\t\tWhen specified the ensembleMemberIndex is required\n\t\t\t\t\t\t", + ) + fews_ensembleMemberId: Optional[FewsEnsembleMemberId] = Field( + None, + alias='fews:ensembleMemberId', + description="\n\t\t\t\t\t\t\t\tSince version 1.10 An ensemble forecast consists of a number of simulations made by making small changes to the estimate of the current state used to initialize the simulation. These small changes are designed to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberId. Ensemble id is not required when the ensembleMemberId is specified\n\t\t\t\t\t\t\t", + ) + fews_ensembleMemberIndex: Optional[FewsEnsembleMemberIndex] = Field( + None, + alias='fews:ensembleMemberIndex', + description="\n\t\t\t\t\t\t\t\tSince version 1.4 An ensemble forecast consists of a number of simulations made by making small changes to the estimate of the current state used to initialize the simulation. These small changes are designed to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberIndex. Ensemble id is not required when the ensembleMemberIndex is specified\n\t\t\t\t\t\t\t", + ) + fews_fileDescription: Optional[FewsFileDescription] = Field( + None, + alias='fews:fileDescription', + description='Description of (the content of)\n this file', + ) + fews_forecastDate: Optional[FewsDateTimeComplexType] = Field( + None, + alias='fews:forecastDate', + description='\n\t\t\t\t\t\tSince version 1.5\n\t\t\t\t\t\tdate/time of the forecast. By default the forecastDate equals the start time', + ) + fews_lat: Optional[FewsLat] = Field( + None, alias='fews:lat', description='Latitude of station' + ) + fews_locationId: FewsLocationId = Field(..., alias='fews:locationId') + fews_lon: Optional[FewsLon] = Field( + None, alias='fews:lon', description='Longitude of station' + ) + fews_longName: Optional[FewsLongName] = Field( + None, alias='fews:longName', description='Optional long (descriptive) name' + ) + fews_missVal: FewsMissVal = Field( + ..., + alias='fews:missVal', + description='Missing value definition for this TimeSeries. Defaults to NaN if left empty', + ) + fews_parameterId: FewsParameterId1 = Field(..., alias='fews:parameterId') + fews_qualifierId: Optional[List[FewsQualifierIdItem1]] = Field( + None, alias='fews:qualifierId' + ) + fews_region: Optional[FewsRegion] = Field( + None, + alias='fews:region', + description="code/description of the region. Needed if the id's\n can be the same in different regions.", + ) + fews_sourceOrganisation: Optional[FewsSourceOrganisation] = Field( + None, alias='fews:sourceOrganisation' + ) + fews_sourceSystem: Optional[FewsSourceSystem] = Field( + None, alias='fews:sourceSystem' + ) + fews_startDate: FewsDateTimeComplexType = Field( + ..., alias='fews:startDate', description='date/time of the first event' + ) + fews_stationName: Optional[FewsStationName] = Field( + None, alias='fews:stationName', description='Station name' + ) + fews_thresholds: Optional[FewsThresholdComplexType] = Field( + None, alias='fews:thresholds' + ) + fews_timeStep: FewsTimeStepComplexType = Field( + ..., + alias='fews:timeStep', + description='The timeStep element provides three choices', + ) + fews_type: FewsType = Field( + ..., + alias='fews:type', + description='\n Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ', + ) + fews_units: Optional[FewsUnits] = Field( + None, + alias='fews:units', + description='Optional string that identifies the units used', + ) + fews_x: Optional[FewsX] = Field( + None, alias='fews:x', description='X coordinate of station' + ) + fews_y: Optional[FewsY] = Field( + None, alias='fews:y', description='Y coordinate of station' + ) + fews_z: Optional[FewsZ] = Field( + None, alias='fews:z', description='Z coordinate of station' + ) + + +class FewsPropertiesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_bool: Optional[List[FewsBoolPropertyComplexType]] = Field( + None, alias='fews:bool' + ) + fews_dateTime: Optional[List[FewsDateTimePropertyComplexType]] = Field( + None, alias='fews:dateTime' + ) + fews_description: Optional[FewsDescription5] = Field(None, alias='fews:description') + fews_double: Optional[List[FewsDoublePropertyComplexType]] = Field( + None, alias='fews:double' + ) + fews_float: Optional[List[FewsFloatPropertyComplexType]] = Field( + None, alias='fews:float' + ) + fews_int: Optional[List[FewsIntPropertyComplexType]] = Field(None, alias='fews:int') + fews_string: Optional[List[FewsStringPropertyComplexType]] = Field( + None, alias='fews:string' + ) + + +class FewsTimeSeriesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + fews_comment: Optional[FewsComment] = Field( + None, + alias='fews:comment', + description='use this field as a notebook to add comments, suggestions\n description of data entered etc.', + ) + fews_event: Optional[List[FewsEventComplexType]] = Field(None, alias='fews:event') + fews_header: FewsHeaderComplexType = Field( + ..., + alias='fews:header', + description='\n The header is used to specify the link to the location\n and the contents', + ) + fews_properties: Optional[List[FewsPropertiesComplexType]] = Field( + None, alias='fews:properties' + ) + + +class FewsTimeSeriesCollectionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _version: Optional[FewsVersionString] = Field(None, alias='@version') + fews_series: List[FewsTimeSeriesComplexType] = Field( + ..., alias='fews:series', min_items=1 + ) + fews_timeZone: Optional[FewsTimeZone1] = Field(None, alias='fews:timeZone') + + +class Model(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _xmlns_fews: Optional[Any] = Field( + 'http://www.wldelft.nl/fews/PI', alias='@xmlns:fews' + ) + _xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + ) + fews_TimeSeries: Optional[_.FewsTimeSeries] = Field(None, alias='fews:TimeSeries') diff --git a/hydrolib/core/io/rtc/rtcDataConfig/models.py b/hydrolib/core/io/rtc/rtcDataConfig/models.py new file mode 100644 index 000000000..f7ef6bb7b --- /dev/null +++ b/hydrolib/core/io/rtc/rtcDataConfig/models.py @@ -0,0 +1,442 @@ +# generated by datamodel-codegen: +# filename: rtcDataConfig.json +# timestamp: 2022-09-23T08:50:37+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, Extra, Field, conint, constr + +from . import _ + + +class RtcAggregationTypeEnumStringType(Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class RtcEnsembleModeEnumStringType(Enum): + JOINT = 'JOINT' + TREE = 'TREE' + INDEPENDENT = 'INDEPENDENT' + + +class RtcExternalBooleanSimpleType(BaseModel): + __root__: Union[bool, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + + +class RtcExternalIntegerSimpleType(BaseModel): + __root__: Union[int, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + + +class RtcExternalParameterSimpleType(BaseModel): + __root__: Union[float, constr(regex=r'^([#-\$][\(-_a-z]+[#-\$])$')] + + +class RtcPIExtrapolationOptionEnumStringType(Enum): + BLOCK = 'BLOCK' + PERIODIC = 'PERIODIC' + + +class RtcPIInterpolationOptionEnumStringType(Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class RtcExtrapolationOption(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcPIExtrapolationOptionEnumStringType] = Field(None, alias='$') + + +class RtcInterpolationOption(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcPIInterpolationOptionEnumStringType] = Field(None, alias='$') + + +class _Validation(Enum): + NO = 'NO' + STATE = 'STATE' + UPDATE = 'UPDATE' + UPDATE_EXCEPT_STATE = 'UPDATE_EXCEPT_STATE' + FORECAST = 'FORECAST' + FORECAST_EXCEPT_T0 = 'FORECAST_EXCEPT_T0' + ALL = 'ALL' + ALL_EXCEPT_STATE = 'ALL_EXCEPT_STATE' + + +class RtcSeparatorEnumStringType(Enum): + _ = '.' + __1 = ',' + __2 = ';' + + +class RtcTimeSeriesSimpleType(BaseModel): + __root__: constr(min_length=1) + + +class RtcTimeZoneSimpleType(BaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + ) + + +class RtcUnitEnumStringType(Enum): + m = 'm' + m_2 = 'm^2' + m_3 = 'm^3' + m_3_s = 'm^3/s' + s = 's' + + +class RtcVariableTypeEnumStringType(Enum): + CONTINUOUS = 'CONTINUOUS' + INTEGER = 'INTEGER' + TIMEINSTANCE = 'TIMEINSTANCE' + + +class RtcDateType(BaseModel): + __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + + +class RtcTimeSeriesType(Enum): + accumulative = 'accumulative' + instantaneous = 'instantaneous' + + +class RtcTimeStepUnitEnumStringType(Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + + +class RtcTimeType(BaseModel): + __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + + +class XsBoolean(BaseModel): + __root__: bool + + +class XsPositiveInteger(BaseModel): + __root__: conint(ge=1) + + +class XsString(BaseModel): + __root__: str + + +class RtcCSVTimeSeriesFileComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _adjointOutput: Optional[XsBoolean] = Field(None, alias='@adjointOutput') + _decimalSeparator: Optional[RtcSeparatorEnumStringType] = Field( + None, alias='@decimalSeparator' + ) + _delimiter: Optional[RtcSeparatorEnumStringType] = Field(None, alias='@delimiter') + + +class RtcDateTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _date: RtcDateType = Field(..., alias='@date') + _time: RtcTimeType = Field(..., alias='@time') + + +class RtcElementId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcQuantityId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcUnit(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcUnitEnumStringType] = Field(None, alias='$') + + +class RtcOpenMIExchangeItemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_elementId: RtcElementId = Field( + ..., + alias='rtc:elementId', + description='OpenMI element ID, corresponds to the locationId', + ) + rtc_quantityId: RtcQuantityId = Field( + ..., + alias='rtc:quantityId', + description='OpenMI quantity ID, corresponds to the parameterId', + ) + rtc_unit: RtcUnit = Field( + ..., alias='rtc:unit', description='Selection of supported units' + ) + + +class RtcLocationId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcParameterId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcQualifierIdItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcUnit1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcAdjointOutput(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcTimeSeriesFile(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcUseBinFile(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcPITimeSeriesExportFileComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_adjointOutput: Optional[RtcAdjointOutput] = Field( + None, alias='rtc:adjointOutput' + ) + rtc_timeSeriesFile: RtcTimeSeriesFile = Field( + ..., + alias='rtc:timeSeriesFile', + description='Name of the file containing timeseries data. ', + ) + rtc_useBinFile: Optional[RtcUseBinFile] = Field( + None, + alias='rtc:useBinFile', + description='When true the events in the PI time series file are read from / written into a binairy file instead of the xml file.\nThe xml file only contains the time series headers and optionally a time zone.\nThe binairy file has the same name as the xml file only the extension is "bin" instead of "xml". The byte order in the bin file is always Intel x86.\n ', + ) + + +class RtcTimeSeriesFile1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcUseBinFile1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcPITimeSeriesImportFileComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_timeSeriesFile: RtcTimeSeriesFile1 = Field( + ..., + alias='rtc:timeSeriesFile', + description='Name of the file containing timeseries data. ', + ) + rtc_useBinFile: Optional[RtcUseBinFile1] = Field( + None, + alias='rtc:useBinFile', + description='OBSOLETE. Still here for backwards compatibility. Remove after next release.', + ) + + +class RtcTimeStepComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') + _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') + _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + + +class RtcPITimeSeriesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_extrapolationOption: Optional[RtcExtrapolationOption] = Field( + None, + alias='rtc:extrapolationOption', + description='Extrapolation option in data import', + ) + rtc_interpolationOption: Optional[RtcInterpolationOption] = Field( + None, + alias='rtc:interpolationOption', + description='Interpolation option in data import', + ) + rtc_locationId: RtcLocationId = Field( + ..., alias='rtc:locationId', description='Location ID in Delft-FEWS PI-XML file' + ) + rtc_parameterId: RtcParameterId = Field( + ..., + alias='rtc:parameterId', + description='Parameter ID in Delft-FEWS PI-XML file', + ) + rtc_qualifierId: Optional[List[RtcQualifierIdItem]] = Field( + None, alias='rtc:qualifierId' + ) + rtc_timeStep: Optional[RtcTimeStepComplexType] = Field( + None, + alias='rtc:timeStep', + description='Equidistant time step of time series with optional multiplier of divider', + ) + rtc_unit: Optional[RtcUnit1] = Field( + None, + alias='rtc:unit', + description='Optional check for this unit during import, write this unit optionally when export the time series', + ) + + +class RtcRTCTimeSeriesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: constr(min_length=1) = Field(..., alias='@id') + _validation: Optional[_Validation] = Field(None, alias='@validation') + _vectorLength: Optional[conint(ge=1, le=2147483647)] = Field( + None, alias='@vectorLength' + ) + rtc_OpenMIExchangeItem: Optional[RtcOpenMIExchangeItemComplexType] = Field( + None, + alias='rtc:OpenMIExchangeItem', + description='Time series definition of the OpenMI format for the online coupling of models during runtime', + ) + rtc_PITimeSeries: Optional[RtcPITimeSeriesComplexType] = Field( + None, + alias='rtc:PITimeSeries', + description='Time series definition of the PI XML time series format of Delft-FEWS', + ) + + +class RtcRTCSeriesExportComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_CSVTimeSeriesFile: Optional[RtcCSVTimeSeriesFileComplexType] = Field( + None, + alias='rtc:CSVTimeSeriesFile', + description='Comma-separated file for data exports. Note that this option is only used in the exportSeries element. If selected, all available time series will be exported.', + ) + rtc_PITimeSeriesFile: Optional[RtcPITimeSeriesExportFileComplexType] = Field( + None, alias='rtc:PITimeSeriesFile' + ) + rtc_timeSeries: List[RtcRTCTimeSeriesComplexType] = Field( + ..., alias='rtc:timeSeries', min_items=1 + ) + + +class RtcRTCSeriesImportComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_PITimeSeriesFile: Optional[RtcPITimeSeriesImportFileComplexType] = Field( + None, alias='rtc:PITimeSeriesFile' + ) + rtc_timeSeries: List[RtcRTCTimeSeriesComplexType] = Field( + ..., alias='rtc:timeSeries', min_items=1 + ) + + +class RtcRTCDataConfigComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_exportSeries: RtcRTCSeriesExportComplexType = Field( + ..., + alias='rtc:exportSeries', + description='Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces', + ) + rtc_importSeries: RtcRTCSeriesImportComplexType = Field( + ..., + alias='rtc:importSeries', + description='Import time series RTC-Tools imports from XML files or other interfaces', + ) + + +class Model(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') + _xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + ) + rtc_rtcDataConfig: Optional[_.RtcRtcDataConfig] = Field( + None, alias='rtc:rtcDataConfig' + ) diff --git a/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py b/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py new file mode 100644 index 000000000..932c1f854 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py @@ -0,0 +1,1702 @@ +# generated by datamodel-codegen: +# filename: rtcObjectiveConfig.json +# timestamp: 2022-09-23T10:55:58+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, Extra, Field, conint, constr + +from . import _ + + +class RtcAggregationTypeEnumStringType(Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class RtcNStep(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[conint(ge=1)] = Field(None, alias='$') + + +class RtcNStep1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[conint(ge=1)] = Field(None, alias='$') + + +class RtcNStep2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[conint(ge=1)] = Field(None, alias='$') + + +class RtcStepIndexItem1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[conint(ge=0, le=2147483647)] = Field(None, alias='$') + + +class RtcBoundStateStepIndicesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_stepIndex: List[RtcStepIndexItem1] = Field( + ..., alias='rtc:stepIndex', min_items=1 + ) + + +class RtcEnsembleModeEnumStringType(Enum): + JOINT = 'JOINT' + TREE = 'TREE' + INDEPENDENT = 'INDEPENDENT' + + +class RtcExternalBooleanSimpleType(BaseModel): + __root__: Union[bool, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + + +class RtcExternalIntegerSimpleType(BaseModel): + __root__: Union[int, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + + +class RtcExternalParameterSimpleType(BaseModel): + __root__: Union[float, constr(regex=r'^([#-\$][\(-_a-z]+[#-\$])$')] + + +class RtcNStep3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[conint(ge=1)] = Field(None, alias='$') + + +class RtcNStep4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[conint(ge=1)] = Field(None, alias='$') + + +class RtcSetPoint(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcWeightingFactorItem1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcWeightingFactorFinalItem1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcSetPoint1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcWeightingFactorItem2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcWeightingFactorFinalItem2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcWeightingFactorItem3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTimeSeriesSimpleType(BaseModel): + __root__: constr(min_length=1) + + +class RtcTimeZoneSimpleType(BaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + ) + + +class RtcVariableTypeEnumStringType(Enum): + CONTINUOUS = 'CONTINUOUS' + INTEGER = 'INTEGER' + TIMEINSTANCE = 'TIMEINSTANCE' + + +class RtcDateType(BaseModel): + __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + + +class RtcNStepModeEnum(Enum): + CONTINUOUS = 'CONTINUOUS' + STEP = 'STEP' + + +class RtcTimeSeriesType(Enum): + accumulative = 'accumulative' + instantaneous = 'instantaneous' + + +class RtcTimeStepUnitEnumStringType(Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + + +class RtcTimeType(BaseModel): + __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + + +class XsAnySimpleType(BaseModel): + __root__: str + + +class XsBoolean(BaseModel): + __root__: bool + + +class XsDouble(BaseModel): + __root__: float + + +class XsInt(BaseModel): + __root__: conint(ge=-2147483648, le=2147483647) + + +class XsInteger(BaseModel): + __root__: int + + +class XsPositiveInteger(BaseModel): + __root__: conint(ge=1) + + +class XsString(BaseModel): + __root__: str + + +class RtcConstant(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsAnySimpleType] = Field(None, alias='$') + + +class RtcNAggregationSteps(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInteger] = Field(None, alias='$') + + +class RtcType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcAggregationTypeEnumStringType] = Field(None, alias='$') + + +class RtcAggregationEquidistantComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_nAggregationSteps: RtcNAggregationSteps = Field( + ..., + alias='rtc:nAggregationSteps', + description='aggregation, simulation time nOutputSteps (simulation) = nInputSteps (optimizer) * nAggregationSteps', + ) + rtc_type: RtcType = Field( + ..., alias='rtc:type', description='interpolation type: block or linear' + ) + + +class RtcNInputSteps(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInteger] = Field(None, alias='$') + + +class RtcNOutputSteps(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInteger] = Field(None, alias='$') + + +class RtcStepIndexItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInteger] = Field(None, alias='$') + + +class RtcType1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcAggregationTypeEnumStringType] = Field(None, alias='$') + + +class RtcAggregationNonEquidistantComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_nInputSteps: RtcNInputSteps = Field( + ..., alias='rtc:nInputSteps', description='number of input time steps' + ) + rtc_nOutputSteps: RtcNOutputSteps = Field( + ..., alias='rtc:nOutputSteps', description='number of output time steps' + ) + rtc_stepIndex: List[RtcStepIndexItem] = Field( + ..., alias='rtc:stepIndex', min_items=1 + ) + rtc_type: RtcType1 = Field( + ..., alias='rtc:type', description='interpolation type: block or linear' + ) + + +class RtcInputDelayVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcNStepSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcAverageComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_inputDelayVector: Optional[RtcInputDelayVector] = Field( + None, alias='rtc:inputDelayVector' + ) + rtc_nStep: Optional[RtcNStep] = Field( + None, alias='rtc:nStep', description='fixed value for nStep' + ) + rtc_nStepSeries: Optional[RtcNStepSeries] = Field( + None, + alias='rtc:nStepSeries', + description='nStep value is provided as a time series, the average is computed if the value is a positive integer', + ) + + +class RtcNStepSeries1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcVariableDelayVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcBoundAverageComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_nStep: Optional[RtcNStep1] = Field( + None, alias='rtc:nStep', description='fixed value for nStep' + ) + rtc_nStepSeries: Optional[RtcNStepSeries1] = Field( + None, + alias='rtc:nStepSeries', + description='nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer', + ) + rtc_variableDelayVector: Optional[RtcVariableDelayVector] = Field( + None, + alias='rtc:variableDelayVector', + description='optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ', + ) + + +class RtcLowerBound(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLowerBoundSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcState(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUpperBound(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcUpperBoundSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcComponentItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcBoundStateComponentsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_component: List[RtcComponentItem] = Field( + ..., alias='rtc:component', min_items=1 + ) + + +class RtcVariableItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcBoundStateVariablesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_variable: List[RtcVariableItem] = Field(..., alias='rtc:variable', min_items=1) + + +class RtcLowerBound1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLowerBoundSeries1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUpperBound1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcUpperBoundSeries1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcVariable(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcBoundVariableAverageComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_average: RtcBoundAverageComplexType = Field(..., alias='rtc:average') + rtc_lowerBound: Optional[RtcLowerBound1] = Field( + None, alias='rtc:lowerBound', description='lower bound as a scalar' + ) + rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries1] = Field( + None, + alias='rtc:lowerBoundSeries', + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_upperBound: Optional[RtcUpperBound1] = Field( + None, alias='rtc:upperBound', description='upper bound as a scalar value' + ) + rtc_upperBoundSeries: Optional[RtcUpperBoundSeries1] = Field( + None, + alias='rtc:upperBoundSeries', + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_variable: RtcVariable = Field( + ..., + alias='rtc:variable', + description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", + ) + + +class RtcLowerBound2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLowerBoundSeries2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUpperBound2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcUpperBoundSeries2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcVariable1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcBoundVariableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_lowerBound: Optional[RtcLowerBound2] = Field( + None, alias='rtc:lowerBound', description='lower bound as a scalar' + ) + rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries2] = Field( + None, + alias='rtc:lowerBoundSeries', + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_upperBound: Optional[RtcUpperBound2] = Field( + None, alias='rtc:upperBound', description='upper bound as a scalar value' + ) + rtc_upperBoundSeries: Optional[RtcUpperBoundSeries2] = Field( + None, + alias='rtc:upperBoundSeries', + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_variable: RtcVariable1 = Field( + ..., + alias='rtc:variable', + description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", + ) + + +class RtcLowerBound3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLowerBoundSeries3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUpperBound3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcUpperBoundSeries3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcVariable2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcF(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcInput(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLowerBound4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLowerBoundSeries4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOrder(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcUpperBound4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcUpperBoundSeries4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcWeightingFactorItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcWeightingFactorFinalItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcWeightingFactorSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcChanceConstraintComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_f: RtcF = Field(..., alias='rtc:f') + rtc_input: RtcInput = Field(..., alias='rtc:input') + rtc_lowerBound: Optional[RtcLowerBound4] = Field( + None, alias='rtc:lowerBound', description='lower bound as a scalar' + ) + rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries4] = Field( + None, + alias='rtc:lowerBoundSeries', + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_order: RtcOrder = Field(..., alias='rtc:order') + rtc_upperBound: Optional[RtcUpperBound4] = Field( + None, alias='rtc:upperBound', description='upper bound as a scalar value' + ) + rtc_upperBoundSeries: Optional[RtcUpperBoundSeries4] = Field( + None, + alias='rtc:upperBoundSeries', + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_weightingFactor: Optional[List[RtcWeightingFactorItem]] = Field( + None, alias='rtc:weightingFactor' + ) + rtc_weightingFactorFinal: Optional[List[RtcWeightingFactorFinalItem]] = Field( + None, alias='rtc:weightingFactorFinal' + ) + rtc_weightingFactorSeries: Optional[RtcWeightingFactorSeries] = Field( + None, alias='rtc:weightingFactorSeries' + ) + + +class RtcF1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcLowerBound5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLowerBoundSeries5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUpperBound5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcUpperBoundSeries5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcVariable3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcChanceVariableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_f: RtcF1 = Field(..., alias='rtc:f') + rtc_lowerBound: Optional[RtcLowerBound5] = Field( + None, alias='rtc:lowerBound', description='lower bound as a scalar' + ) + rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries5] = Field( + None, + alias='rtc:lowerBoundSeries', + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_upperBound: Optional[RtcUpperBound5] = Field( + None, alias='rtc:upperBound', description='upper bound as a scalar value' + ) + rtc_upperBoundSeries: Optional[RtcUpperBoundSeries5] = Field( + None, + alias='rtc:upperBoundSeries', + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_variable: RtcVariable3 = Field( + ..., + alias='rtc:variable', + description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", + ) + + +class RtcDateTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _date: RtcDateType = Field(..., alias='@date') + _time: RtcTimeType = Field(..., alias='@time') + + +class RtcNStepCorrection(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcNStepMode(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcNStepModeEnum] = Field(None, alias='$') + + +class RtcNStepSeries2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcVariableDelayVector1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcMultipleDelayComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_nStep: Optional[RtcNStep3] = Field( + None, alias='rtc:nStep', description='fixed value for nStep' + ) + rtc_nStepCorrection: Optional[RtcNStepCorrection] = Field( + None, + alias='rtc:nStepCorrection', + description='if TRUE, the rate-of-change bounds are given as change per time step, if FALSE, the bounds represent the total change over all time steps, default is FALSE ', + ) + rtc_nStepMode: Optional[RtcNStepMode] = Field( + None, + alias='rtc:nStepMode', + description='STEP only computes the difference between T0-nStep and T0, CONTINUOUS computes the differences also at all intermediate steps', + ) + rtc_nStepSeries: Optional[RtcNStepSeries2] = Field( + None, + alias='rtc:nStepSeries', + description='nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer', + ) + rtc_variableDelayVector: Optional[RtcVariableDelayVector1] = Field( + None, + alias='rtc:variableDelayVector', + description='optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ', + ) + + +class RtcJAcc(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcJInc(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_JAcc: RtcJAcc = Field( + ..., + alias='rtc:JAcc', + description='time series reference for accumulating objective function value', + ) + rtc_JInc: RtcJInc = Field( + ..., + alias='rtc:JInc', + description='time series reference for incremental objective function value', + ) + + +class RtcNStepSeries3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcStateDelayVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcStateAverageComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_nStep: Optional[RtcNStep4] = Field( + None, alias='rtc:nStep', description='fixed value for nStep' + ) + rtc_nStepSeries: Optional[RtcNStepSeries3] = Field( + None, + alias='rtc:nStepSeries', + description='nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer', + ) + rtc_stateDelayVector: RtcStateDelayVector = Field( + ..., + alias='rtc:stateDelayVector', + description='optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ', + ) + + +class RtcInput1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLowerBranch(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcOrder1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSetPointSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUpperBranch(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcWeightingFactorSeries1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTermAbsoluteComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_average: Optional[RtcAverageComplexType] = Field( + None, + alias='rtc:average', + description='optional definition of an aggregation period over several time steps', + ) + rtc_input: RtcInput1 = Field(..., alias='rtc:input') + rtc_lowerBranch: Optional[RtcLowerBranch] = Field(None, alias='rtc:lowerBranch') + rtc_order: RtcOrder1 = Field(..., alias='rtc:order') + rtc_setPoint: Optional[RtcSetPoint] = Field(None, alias='rtc:setPoint') + rtc_setPointSeries: Optional[RtcSetPointSeries] = Field( + None, alias='rtc:setPointSeries' + ) + rtc_upperBranch: Optional[RtcUpperBranch] = Field(None, alias='rtc:upperBranch') + rtc_weightingFactor: Optional[List[RtcWeightingFactorItem1]] = Field( + None, alias='rtc:weightingFactor' + ) + rtc_weightingFactorFinal: Optional[List[RtcWeightingFactorFinalItem1]] = Field( + None, alias='rtc:weightingFactorFinal' + ) + rtc_weightingFactorSeries: Optional[RtcWeightingFactorSeries1] = Field( + None, alias='rtc:weightingFactorSeries' + ) + + +class RtcTermEnsembleChoiceComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='@active') + rtc_chanceConstraint: Optional[RtcChanceConstraintComplexType] = Field( + None, alias='rtc:chanceConstraint' + ) + + +class RtcTermEnsembleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_termEnsemble: List[RtcTermEnsembleChoiceComplexType] = Field( + ..., alias='rtc:termEnsemble', min_items=1 + ) + + +class RtcInput2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSetPointSeries1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcWeightingFactorSeries2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTermLinearComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_input: RtcInput2 = Field(..., alias='rtc:input') + rtc_setPoint: Optional[RtcSetPoint1] = Field(None, alias='rtc:setPoint') + rtc_setPointSeries: Optional[RtcSetPointSeries1] = Field( + None, alias='rtc:setPointSeries' + ) + rtc_weightingFactor: Optional[List[RtcWeightingFactorItem2]] = Field( + None, alias='rtc:weightingFactor' + ) + rtc_weightingFactorFinal: Optional[List[RtcWeightingFactorFinalItem2]] = Field( + None, alias='rtc:weightingFactorFinal' + ) + rtc_weightingFactorSeries: Optional[RtcWeightingFactorSeries2] = Field( + None, alias='rtc:weightingFactorSeries' + ) + + +class RtcFlag(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcObservation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSimulation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTermMSEComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_flag: Optional[RtcFlag] = Field(None, alias='rtc:flag') + rtc_observation: RtcObservation = Field(..., alias='rtc:observation') + rtc_simulation: RtcSimulation = Field(..., alias='rtc:simulation') + + +class RtcInput3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTermMaxComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_input: RtcInput3 = Field(..., alias='rtc:input') + + +class RtcFlag1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcObservation1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSimulation1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSkipNFirstSteps(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcTermNSEComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_flag: Optional[RtcFlag1] = Field(None, alias='rtc:flag') + rtc_observation: RtcObservation1 = Field(..., alias='rtc:observation') + rtc_simulation: RtcSimulation1 = Field(..., alias='rtc:simulation') + rtc_skipNFirstSteps: Optional[RtcSkipNFirstSteps] = Field( + None, alias='rtc:skipNFirstSteps' + ) + + +class RtcFlag2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcObservation2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSimulation2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTermRMSEComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_flag: Optional[RtcFlag2] = Field(None, alias='rtc:flag') + rtc_observation: RtcObservation2 = Field(..., alias='rtc:observation') + rtc_simulation: RtcSimulation2 = Field(..., alias='rtc:simulation') + + +class RtcFlag3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcObservation3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSimulation3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSkipNFirstSteps1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcW(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcTermRVComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_flag: Optional[RtcFlag3] = Field(None, alias='rtc:flag') + rtc_observation: RtcObservation3 = Field(..., alias='rtc:observation') + rtc_simulation: RtcSimulation3 = Field(..., alias='rtc:simulation') + rtc_skipNFirstSteps: Optional[RtcSkipNFirstSteps1] = Field( + None, alias='rtc:skipNFirstSteps' + ) + rtc_w: RtcW = Field(..., alias='rtc:w') + + +class RtcInput4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLowerBranch1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcOrder2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSetPoint2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSetPointSeries2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUpperBranch1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcWeightingFactorSeries3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTermRateOfChangeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_input: RtcInput4 = Field(..., alias='rtc:input') + rtc_lowerBranch: Optional[RtcLowerBranch1] = Field(None, alias='rtc:lowerBranch') + rtc_multipleDelay: Optional[RtcMultipleDelayComplexType] = Field( + None, alias='rtc:multipleDelay' + ) + rtc_order: RtcOrder2 = Field(..., alias='rtc:order') + rtc_setPoint: Optional[RtcSetPoint2] = Field(None, alias='rtc:setPoint') + rtc_setPointSeries: Optional[RtcSetPointSeries2] = Field( + None, alias='rtc:setPointSeries' + ) + rtc_upperBranch: Optional[RtcUpperBranch1] = Field(None, alias='rtc:upperBranch') + rtc_weightingFactor: Optional[List[RtcWeightingFactorItem3]] = Field( + None, alias='rtc:weightingFactor' + ) + rtc_weightingFactorSeries: Optional[RtcWeightingFactorSeries3] = Field( + None, alias='rtc:weightingFactorSeries' + ) + + +class RtcFlag4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcObservation4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSimulation4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSkipNFirstSteps2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcTermRelativeVolumeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_flag: Optional[RtcFlag4] = Field(None, alias='rtc:flag') + rtc_observation: RtcObservation4 = Field(..., alias='rtc:observation') + rtc_simulation: RtcSimulation4 = Field(..., alias='rtc:simulation') + rtc_skipNFirstSteps: Optional[RtcSkipNFirstSteps2] = Field( + None, alias='rtc:skipNFirstSteps' + ) + + +class RtcFlag5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSimulation5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTermSumComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_flag: Optional[RtcFlag5] = Field(None, alias='rtc:flag') + rtc_simulation: RtcSimulation5 = Field(..., alias='rtc:simulation') + + +class RtcTimeStepComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') + _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') + _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + + +class RtcAggregationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_constant: Optional[RtcConstant] = Field(None, alias='rtc:constant') + rtc_equidistant: Optional[RtcAggregationEquidistantComplexType] = Field( + None, + alias='rtc:equidistant', + description='aggregation with equidistent steps, note that the number of time steps in the model needs to be a multiple of the aggregation step, i.e. 2,4,6,8 steps in case of an aggregation step of 2', + ) + rtc_non_equidistant: Optional[RtcAggregationNonEquidistantComplexType] = Field( + None, alias='rtc:non-equidistant', description='still not implemented' + ) + + +class RtcBoundStateComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + _scalingFactor: Optional[XsDouble] = Field(None, alias='@scalingFactor') + rtc_average: Optional[RtcStateAverageComplexType] = Field(None, alias='rtc:average') + rtc_components: RtcBoundStateComponentsComplexType = Field( + ..., + alias='rtc:components', + description='simulation components (in the order of the simulation model) which compute the state based on the variables (both defined below)', + ) + rtc_lowerBound: Optional[RtcLowerBound] = Field( + None, alias='rtc:lowerBound', description='lower bound as a scalar' + ) + rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries] = Field( + None, + alias='rtc:lowerBoundSeries', + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_nStep: Optional[RtcNStep2] = Field(None, alias='rtc:nStep') + rtc_state: RtcState = Field( + ..., alias='rtc:state', description='reference to the state to constrain' + ) + rtc_stepIndices: Optional[RtcBoundStateStepIndicesComplexType] = Field( + None, alias='rtc:stepIndices' + ) + rtc_upperBound: Optional[RtcUpperBound] = Field( + None, alias='rtc:upperBound', description='upper bound as a scalar value' + ) + rtc_upperBoundSeries: Optional[RtcUpperBoundSeries] = Field( + None, + alias='rtc:upperBoundSeries', + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_variables: RtcBoundStateVariablesComplexType = Field( + ..., + alias='rtc:variables', + description='references to the optimization variable which contribute to the computation of the state', + ) + + +class RtcBoundVariableRateOfChangeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_lowerBound: Optional[RtcLowerBound3] = Field( + None, alias='rtc:lowerBound', description='lower bound as a scalar' + ) + rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries3] = Field( + None, + alias='rtc:lowerBoundSeries', + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_multipleDelay: Optional[RtcMultipleDelayComplexType] = Field( + None, + alias='rtc:multipleDelay', + description='option to look back more than a single time step', + ) + rtc_upperBound: Optional[RtcUpperBound3] = Field( + None, alias='rtc:upperBound', description='upper bound as a scalar value' + ) + rtc_upperBoundSeries: Optional[RtcUpperBoundSeries3] = Field( + None, + alias='rtc:upperBoundSeries', + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + rtc_variable: RtcVariable2 = Field( + ..., + alias='rtc:variable', + description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", + ) + + +class RtcConstraintChoiceComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='@active') + rtc_boundState: Optional[RtcBoundStateComplexType] = Field( + None, + alias='rtc:boundState', + description='implements bounds on states or model outputs', + ) + rtc_boundVariable: Optional[RtcBoundVariableComplexType] = Field( + None, + alias='rtc:boundVariable', + description='implement bounds on the optimization variable', + ) + rtc_boundVariableAverage: Optional[RtcBoundVariableAverageComplexType] = Field( + None, + alias='rtc:boundVariableAverage', + description='defines a bound on an average value of an optimization variable for example to enable min/max bounds on aggregated time series', + ) + rtc_boundVariableRateOfChange: Optional[ + RtcBoundVariableRateOfChangeComplexType + ] = Field( + None, + alias='rtc:boundVariableRateOfChange', + description='implements bounds on the rate-of-change of an optimization variable', + ) + rtc_chanceBoundVariable: Optional[RtcChanceVariableComplexType] = Field( + None, + alias='rtc:chanceBoundVariable', + description='implement chance constraints on the optimization variable', + ) + + +class RtcConstraintsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_constraint: List[RtcConstraintChoiceComplexType] = Field( + ..., alias='rtc:constraint', min_items=1 + ) + + +class RtcTermChoiceComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='@active') + rtc_absolute: Optional[RtcTermAbsoluteComplexType] = Field( + None, alias='rtc:absolute' + ) + rtc_linear: Optional[RtcTermLinearComplexType] = Field(None, alias='rtc:linear') + rtc_max: Optional[RtcTermMaxComplexType] = Field(None, alias='rtc:max') + rtc_mse: Optional[RtcTermMSEComplexType] = Field(None, alias='rtc:mse') + rtc_nse: Optional[RtcTermNSEComplexType] = Field(None, alias='rtc:nse') + rtc_rateOfChange: Optional[RtcTermRateOfChangeComplexType] = Field( + None, alias='rtc:rateOfChange' + ) + rtc_relativeVolume: Optional[RtcTermRelativeVolumeComplexType] = Field( + None, alias='rtc:relativeVolume' + ) + rtc_rmse: Optional[RtcTermRMSEComplexType] = Field(None, alias='rtc:rmse') + rtc_rv: Optional[RtcTermRVComplexType] = Field(None, alias='rtc:rv') + rtc_sum: Optional[RtcTermSumComplexType] = Field(None, alias='rtc:sum') + + +class RtcTermComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_term: List[RtcTermChoiceComplexType] = Field(..., alias='rtc:term', min_items=1) + + +class RtcVariableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='@active') + _ensembleMode: Optional[RtcEnsembleModeEnumStringType] = Field( + None, alias='@ensembleMode' + ) + _id: RtcTimeSeriesSimpleType = Field(..., alias='@id') + _max: Optional[RtcExternalParameterSimpleType] = Field(None, alias='@max') + _min: Optional[RtcExternalParameterSimpleType] = Field(None, alias='@min') + _scalingFactor: Optional[XsDouble] = Field(None, alias='@scalingFactor') + _type: RtcVariableTypeEnumStringType = Field(..., alias='@type') + rtc_aggregation: Optional[RtcAggregationComplexType] = Field( + None, alias='rtc:aggregation' + ) + + +class RtcVariablesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_aggregation: Optional[RtcAggregationComplexType] = Field( + None, alias='rtc:aggregation' + ) + rtc_variable: List[RtcVariableComplexType] = Field( + ..., alias='rtc:variable', min_items=1 + ) + + +class RtcRtcObjectiveConfigComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_constraints: Optional[RtcConstraintsComplexType] = Field( + None, alias='rtc:constraints' + ) + rtc_output: Optional[RtcOutputComplexType] = Field(None, alias='rtc:output') + rtc_terms: Optional[RtcTermComplexType] = Field(None, alias='rtc:terms') + rtc_termsEnsemble: Optional[RtcTermEnsembleComplexType] = Field( + None, alias='rtc:termsEnsemble' + ) + rtc_variables: Optional[RtcVariablesComplexType] = Field( + None, alias='rtc:variables' + ) + + +class Model(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') + _xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + ) + rtc_rtcObjectiveConfig: Optional[_.RtcRtcObjectiveConfig] = Field( + None, alias='rtc:rtcObjectiveConfig' + ) diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py b/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py new file mode 100644 index 000000000..38d82821d --- /dev/null +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py @@ -0,0 +1,3252 @@ +# generated by datamodel-codegen: +# filename: rtcRuntimeConfig.json +# timestamp: 2022-09-23T08:23:59+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, Extra, Field, PositiveFloat, confloat, conint, constr + +from . import _ + + +class RtcAggregationTypeEnumStringType(Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class RtcEnsembleModeEnumStringType(Enum): + JOINT = 'JOINT' + TREE = 'TREE' + INDEPENDENT = 'INDEPENDENT' + + +class RtcExternalBooleanSimpleType(BaseModel): + __root__: Union[bool, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + + +class RtcExternalIntegerSimpleType(BaseModel): + __root__: Union[int, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + + +class RtcExternalParameterSimpleType(BaseModel): + __root__: Union[float, constr(regex=r'^([#-\$][\(-_a-z]+[#-\$])$')] + + +class RtcFunctionOutputEnumStringType(Enum): + NONE = 'NONE' + VALUE = 'VALUE' + DERIVATIVE = 'DERIVATIVE' + VALUE_DERIVATIVE = 'VALUE+DERIVATIVE' + + +class _1(Enum): + ipopt = 'ipopt' + ipopth = 'ipopth' + conopt = 'conopt' + + +class RtcAlgorithm(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_1] = Field(None, alias='$') + + +class RtcGAMSComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_algorithm: Optional[RtcAlgorithm] = Field(None, alias='rtc:algorithm') + + +class _11(Enum): + kkt_error = 'kkt-error' + obj_constr_filter = 'obj-constr-filter' + never_monotone_mode = 'never-monotone-mode' + + +class RtcAdaptiveMuGlobalization(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_11] = Field(None, alias='$') + + +class _12(Enum): + probing = 'probing' + loqo = 'loqo' + quality_function = 'quality-function' + average_compl = 'average_compl' + + +class RtcFixedMuOracle(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_12] = Field(None, alias='$') + + +class _13(Enum): + no = 'no' + yes = 'yes' + + +class RtcMehrotraAlgorithm(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_13] = Field(None, alias='$') + + +class _14(Enum): + probing = 'probing' + loqo = 'loqo' + quality_function = 'quality-function' + + +class RtcMuOracle(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_14] = Field(None, alias='$') + + +class _15(Enum): + monotone = 'monotone' + adaptive = 'adaptive' + + +class RtcMuStrategy(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_15] = Field(None, alias='$') + + +class _16(Enum): + none = 'none' + first_order = 'first-order' + + +class RtcDerivativeTest(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_16] = Field(None, alias='$') + + +class RtcDerivativeTestPerturbation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[PositiveFloat] = Field(None, alias='$') + + +class _17(Enum): + yes = 'yes' + no = 'no' + + +class RtcDerivativeTestPrintAll(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_17] = Field(None, alias='$') + + +class RtcDerivativeTestTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[PositiveFloat] = Field(None, alias='$') + + +class RtcFindiffPerturbation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[PositiveFloat] = Field(None, alias='$') + + +class _18(Enum): + exact = 'exact' + finite_difference_values = 'finite-difference-values' + + +class RtcJacobianApproximation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_18] = Field(None, alias='$') + + +class RtcIPOPTDerivativeCheckerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_derivative_test: Optional[RtcDerivativeTest] = Field( + None, alias='rtc:derivative_test', description='Enable derivative checker' + ) + rtc_derivative_test_perturbation: Optional[RtcDerivativeTestPerturbation] = Field( + None, + alias='rtc:derivative_test_perturbation', + description='Size of the finite difference perturbation in derivative test', + ) + rtc_derivative_test_print_all: Optional[RtcDerivativeTestPrintAll] = Field( + None, + alias='rtc:derivative_test_print_all', + description='Indicates whether information for all estimated derivatives should be\n printed', + ) + rtc_derivative_test_tol: Optional[RtcDerivativeTestTol] = Field( + None, + alias='rtc:derivative_test_tol', + description='Threshold for indicating wrong derivative', + ) + rtc_findiff_perturbation: Optional[RtcFindiffPerturbation] = Field( + None, + alias='rtc:findiff_perturbation', + description='Size of the finite difference perturbation for derivative approximation', + ) + rtc_jacobian_approximation: Optional[RtcJacobianApproximation] = Field( + None, + alias='rtc:jacobian_approximation', + description='Specifies technique to compute constraint Jacobian', + ) + + +class _19(Enum): + constant = 'constant' + mu_based = 'mu-based' + + +class RtcBoundMultInitMethod(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_19] = Field(None, alias='$') + + +class _110(Enum): + no = 'no' + yes = 'yes' + + +class RtcAcceptEveryTrialStep(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_110] = Field(None, alias='$') + + +class _111(Enum): + yes = 'yes' + no = 'no' + + +class RtcLinearScalingOnDemand(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_111] = Field(None, alias='$') + + +class _112(Enum): + ma27 = 'ma27' + ma57 = 'ma57' + ma77 = 'ma77' + ma86 = 'ma86' + ma97 = 'ma97' + mumps = 'mumps' + pardiso = 'pardiso' + + +class RtcLinearSolver(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_112] = Field(None, alias='$') + + +class _113(Enum): + none = 'none' + mc19 = 'mc19' + slack_based = 'slack-based' + + +class RtcLinearSystemScaling(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_113] = Field(None, alias='$') + + +class _114(Enum): + primal = 'primal' + bound_mult = 'bound-mult' + min = 'min' + max = 'max' + full = 'full' + min_dual_infeas = 'min-dual-infeas' + safer_min_dual_infeas = 'safer-min-dual-infeas' + primal_and_full = 'primal-and-full' + dual_and_full = 'dual-and-full' + acceptor = 'acceptor' + + +class RtcAlphaForY(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_114] = Field(None, alias='$') + + +class _115(Enum): + no = 'no' + yes = 'yes' + + +class RtcRecalcY(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_115] = Field(None, alias='$') + + +class RtcBoundRelaxFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[confloat(ge=0.0)] = Field(None, alias='$') + + +class _116(Enum): + yes = 'yes' + no = 'no' + + +class RtcCheckDerivativesForNaninf(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_116] = Field(None, alias='$') + + +class _117(Enum): + make_parameter = 'make_parameter' + make_constraint = 'make_constraint' + relax_bounds = 'relax_bounds' + + +class RtcFixedVariableTreatment(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_117] = Field(None, alias='$') + + +class _118(Enum): + yes = 'yes' + no = 'no' + + +class RtcHonorOriginalBounds(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_118] = Field(None, alias='$') + + +class _119(Enum): + yes = 'yes' + no = 'no' + + +class RtcJacCConstant(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_119] = Field(None, alias='$') + + +class _120(Enum): + yes = 'yes' + no = 'no' + + +class RtcJacDConstant(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_120] = Field(None, alias='$') + + +class RtcIPOPTNLPComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_bound_relax_factor: Optional[RtcBoundRelaxFactor] = Field( + None, + alias='rtc:bound_relax_factor', + description='Factor for initial relaxation of the bounds', + ) + rtc_check_derivatives_for_naninf: Optional[RtcCheckDerivativesForNaninf] = Field( + None, + alias='rtc:check_derivatives_for_naninf', + description='Indicates whether it is desired to check for Nan/Inf in derivative matrices [no/yes]', + ) + rtc_fixed_variable_treatment: Optional[RtcFixedVariableTreatment] = Field( + None, + alias='rtc:fixed_variable_treatment', + description='Determines how fixed variables should be handled', + ) + rtc_honor_original_bounds: Optional[RtcHonorOriginalBounds] = Field( + None, + alias='rtc:honor_original_bounds', + description='Indicates whether final points should be projected into original bounds [no/yes]', + ) + rtc_jac_c_constant: Optional[RtcJacCConstant] = Field( + None, + alias='rtc:jac_c_constant', + description='Indicates whether all equality constraints are linear [no/yes]', + ) + rtc_jac_d_constant: Optional[RtcJacDConstant] = Field( + None, + alias='rtc:jac_d_constant', + description='Indicates whether all inequality constraints are linear [no/yes]', + ) + + +class RtcNlpScalingMaxGradient(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[PositiveFloat] = Field(None, alias='$') + + +class _121(Enum): + none = 'none' + user_scaling = 'user-scaling' + gradient_based = 'gradient-based' + + +class RtcNlpScalingMethod(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_121] = Field(None, alias='$') + + +class RtcNlpScalingMinValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[confloat(ge=0.0)] = Field(None, alias='$') + + +class RtcObjScalingFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcIPOPTNLPScalingComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_nlp_scaling_max_gradient: Optional[RtcNlpScalingMaxGradient] = Field( + None, + alias='rtc:nlp_scaling_max_gradient', + description='Maximum gradient after NLP scaling', + ) + rtc_nlp_scaling_method: Optional[RtcNlpScalingMethod] = Field( + None, + alias='rtc:nlp_scaling_method', + description='Select the technique used for scaling the NLP', + ) + rtc_nlp_scaling_min_value: Optional[RtcNlpScalingMinValue] = Field( + None, + alias='rtc:nlp_scaling_min_value', + description='Maximum gradient after NLP scaling', + ) + rtc_obj_scaling_factor: Optional[RtcObjScalingFactor] = Field( + None, + alias='rtc:obj_scaling_factor', + description='Scaling factor for the objective function', + ) + + +class RtcFilePrintLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[conint(ge=0, le=12)] = Field(None, alias='$') + + +class RtcPrintLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[conint(ge=0, le=12)] = Field(None, alias='$') + + +class _122(Enum): + yes = 'yes' + no = 'no' + + +class RtcPrintOptionsDocumentation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_122] = Field(None, alias='$') + + +class _123(Enum): + yes = 'yes' + no = 'no' + + +class RtcPrintTimingStatistics(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_123] = Field(None, alias='$') + + +class _124(Enum): + yes = 'yes' + no = 'no' + + +class RtcPrintUserOptions(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_124] = Field(None, alias='$') + + +class RtcIPOPTOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_file_print_level: Optional[RtcFilePrintLevel] = Field( + None, + alias='rtc:file_print_level', + description='Verbosity level for output file 0-12 NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12', + ) + rtc_print_level: Optional[RtcPrintLevel] = Field( + None, + alias='rtc:print_level', + description='Output verbosity level 0-12, NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12', + ) + rtc_print_options_documentation: Optional[RtcPrintOptionsDocumentation] = Field( + None, + alias='rtc:print_options_documentation', + description='Switch to print all algorithmic options [no/yes]', + ) + rtc_print_timing_statistics: Optional[RtcPrintTimingStatistics] = Field( + None, + alias='rtc:print_timing_statistics', + description='Switch to print timing statistics [no/yes]', + ) + rtc_print_user_options: Optional[RtcPrintUserOptions] = Field( + None, + alias='rtc:print_user_options', + description='Print all options set by the user [no/yes]', + ) + + +class RtcLimitedMemoryMaxHistory(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + + +class RtcLimitedMemoryMaxSkipping(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + + +class RtcIPOPTQuasiNewtonComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_limited_memory_max_history: Optional[RtcLimitedMemoryMaxHistory] = Field( + None, + alias='rtc:limited_memory_max_history', + description='Maximum size of the history for the limited quasi-Newton Hessian\napproximation', + ) + rtc_limited_memory_max_skipping: Optional[RtcLimitedMemoryMaxSkipping] = Field( + None, + alias='rtc:limited_memory_max_skipping', + description='Threshold for successive iterations where update is skipped', + ) + + +class _125(Enum): + no = 'no' + yes = 'yes' + + +class RtcEvaluateOrigObjAtRestoTrial(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_125] = Field(None, alias='$') + + +class _126(Enum): + no = 'no' + yes = 'yes' + + +class RtcExpectInfeasibleProblem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_126] = Field(None, alias='$') + + +class _127(Enum): + no = 'no' + yes = 'yes' + + +class RtcStartWithResto(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_127] = Field(None, alias='$') + + +class RtcAcceptableComplInfTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcAcceptableConstrViolTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcAcceptableDualInfTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcAcceptableIter(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + + +class RtcAcceptableObjChangeTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcAcceptableTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcComplInfTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcConstrViolTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcDivergingIteratesTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcDualInfTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcMaxCpuTime(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcMaxIter(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + + +class RtcTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTreatUnsuccessAsError(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='$') + + +class RtcIPOPTTerminationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_acceptable_compl_inf_tol: Optional[RtcAcceptableComplInfTol] = Field( + None, + alias='rtc:acceptable_compl_inf_tol', + description='"Acceptance" threshold for the complementarity conditions', + ) + rtc_acceptable_constr_viol_tol: Optional[RtcAcceptableConstrViolTol] = Field( + None, + alias='rtc:acceptable_constr_viol_tol', + description='"Acceptance" threshold for the constraint violation', + ) + rtc_acceptable_dual_inf_tol: Optional[RtcAcceptableDualInfTol] = Field( + None, + alias='rtc:acceptable_dual_inf_tol', + description='"Acceptance" threshold for the dual infeasibility', + ) + rtc_acceptable_iter: Optional[RtcAcceptableIter] = Field( + None, + alias='rtc:acceptable_iter', + description='Number of "acceptable" iterates before triggering termination', + ) + rtc_acceptable_obj_change_tol: Optional[RtcAcceptableObjChangeTol] = Field( + None, + alias='rtc:acceptable_obj_change_tol', + description='"Acceptance" stopping criterion based on objective function change', + ) + rtc_acceptable_tol: Optional[RtcAcceptableTol] = Field( + None, + alias='rtc:acceptable_tol', + description='"Acceptable" convergence tolerance (relative)', + ) + rtc_compl_inf_tol: Optional[RtcComplInfTol] = Field( + None, + alias='rtc:compl_inf_tol', + description='Desired threshold for the complementarity conditions', + ) + rtc_constr_viol_tol: Optional[RtcConstrViolTol] = Field( + None, + alias='rtc:constr_viol_tol', + description='Desired threshold for the constraint violation', + ) + rtc_diverging_iterates_tol: Optional[RtcDivergingIteratesTol] = Field( + None, + alias='rtc:diverging_iterates_tol', + description='Threshold for maximal value of primal iterates', + ) + rtc_dual_inf_tol: Optional[RtcDualInfTol] = Field( + None, + alias='rtc:dual_inf_tol', + description='Desired threshold for the dual infeasibility', + ) + rtc_max_cpu_time: Optional[RtcMaxCpuTime] = Field( + None, alias='rtc:max_cpu_time', description='Maximum number of CPU seconds' + ) + rtc_max_iter: Optional[RtcMaxIter] = Field( + None, alias='rtc:max_iter', description='Maximum number of iterations' + ) + rtc_tol: Optional[RtcTol] = Field( + None, alias='rtc:tol', description='Desired convergence tolerance (relative)' + ) + rtc_treat_unsuccess_as_error: Optional[RtcTreatUnsuccessAsError] = Field( + None, + alias='rtc:treat_unsuccess_as_error', + description='Other return codes than SUCESS are treated as error message', + ) + + +class _128(Enum): + no = 'no' + yes = 'yes' + + +class RtcWarmStartInitPoint(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_128] = Field(None, alias='$') + + +class RtcConstraintViolationTolerance(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcEventCode(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='$') + + +class RtcFlushing(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='$') + + +class RtcLogLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + + +class RtcOutputConstraints(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcFunctionOutputEnumStringType] = Field(None, alias='$') + + +class RtcOutputObjectiveFunction(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcFunctionOutputEnumStringType] = Field(None, alias='$') + + +class RtcReportConstraintViolation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _level: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='@level') + + +class RtcLoggingComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_constraintViolationTolerance: Optional[RtcConstraintViolationTolerance] = Field( + None, + alias='rtc:constraintViolationTolerance', + description='tolerance for scaled constraints for which a constraint violation is detected', + ) + rtc_eventCode: Optional[RtcEventCode] = Field(None, alias='rtc:eventCode') + rtc_flushing: RtcFlushing = Field( + ..., + alias='rtc:flushing', + description='set flushing of the diagnostics file after each new message (=true) or at the end of the program execution (=false)', + ) + rtc_logLevel: RtcLogLevel = Field( + ..., + alias='rtc:logLevel', + description='definition of the logging level, 0 = fatal error, 1 = error, 2 = warning, 3 = info, 4 = debug messages', + ) + rtc_outputConstraints: Optional[RtcOutputConstraints] = Field( + None, alias='rtc:outputConstraints' + ) + rtc_outputObjectiveFunction: Optional[RtcOutputObjectiveFunction] = Field( + None, alias='rtc:outputObjectiveFunction' + ) + rtc_reportConstraintViolation: Optional[RtcReportConstraintViolation] = Field( + None, + alias='rtc:reportConstraintViolation', + description='report constraint violation in diagnostics', + ) + + +class _129(Enum): + yes = 'yes' + no = 'no' + + +class RtcMa57AutomaticScaling(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_129] = Field(None, alias='$') + + +class _130(Enum): + amd = 'amd' + metis = 'metis' + + +class RtcMa77Order(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_130] = Field(None, alias='$') + + +class _131(Enum): + auto = 'auto' + amd = 'amd' + metis = 'metis' + + +class RtcMa86Order(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_131] = Field(None, alias='$') + + +class _132(Enum): + mone = 'mone' + mc64 = 'mc64' + mc77 = 'mc77' + + +class RtcMa86Scaling(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_132] = Field(None, alias='$') + + +class _133(Enum): + auto = 'auto' + best = 'best' + amd = 'amd' + metis = 'metis' + matched_auto = 'matched-auto' + matched_metis = 'matched-metis' + matched_amd = 'matched-amd' + + +class RtcMa97Order(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_133] = Field(None, alias='$') + + +class _134(Enum): + none = 'none' + mc30 = 'mc30' + mc64 = 'mc64' + mc77 = 'mc77' + dynamic = 'dynamic' + + +class RtcMa97Scaling(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_134] = Field(None, alias='$') + + +class _135(Enum): + none = 'none' + mc30 = 'mc30' + mc64 = 'mc64' + mc77 = 'mc77' + + +class RtcMa97Scaling1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_135] = Field(None, alias='$') + + +class _136(Enum): + none = 'none' + mc30 = 'mc30' + mc64 = 'mc64' + mc77 = 'mc77' + + +class RtcMa97Scaling2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_136] = Field(None, alias='$') + + +class _137(Enum): + none = 'none' + mc30 = 'mc30' + mc64 = 'mc64' + mc77 = 'mc77' + + +class RtcMa97Scaling3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_137] = Field(None, alias='$') + + +class _138(Enum): + no = 'no' + yes = 'yes' + + +class RtcMa97SolveBlas3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_138] = Field(None, alias='$') + + +class _139(Enum): + never = 'never' + at_start = 'at_start' + at_start_reuse = 'at_start_reuse' + on_demand = 'on_demand' + on_demand_reuse = 'on_demand_reuse' + high_delay = 'high_delay' + high_delay_reuse = 'high_delay_reuse' + od_hd = 'od_hd' + od_hd_reuse = 'od_hd_reuse' + + +class RtcMa97Switch1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_139] = Field(None, alias='$') + + +class _140(Enum): + never = 'never' + at_start = 'at_start' + at_start_reuse = 'at_start_reuse' + on_demand = 'on_demand' + on_demand_reuse = 'on_demand_reuse' + high_delay = 'high_delay' + high_delay_reuse = 'high_delay_reuse' + od_hd = 'od_hd' + od_hd_reuse = 'od_hd_reuse' + + +class RtcMa97Switch2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_140] = Field(None, alias='$') + + +class _141(Enum): + never = 'never' + at_start = 'at_start' + at_start_reuse = 'at_start_reuse' + on_demand = 'on_demand' + on_demand_reuse = 'on_demand_reuse' + high_delay = 'high_delay' + high_delay_reuse = 'high_delay_reuse' + od_hd = 'od_hd' + od_hd_reuse = 'od_hd_reuse' + + +class RtcMa97Switch3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_141] = Field(None, alias='$') + + +class RtcOptimizerModeEnumStringType(Enum): + SEQUENTIAL = 'SEQUENTIAL' + PARALLEL = 'PARALLEL' + + +class RtcParallelModeEnumStringType(Enum): + NONE = 'NONE' + ENSEMBLE = 'ENSEMBLE' + INTERNAL = 'INTERNAL' + ENSEMBLE_INTERNAL = 'ENSEMBLE+INTERNAL' + + +class RtcConstraints(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcParallelModeEnumStringType] = Field(None, alias='$') + + +class RtcSimulation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcParallelModeEnumStringType] = Field(None, alias='$') + + +class RtcParameterFilePrefixEnumStringType(Enum): + NONE = 'NONE' + LOCATIONID = 'LOCATIONID' + + +class RtcParameterFileTypeEnumStringType(Enum): + TREEVECTOR = 'TREEVECTOR' + PIMODELPARAMETERS = 'PIMODELPARAMETERS' + + +class _142(Enum): + complete = 'complete' + complete_2x2 = 'complete+2x2' + constraints = 'constraints' + + +class RtcPardisoMatchingStrategy(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_142] = Field(None, alias='$') + + +class _143(Enum): + amd = 'amd' + one = 'one' + metis = 'metis' + pmetis = 'pmetis' + four = 'four' + five = 'five' + + +class RtcPardisoOrder(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_143] = Field(None, alias='$') + + +class RtcPeriodEnumStringType(Enum): + COMPLETE = 'COMPLETE' + UPDATE = 'UPDATE' + FORECAST = 'FORECAST' + + +class RtcDels(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcFtoll(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcMaxCpuTime1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTimeSeriesSimpleType(BaseModel): + __root__: constr(min_length=1) + + +class RtcTimeZoneSimpleType(BaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + ) + + +class RtcVariableTypeEnumStringType(Enum): + CONTINUOUS = 'CONTINUOUS' + INTEGER = 'INTEGER' + TIMEINSTANCE = 'TIMEINSTANCE' + + +class RtcDateType(BaseModel): + __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + + +class RtcTimeSeriesType(Enum): + accumulative = 'accumulative' + instantaneous = 'instantaneous' + + +class RtcTimeStepUnitEnumStringType(Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + + +class RtcTimeType(BaseModel): + __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + + +class XsBoolean(BaseModel): + __root__: bool + + +class XsDouble(BaseModel): + __root__: float + + +class XsInt(BaseModel): + __root__: conint(ge=-2147483648, le=2147483647) + + +class XsInteger(BaseModel): + __root__: int + + +class XsPositiveInteger(BaseModel): + __root__: conint(ge=1) + + +class XsString(BaseModel): + __root__: str + + +class RtcDateTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _date: RtcDateType = Field(..., alias='@date') + _time: RtcTimeType = Field(..., alias='@time') + + +class RtcFileDataComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _name: XsString = Field(..., alias='@name') + + +class RtcFileObjectiveComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _name: XsString = Field(..., alias='@name') + + +class RtcFileParameterComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _name: XsString = Field(..., alias='@name') + _prefix: Optional[RtcParameterFilePrefixEnumStringType] = Field( + None, alias='@prefix' + ) + _type: RtcParameterFileTypeEnumStringType = Field(..., alias='@type') + + +class RtcFileScenarioTreeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _name: XsString = Field(..., alias='@name') + + +class RtcFileToolsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _name: XsString = Field(..., alias='@name') + + +class RtcBarrierTolFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMuInit(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMuLinearDecreaseFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMuMax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMuMaxFact(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMuMin(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMuSuperlinearDecreasePower(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMuTarget(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcQualityFunctionMaxSectionSteps(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcIPOPTBarrierParameterComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_adaptive_mu_globalization: Optional[RtcAdaptiveMuGlobalization] = Field( + None, + alias='rtc:adaptive_mu_globalization', + description='Globalization strategy for the adaptive mu selection mode. \nTo achieve global convergence of the adaptive version, the algorithm has to switch to the monotone mode (Fiacco-McCormick approach) when convergence does not seem to appear. This option sets the criterion used to decide when to do this switch. (Only used if option "mu_strategy" is chosen as "adaptive".) The default value for this string option is "obj-constr-filter". \nPossible values:\nkkt-error: nonmonotone decrease of kkt-error\nobj-constr-filter: 2-dim filter for objective and constraint violation\nnever-monotone-mode: disables globalization', + ) + rtc_barrier_tol_factor: Optional[RtcBarrierTolFactor] = Field( + None, + alias='rtc:barrier_tol_factor', + description='Factor for mu in barrier stop test. \nThe convergence tolerance for each barrier problem in the monotone mode is the value of the barrier parameter times "barrier_tol_factor". This option is also used in the adaptive mu strategy during the monotone mode. (This is kappa_epsilon in implementation paper). The valid range for this real option is [0, inf]and its default value is 10.', + ) + rtc_fixed_mu_oracle: Optional[RtcFixedMuOracle] = Field( + None, + alias='rtc:fixed_mu_oracle', + description='Oracle for the barrier parameter when switching to fixed mode. \nDetermines how the first value of the barrier parameter should be computed when switching to the "monotone mode" in the adaptive strategy. (Only considered if "adaptive" is selected for option "mu_strategy".) The default value for this string option is "average_compl". \nPossible values:\nprobing: Mehrotra\'s probing heuristic\nloqo: LOQO\'s centrality rule\nquality-function: minimize a quality function\naverage_compl: base on current average complementarity', + ) + rtc_mehrotra_algorithm: Optional[RtcMehrotraAlgorithm] = Field( + None, + alias='rtc:mehrotra_algorithm', + description='Indicates if we want to do Mehrotra\'s algorithm. \nIf set to yes, Ipopt runs as Mehrotra\'s predictor-corrector algorithm. This works usually very well for LPs and convex QPs. This automatically disables the line search, and chooses the (unglobalized) adaptive mu strategy with the "probing" oracle, and uses "corrector_type=affine" without any safeguards; you should not set any of those options explicitly in addition. Also, unless otherwise specified, the values of "bound_push", "bound_frac", and "bound_mult_init_val" are set more aggressive, and sets "alpha_for_y=bound_mult". The default value for this string option is "no". \nPossible values:\nno: Do the usual Ipopt algorithm.\nyes: Do Mehrotra\'s predictor-corrector algorithm.', + ) + rtc_mu_init: Optional[RtcMuInit] = Field( + None, + alias='rtc:mu_init', + description='Initial value for the barrier parameter. \nThis option determines the initial value for the barrier parameter (mu). It is only relevant in the monotone, Fiacco-McCormick version of the algorithm. (i.e., if "mu_strategy" is chosen as "monotone") The valid range for this real option is [0,inf] and its default value is0.1..', + ) + rtc_mu_linear_decrease_factor: Optional[RtcMuLinearDecreaseFactor] = Field( + None, + alias='rtc:mu_linear_decrease_factor', + description='Determines linear decrease rate of barrier parameter. \nFor the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*"mu_linear_decrease_factor" and mu"superlinear_decrease_power". (This is kappa_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is[0,1] and its default value is 0.2', + ) + rtc_mu_max: Optional[RtcMuMax] = Field( + None, + alias='rtc:mu_max', + description='Maximum value for barrier parameter. \nThis option specifies an upper bound on the barrier parameter in the adaptive mu selection mode. If this option is set, it overwrites the effect of mu_max_fact. (Only used if option "mu_strategy" is chosen as "adaptive".) The valid range for this real option is [0, inf] and its default value is 100000.', + ) + rtc_mu_max_fact: Optional[RtcMuMaxFact] = Field( + None, + alias='rtc:mu_max_fact', + description='Factor for initialization of maximum value for barrier parameter. \nThis option determines the upper bound on the barrier parameter. This upper bound is computed as the average complementarity at the initial point times the value of this option. (Only used if option "mu_strategy" is chosen as "adaptive".) The valid range for this real option is [0, inf] and its default value is 1000.', + ) + rtc_mu_min: Optional[RtcMuMin] = Field( + None, + alias='rtc:mu_min', + description='Minimum value for barrier parameter. \nThis option specifies the lower bound on the barrier parameter in the adaptive mu selection mode. By default, it is set to the minimum of 1e-11 and min("tol","compl_inf_tol")/("barrier_tol_factor"+1), which should be a reasonable value. (Only used if option "mu_strategy" is chosen as "adaptive".) The valid range for this real option is [0, inf] and its default value is 1e-11.', + ) + rtc_mu_oracle: Optional[RtcMuOracle] = Field( + None, + alias='rtc:mu_oracle', + description='Oracle for a new barrier parameter in the adaptive strategy. \nDetermines how a new barrier parameter is computed in each "free-mode" iteration of the adaptive barrier parameter strategy. (Only considered if "adaptive" is selected for option "mu_strategy"). The default value for this string option is "quality-function". \nPossible values:\nprobing: Mehrotra\'s probing heuristic\nloqo: LOQO\'s centrality rule\nquality-function: minimize a quality function', + ) + rtc_mu_strategy: Optional[RtcMuStrategy] = Field( + None, + alias='rtc:mu_strategy', + description='Update strategy for barrier parameter. \nDetermines which barrier parameter update strategy is to be used. The default value for this string option is "monotone". \nPossible values:\nmonotone: use the monotone (Fiacco-McCormick) strategy\nadaptive: use the adaptive update strategy', + ) + rtc_mu_superlinear_decrease_power: Optional[RtcMuSuperlinearDecreasePower] = Field( + None, + alias='rtc:mu_superlinear_decrease_power', + description='Determines superlinear decrease rate of barrier parameter. \nFor the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*"mu_linear_decrease_factor" and mu"superlinear_decrease_power". (This is theta_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is [1,2] and its default value is 1.5.', + ) + rtc_mu_target: Optional[RtcMuTarget] = Field( + None, + alias='rtc:mu_target', + description='Desired value of complementarity. \nUsually, the barrier parameter is driven to zero and the termination test for complementarity is measured with respect to zero complementarity. However, in some cases it might be desired to have Ipopt solve barrier problem for strictly positive value of the barrier parameter. In this case, the value of "mu_target" specifies the final value of the barrier parameter, and the termination tests are then defined with respect to the barrier problem for this value of the barrier parameter. The valid range for this real option is [0, inf] and its default value is 0.', + ) + rtc_quality_function_max_section_steps: Optional[ + RtcQualityFunctionMaxSectionSteps + ] = Field( + None, + alias='rtc:quality_function_max_section_steps', + description='Maximum number of search steps during direct search procedure determining the optimal centering parameter. \nThe golden section search is performed for the quality function based mu oracle. (Only used if option "mu_oracle" is set to "quality-function".) The valid range for this integer option is [0, inf] and its default value is 8.', + ) + + +class RtcFirstHessianPerturbation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcJacobianRegularizationValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMaxHessianPerturbation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMinHessianPerturbation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcPerturbDecFact(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcPerturbIncFact(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcPerturbIncFactFirst(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcIPOPTHessianPermutationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_first_hessian_perturbation: Optional[RtcFirstHessianPerturbation] = Field( + None, + alias='rtc:first_hessian_perturbation', + description='Size of first x-s perturbation tried. \nThe first value tried for the x-s perturbation in the inertia correction scheme.(This is delta_0 in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e4.', + ) + rtc_jacobian_regularization_value: Optional[RtcJacobianRegularizationValue] = Field( + None, + alias='rtc:jacobian_regularization_value', + description='Size of the regularization for rank-deficient constraint Jacobians. \n(This is bar delta_c in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e-8. .', + ) + rtc_max_hessian_perturbation: Optional[RtcMaxHessianPerturbation] = Field( + None, + alias='rtc:max_hessian_perturbation', + description='This parameter gives the maximum value of the regularization parameter. If a regularization of that size is not enough, the algorithm skips this iteration and goes to the restoration phase. (This is delta_wmax in the implementation paper.) The valid range for this real option is [0,+inf] and its default value is 1e+20.', + ) + rtc_min_hessian_perturbation: Optional[RtcMinHessianPerturbation] = Field( + None, + alias='rtc:min_hessian_perturbation', + description='Smallest perturbation of the Hessian block. \nThe size of the perturbation of the Hessian block is never selected smaller than this value, unless no perturbation is necessary. (This is delta_wmin in implementation paper.) The valid range for this real option is [0, +inf] and its default value is 1e-20', + ) + rtc_perturb_dec_fact: Optional[RtcPerturbDecFact] = Field( + None, + alias='rtc:perturb_dec_fact', + description='Decrease factor for x-s perturbation. \nThe factor by which the perturbation is decreased when a trial value is deduced from the size of the most recent successful perturbation. (This is kappa_w- in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.333333.', + ) + rtc_perturb_inc_fact: Optional[RtcPerturbIncFact] = Field( + None, + alias='rtc:perturb_inc_fact', + description='Increase factor for x-s perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of all perturbations except for the first. (This is kappa_w+ in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 8.', + ) + rtc_perturb_inc_fact_first: Optional[RtcPerturbIncFactFirst] = Field( + None, + alias='rtc:perturb_inc_fact_first', + description='Increase factor for x-s perturbation for very first perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of the very first perturbation and allows a different value for for the first perturbation than that used for the remaining perturbations. (This is bar_kappa_w+ in the implementation paper.) The valid range for this real option is [1,inf] and its default value is100.', + ) + + +class RtcBoundFrac(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcBoundMultInitVal(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcBoundPush(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcConstrMultInitMax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSlackBoundFrac(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSlackBoundPush(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcIPOPTInitializationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_bound_frac: Optional[RtcBoundFrac] = Field( + None, + alias='rtc:bound_frac', + description='Desired minimum relative distance from the initial point to bound. \nDetermines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with "bound_push"). (This is kappa_2 in Section 3.6 of implementation paper.) The valid range for this real option is [0, 0.5]and its default value is 0.01..', + ) + rtc_bound_mult_init_method: Optional[RtcBoundMultInitMethod] = Field( + None, + alias='rtc:bound_mult_init_method', + description='Initialization method for bound multipliers \nThis option defines how the iterates for the bound multipliers are initialized. If "constant" is chosen, then all bound multipliers are initialized to the value of "bound_mult_init_val". If "mu-based" is chosen, the each value is initialized to the the value of "mu_init" divided by the corresponding slack variable. This latter option might be useful if the starting point is close to the optimal solution. The default value for this string option is "constant". \nPossible values:\nconstant: set all bound multipliers to the value of bound_mult_init_val\nmu-based: initialize to mu_init/x_slack', + ) + rtc_bound_mult_init_val: Optional[RtcBoundMultInitVal] = Field( + None, + alias='rtc:bound_mult_init_val', + description='Initial value for the bound multipliers. \nAll dual variables corresponding to bound constraints are initialized to this value. The valid range for this real option is [0, inf] and its default value is 1.', + ) + rtc_bound_push: Optional[RtcBoundPush] = Field( + None, + alias='rtc:bound_push', + description='Desired minimum absolute distance from the initial point to bound. \nDetermines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with "bound_frac"). (This is kappa_1 in Section 3.6 of implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.01.', + ) + rtc_constr_mult_init_max: Optional[RtcConstrMultInitMax] = Field( + None, + alias='rtc:constr_mult_init_max', + description='Maximum allowed least-square guess of constraint multipliers. \nDetermines how large the initial least-square guesses of the constraint multipliers are allowed to be (in max-norm). If the guess is larger than this value, it is discarded and all constraint multipliers are set to zero. This options is also used when initializing the restoration phase. By default, "resto.constr_mult_init_max" (the one used in RestoIterateInitializer) is set to zero. The valid range for this real option is [0, inf] and its default value is 1000.', + ) + rtc_slack_bound_frac: Optional[RtcSlackBoundFrac] = Field( + None, + alias='rtc:slack_bound_frac', + description='Desired minimum relative distance from the initial slack to bound. \nDetermines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with "slack_bound_push"). (This is kappa_2 in Section 3.6 of implementation paper.) The valid range for this real option is [0, 0.5] and its default value is 0.01.', + ) + rtc_slack_bound_push: Optional[RtcSlackBoundPush] = Field( + None, + alias='rtc:slack_bound_push', + description='Desired minimum absolute distance from the initial slack to bound. \nDetermines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with "slack_bound_frac"). (This is kappa_1 in Section 3.6 of implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.01.', + ) + + +class RtcMaxSoc(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcWatchdogShortenedIterTrigger(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcWatchdogTrialIterMax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcIPOPTLineSearchComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_accept_every_trial_step: Optional[RtcAcceptEveryTrialStep] = Field( + None, + alias='rtc:accept_every_trial_step', + description='Always accept the first trial step. \nSetting this option to "yes" essentially disables the line search and makes the algorithm take aggressive steps, without global convergence guarantees. The default value for this string option is "no". \nPossible values:\nno: don\'t arbitrarily accept the full step\nyes: always accept the full step', + ) + rtc_max_soc: Optional[RtcMaxSoc] = Field( + None, + alias='rtc:max_soc', + description='Maximum number of second order correction trial steps at each iteration. \nChoosing 0 disables the second order corrections. (This is pmax of Step A-5.9 of Algorithm A in the implementation paper.) The valid range for this integer option is [0, inf] and its default value is 4 .', + ) + rtc_watchdog_shortened_iter_trigger: Optional[ + RtcWatchdogShortenedIterTrigger + ] = Field( + None, + alias='rtc:watchdog_shortened_iter_trigger', + description='Number of shortened iterations that trigger the watchdog. \nIf the number of successive iterations in which the backtracking line search did not accept the first trial point exceeds this number, the watchdog procedure is activated. Choosing "0" here disables the watchdog procedure. The valid range for this integer option is [0,inf] and its default value is 10.', + ) + rtc_watchdog_trial_iter_max: Optional[RtcWatchdogTrialIterMax] = Field( + None, + alias='rtc:watchdog_trial_iter_max', + description='Maximum number of watchdog iterations. \nThis option determines the number of trial iterations allowed before the watchdog procedure is aborted and the algorithm returns to the stored point. The valid range for this integer option is [1, inf] and its default value is 3. ', + ) + + +class RtcMaxRefinementSteps(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMinRefinementSteps(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcAlphaForYTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcRecalcYFeasTol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcIPOPTMultiplierUpdatesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_alpha_for_y: Optional[RtcAlphaForY] = Field( + None, + alias='rtc:alpha_for_y', + description='Method to determine the step size for constraint multipliers. \nThis option determines how the step size (alpha_y) will be calculated when updating the constraint multipliers. The default value for this string option is "primal". \nPossible values:\nprimal: use primal step size\nbound-mult: use step size for the bound multipliers (good for LPs)\nmin: use the min of primal and bound multipliers\nmax: use the max of primal and bound multipliers\nfull: take a full step of size one\nmin-dual-infeas: choose step size minimizing new dual infeasibility\nsafer-min-dual-infeas: like "min_dual_infeas", but safeguarded by "min" and "max"\nprimal-and-full: use the primal step size, and full step if delta_x smaller or equal than alpha_for_y_tol\ndual-and-full: use the dual step size, and full step if delta_x smaller or equal than alpha_for_y_tol\nacceptor: Call LSAcceptor to get step size for y', + ) + rtc_alpha_for_y_tol: Optional[RtcAlphaForYTol] = Field( + None, + alias='rtc:alpha_for_y_tol', + description='Tolerance for switching to full equality multiplier steps. \nThis is only relevant if "alpha_for_y" is chosen "primal-and-full" or "dual-and-full". The step size for the equality constraint multipliers is taken to be one if the max-norm of the primal step is less than this tolerance. The valid range for this real option is [0, inf] and its default value is 10.', + ) + rtc_recalc_y: Optional[RtcRecalcY] = Field( + None, + alias='rtc:recalc_y', + description='Tells the algorithm to recalculate the equality and inequality multipliers as least square estimates. \nThis asks the algorithm to recompute the multipliers, whenever the current infeasibility is less than recalc_y_feas_tol. Choosing yes might be helpful in the quasi-Newton option. However, each recalculation requires an extra factorization of the linear system. If a limited memory quasi-Newton option is chosen, this is used by default. The default value for this string option is "no". \nPossible values:\nno: use the Newton step to update the multipliers\nyes: use least-square multiplier estimates', + ) + rtc_recalc_y_feas_tol: Optional[RtcRecalcYFeasTol] = Field( + None, + alias='rtc:recalc_y_feas_tol', + description='Feasibility threshold for recomputation of multipliers. \nIf recalc_y is chosen and the current infeasibility is less than this value, then the multipliers are recomputed. The valid range for this real option is [0, inf] and its default value is 1e-6.', + ) + + +class RtcBoundMultResetThreshold(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcConstrMultResetThreshold(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcExpectInfeasibleProblemCtol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcExpectInfeasibleProblemYtol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcRequiredInfeasibilityReduction(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSoftRestoPderrorReductionFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcIPOPTRestorationPhaseComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_bound_mult_reset_threshold: Optional[RtcBoundMultResetThreshold] = Field( + None, + alias='rtc:bound_mult_reset_threshold', + description='Threshold for resetting bound multipliers after the restoration phase. \nAfter returning from the restoration phase, the bound multipliers are updated with a Newton step for complementarity. Here, the change in the primal variables during the entire restoration phase is taken to be the corresponding primal Newton step. However, if after the update the largest bound multiplier exceeds the threshold specified by this option, the multipliers are all reset to 1. The valid range for this real option is [0, inf] and its default value is 1000 .', + ) + rtc_constr_mult_reset_threshold: Optional[RtcConstrMultResetThreshold] = Field( + None, + alias='rtc:constr_mult_reset_threshold', + description='Threshold for resetting equality and inequality multipliers after restoration phase. \nAfter returning from the restoration phase, the constraint multipliers are recomputed by a least square estimate. This option triggers when those least-square estimates should be ignored. The valid range for this real option is [0, inf] and its default value is 0 .', + ) + rtc_evaluate_orig_obj_at_resto_trial: Optional[ + RtcEvaluateOrigObjAtRestoTrial + ] = Field( + None, + alias='rtc:evaluate_orig_obj_at_resto_trial', + description='Determines if the original objective function should be evaluated at restoration phase trial points. \nSetting this option to "yes" makes the restoration phase algorithm evaluate the objective function of the original problem at every trial point encountered during the restoration phase, even if this value is not required. In this way, it is guaranteed that the original objective function can be evaluated without error at all accepted iterates; otherwise the algorithm might fail at a point where the restoration phase accepts an iterate that is good for the restoration phase problem, but not the original problem. On the other hand, if the evaluation of the original objective is expensive, this might be costly. The default value for this string option is "yes". \nPossible values:\nno: skip evaluation\nyes: evaluate at every trial point', + ) + rtc_expect_infeasible_problem: Optional[RtcExpectInfeasibleProblem] = Field( + None, + alias='rtc:expect_infeasible_problem', + description='Enable heuristics to quickly detect an infeasible problem. \nThis options is meant to activate heuristics that may speed up the infeasibility determination if you expect that there is a good chance for the problem to be infeasible. In the filter line search procedure, the restoration phase is called more quickly than usually, and more reduction in the constraint violation is enforced before the restoration phase is left. If the problem is square, this option is enabled automatically. The default value for this string option is "no". \nPossible values:\nno: the problem probably be feasible\nyes: the problem has a good chance to be infeasible', + ) + rtc_expect_infeasible_problem_ctol: Optional[ + RtcExpectInfeasibleProblemCtol + ] = Field( + None, + alias='rtc:expect_infeasible_problem_ctol', + description='Threshold for disabling "expect_infeasible_problem" option. \nIf the constraint violation becomes smaller than this threshold, the "expect_infeasible_problem" heuristics in the filter line search are disabled. If the problem is square, this options is set to 0. The valid range for this real option is [0, inf] and its default value is 0.001.', + ) + rtc_expect_infeasible_problem_ytol: Optional[ + RtcExpectInfeasibleProblemYtol + ] = Field( + None, + alias='rtc:expect_infeasible_problem_ytol', + description='Multiplier threshold for activating "expect_infeasible_problem" option. \nIf the max norm of the constraint multipliers becomes larger than this value and "expect_infeasible_problem" is chosen, then the restoration phase is entered. The valid range for this real option is [0, inf] and its default value is 1e8.', + ) + rtc_required_infeasibility_reduction: Optional[ + RtcRequiredInfeasibilityReduction + ] = Field( + None, + alias='rtc:required_infeasibility_reduction', + description='Required reduction of infeasibility before leaving restoration phase. \nThe restoration phase algorithm is performed, until a point is found that is acceptable to the filter and the infeasibility has been reduced by at least the fraction given by this option. The valid range for this real option is [0, inf] and its default value is 0.9 .', + ) + rtc_soft_resto_pderror_reduction_factor: Optional[ + RtcSoftRestoPderrorReductionFactor + ] = Field( + None, + alias='rtc:soft_resto_pderror_reduction_factor', + description='Required reduction in primal-dual error in the soft restoration phase. \nThe soft restoration phase attempts to reduce the primal-dual error with regular steps. If the damped primal-dual step (damped only to satisfy the fraction-to-the-boundary rule) is not decreasing the primal-dual error by at least this factor, then the regular restoration phase is called. Choosing "0" here disables the soft restoration phase. The valid range for this real option is [0, inf] and its default value is 0.9999 .', + ) + rtc_start_with_resto: Optional[RtcStartWithResto] = Field( + None, + alias='rtc:start_with_resto', + description='Tells algorithm to switch to restoration phase in first iteration. \nSetting this option to "yes" forces the algorithm to switch to the feasibility restoration phase in the first iteration. If the initial point is feasible, the algorithm will abort with a failure. The default value for this string option is "no". \nPossible values:\nno: don\'t force start in restoration phase\nyes: force start in restoration phase', + ) + + +class RtcWarmStartBoundFrac(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcWarmStartBoundPush(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcWarmStartMultBoundPush(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcWarmStartMultInitMax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcWarmStartSlackBoundFrac(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcWarmStartSlackBoundPush(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcIPOPTWarmStartComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_warm_start_bound_frac: Optional[RtcWarmStartBoundFrac] = Field( + None, + alias='rtc:warm_start_bound_frac', + description='same as bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001.', + ) + rtc_warm_start_bound_push: Optional[RtcWarmStartBoundPush] = Field( + None, + alias='rtc:warm_start_bound_push', + description='same as bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', + ) + rtc_warm_start_init_point: Optional[RtcWarmStartInitPoint] = Field( + None, + alias='rtc:warm_start_init_point', + description='Warm-start for initial point \nIndicates whether this optimization should use a warm start initialization, where values of primal and dual variables are given (e.g., from a previous optimization of a related problem.) The default value for this string option is "no". \nPossible values:\nno: do not use the warm start initialization\nyes: use the warm start initialization', + ) + rtc_warm_start_mult_bound_push: Optional[RtcWarmStartMultBoundPush] = Field( + None, + alias='rtc:warm_start_mult_bound_push', + description='same as mult_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', + ) + rtc_warm_start_mult_init_max: Optional[RtcWarmStartMultInitMax] = Field( + None, + alias='rtc:warm_start_mult_init_max', + description='Maximum initial value for the equality multipliers. \nThe valid range for this real option is [-inf, +inf] and its default value is 1e6.', + ) + rtc_warm_start_slack_bound_frac: Optional[RtcWarmStartSlackBoundFrac] = Field( + None, + alias='rtc:warm_start_slack_bound_frac', + description='same as slack_bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001.', + ) + rtc_warm_start_slack_bound_push: Optional[RtcWarmStartSlackBoundPush] = Field( + None, + alias='rtc:warm_start_slack_bound_push', + description='same as slack_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', + ) + + +class RtcMa27LaInitFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa27LiwInitFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa27MemincFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa27Pivtol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa27Pivtolmax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMA27ComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ma27_la_init_factor: Optional[RtcMa27LaInitFactor] = Field( + None, + alias='rtc:ma27_la_init_factor', + description='Real workspace memory for MA27. \nThe initial real workspace memory = la_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5.', + ) + rtc_ma27_liw_init_factor: Optional[RtcMa27LiwInitFactor] = Field( + None, + alias='rtc:ma27_liw_init_factor', + description='Integer workspace memory for MA27. \nThe initial integer workspace memory = liw_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5.', + ) + rtc_ma27_meminc_factor: Optional[RtcMa27MemincFactor] = Field( + None, + alias='rtc:ma27_meminc_factor', + description='Increment factor for workspace size for MA27. \nIf the integer or real workspace is not large enough, Ipopt will increase its size by this factor. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 2.', + ) + rtc_ma27_pivtol: Optional[RtcMa27Pivtol] = Field( + None, + alias='rtc:ma27_pivtol', + description='Pivot tolerance for the linear solver MA27. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 1e-8.', + ) + rtc_ma27_pivtolmax: Optional[RtcMa27Pivtolmax] = Field( + None, + alias='rtc:ma27_pivtolmax', + description='Maximum pivot tolerance for the linear solver MA27. \nIpopt may increase pivtol as high as ma27_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 0.0001.', + ) + + +class RtcMa57BlockSize(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa57NodeAmalgamation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa57PivotOrder(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa57Pivtol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa57Pivtolmax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa57PreAlloc(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa57SmallPivotFlag(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMA57ComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ma57_automatic_scaling: Optional[RtcMa57AutomaticScaling] = Field( + None, + alias='rtc:ma57_automatic_scaling', + description='Controls MA57 automatic scaling \nThis option controls the internal scaling option of MA57. For higher reliability of the MA57 solver, you may want to set this option to yes. This is ICNTL(15) in MA57. The default value for this string option is "no". \nPossible values:\nno: Do not scale the linear system matrix\nyes: Scale the linear system matrix', + ) + rtc_ma57_block_size: Optional[RtcMa57BlockSize] = Field( + None, + alias='rtc:ma57_block_size', + description='Controls block size used by Level 3 BLAS in MA57BD \nThis is ICNTL(11) in MA57. The valid range for this integer option is [1, inf] and its default value is 16. .', + ) + rtc_ma57_node_amalgamation: Optional[RtcMa57NodeAmalgamation] = Field( + None, + alias='rtc:ma57_node_amalgamation', + description='Node amalgamation parameter \nThis is ICNTL(12) in MA57. The valid range for this integer option is [1, inf] and its default value is 16.', + ) + rtc_ma57_pivot_order: Optional[RtcMa57PivotOrder] = Field( + None, + alias='rtc:ma57_pivot_order', + description='Controls pivot order in MA57 \nThis is ICNTL(6) in MA57. The valid range for this integer option is [0,5] and its default value is 5.', + ) + rtc_ma57_pivtol: Optional[RtcMa57Pivtol] = Field( + None, + alias='rtc:ma57_pivtol', + description='Pivot tolerance for the linear solver MA57. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 1e-8.', + ) + rtc_ma57_pivtolmax: Optional[RtcMa57Pivtolmax] = Field( + None, + alias='rtc:ma57_pivtolmax', + description='Maximum pivot tolerance for the linear solver MA57. \nIpopt may increase pivtol as high as ma57_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 0.0001.', + ) + rtc_ma57_pre_alloc: Optional[RtcMa57PreAlloc] = Field( + None, + alias='rtc:ma57_pre_alloc', + description='Safety factor for work space memory allocation for the linear solver MA57. \nIf 1 is chosen, the suggested amount of work space is used. However, choosing a larger number might avoid reallocation if the suggest values do not suffice. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [1, inf] and its default value is 1.05.', + ) + rtc_ma57_small_pivot_flag: Optional[RtcMa57SmallPivotFlag] = Field( + None, + alias='rtc:ma57_small_pivot_flag', + description='If set to 1, then when small entries defined by CNTL(2) are detected they are removed and the corresponding pivots placed at the end of the factorization. This can be particularly efficient if the matrix is highly rank deficient. \nThis is ICNTL(16) in MA57. The valid range for this integer option is [0,1] and its default value is 0.', + ) + + +class RtcMa77BufferLpage(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa77BufferNpage(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa77FileSize(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa77Maxstore(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa77Nemin(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa77PrintLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa77Small(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa77Static(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa77U(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa77Umax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMA77ComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ma77_buffer_lpage: Optional[RtcMa77BufferLpage] = Field( + None, + alias='rtc:ma77_buffer_lpage', + description='Number of scalars per MA77 buffer page \nNumber of scalars per an in-core buffer in the out-of-core solver MA77. Must be at most ma77_file_size. The valid range for this integer option is [1, inf] and its default value is 4096.', + ) + rtc_ma77_buffer_npage: Optional[RtcMa77BufferNpage] = Field( + None, + alias='rtc:ma77_buffer_npage', + description='Number of pages that make up MA77 buffer \nNumber of pages of size buffer_lpage that exist in-core for the out-of-core solver MA77. The valid range for this integer option is [1, inf] and its default value is 1600.', + ) + rtc_ma77_file_size: Optional[RtcMa77FileSize] = Field( + None, + alias='rtc:ma77_file_size', + description='Target size of each temporary file for MA77, scalars per type \nMA77 uses many temporary files, this option controls the size of each one. It is measured in the number of entries (int or double), NOT bytes. The valid range for this integer option is [1, inf] and its default value is 2097152.', + ) + rtc_ma77_maxstore: Optional[RtcMa77Maxstore] = Field( + None, + alias='rtc:ma77_maxstore', + description='Maximum storage size for MA77 in-core mode \nIf greater than zero, the maximum size of factors stored in core before out-of-core mode is invoked. The valid range for this integer option is [0, inf] and its default value is 0', + ) + rtc_ma77_nemin: Optional[RtcMa77Nemin] = Field( + None, + alias='rtc:ma77_nemin', + description='Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma77_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8.', + ) + rtc_ma77_order: Optional[RtcMa77Order] = Field( + None, + alias='rtc:ma77_order', + description='Controls type of ordering used by HSL_MA77 \nThis option controls ordering for the solver HSL_MA77. The default value for this string option is "metis". \nPossible values:\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm (if available)', + ) + rtc_ma77_print_level: Optional[RtcMa77PrintLevel] = Field( + None, + alias='rtc:ma77_print_level', + description='Debug printing level for the linear solver MA77 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1.', + ) + rtc_ma77_small: Optional[RtcMa77Small] = Field( + None, + alias='rtc:ma77_small', + description='Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', + ) + rtc_ma77_static: Optional[RtcMa77Static] = Field( + None, + alias='rtc:ma77_static', + description='Static Pivoting Threshold \nSee MA77 documentation. Either ma77_static=0.0 or ma77_static>ma77_small. ma77_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 .', + ) + rtc_ma77_u: Optional[RtcMa77U] = Field( + None, + alias='rtc:ma77_u', + description='Pivoting Threshold \nSee MA77 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.', + ) + rtc_ma77_umax: Optional[RtcMa77Umax] = Field( + None, + alias='rtc:ma77_umax', + description='Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5]and its default value is 0.0001.', + ) + + +class RtcMa86Nemin(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa86PrintLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa86Small(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa86Static(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa86U(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa86Umax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMA86ComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ma86_nemin: Optional[RtcMa86Nemin] = Field( + None, + alias='rtc:ma86_nemin', + description='Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma86_nemin variables. The valid range for this integer option is [1, inf] and its default value is 32.', + ) + rtc_ma86_order: Optional[RtcMa86Order] = Field( + None, + alias='rtc:ma86_order', + description='CControls type of ordering used by HSL_MA86 \nThis option controls ordering for the solver HSL_MA86. The default value for this string option is "auto". \nPossible values:\nauto: Try both AMD and MeTiS, pick best\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm (if available)', + ) + rtc_ma86_print_level: Optional[RtcMa86PrintLevel] = Field( + None, + alias='rtc:ma86_print_level', + description='Debug printing level for the linear solver ma86 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1.', + ) + rtc_ma86_scaling: Optional[RtcMa86Scaling] = Field( + None, + alias='rtc:ma86_scaling', + description='Controls scaling of matrix \nThis option controls scaling for the solver HSL_MA86. The default value for this string option is "mc64". \nPossible values:\nnone: Do not scale the linear system matrix\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', + ) + rtc_ma86_small: Optional[RtcMa86Small] = Field( + None, + alias='rtc:ma86_small', + description='Zero Pivot Threshold \nAny pivot less than ma86_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', + ) + rtc_ma86_static: Optional[RtcMa86Static] = Field( + None, + alias='rtc:ma86_static', + description='Static Pivoting Threshold \nSee ma86 documentation. Either ma86_static=0.0 or ma86_static>ma86_small. ma86_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 .', + ) + rtc_ma86_u: Optional[RtcMa86U] = Field( + None, + alias='rtc:ma86_u', + description='Pivoting Threshold \nSee ma86 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.', + ) + rtc_ma86_umax: Optional[RtcMa86Umax] = Field( + None, + alias='rtc:ma86_umax', + description='Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5] and its default value is 0.0001.', + ) + + +class RtcMa97Nemin(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa97PrintLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMa97Small(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa97U(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMa97Umax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMA97ComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ma97_nemin: Optional[RtcMa97Nemin] = Field( + None, + alias='rtc:ma97_nemin', + description='Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma97_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8.', + ) + rtc_ma97_order: Optional[RtcMa97Order] = Field( + None, + alias='rtc:ma97_order', + description='Controls type of ordering used by HSL_MA97 \nThe default value for this string option is "auto". \nPossible values:\nauto: Use HSL_MA97 heuristic to guess best of AMD and METIS\nbest: Try both AMD and MeTiS, pick best\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm\nmatched-auto: Use the HSL_MC80 matching with heuristic choice of AMD or METIS\nmatched-metis: Use the HSL_MC80 matching based ordering with METIS\nmatched-amd: Use the HSL_MC80 matching based ordering with AMD', + ) + rtc_ma97_print_level: Optional[RtcMa97PrintLevel] = Field( + None, + alias='rtc:ma97_print_level', + description='Debug printing level for the linear solver MA97 \nThe valid range for this integer option is [-inf, +inf] and its default value is 0.', + ) + rtc_ma97_scaling: Optional[RtcMa97Scaling] = Field( + None, + alias='rtc:ma97_scaling', + description='Specifies strategy for scaling in HSL_MA97 linear solver \nThe default value for this string option is "dynamic". \nPossible values:\nnone: Do not scale the linear system matrix\nmc30: Scale all linear system matrices using MC30\nmc64: Scale all linear system matrices using MC64\nmc77: Scale all linear system matrices using MC77 [1,3,0]\ndynamic: Dynamically select scaling according to rules specified by ma97_scalingX and ma97_switchX options.', + ) + rtc_ma97_scaling1: Optional[RtcMa97Scaling1] = Field( + None, + alias='rtc:ma97_scaling1', + description='First scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch1. If ma97_switch2 is triggered it is disabled. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', + ) + rtc_ma97_scaling2: Optional[RtcMa97Scaling2] = Field( + None, + alias='rtc:ma97_scaling2', + description='Second scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch2. If ma97_switch3 is triggered it is disabled. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', + ) + rtc_ma97_scaling3: Optional[RtcMa97Scaling3] = Field( + None, + alias='rtc:ma97_scaling3', + description='Third scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch3. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', + ) + rtc_ma97_small: Optional[RtcMa97Small] = Field( + None, + alias='rtc:ma97_small', + description='Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', + ) + rtc_ma97_solve_blas3: Optional[RtcMa97SolveBlas3] = Field( + None, + alias='rtc:ma97_solve_blas3', + description='Controls if blas2 or blas3 routines are used for solve \nThe default value for this string option is "no". \nPossible values:\nno: Use BLAS2 (faster, some implementations bit incompatible)\nyes: Use BLAS3 (slower)', + ) + rtc_ma97_switch1: Optional[RtcMa97Switch1] = Field( + None, + alias='rtc:ma97_switch1', + description='First switch, determine when ma97_scaling1 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling1 is enabled according to this condition. If ma97_switch2 occurs this option is henceforth ignored. The default value for this string option is "od_hd_reuse". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', + ) + rtc_ma97_switch2: Optional[RtcMa97Switch2] = Field( + None, + alias='rtc:ma97_switch2', + description='Second switch, determine when ma97_scaling2 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling2 is enabled according to this condition. If ma97_switch3 occurs this option is henceforth ignored. The default value for this string option is "never". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', + ) + rtc_ma97_switch3: Optional[RtcMa97Switch3] = Field( + None, + alias='rtc:ma97_switch3', + description='Third switch, determine when ma97_scaling3 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling3 is enabled according to this condition. The default value for this string option is "never". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', + ) + rtc_ma97_u: Optional[RtcMa97U] = Field( + None, + alias='rtc:ma97_u', + description='Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.', + ) + rtc_ma97_umax: Optional[RtcMa97Umax] = Field( + None, + alias='rtc:ma97_umax', + description='Maximum Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 0.0001.', + ) + + +class RtcMumpsMemPercent(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMumpsPermutingScaling(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMumpsPivotOrder(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMumpsPivtol(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMumpsPivtolmax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcMumpsScaling(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcMUMPSComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_mumps_mem_percent: Optional[RtcMumpsMemPercent] = Field( + None, + alias='rtc:mumps_mem_percent', + description='Percentage increase in the estimated working space for MUMPS. \nIn MUMPS when significant extra fill-in is caused by numerical pivoting, larger values of mumps_mem_percent may help use the workspace more efficiently. On the other hand, if memory requirement are too large at the very beginning of the optimization, choosing a much smaller value for this option, such as 5, might reduce memory requirements. The valid range for this integer option is [0, inf] and its default value is 1000.', + ) + rtc_mumps_permuting_scaling: Optional[RtcMumpsPermutingScaling] = Field( + None, + alias='rtc:mumps_permuting_scaling', + description='Controls permuting and scaling in MUMPS \nThis is ICNTL(6) in MUMPS. The valid range for this integer option is [0,7] and its default value is 7.', + ) + rtc_mumps_pivot_order: Optional[RtcMumpsPivotOrder] = Field( + None, + alias='rtc:mumps_pivot_order', + description='Controls pivot order in MUMPS \nThis is ICNTL(7) in MUMPS. The valid range for this integer option is [0, 7] and its default value is 7.', + ) + rtc_mumps_pivtol: Optional[RtcMumpsPivtol] = Field( + None, + alias='rtc:mumps_pivtol', + description='Pivot tolerance for the linear solver MUMPS. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 1e-6.', + ) + rtc_mumps_pivtolmax: Optional[RtcMumpsPivtolmax] = Field( + None, + alias='rtc:mumps_pivtolmax', + description='Maximum pivot tolerance for the linear solver MUMPS. \nIpopt may increase pivtol as high as pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 0.1', + ) + rtc_mumps_scaling: Optional[RtcMumpsScaling] = Field( + None, + alias='rtc:mumps_scaling', + description='Controls scaling in MUMPS \nThis is ICNTL(8) in MUMPS. The valid range for this integer option is [-2,77] and its default value is 77.', + ) + + +class RtcForecastHorizon(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInteger] = Field(None, alias='$') + + +class RtcRecedingHorizon(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInteger] = Field(None, alias='$') + + +class RtcFirstOrderSensitivity(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcPostprocessing(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcOptimizerMode(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcOptimizerModeEnumStringType] = Field(None, alias='$') + + +class RtcPeriod(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcPeriodEnumStringType] = Field(None, alias='$') + + +class RtcExecuteConstraints(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcExecuteObjectiveFunction(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcLimitedMemory(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcPeriod1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcPeriodEnumStringType] = Field(None, alias='$') + + +class RtcModeSimulationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_executeConstraints: Optional[RtcExecuteConstraints] = Field( + None, alias='rtc:executeConstraints' + ) + rtc_executeObjectiveFunction: Optional[RtcExecuteObjectiveFunction] = Field( + None, alias='rtc:executeObjectiveFunction' + ) + rtc_limitedMemory: Optional[RtcLimitedMemory] = Field( + None, + alias='rtc:limitedMemory', + description='limited-memory option for time series matrix', + ) + rtc_period: Optional[RtcPeriod1] = Field(None, alias='rtc:period') + + +class RtcFile(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcNumberEnsembles(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcPIInputRuntimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_file: RtcFile = Field(..., alias='rtc:file') + rtc_numberEnsembles: Optional[RtcNumberEnsembles] = Field( + None, + alias='rtc:numberEnsembles', + description='optional number of ensemble, if not provides one ensemble member is assumed', + ) + + +class RtcFile1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcNumberEnsembles1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcNThread(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcParallelizationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_constraints: Optional[RtcConstraints] = Field(None, alias='rtc:constraints') + rtc_nThread: Optional[RtcNThread] = Field(None, alias='rtc:nThread') + rtc_simulation: Optional[RtcSimulation] = Field(None, alias='rtc:simulation') + + +class RtcPardisoMaxIterativeRefinementSteps(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcPardisoMsglvl(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcPardisoComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_pardiso_matching_strategy: Optional[RtcPardisoMatchingStrategy] = Field( + None, + alias='rtc:pardiso_matching_strategy', + description='Matching strategy to be used by Pardiso \nThis is IPAR(13) in Pardiso manual. The default value for this string option is "complete+2x2". \nPossible values:\ncomplete: Match complete (IPAR(13)=1)\ncomplete+2x2: Match complete+2x2 (IPAR(13)=2)\nconstraints: Match constraints (IPAR(13)=3)', + ) + rtc_pardiso_max_iterative_refinement_steps: Optional[ + RtcPardisoMaxIterativeRefinementSteps + ] = Field( + None, + alias='rtc:pardiso_max_iterative_refinement_steps', + description='Limit on number of iterative refinement steps. \nThe solver does not perform more than the absolute value of this value steps of iterative refinement and stops the process if a satisfactory level of accuracy of the solution in terms of backward error is achieved. If negative, the accumulation of the residue uses extended precision real and complex data types. Perturbed pivots result in iterative refinement. The solver automatically performs two steps of iterative refinements when perturbed pivots are obtained during the numerical factorization and this option is set to 0. The valid range for this integer option is [-inf, inf] and its default value is 0 .', + ) + rtc_pardiso_msglvl: Optional[RtcPardisoMsglvl] = Field( + None, + alias='rtc:pardiso_msglvl', + description='Pardiso message level \nThis determines the amount of analysis output from the Pardiso solver. This is MSGLVL in the Pardiso manual. The valid range for this integer option is [0, inf] and its default value is 0 .', + ) + rtc_pardiso_order: Optional[RtcPardisoOrder] = Field( + None, + alias='rtc:pardiso_order', + description='Controls the fill-in reduction ordering algorithm for the input matrix. \nThe default value for this string option is "five". \nPossible values:\namd: minimum degree algorithm\none: undocumented\nmetis: MeTiS nested dissection algorithm\npmetis: parallel (OpenMP) version of MeTiS nested dissection algorithm\nfour: undocumented\nfive: undocumented', + ) + + +class RtcMaxIter1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInteger] = Field(None, alias='$') + + +class RtcSAComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_dels: Optional[RtcDels] = Field(None, alias='rtc:dels', description='???') + rtc_ftoll: Optional[RtcFtoll] = Field(None, alias='rtc:ftoll', description='???') + rtc_max_cpu_time: Optional[RtcMaxCpuTime1] = Field( + None, + alias='rtc:max_cpu_time', + description='maximum cpu time for executing the optimization', + ) + rtc_max_iter: Optional[RtcMaxIter1] = Field( + None, alias='rtc:max_iter', description='Maximum number of iterations' + ) + + +class RtcTimeStepComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') + _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') + _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + + +class RtcNumberEnsembles2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcUserDefinedRuntimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_endDate: RtcDateTimeComplexType = Field( + ..., alias='rtc:endDate', description='End date and time of the simulation.' + ) + rtc_forecastDate: Optional[RtcDateTimeComplexType] = Field( + None, + alias='rtc:forecastDate', + description='Forecast date and time of the simulation.', + ) + rtc_numberEnsembles: Optional[RtcNumberEnsembles2] = Field( + None, + alias='rtc:numberEnsembles', + description='Optional number of ensemble of the simulation. If not provided, one ensemble member is assumed.', + ) + rtc_startDate: RtcDateTimeComplexType = Field( + ..., alias='rtc:startDate', description='Start date and time of the similation.' + ) + rtc_timeStep: RtcTimeStepComplexType = Field( + ..., + alias='rtc:timeStep', + description='Time step of the simulation (till now, the model supports only equidistant time steps)', + ) + + +class RtcStateTimeStep(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcUserDefinedStateExportComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_endDate: RtcDateTimeComplexType = Field( + ..., + alias='rtc:endDate', + description='End date and time for exporting state files.', + ) + rtc_startDate: RtcDateTimeComplexType = Field( + ..., + alias='rtc:startDate', + description='Start date and time for exporting state files.', + ) + rtc_stateTimeStep: Optional[RtcStateTimeStep] = Field( + None, + alias='rtc:stateTimeStep', + description='Step in seconds for exporting state files', + ) + + +class RtcFileComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_rtcDataConfig: RtcFileDataComplexType = Field( + ..., + alias='rtc:rtcDataConfig', + description='File with the time series model definition', + ) + rtc_rtcObjectiveConfig: Optional[RtcFileObjectiveComplexType] = Field( + None, + alias='rtc:rtcObjectiveConfig', + description='Optional file with the definition of an optimization problem including optimization variables, constraints and objective function terms', + ) + rtc_rtcParameterConfig: Optional[List[RtcFileParameterComplexType]] = Field( + None, alias='rtc:rtcParameterConfig' + ) + rtc_rtcScenarioTreeConfig: Optional[RtcFileScenarioTreeComplexType] = Field( + None, + alias='rtc:rtcScenarioTreeConfig', + description='Optional file with the definition of a scenario tree for the control trajectory in case of multi-stage stochastic optimization problems', + ) + rtc_rtcToolsConfig: RtcFileToolsComplexType = Field( + ..., + alias='rtc:rtcToolsConfig', + description='File with the schematization of the process model, i.e. the model of the water resources systems', + ) + + +class RtcIPOPTLinearSolverComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_linear_scaling_on_demand: Optional[RtcLinearScalingOnDemand] = Field( + None, + alias='rtc:linear_scaling_on_demand', + description='Flag indicating that linear scaling is only done if it seems required. \nThis option is only important if a linear scaling method (e.g., mc19) is used. If you choose "no", then the scaling factors are computed for every linear system from the start. This can be quite expensive. Choosing "yes" means that the algorithm will start the scaling method only when the solutions to the linear system seem not good, and then use it until the end. The default value for this string option is "yes". ', + ) + rtc_linear_solver: Optional[RtcLinearSolver] = Field( + None, + alias='rtc:linear_solver', + description='Linear solver used for step computations', + ) + rtc_linear_system_scaling: Optional[RtcLinearSystemScaling] = Field( + None, + alias='rtc:linear_system_scaling', + description='Method for scaling the linear system. \nDetermines the method used to compute symmetric scaling factors for the augmented system (see also the "linear_scaling_on_demand" option). This scaling is independent of the NLP problem scaling. By default, MC19 is only used if MA27 or MA57 are selected as linear solvers. This value is only available if Ipopt has been compiled with MC19. The default value for this string option is "mc19". ', + ) + rtc_ma27: Optional[RtcMA27ComplexType] = Field(None, alias='rtc:ma27') + rtc_ma57: Optional[RtcMA57ComplexType] = Field(None, alias='rtc:ma57') + rtc_ma77: Optional[RtcMA77ComplexType] = Field(None, alias='rtc:ma77') + rtc_ma86: Optional[RtcMA86ComplexType] = Field(None, alias='rtc:ma86') + rtc_ma97: Optional[RtcMA97ComplexType] = Field(None, alias='rtc:ma97') + rtc_max_refinement_steps: Optional[RtcMaxRefinementSteps] = Field( + None, + alias='rtc:max_refinement_steps', + description='Maximum number of iterative refinement steps per linear system solve. \nIterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the maximum number of iterative refinements (i.e. at least "min_refinement_steps" iterative refinement steps are enforced per right hand side.) The valid range for this integer option is [0,+inf] and its default value is 1.\n\t\t\t\t ', + ) + rtc_min_refinement_steps: Optional[RtcMinRefinementSteps] = Field( + None, + alias='rtc:min_refinement_steps', + description='Minimum number of iterative refinement steps per linear system solve. \nIterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the minimum number of iterative refinements (i.e. at least "min_refinement_steps" iterative refinement steps are enforced per right hand side.) The valid range for this integer option is [0,+inf] and its default value is 10.\n\t\t\t\t ', + ) + rtc_mumps: Optional[RtcMUMPSComplexType] = Field(None, alias='rtc:mumps') + rtc_pardiso: Optional[RtcPardisoComplexType] = Field(None, alias='rtc:pardiso') + + +class RtcPIRunFileRuntimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_file: RtcFile1 = Field(..., alias='rtc:file') + rtc_numberEnsembles: Optional[RtcNumberEnsembles1] = Field( + None, + alias='rtc:numberEnsembles', + description='optional number of ensemble, if not provides one ensemble member is assumed', + ) + rtc_timeStep: RtcTimeStepComplexType = Field( + ..., + alias='rtc:timeStep', + description='Time step of the simulation (till now, the model supports only equidistant time steps)', + ) + + +class RtcPeriodComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_PIInput: Optional[RtcPIInputRuntimeComplexType] = Field( + None, + alias='rtc:PIInput', + description='The execution period is defined by the first time series of the referred PI-XML file.', + ) + rtc_PIRunFile: Optional[RtcPIRunFileRuntimeComplexType] = Field( + None, + alias='rtc:PIRunFile', + description='The execution period is defined in the PI-XML run file.', + ) + rtc_userDefined: Optional[RtcUserDefinedRuntimeComplexType] = Field( + None, + alias='rtc:userDefined', + description='The execution period is user-defined by start and end time, time step and optionally the number of ensembles.', + ) + + +class RtcIPOPTComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_barrierParameter: RtcIPOPTBarrierParameterComplexType = Field( + ..., alias='rtc:barrierParameter' + ) + rtc_derivativeChecker: RtcIPOPTDerivativeCheckerComplexType = Field( + ..., alias='rtc:derivativeChecker', description='Optional derivative checker' + ) + rtc_hessianPermutation: RtcIPOPTHessianPermutationComplexType = Field( + ..., alias='rtc:hessianPermutation', description='Optional hessian settings' + ) + rtc_initialization: RtcIPOPTInitializationComplexType = Field( + ..., alias='rtc:initialization' + ) + rtc_lineSearch: RtcIPOPTLineSearchComplexType = Field(..., alias='rtc:lineSearch') + rtc_linearSolver: RtcIPOPTLinearSolverComplexType = Field( + ..., + alias='rtc:linearSolver', + description='Settings and selection of the integrated linear equation solver ', + ) + rtc_multiplierUpdates: RtcIPOPTMultiplierUpdatesComplexType = Field( + ..., alias='rtc:multiplierUpdates' + ) + rtc_nlp: RtcIPOPTNLPComplexType = Field( + ..., alias='rtc:nlp', description='Settings of the nonlinear optimizer' + ) + rtc_nlpScaling: RtcIPOPTNLPScalingComplexType = Field( + ..., + alias='rtc:nlpScaling', + description='Scaling options for the optimization problem', + ) + rtc_output: RtcIPOPTOutputComplexType = Field( + ..., alias='rtc:output', description='Output options' + ) + rtc_quasiNewton: RtcIPOPTQuasiNewtonComplexType = Field( + ..., alias='rtc:quasiNewton' + ) + rtc_restorationPhase: RtcIPOPTRestorationPhaseComplexType = Field( + ..., alias='rtc:restorationPhase' + ) + rtc_termination: RtcIPOPTTerminationComplexType = Field( + ..., alias='rtc:termination', description='Termination criteria' + ) + rtc_warmStart: RtcIPOPTWarmStartComplexType = Field(..., alias='rtc:warmStart') + + +class RtcOptimizerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_GAMS: Optional[RtcGAMSComplexType] = Field( + None, + alias='rtc:GAMS', + description='This option generates a GAMS optimization problem with an external model in RTC-Tools. Note that you need to run the optimization in GAMS after executing the stand alone RTC-Tools.', + ) + rtc_IPOPT: Optional[RtcIPOPTComplexType] = Field( + None, + alias='rtc:IPOPT', + description='Optimization by the IPOPT optimizer, check also the related documentation on the COIN-OR website', + ) + rtc_SA: Optional[RtcSAComplexType] = Field( + None, + alias='rtc:SA', + description='Optimization by a simulated annealing optimizer (NOT FULLY IMPLEMENTED right now)', + ) + + +class RtcModeOptimizationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_optimizer: Optional[List[RtcOptimizerComplexType]] = Field( + None, alias='rtc:optimizer' + ) + rtc_optimizerMode: Optional[RtcOptimizerMode] = Field( + None, + alias='rtc:optimizerMode', + description='Mode for defining more robust hybrid optimizer settings for running optimizations sequentially (optimimum of the first is input for the next) or parallel (independent optimization, best one is returned), STILL NOT IMPLEMENTED', + ) + rtc_period: Optional[RtcPeriod] = Field(None, alias='rtc:period') + + +class RtcModeClosedLoopComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_forecastHorizon: RtcForecastHorizon = Field( + ..., + alias='rtc:forecastHorizon', + description='Number of time steps of forecasts in the predictive control mode', + ) + rtc_optimization: RtcModeOptimizationComplexType = Field( + ..., alias='rtc:optimization' + ) + rtc_recedingHorizon: RtcRecedingHorizon = Field( + ..., + alias='rtc:recedingHorizon', + description='Number of time steps after which the optimization is repeated', + ) + + +class RtcModeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_closedLoop: Optional[RtcModeClosedLoopComplexType] = Field( + None, + alias='rtc:closedLoop', + description='Closed loop mode with an alternating switch between simulation and optimization', + ) + rtc_firstOrderSensitivity: Optional[RtcFirstOrderSensitivity] = Field( + None, + alias='rtc:firstOrderSensitivity', + description='Calculation of first-order model sensitivities of an objective function value with respect to inputs, states and outputs (requires the definition of an objective function in the rtcObjectiveConfig.xml)', + ) + rtc_optimization: Optional[RtcModeOptimizationComplexType] = Field( + None, + alias='rtc:optimization', + description='Optimization mode (requires the definition of an optimization problem in the rtcObjectiveConfig.xml)', + ) + rtc_postprocessing: Optional[RtcPostprocessing] = Field( + None, alias='rtc:postprocessing' + ) + rtc_simulation: Optional[RtcModeSimulationComplexType] = Field( + None, alias='rtc:simulation', description='Simulation mode (default)' + ) + + +class RtcModesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_mode: List[RtcModeComplexType] = Field(..., alias='rtc:mode', min_items=1) + + +class RtcRtcRuntimeConfigComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_files: Optional[RtcFileComplexType] = Field( + None, + alias='rtc:files', + description='Optional provision of input files, if provided ALL relevant input files needs to be defined, if not, the program will check for files with default naming in the current working folder', + ) + rtc_logging: Optional[RtcLoggingComplexType] = Field( + None, alias='rtc:logging', description='Logging' + ) + rtc_mode: Optional[RtcModeComplexType] = Field( + None, + alias='rtc:mode', + description='Optional definition of the execution mode of the application, default = simulation if not provided', + ) + rtc_modes: Optional[RtcModesComplexType] = Field(None, alias='rtc:modes') + rtc_parallelization: Optional[RtcParallelizationComplexType] = Field( + None, + alias='rtc:parallelization', + description='Optional parallelization settings', + ) + rtc_period: RtcPeriodComplexType = Field( + ..., + alias='rtc:period', + description='Execution period of the simulation or optimization', + ) + rtc_stateFiles: Optional[RtcUserDefinedStateExportComplexType] = Field( + None, + alias='rtc:stateFiles', + description='Optional definition for saving periodic state files', + ) + + +class Model(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') + _xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + ) + rtc_rtcRuntimeConfig: Optional[_.RtcRtcRuntimeConfig] = Field( + None, alias='rtc:rtcRuntimeConfig' + ) diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/models.py b/hydrolib/core/io/rtc/rtcToolsConfig/models.py new file mode 100644 index 000000000..10969b089 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/models.py @@ -0,0 +1,8937 @@ +# generated by datamodel-codegen: +# filename: rtcToolsConfig.json +# timestamp: 2022-09-23T10:56:30+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, Extra, Field, conint, constr + +from . import _ +from ._._ import rtc_ExternalParameterSimpleType, rtc_TimeSeriesSimpleType, xs_string + + +class RtcAggregationTypeEnumStringType(Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class RtcBranchTypeEnumStringType(Enum): + KINEMATIC = 'KINEMATIC' + DIFFUSIVE = 'DIFFUSIVE' + DIFFUSIVEPLUSLOCAL = 'DIFFUSIVEPLUSLOCAL' + + +class RtcCapacityReferenceEnumStringType(Enum): + UPSTREAMLEVEL = 'UPSTREAMLEVEL' + HEAD = 'HEAD' + + +class _MonthOfYear(Enum): + January = 'January' + February = 'February' + March = 'March' + April = 'April' + May = 'May' + June = 'June' + July = 'July' + August = 'August' + September = 'September' + October = 'October' + November = 'November' + December = 'December' + + +class RtcEnsembleModeEnumStringType(Enum): + JOINT = 'JOINT' + TREE = 'TREE' + INDEPENDENT = 'INDEPENDENT' + + +class RtcEquationEnumStringType(Enum): + KINEMATIC = 'KINEMATIC' + DIFFUSIVE = 'DIFFUSIVE' + INERTIAL = 'INERTIAL' + + +class RtcExternalBooleanSimpleType(BaseModel): + __root__: Union[bool, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + + +class RtcExternalIntegerSimpleType(BaseModel): + __root__: Union[int, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + + +class RtcExternalParameterSimpleType(BaseModel): + __root__: Union[float, constr(regex=r'^([#-\$][\(-_a-z]+[#-\$])$')] + + +class RtcECORR(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcRFCF(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcSFCF(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTT(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTTI(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcHBVParameterInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ECORR: Optional[RtcECORR] = Field( + None, alias='rtc:ECORR', description='correction factor for EP' + ) + rtc_RFCF: Optional[RtcRFCF] = Field( + None, alias='rtc:RFCF', description='correction factor for rainfall' + ) + rtc_SFCF: Optional[RtcSFCF] = Field( + None, alias='rtc:SFCF', description='correction factor for snow' + ) + rtc_TT: RtcTT = Field( + ..., + alias='rtc:TT', + description='temperature limit for snow / rain [oC], normally close to 0 ', + ) + rtc_TTI: RtcTTI = Field( + ..., + alias='rtc:TTI', + description='temperature interval with a mixture of snow / rain [oC]', + ) + + +class RtcLIC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcHBVParameterInterceptionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_LIC: RtcLIC = Field( + ..., alias='rtc:LIC', description='maximum interception storage' + ) + + +class RtcALPHA(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcAREA(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcK(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcK1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcPERC1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcHBVParameterResponseComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ALPHA: RtcALPHA = Field( + ..., + alias='rtc:ALPHA', + description='response box parameter [-], usually between 1.0 and 2.0', + ) + rtc_AREA: RtcAREA = Field(..., alias='rtc:AREA', description='catchment area [km2]') + rtc_K: RtcK = Field(..., alias='rtc:K', description='recession coefficient') + rtc_K1: RtcK1 = Field( + ..., alias='rtc:K1', description='recession coefficient [1/day]' + ) + rtc_PERC: RtcPERC1 = Field( + ..., + alias='rtc:PERC', + description='percolation from upper to lower response box [mm/day], usually between 0 and 6', + ) + + +class RtcCFMAX(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcCFR(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcCWH(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTTM(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcHBVParameterSnowComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_CFMAX: RtcCFMAX = Field( + ..., + alias='rtc:CFMAX', + description='degree day factor [mm/(oC*day)], varies normally between 1.5 and 4, 2 and 3.5 can be used in forested and open\nlandscape respectively', + ) + rtc_CFR: RtcCFR = Field( + ..., alias='rtc:CFR', description='refreezing factor [-], about 0.05' + ) + rtc_CWH: RtcCWH = Field( + ..., alias='rtc:CWH', description='water holding capacity [-], usually 0.1' + ) + rtc_TTM: RtcTTM = Field( + ..., alias='rtc:TTM', description='temperature limit for melting [oC]' + ) + + +class RtcBETA(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcCFLUX(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcETF(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcFC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLP(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcHBVParameterSoilComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_BETA: RtcBETA = Field( + ..., + alias='rtc:BETA', + description='parameter in soil routine [-], usually between 1 and 6', + ) + rtc_CFLUX: RtcCFLUX = Field( + ..., alias='rtc:CFLUX', description='maximum value of CF' + ) + rtc_ETF: RtcETF = Field( + ..., alias='rtc:ETF', description='temperature correction factor' + ) + rtc_FC: RtcFC = Field( + ..., alias='rtc:FC', description='field capacity [mm], between 50 and 500' + ) + rtc_LP: RtcLP = Field( + ..., + alias='rtc:LP', + description='limit for potential evapotranspiration [-], in the range between 0.3 and 1', + ) + + +class RtcHydraulicModelModeEnumStringType(Enum): + SEQUENTIAL_EXPLICIT = 'SEQUENTIAL_EXPLICIT' + SEQUENTIAL_IMPLICIT = 'SEQUENTIAL_IMPLICIT' + SIMULTANEOUS = 'SIMULTANEOUS' + + +class RtcLayerIDSimpleType(BaseModel): + __root__: constr(regex=r'^([L][0-9]+)$') + + +class _1(Enum): + MONOTON = 'MONOTON' + POSITIVE = 'POSITIVE' + + +class RtcPropertyItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_1] = Field(None, alias='$') + + +class RtcAREA1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcKB(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcKS(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTB1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTB2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTS1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTS2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLorentGeversParameterResponseComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: RtcAREA1 = Field(..., alias='rtc:AREA') + rtc_KB: RtcKB = Field(..., alias='rtc:KB') + rtc_KS: RtcKS = Field(..., alias='rtc:KS') + rtc_TB1: RtcTB1 = Field(..., alias='rtc:TB1') + rtc_TB2: RtcTB2 = Field(..., alias='rtc:TB2') + rtc_TS1: RtcTS1 = Field(..., alias='rtc:TS1') + rtc_TS2: RtcTS2 = Field(..., alias='rtc:TS2') + + +class RtcBETA1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcPMAX(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcSMAX(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLorentGeversParameterSoilComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_BETA: RtcBETA1 = Field(..., alias='rtc:BETA') + rtc_PMAX: RtcPMAX = Field(..., alias='rtc:PMAX') + rtc_SMAX: RtcSMAX = Field(..., alias='rtc:SMAX') + + +class RtcMathematicalOperatorEnumStringType(Enum): + _ = '+' + __1 = '-' + __2 = '*' + __3 = '/' + min = 'min' + max = 'max' + __4 = '^' + + +class RtcMergerSplitterEnumStringType(Enum): + AVERAGE = 'AVERAGE' + DATAHIERARCHY = 'DATAHIERARCHY' + SUM = 'SUM' + + +class RtcBias(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcNeuronIDSimpleType(BaseModel): + __root__: constr(regex=r'^([L][0-9]+[N][0-9]+)$') + + +class RtcAREA2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcStateMax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcStateMin(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcAREA3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcCFLUX1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcFC1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterCapillaryFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA3] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_CFLUX: RtcCFLUX1 = Field( + ..., alias='rtc:CFLUX', description='maximum value of capillary flow [mm/d]' + ) + rtc_FC: RtcFC1 = Field(..., alias='rtc:FC', description='field capacity [mm]') + + +class RtcAREA4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcD4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcFC2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLP1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterEvaporationActualStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA4] = Field( + None, alias='rtc:AREA', description='area [1000 m2], default = 1.0' + ) + rtc_D: Optional[RtcD4] = Field( + None, + alias='rtc:D', + description='distance measure for smoothing the transitions [-]', + ) + rtc_FC: RtcFC2 = Field(..., alias='rtc:FC', description='field capacity [mm]') + rtc_LP: RtcLP1 = Field( + ..., alias='rtc:LP', description='limit for potential evaporation [-]' + ) + + +class RtcAREA5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterEvaporationInterceptionStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA5] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + + +class RtcECORR1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcETF1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterEvaporationPotentialComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ECORR: Optional[RtcECORR1] = Field( + None, + alias='rtc:ECORR', + description='evaporation correction factor, default = 1.0', + ) + rtc_ETF: RtcETF1 = Field( + ..., alias='rtc:ETF', description='temperature correction factor' + ) + + +class RtcAREA6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcIRRCONST(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcIRRTHR(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcM(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterIrrigationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA6] = Field( + None, alias='rtc:AREA', description='area [km2], default = 1.0' + ) + rtc_IRR_CONST: Optional[RtcIRRCONST] = Field( + None, alias='rtc:IRR_CONST', description='costant irrigation flux [mm/d]' + ) + rtc_IRR_THR: RtcIRRTHR = Field( + ..., + alias='rtc:IRR_THR', + description='Threshold of the downstream node under which irrigation is needed [mm]', + ) + rtc_M: Optional[RtcM] = Field(None, alias='rtc:M', description='smoothing factor') + + +class RtcAREA7(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcCFMAX1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcCFR1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcM1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTTM1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterMeltRefreezingStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA7] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_CFMAX: RtcCFMAX1 = Field( + ..., alias='rtc:CFMAX', description='degree day factor [mm/day]' + ) + rtc_CFR: RtcCFR1 = Field(..., alias='rtc:CFR', description='refreezing factor [-]') + rtc_M: Optional[RtcM1] = Field( + None, + alias='rtc:M', + description='smoothing factor, default = 0.05, more smoothing for higher value and vice versa', + ) + rtc_TTM: RtcTTM1 = Field( + ..., alias='rtc:TTM', description='temperature limit for melting [oC]' + ) + + +class RtcAREA8(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcPERC2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterPercolationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA8] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_PERC: RtcPERC2 = Field(..., alias='rtc:PERC', description='percolation [mm/d]') + + +class RtcAREA9(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcFRAC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLIC1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcM2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterReleaseAboveThresholdStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA9] = Field( + None, alias='rtc:AREA', description='area [km2], default = 1.0' + ) + rtc_FRAC: Optional[RtcFRAC] = Field( + None, + alias='rtc:FRAC', + description='percentage of the flow which flows towards the bucket of interest. The permitted range is between 0 and 100', + ) + rtc_LIC: RtcLIC1 = Field( + ..., + alias='rtc:LIC', + description='upper limit of (interception) storage node [mm]', + ) + rtc_M: Optional[RtcM2] = Field(None, alias='rtc:M', description='smoothing factor') + + +class RtcAREA10(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterReleaseTotalComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: RtcAREA10 = Field(..., alias='rtc:AREA', description='area [km2]') + + +class RtcAREA11(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcM3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcWHC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterReleaseWaterContentStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA11] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_M: Optional[RtcM3] = Field( + None, alias='rtc:M', description='smoothing coefficient' + ) + rtc_WHC: RtcWHC = Field( + ..., alias='rtc:WHC', description='water holding capacity [-]' + ) + + +class RtcALPHA1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcAREA12(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcK2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterResponseStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ALPHA: Optional[RtcALPHA1] = Field( + None, alias='rtc:ALPHA', description='response box parameter [-], default = 0.0' + ) + rtc_AREA: Optional[RtcAREA12] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_K: RtcK2 = Field(..., alias='rtc:K', description='recession coefficient [1/d]') + + +class RtcD5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcRFCF1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcSFCF1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTT1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTTI1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterSnowRainJunctionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_D: Optional[RtcD5] = Field( + None, + alias='rtc:D', + description='smoothing parameter for switching between a linear ramp (D=0.0) and a sigmoid function (D=1.0)', + ) + rtc_RFCF: Optional[RtcRFCF1] = Field( + None, + alias='rtc:RFCF', + description='rainfall correction factor [-], default is 1.0', + ) + rtc_SFCF: Optional[RtcSFCF1] = Field( + None, + alias='rtc:SFCF', + description='snowfall correction factor [-], default is 1.0', + ) + rtc_TT: RtcTT1 = Field( + ..., alias='rtc:TT', description='temperature limit for snow and rainfall [oC]' + ) + rtc_TTI: RtcTTI1 = Field( + ..., + alias='rtc:TTI', + description='temperature interval with a mixture of snow and rainfall [K]', + ) + + +class RtcAREA13(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcBETA2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcFC3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterSoilRunoffStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA13] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_BETA: RtcBETA2 = Field( + ..., alias='rtc:BETA', description='parameter in soil routine [-]' + ) + rtc_FC: RtcFC3 = Field(..., alias='rtc:FC', description='field capacity [mm]') + + +class RtcAREA14(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcD6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcM4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcMINUP(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterWaterDistributionConstantStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA14] = Field( + None, alias='rtc:AREA', description='area [km2], default = 1.0' + ) + rtc_D: RtcD6 = Field( + ..., alias='rtc:D', description='capacity of demand/abstraction [m3/s]' + ) + rtc_M: Optional[RtcM4] = Field(None, alias='rtc:M', description='smoothing factor') + rtc_MIN_UP: Optional[RtcMINUP] = Field( + None, + alias='rtc:MIN_UP', + description='minimum abstraction level upstream [mm]. Default 0, till empty.', + ) + + +class RtcAREA15(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcM5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcMINUP1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParameterWaterDistributionVariableStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AREA: Optional[RtcAREA15] = Field( + None, alias='rtc:AREA', description='area [km2], default = 1.0' + ) + rtc_M: Optional[RtcM5] = Field(None, alias='rtc:M', description='smoothing factor') + rtc_MIN_UP: Optional[RtcMINUP1] = Field( + None, + alias='rtc:MIN_UP', + description='minimum abstraction level upstream [mm]. Default 0, till empty.', + ) + + +class RtcALPHA2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcAREA16(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcK3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcMAXGFLOW(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcParametergroundwaterFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_ALPHA: RtcALPHA2 = Field( + ..., alias='rtc:ALPHA', description='Ground water reaction coefficient' + ) + rtc_AREA: Optional[RtcAREA16] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_K: RtcK3 = Field( + ..., alias='rtc:K', description='Ground water Conductivity [1/d]' + ) + rtc_MAX_GFLOW: RtcMAXGFLOW = Field( + ..., alias='rtc:MAX_GFLOW', description='Maximum groundwater flow [mm/d]' + ) + + +class _11(Enum): + NATIVE = 'NATIVE' + SOBEK2 = 'SOBEK2' + PIDPOS = 'PIDPOS' + PIDVEL = 'PIDVEL' + + +class RtcMode3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_11] = Field(None, alias='$') + + +class RtcX1Value1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcX2Value1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTailwaterConstant(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTurbineEfficiencyConstant(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcOF(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcPMValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcPXValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcQSValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcQTXValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcPt(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTLag(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcX10(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcY14(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcSRMParameterComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_Pt: RtcPt = Field( + ..., alias='rtc:Pt', description='precipitation threshold [mm]' + ) + rtc_TLag: RtcTLag = Field( + ..., alias='rtc:TLag', description='Time lag of input data [h]' + ) + rtc_x: RtcX10 = Field(..., alias='rtc:x', description='recession coefficient 1') + rtc_y: RtcY14 = Field(..., alias='rtc:y', description='recession coefficient 2') + + +class RtcTcr1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcTcr2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcA5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcArea(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcSpatialEnumStringType(Enum): + CENTRAL = 'CENTRAL' + UPWIND = 'UPWIND' + + +class RtcA6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcB3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcC3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcD7(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcA7(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class _12(Enum): + NATIVE = 'NATIVE' + RETAINVALUEWHENINACTIVE = 'RETAINVALUEWHENINACTIVE' + + +class RtcMode5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[_12] = Field(None, alias='$') + + +class RtcTimeSeriesSimpleType(BaseModel): + __root__: constr(min_length=1) + + +class RtcTimeZoneSimpleType(BaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + ) + + +class RtcInput(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcStatus4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTriggerInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_status: RtcStatus4 = Field(..., alias='rtc:status') + + +class RtcStatus5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTimeFalse1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTimeTrue1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTriggerOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_status: RtcStatus5 = Field(..., alias='rtc:status') + rtc_timeFalse: Optional[RtcTimeFalse1] = Field(None, alias='rtc:timeFalse') + rtc_timeTrue: Optional[RtcTimeTrue1] = Field(None, alias='rtc:timeTrue') + + +class RtcRelativeRelease(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRelease3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTurbineInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_relativeRelease: Optional[RtcRelativeRelease] = Field( + None, + alias='rtc:relativeRelease', + description='provision of relative turbine release, 1 = maximum capacity', + ) + rtc_release: Optional[RtcRelease3] = Field( + None, alias='rtc:release', description='provision of absolute turbine release' + ) + + +class RtcPower(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTurbineOutputCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_power: RtcPower = Field(..., alias='rtc:power', description='power output [MW]') + + +class RtcDischarge3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPowerProduction(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTurbineOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_discharge: RtcDischarge3 = Field( + ..., alias='rtc:discharge', description='discharge in m3/s' + ) + rtc_powerProduction: RtcPowerProduction = Field( + ..., alias='rtc:powerProduction', description='power production in MW' + ) + + +class RtcOutput2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRelease4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUOutletInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_release: RtcRelease4 = Field(..., alias='rtc:release') + + +class RtcNStep(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcX12(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUnitDelayInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX12 = Field(..., alias='rtc:x') + + +class RtcYItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcYFinal(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcYMax1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcYMean(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcYMin1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcYSum1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcYVector1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUnitDelayOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: Optional[List[RtcYItem]] = Field(None, alias='rtc:y') + rtc_yFinal: Optional[RtcYFinal] = Field( + None, + alias='rtc:yFinal', + description='optional result of the delay operator, identical to yVector[end] if the delay is a multiple of the time step, required in case of sub time steps', + ) + rtc_yMax: Optional[RtcYMax1] = Field(None, alias='rtc:yMax') + rtc_yMean: Optional[RtcYMean] = Field( + None, alias='rtc:yMean', description='optional mean of input and outputs' + ) + rtc_yMin: Optional[RtcYMin1] = Field(None, alias='rtc:yMin') + rtc_ySum: Optional[RtcYSum1] = Field( + None, alias='rtc:ySum', description='optional sum of input and outputs' + ) + rtc_yVector: Optional[RtcYVector1] = Field(None, alias='rtc:yVector') + + +class RtcX13(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUnitHydrographInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX13 = Field(..., alias='rtc:x') + + +class RtcXDelayItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcXDelayVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcY18(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUnitHydrographOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_xDelay: Optional[List[RtcXDelayItem]] = Field(None, alias='rtc:xDelay') + rtc_xDelayVector: Optional[RtcXDelayVector] = Field( + None, + alias='rtc:xDelayVector', + description='definition of delay vector, configure one element less than weights defined above', + ) + rtc_y: RtcY18 = Field(..., alias='rtc:y', description='result of unit hydrograph') + + +class RtcNSteps(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcUnitTypeEnumStringType(Enum): + SI = 'SI' + Imperial = 'Imperial' + + +class RtcVariableTypeEnumStringType(Enum): + CONTINUOUS = 'CONTINUOUS' + INTEGER = 'INTEGER' + TIMEINSTANCE = 'TIMEINSTANCE' + + +class RtcCaseLangetenEnumStringType(Enum): + integer_1 = 1 + integer_2 = 2 + + +class RtcDateType(BaseModel): + __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + + +class RtcFlowDirectionEnumStringTypeEnum(Enum): + POSITIVE = 'POSITIVE' + NEGATIVE = 'NEGATIVE' + BOTH = 'BOTH' + + +class RtcFlowDirectionEnumStringType(BaseModel): + __root__: Union[ + RtcFlowDirectionEnumStringTypeEnum, constr(regex=r'^([\$][\(-_a-z]+[\$])$') + ] = Field(..., description='flow direction') + + +class RtcInputReferenceEnumStringType(Enum): + EXPLICIT = 'EXPLICIT' + IMPLICIT = 'IMPLICIT' + + +class RtcInterpolationOptionEnumStringType(Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class RtcLimiterOptionEnumStringType(Enum): + PERCENTAGE = 'PERCENTAGE' + ABSOLUTE = 'ABSOLUTE' + + +class RtcLogicalOperatorEnumStringType(Enum): + AND = 'AND' + OR = 'OR' + XOR = 'XOR' + + +class RtcInput1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPoolRoutingEnumStringType(Enum): + ForwardEuler = 'ForwardEuler' + BackwardEuler = 'BackwardEuler' + Theta = 'Theta' + + +class RtcRelationalOperatorEnumStringType(Enum): + Less = 'Less' + LessEqual = 'LessEqual' + Equal = 'Equal' + Unequal = 'Unequal' + GreaterEqual = 'GreaterEqual' + Greater = 'Greater' + + +class RtcTimeRelativeEnumStringType(Enum): + ABSOLUTE = 'ABSOLUTE' + RELATIVE = 'RELATIVE' + + +class RtcTimeSeriesType(Enum): + accumulative = 'accumulative' + instantaneous = 'instantaneous' + + +class RtcTimeStepUnitEnumStringType(Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + + +class RtcTimeType(BaseModel): + __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + + +class RtcTransferFunctionEnumStringType(Enum): + Linear = 'Linear' + SigmoidLogistic = 'SigmoidLogistic' + Tansig = 'Tansig' + + +class XsBoolean(BaseModel): + __root__: bool + + +class XsDateTime(BaseModel): + __root__: str + + +class XsDouble(BaseModel): + __root__: float + + +class XsFloat(BaseModel): + __root__: float + + +class XsGMonthDay(BaseModel): + __root__: str + + +class XsInt(BaseModel): + __root__: conint(ge=-2147483648, le=2147483647) + + +class XsInteger(BaseModel): + __root__: int + + +class XsPositiveInteger(BaseModel): + __root__: conint(ge=1) + + +class XsString(BaseModel): + __root__: str + + +class XsTime(BaseModel): + __root__: str + + +class RtcRowItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _value: XsDouble = Field(..., alias='@value') + + +class RtcATableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_row: List[RtcRowItem] = Field(..., alias='rtc:row', min_items=1) + + +class RtcMultiplier(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcX(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcAccumulationInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX = Field(..., alias='rtc:x') + + +class RtcY(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcAccumulationOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: RtcY = Field(..., alias='rtc:y') + + +class RtcFactorRTG(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcLangeteFall(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcCaseLangetenEnumStringType] = Field(None, alias='$') + + +class RtcAareBruegg(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcAareBrueggMin2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcAareMurg(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcAbflussReglementPort(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcEmenmatt(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcEmenmattMin4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLangeten(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLangetenMin4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPegelBielersee(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcAebiRuleInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AareBruegg: RtcAareBruegg = Field(..., alias='rtc:AareBruegg') + rtc_AareBrueggMin2: RtcAareBrueggMin2 = Field(..., alias='rtc:AareBrueggMin2') + rtc_AareMurg: RtcAareMurg = Field(..., alias='rtc:AareMurg') + rtc_AbflussReglementPort: RtcAbflussReglementPort = Field( + ..., alias='rtc:AbflussReglementPort' + ) + rtc_Emenmatt: RtcEmenmatt = Field(..., alias='rtc:Emenmatt') + rtc_EmenmattMin4: RtcEmenmattMin4 = Field(..., alias='rtc:EmenmattMin4') + rtc_Langeten: RtcLangeten = Field(..., alias='rtc:Langeten') + rtc_LangetenMin4: RtcLangetenMin4 = Field(..., alias='rtc:LangetenMin4') + rtc_PegelBielersee: RtcPegelBielersee = Field(..., alias='rtc:PegelBielersee') + + +class RtcAareMurgOKWMin1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcAbflussaenderungPort(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcMaxAbflussPort(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcProvMaxAbflussPort(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRTG(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcAebiRuleOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_AareMurg_oKWMin1: RtcAareMurgOKWMin1 = Field(..., alias='rtc:AareMurg_oKWMin1') + rtc_AbflussaenderungPort: RtcAbflussaenderungPort = Field( + ..., alias='rtc:AbflussaenderungPort' + ) + rtc_MaxAbflussPort: RtcMaxAbflussPort = Field(..., alias='rtc:MaxAbflussPort') + rtc_ProvMaxAbflussPort: RtcProvMaxAbflussPort = Field( + ..., alias='rtc:ProvMaxAbflussPort' + ) + rtc_RTG: RtcRTG = Field(..., alias='rtc:RTG') + + +class RtcTableExternal(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcArCoef(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcObs(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSim(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcArmaInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_obs: RtcObs = Field(..., alias='rtc:obs', description='observed data') + rtc_sim: RtcSim = Field(..., alias='rtc:sim', description='simulated data') + + +class RtcArma(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcArmaOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_arma: RtcArma = Field( + ..., alias='rtc:arma', description='output-corrected data' + ) + + +class RtcAlpha1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcAlpha2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcEquationType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcEquationEnumStringType] = Field(None, alias='$') + + +class RtcLength(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSlope(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSpatialScheme(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcSpatialEnumStringType] = Field(None, alias='$') + + +class RtcStorageDown(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcStorageUp(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSurfaceAreaDown(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSurfaceAreaUp(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcBranchGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_storageDown: RtcStorageDown = Field(..., alias='rtc:storageDown') + rtc_storageUp: RtcStorageUp = Field(..., alias='rtc:storageUp') + rtc_surfaceAreaDown: RtcSurfaceAreaDown = Field(..., alias='rtc:surfaceAreaDown') + rtc_surfaceAreaUp: RtcSurfaceAreaUp = Field(..., alias='rtc:surfaceAreaUp') + + +class RtcHDown(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUx(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUy(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcBranchInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HDown: RtcHDown = Field( + ..., alias='rtc:HDown', description='ID of downstream node' + ) + rtc_HUp: RtcHUp = Field(..., alias='rtc:HUp', description='ID of upstream node') + rtc_ux: Optional[RtcUx] = Field( + None, + alias='rtc:ux', + description='optional wind velocity at an elevation of 10 m above the water surface (x-direction), implementation is for the inertial model only', + ) + rtc_uy: Optional[RtcUy] = Field( + None, + alias='rtc:uy', + description='optional wind velocity at an elevation of 10 m above the water surface (y-direction), implementation is for the inertial model only', + ) + + +class RtcQ(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcBranchOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_Q: RtcQ = Field(..., alias='rtc:Q') + + +class RtcColumnsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _head01: XsDouble = Field(..., alias='@head01') + _head02: XsDouble = Field(..., alias='@head02') + _head03: Optional[XsDouble] = Field(None, alias='@head03') + _head04: Optional[XsDouble] = Field(None, alias='@head04') + _head05: Optional[XsDouble] = Field(None, alias='@head05') + _head06: Optional[XsDouble] = Field(None, alias='@head06') + _head07: Optional[XsDouble] = Field(None, alias='@head07') + _head08: Optional[XsDouble] = Field(None, alias='@head08') + _head09: Optional[XsDouble] = Field(None, alias='@head09') + _head10: Optional[XsDouble] = Field(None, alias='@head10') + _head11: Optional[XsDouble] = Field(None, alias='@head11') + _head12: Optional[XsDouble] = Field(None, alias='@head12') + _head13: Optional[XsDouble] = Field(None, alias='@head13') + _head14: Optional[XsDouble] = Field(None, alias='@head14') + _head15: Optional[XsDouble] = Field(None, alias='@head15') + _head16: Optional[XsDouble] = Field(None, alias='@head16') + _head17: Optional[XsDouble] = Field(None, alias='@head17') + _head18: Optional[XsDouble] = Field(None, alias='@head18') + _head19: Optional[XsDouble] = Field(None, alias='@head19') + _head20: Optional[XsDouble] = Field(None, alias='@head20') + + +class RtcGreaterThan(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcLessThan(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcConditionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_greaterThan: Optional[RtcGreaterThan] = Field(None, alias='rtc:greaterThan') + rtc_lessThan: Optional[RtcLessThan] = Field(None, alias='rtc:lessThan') + + +class RtcA(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcB(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcD(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcConnectionCoefficientsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_a: RtcA = Field(..., alias='rtc:a') + rtc_b: RtcB = Field(..., alias='rtc:b') + rtc_c: RtcC = Field(..., alias='rtc:c') + rtc_d: RtcD = Field(..., alias='rtc:d') + + +class RtcDischarge(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDownstreamLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUpstreamLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcConnectionInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_discharge: RtcDischarge = Field(..., alias='rtc:discharge') + rtc_downstreamLevel: RtcDownstreamLevel = Field(..., alias='rtc:downstreamLevel') + rtc_upstreamLevel: RtcUpstreamLevel = Field(..., alias='rtc:upstreamLevel') + + +class RtcDischarge1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcConnectionOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_discharge: RtcDischarge1 = Field(..., alias='rtc:discharge') + + +class RtcConstant(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcY1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcConstantRuleOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: RtcY1 = Field(..., alias='rtc:y') + + +class RtcDataTypicalProfileComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _monthOfYear: _MonthOfYear = Field(..., alias='@monthOfYear') + _value: XsDouble = Field(..., alias='@value') + + +class RtcDateComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _monthDay: XsGMonthDay = Field(..., alias='@monthDay') + + +class RtcX1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcY2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDateLookupTableInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX1 = Field(..., alias='rtc:x') + rtc_y: Optional[RtcY2] = Field(None, alias='rtc:y') + + +class RtcActive(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcY3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDateLookupTableOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_active: Optional[RtcActive] = Field(None, alias='rtc:active') + rtc_y: RtcY3 = Field(..., alias='rtc:y') + + +class RtcDateRecord2DataComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _x: XsDouble = Field(..., alias='@x') + _y: XsDouble = Field(..., alias='@y') + + +class RtcDateRecordComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _comment: Optional[XsString] = Field(None, alias='@comment') + _dateTime: Optional[XsDateTime] = Field(None, alias='@dateTime') + _monthDay: Optional[XsGMonthDay] = Field(None, alias='@monthDay') + _time: Optional[XsTime] = Field(None, alias='@time') + _value: XsDouble = Field(..., alias='@value') + + +class RtcDateTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_data: List[RtcDateRecordComplexType] = Field(..., alias='rtc:data', min_items=1) + + +class RtcDateTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _date: RtcDateType = Field(..., alias='@date') + _time: RtcTimeType = Field(..., alias='@time') + + +class RtcNumberOfStepsDown(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcNumberOfStepsUp(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInt] = Field(None, alias='$') + + +class RtcDeadBandTimeDiscreteComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_numberOfStepsDown: RtcNumberOfStepsDown = Field( + ..., alias='rtc:numberOfStepsDown' + ) + rtc_numberOfStepsUp: RtcNumberOfStepsUp = Field(..., alias='rtc:numberOfStepsUp') + + +class RtcDeadBandTimeInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: rtc_TimeSeriesSimpleType.Field20 = Field(..., alias='rtc:x') + + +class RtcStatus(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcStepsDown(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcStepsUp(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTimeFalse(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTimeTrue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDeadBandTimeOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_status: RtcStatus = Field(..., alias='rtc:status') + rtc_stepsDown: RtcStepsDown = Field(..., alias='rtc:stepsDown') + rtc_stepsUp: RtcStepsUp = Field(..., alias='rtc:stepsUp') + rtc_timeFalse: Optional[RtcTimeFalse] = Field(None, alias='rtc:timeFalse') + rtc_timeTrue: Optional[RtcTimeTrue] = Field(None, alias='rtc:timeTrue') + + +class RtcDefault(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcThreshold(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcX2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDeadBandValueInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX2 = Field(..., alias='rtc:x') + + +class RtcEdgeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _x1: XsDouble = Field(..., alias='@x1') + _x2: XsDouble = Field(..., alias='@x2') + + +class RtcEdgesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_edge: List[RtcEdgeComplexType] = Field(..., alias='rtc:edge', min_items=1) + + +class RtcA1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcB1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcEifelRurRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_a: RtcA1 = Field(..., alias='rtc:a') + rtc_b: RtcB1 = Field(..., alias='rtc:b') + rtc_minimumRelativeStorage: RtcDateTableComplexType = Field( + ..., alias='rtc:minimumRelativeStorage' + ) + + +class RtcElevationRecordComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _elevation: XsDouble = Field(..., alias='@elevation') + _value: RtcExternalParameterSimpleType = Field(..., alias='@value') + + +class RtcElevationTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_elevationRecord: List[RtcElevationRecordComplexType] = Field( + ..., alias='rtc:elevationRecord', min_items=1 + ) + + +class RtcA2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcB2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcC1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcLowerLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcUpperLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcEquationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_a: RtcA2 = Field(..., alias='rtc:a') + rtc_b: RtcB2 = Field(..., alias='rtc:b') + rtc_c: RtcC1 = Field(..., alias='rtc:c') + rtc_lowerLevel: Optional[RtcLowerLevel] = Field(None, alias='rtc:lowerLevel') + rtc_upperLevel: Optional[RtcUpperLevel] = Field(None, alias='rtc:upperLevel') + + +class RtcEquationsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_equation: List[RtcEquationComplexType] = Field( + ..., alias='rtc:equation', min_items=1 + ) + + +class RtcMathematicalOperator(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcMathematicalOperatorEnumStringType] = Field(None, alias='$') + + +class RtcX1Value(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcX2Value(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + + +class RtcY4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcYVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcExpressionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_mathematicalOperator: RtcMathematicalOperator = Field( + ..., + alias='rtc:mathematicalOperator', + description='mathematical operator: + (summation), - (substraction), * (multiplication), / (division), min, max, ^ (power)', + ) + rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field2] = Field( + None, alias='rtc:x1Series', description='reference to time series ID' + ) + rtc_x1SeriesVector: Optional[rtc_TimeSeriesSimpleType.Field3] = Field( + None, + alias='rtc:x1SeriesVector', + description='reference to time series ID vector', + ) + rtc_x1Value: Optional[RtcX1Value] = Field( + None, alias='rtc:x1Value', description='user-configured constant value' + ) + rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field4] = Field( + None, alias='rtc:x2Series' + ) + rtc_x2SeriesVector: Optional[rtc_TimeSeriesSimpleType.Field5] = Field( + None, alias='rtc:x2SeriesVector' + ) + rtc_x2Value: Optional[RtcX2Value] = Field(None, alias='rtc:x2Value') + rtc_y: Optional[RtcY4] = Field( + None, alias='rtc:y', description='time series ID of resulting value' + ) + rtc_yVector: Optional[RtcYVector] = Field( + None, + alias='rtc:yVector', + description='time series ID vector of resulting value', + ) + + +class RtcDescription(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcPoolRoutingScheme(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcPoolRoutingEnumStringType] = Field(None, alias='$') + + +class RtcTheta(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcGeneralModuleConfigComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_description: Optional[RtcDescription] = Field( + None, alias='rtc:description', description='DEPRICATED' + ) + rtc_poolRoutingScheme: RtcPoolRoutingScheme = Field( + ..., alias='rtc:poolRoutingScheme', description='DEPRICATED' + ) + rtc_theta: RtcTheta = Field(..., alias='rtc:theta', description='DEPRICATED') + + +class RtcMultiplier1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcX3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcGradientInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX3 = Field(..., alias='rtc:x') + + +class RtcDx(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcGradientOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_dx: RtcDx = Field(..., alias='rtc:dx') + + +class RtcYMax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcYMaxSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcYMin(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcYMinSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcX4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcY5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcGuideBandRuleInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX4 = Field(..., alias='rtc:x') + rtc_y: Optional[RtcY5] = Field(None, alias='rtc:y') + + +class RtcY6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcGuideBandRuleOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: RtcY6 = Field(..., alias='rtc:y') + + +class RtcEP(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcP(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcT(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTM(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHBVInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_EP: RtcEP = Field(..., alias='rtc:EP') + rtc_P: RtcP = Field(..., alias='rtc:P') + rtc_T: RtcT = Field(..., alias='rtc:T') + rtc_TM: RtcTM = Field(..., alias='rtc:TM') + + +class RtcCF(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcEA(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcEI(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcEP1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcIN(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcINI(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPERC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcR(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHBVLinkComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_CF: RtcCF = Field(..., alias='rtc:CF') + rtc_EA: RtcEA = Field(..., alias='rtc:EA') + rtc_EI: RtcEI = Field(..., alias='rtc:EI') + rtc_EP: RtcEP1 = Field(..., alias='rtc:EP') + rtc_IN: RtcIN = Field(..., alias='rtc:IN') + rtc_INI: RtcINI = Field(..., alias='rtc:INI') + rtc_PERC: RtcPERC = Field(..., alias='rtc:PERC') + rtc_R: RtcR = Field(..., alias='rtc:R') + + +class RtcQ1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSMPercentage(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSWE(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHBVOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_Q: RtcQ1 = Field(..., alias='rtc:Q') + rtc_SMPercentage: Optional[RtcSMPercentage] = Field(None, alias='rtc:SMPercentage') + rtc_SWE: Optional[RtcSWE] = Field(None, alias='rtc:SWE') + + +class RtcIC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLZ(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSM(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSP(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUZ(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcWC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHBVStateComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_IC: RtcIC = Field(..., alias='rtc:IC') + rtc_LZ: RtcLZ = Field(..., alias='rtc:LZ') + rtc_SM: RtcSM = Field(..., alias='rtc:SM') + rtc_SP: RtcSP = Field(..., alias='rtc:SP') + rtc_UZ: RtcUZ = Field(..., alias='rtc:UZ') + rtc_WC: RtcWC = Field(..., alias='rtc:WC') + + +class RtcIC1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLZ1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSM1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSP1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUZ1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcWC1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHBVStateUpdateComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_IC: Optional[RtcIC1] = Field(None, alias='rtc:IC') + rtc_LZ: Optional[RtcLZ1] = Field( + None, alias='rtc:LZ', description='increment on lower zone storage [mm]' + ) + rtc_SM: Optional[RtcSM1] = Field( + None, alias='rtc:SM', description='STILL NOT IMPLEMENTED' + ) + rtc_SP: Optional[RtcSP1] = Field( + None, alias='rtc:SP', description='STILL NOT IMPLEMENTED' + ) + rtc_UZ: Optional[RtcUZ1] = Field( + None, alias='rtc:UZ', description='STILL NOT IMPLEMENTED' + ) + rtc_WC: Optional[RtcWC1] = Field( + None, alias='rtc:WC', description='STILL NOT IMPLEMENTED' + ) + + +class RtcMode(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcHydraulicModelModeEnumStringType] = Field(None, alias='$') + + +class RtcNumericalTolerance(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcNFun(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcNJac(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRes(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHydraulicModelOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_nFun: RtcNFun = Field( + ..., alias='rtc:nFun', description='number of function evaluations' + ) + rtc_nJac: RtcNJac = Field( + ..., alias='rtc:nJac', description='number of evaluations of the Jacobian' + ) + rtc_res: RtcRes = Field( + ..., + alias='rtc:res', + description='residuum at last iteration step, 0.5*sum(SQR(ri))', + ) + + +class RtcConvergenceThreshold(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcTheta1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcTreatNonConvergenceAsError(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcHydraulicModelSequentialImplicitComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_convergenceThreshold: RtcConvergenceThreshold = Field( + ..., alias='rtc:convergenceThreshold' + ) + rtc_theta: RtcTheta1 = Field(..., alias='rtc:theta') + rtc_treatNonConvergenceAsError: RtcTreatNonConvergenceAsError = Field( + ..., alias='rtc:treatNonConvergenceAsError' + ) + + +class RtcTheta2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcHydraulicModelSimultaneousComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_theta: RtcTheta2 = Field(..., alias='rtc:theta') + + +class RtcInflowComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _factor: Optional[XsDouble] = Field(None, alias='@factor') + + +class RtcValueSelection(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcX5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputATableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_valueSelection: Optional[RtcValueSelection] = Field( + None, alias='rtc:valueSelection' + ) + rtc_x: RtcX5 = Field(..., alias='rtc:x') + + +class RtcHDown1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputCapillaryFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HDown: RtcHDown1 = Field( + ..., + alias='rtc:HDown', + description='downstream node, typically UZ unsaturted zone', + ) + rtc_HUp: RtcHUp1 = Field( + ..., alias='rtc:HUp', description='upstream node, typically GW upper zone' + ) + + +class RtcEI1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcEP2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputEvaporationActualStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_EI: Optional[RtcEI1] = Field(None, alias='rtc:EI') + rtc_EP: RtcEP2 = Field(..., alias='rtc:EP') + rtc_HUp: RtcHUp2 = Field( + ..., alias='rtc:HUp', description='upstream node, typically SM (soil moisture)' + ) + + +class RtcEP3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputEvaporationInterceptionStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_EP: RtcEP3 = Field( + ..., alias='rtc:EP', description='potential evaporation [mm]' + ) + rtc_HUp: RtcHUp3 = Field( + ..., alias='rtc:HUp', description='upstream node, typically IC (interception)' + ) + + +class RtcEPM(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcT1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTM1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputEvaporationPotentialComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_EPM: RtcEPM = Field( + ..., + alias='rtc:EPM', + description='monthly mean value of potential evaporation [mm/timestep]', + ) + rtc_T: RtcT1 = Field( + ..., alias='rtc:T', description='instantaneous temperature [oC]' + ) + rtc_TM: RtcTM1 = Field( + ..., alias='rtc:TM', description='monthly mean temperature [oC]' + ) + + +class RtcHDown2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputGroundwaterFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HDown: RtcHDown2 = Field( + ..., + alias='rtc:HDown', + description='downstream node, can be GW groundwater or SW surface water', + ) + rtc_HUp: RtcHUp4 = Field( + ..., + alias='rtc:HUp', + description='upstream node, can be GW groundwater or SW surface water', + ) + + +class RtcDischargeItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcState(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcUnitVolumeItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputNodeStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_discharge: Optional[List[RtcDischargeItem]] = Field(None, alias='rtc:discharge') + rtc_state: Optional[RtcState] = Field( + None, + alias='rtc:state', + description='unit volume [mm], replaces the computes state', + ) + rtc_unitVolume: Optional[List[RtcUnitVolumeItem]] = Field( + None, alias='rtc:unitVolume' + ) + + +class RtcHDown3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputPercolationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HDown: Optional[RtcHDown3] = Field( + None, + alias='rtc:HDown', + description='downstream node, typically LZ (lower zone storage)', + ) + rtc_HUp: RtcHUp5 = Field( + ..., + alias='rtc:HUp', + description='upstream node, typically UZ (upper zone storage)', + ) + + +class RtcSetpointSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSetpointValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcX6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputPidComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_disturbance: Optional[rtc_TimeSeriesSimpleType.Field8] = Field( + None, alias='rtc:disturbance' + ) + rtc_setpointSeries: Optional[RtcSetpointSeries] = Field( + None, alias='rtc:setpointSeries' + ) + rtc_setpointValue: Optional[RtcSetpointValue] = Field( + None, alias='rtc:setpointValue' + ) + rtc_x: RtcX6 = Field(..., alias='rtc:x', description='controllable variable') + + +class RtcHDown4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputReleaseAboveThresholdStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HDown: Optional[RtcHDown4] = Field( + None, alias='rtc:HDown', description='downstream node' + ) + rtc_HUp: RtcHUp6 = Field(..., alias='rtc:HUp', description='upstream node') + + +class RtcDischargeItem1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputReleaseTotalComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_discharge: List[RtcDischargeItem1] = Field( + ..., alias='rtc:discharge', min_items=1 + ) + + +class RtcHUp7(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputResponseStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HUp: RtcHUp7 = Field( + ..., + alias='rtc:HUp', + description='upstream (release) node, typically UZ and/or LZ (upper/lower zone storages)', + ) + + +class RtcP1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcT2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputSnowRainJunctionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_P: RtcP1 = Field(..., alias='rtc:P', description='precipitation [mm/timestep]') + rtc_T: RtcT2 = Field(..., alias='rtc:T', description='temperature [oC]') + + +class RtcHDown5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp8(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcINFItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputSoilRunoffStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HDown: Optional[RtcHDown5] = Field( + None, + alias='rtc:HDown', + description='optional downstream node, typically uper saturated zones (UZ upper zone storage). Required if capillary flow is used and SM and UZ are present in one storage system', + ) + rtc_HUp: RtcHUp8 = Field( + ..., + alias='rtc:HUp', + description='upstream node, typically unsaturated zone (SM soil moisture)', + ) + rtc_INF: List[RtcINFItem] = Field(..., alias='rtc:INF', min_items=1) + + +class RtcHDown6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp9(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputWaterDistributionConstantStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HDown: Optional[RtcHDown6] = Field( + None, + alias='rtc:HDown', + description='downstream node collector of abstracted water. For instance drinking water treatment plant', + ) + rtc_HUp: RtcHUp9 = Field( + ..., + alias='rtc:HUp', + description='upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)', + ) + + +class RtcD1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHDown7(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp10(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInputWaterDistributionVariableStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_D: RtcD1 = Field( + ..., + alias='rtc:D', + description='series of industrial or domestic water demands/abstractions [m3/s]', + ) + rtc_HDown: Optional[RtcHDown7] = Field( + None, + alias='rtc:HDown', + description='downstream node collector of abstracted water. For instance drinking water treatment plant', + ) + rtc_HUp: RtcHUp10 = Field( + ..., + alias='rtc:HUp', + description='upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)', + ) + + +class RtcDate(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + + +class RtcValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + + +class RtcInterpolationOptionsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_date: RtcDate = Field(..., alias='rtc:date') + rtc_value: RtcValue = Field(..., alias='rtc:value') + + +class RtcDeadbandSetpointAbsolute(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcDeadbandSetpointRelative(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSettingAbove(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSettingBelow(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSettingMaxSpeed(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSettingMaxStep(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSetpoint(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcIntervalInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_setpoint: RtcSetpoint = Field(..., alias='rtc:setpoint') + rtc_x: rtc_TimeSeriesSimpleType.Field9 = Field( + ..., alias='rtc:x', description='reference to time series ID' + ) + + +class RtcStatus1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcY7(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcIntervalOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_status: RtcStatus1 = Field(..., alias='rtc:status') + rtc_y: RtcY7 = Field(..., alias='rtc:y') + + +class RtcA0(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcA11(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcA21(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcA3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcA4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcLevelStorageEquationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_A0: RtcA0 = Field(..., alias='rtc:A0') + rtc_A1: RtcA11 = Field(..., alias='rtc:A1') + rtc_A2: Optional[RtcA21] = Field(None, alias='rtc:A2') + rtc_A3: Optional[RtcA3] = Field(None, alias='rtc:A3') + rtc_A4: Optional[RtcA4] = Field(None, alias='rtc:A4') + + +class RtcMode1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcLimiterOptionEnumStringType] = Field(None, alias='$') + + +class RtcThresholdValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcX7(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLimiterInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_thresholdSeries: Optional[rtc_TimeSeriesSimpleType.Field21] = Field( + None, alias='rtc:thresholdSeries' + ) + rtc_thresholdValue: Optional[RtcThresholdValue] = Field( + None, alias='rtc:thresholdValue' + ) + rtc_x: RtcX7 = Field(..., alias='rtc:x') + + +class RtcX8(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcY8(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcZ(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLookup2DTableInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX8 = Field(..., alias='rtc:x') + rtc_y: RtcY8 = Field(..., alias='rtc:y') + rtc_z: Optional[RtcZ] = Field(None, alias='rtc:z') + + +class RtcZ1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLookup2DTableOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_z: RtcZ1 = Field(..., alias='rtc:z') + + +class RtcExtrapolationOption(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + + +class RtcInterpolationOption(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + + +class RtcTableExternal1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcY9(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLookupTableInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: rtc_TimeSeriesSimpleType.Field10 = Field( + ..., alias='rtc:x', description='reference to time series ID' + ) + rtc_y: Optional[RtcY9] = Field(None, alias='rtc:y') + + +class RtcY10(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLookupTableOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: RtcY10 = Field(..., alias='rtc:y') + + +class RtcEP4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcP2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLorentGeversInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_EP: RtcEP4 = Field(..., alias='rtc:EP') + rtc_P: RtcP2 = Field(..., alias='rtc:P') + + +class RtcQ2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLorentGeversOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_Q: RtcQ2 = Field(..., alias='rtc:Q') + + +class RtcQB1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQB2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQS1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQS2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcS(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLorentGeversStateComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_QB1: RtcQB1 = Field(..., alias='rtc:QB1') + rtc_QB2: RtcQB2 = Field(..., alias='rtc:QB2') + rtc_QS1: RtcQS1 = Field(..., alias='rtc:QS1') + rtc_QS2: RtcQS2 = Field(..., alias='rtc:QS2') + rtc_S: RtcS = Field(..., alias='rtc:S') + + +class RtcS1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLorentGeversStateUpdateComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_S: RtcS1 = Field(..., alias='rtc:S') + + +class RtcMaxFlowsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _maxFlow_head01: XsDouble = Field(..., alias='@maxFlow_head01') + _maxFlow_head02: XsDouble = Field(..., alias='@maxFlow_head02') + _maxFlow_head03: Optional[XsDouble] = Field(None, alias='@maxFlow_head03') + _maxFlow_head04: Optional[XsDouble] = Field(None, alias='@maxFlow_head04') + _maxFlow_head05: Optional[XsDouble] = Field(None, alias='@maxFlow_head05') + _maxFlow_head06: Optional[XsDouble] = Field(None, alias='@maxFlow_head06') + _maxFlow_head07: Optional[XsDouble] = Field(None, alias='@maxFlow_head07') + _maxFlow_head08: Optional[XsDouble] = Field(None, alias='@maxFlow_head08') + _maxFlow_head09: Optional[XsDouble] = Field(None, alias='@maxFlow_head09') + _maxFlow_head10: Optional[XsDouble] = Field(None, alias='@maxFlow_head10') + _maxFlow_head11: Optional[XsDouble] = Field(None, alias='@maxFlow_head11') + _maxFlow_head12: Optional[XsDouble] = Field(None, alias='@maxFlow_head12') + _maxFlow_head13: Optional[XsDouble] = Field(None, alias='@maxFlow_head13') + _maxFlow_head14: Optional[XsDouble] = Field(None, alias='@maxFlow_head14') + _maxFlow_head15: Optional[XsDouble] = Field(None, alias='@maxFlow_head15') + _maxFlow_head16: Optional[XsDouble] = Field(None, alias='@maxFlow_head16') + _maxFlow_head17: Optional[XsDouble] = Field(None, alias='@maxFlow_head17') + _maxFlow_head18: Optional[XsDouble] = Field(None, alias='@maxFlow_head18') + _maxFlow_head19: Optional[XsDouble] = Field(None, alias='@maxFlow_head19') + _maxFlow_head20: Optional[XsDouble] = Field(None, alias='@maxFlow_head20') + + +class RtcMergerInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: List[rtc_TimeSeriesSimpleType.Field11] = Field( + ..., alias='rtc:x', min_items=1 + ) + + +class RtcY11(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcYSum(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcMergerOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: Optional[RtcY11] = Field(None, alias='rtc:y') + rtc_ySum: Optional[RtcYSum] = Field(None, alias='rtc:ySum') + + +class RtcMode2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcMergerSplitterEnumStringType] = Field(None, alias='$') + + +class RtcMergerSplitterInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: Optional[List[rtc_TimeSeriesSimpleType.Field17]] = Field(None, alias='rtc:x') + rtc_xVector: Optional[rtc_TimeSeriesSimpleType.Field18] = Field( + None, alias='rtc:xVector' + ) + + +class RtcMergerSplitterOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: Optional[List[rtc_TimeSeriesSimpleType.Field19]] = Field(None, alias='rtc:y') + + +class RtcTransferFunction(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTransferFunctionEnumStringType] = Field(None, alias='$') + + +class RtcNeuronInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_external: Optional[List[xs_string.Field1]] = Field(None, alias='rtc:external') + rtc_internal: Optional[List[xs_string.Field2]] = Field(None, alias='rtc:internal') + + +class RtcX9(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcY12(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcNeuronOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX9 = Field( + ..., alias='rtc:x', description='result of the transfer function' + ) + rtc_y: RtcY12 = Field( + ..., + alias='rtc:y', + description='result of the summation of weighted input (intermediate result)', + ) + + +class RtcLambda(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSurfaceArea(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcNodeGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_lambda: RtcLambda = Field(..., alias='rtc:lambda') + rtc_surfaceArea: RtcSurfaceArea = Field(..., alias='rtc:surfaceArea') + + +class RtcHBC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUpdate(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcNodeInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HBC: Optional[RtcHBC] = Field( + None, + alias='rtc:HBC', + description='Time series with the water level boundary condition, note that a value MUST be provided at all time steps, otherwise the model stops with an error message', + ) + rtc_HUpdate: Optional[RtcHUpdate] = Field( + None, + alias='rtc:HUpdate', + description='Time series with an optional water level for model updating', + ) + rtc_QBC: Optional[List[rtc_TimeSeriesSimpleType.Field6]] = Field( + None, alias='rtc:QBC' + ) + + +class RtcH(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcR1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcS2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcNodeOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_H: RtcH = Field(..., alias='rtc:H') + rtc_R: Optional[RtcR1] = Field(None, alias='rtc:R') + rtc_S: RtcS2 = Field(..., alias='rtc:S') + + +class RtcResiduum(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcState1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcNodeStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_AREA: Optional[RtcAREA2] = Field( + None, alias='rtc:AREA', description='constant area [km2], default is 1.0' + ) + rtc_input: Optional[RtcInputNodeStorageSystemComplexType] = Field( + None, alias='rtc:input' + ) + rtc_residuum: RtcResiduum = Field( + ..., alias='rtc:residuum', description='residuum [mm]' + ) + rtc_state: RtcState1 = Field(..., alias='rtc:state', description='unit volume [mm]') + rtc_stateMax: Optional[RtcStateMax] = Field(None, alias='rtc:stateMax') + rtc_stateMin: Optional[RtcStateMin] = Field(None, alias='rtc:stateMin') + + +class RtcContractionCoefficient(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcCrestLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcExponentGateFormula(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcExponentWeirFormula(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcFlowDirection(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcFlowDirectionEnumStringType] = Field(None, alias='$') + + +class RtcWidth(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcD2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDConst(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcDSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDeltaHDown(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDeltaHUp(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHDown8(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp11(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOrificeInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_D: Optional[RtcD2] = Field(None, alias='rtc:D', description='deprecated') + rtc_DConst: Optional[RtcDConst] = Field(None, alias='rtc:DConst') + rtc_DSeries: Optional[RtcDSeries] = Field(None, alias='rtc:DSeries') + rtc_DeltaHDown: Optional[RtcDeltaHDown] = Field(None, alias='rtc:DeltaHDown') + rtc_DeltaHUp: Optional[RtcDeltaHUp] = Field(None, alias='rtc:DeltaHUp') + rtc_HDown: RtcHDown8 = Field(..., alias='rtc:HDown') + rtc_HUp: RtcHUp11 = Field(..., alias='rtc:HUp') + + +class RtcD3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQ3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcFlowType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOrificeOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_D: RtcD3 = Field(..., alias='rtc:D') + rtc_Q: RtcQ3 = Field(..., alias='rtc:Q') + rtc_flowType: Optional[RtcFlowType] = Field(None, alias='rtc:flowType') + + +class RtcRelativeReleaseItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRelease(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOutletInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_relativeRelease: Optional[List[RtcRelativeReleaseItem]] = Field( + None, alias='rtc:relativeRelease' + ) + rtc_release: Optional[RtcRelease] = Field( + None, + alias='rtc:release', + description='Reference to timeseries in data configuration containg an absolute release. (ONLY FOR CONTROLLED OUTLET)', + ) + + +class RtcRelease1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOutletOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_release: RtcRelease1 = Field(..., alias='rtc:release') + + +class RtcOutputATableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: List[rtc_TimeSeriesSimpleType.Field1] = Field( + ..., alias='rtc:y', min_items=1 + ) + + +class RtcEP5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOutputEvaporationPotentialComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_EP: RtcEP5 = Field( + ..., + alias='rtc:EP', + description='instantaneous potential evaporation [mm/timestep]', + ) + + +class RtcH1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQ4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOutputLinkStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_H: RtcH1 = Field( + ..., alias='rtc:H', description='Discharge as unit volume [mm/timestep]' + ) + rtc_Q: RtcQ4 = Field(..., alias='rtc:Q', description='Discharge [m3/s]') + + +class RtcDifferentialPart(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcIntegralPart(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcY13(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOutputPidComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_differentialPart: RtcDifferentialPart = Field( + ..., + alias='rtc:differentialPart', + description='memory of differential part (in fact e of the last time step)', + ) + rtc_integralPart: RtcIntegralPart = Field( + ..., + alias='rtc:integralPart', + description='memory of integral part: integral(e)dt', + ) + rtc_y: RtcY13 = Field(..., alias='rtc:y', description='setting of the actuator') + + +class RtcRF(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSF(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOutputSnowRainJunctionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_RF: RtcRF = Field(..., alias='rtc:RF', description='rainfall [mm/timestep]') + rtc_SF: RtcSF = Field(..., alias='rtc:SF', description='snowfall [mm/timestep]') + + +class RtcNFun1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcNJac1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRes1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcOutputStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_nFun: RtcNFun1 = Field( + ..., alias='rtc:nFun', description='number of function evaluations' + ) + rtc_nJac: RtcNJac1 = Field( + ..., alias='rtc:nJac', description='number of evaluations of the Jacobian' + ) + rtc_res: RtcRes1 = Field( + ..., alias='rtc:res', description='residuum at last iteration step' + ) + + +class RtcPercolationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputPercolationStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterPercolationStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcKd(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcKi(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcKp(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSettingMax(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSettingMaxSpeed1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSettingMin(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcPidComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputPidComplexType = Field(..., alias='rtc:input') + rtc_kd: RtcKd = Field( + ..., alias='rtc:kd', description='fatcor on differential part kd*de/dt' + ) + rtc_ki: RtcKi = Field( + ..., alias='rtc:ki', description='factor on the integral part ki*integral(e)dt' + ) + rtc_kp: RtcKp = Field( + ..., alias='rtc:kp', description='factor on the proportional part kp*e' + ) + rtc_mode: Optional[RtcMode3] = Field( + None, + alias='rtc:mode', + description='pid mode, either "NATIVE" or "SOBEK2" or "PIDPOS" or PIDVEL"', + ) + rtc_output: RtcOutputPidComplexType = Field(..., alias='rtc:output') + rtc_settingMax: RtcSettingMax = Field( + ..., alias='rtc:settingMax', description='maximum setting of the actuator' + ) + rtc_settingMaxSpeed: RtcSettingMaxSpeed1 = Field( + ..., + alias='rtc:settingMaxSpeed', + description='maximum speed of the actuation in [unit/s]', + ) + rtc_settingMin: RtcSettingMin = Field( + ..., alias='rtc:settingMin', description='minimum setting of the actuator' + ) + + +class RtcValue1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcPolygonComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: Optional[XsString] = Field(None, alias='@id') + rtc_edges: RtcEdgesComplexType = Field(..., alias='rtc:edges') + rtc_value: Optional[RtcValue1] = Field(None, alias='rtc:value') + + +class RtcDefault1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcPolygonLookupInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x1: rtc_TimeSeriesSimpleType.Field12 = Field(..., alias='rtc:x1') + rtc_x2: rtc_TimeSeriesSimpleType.Field13 = Field(..., alias='rtc:x2') + + +class RtcStatus2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPolygonLookupOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_status: RtcStatus2 = Field(..., alias='rtc:status') + + +class RtcPolygonsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_polygon: List[RtcPolygonComplexType] = Field( + ..., alias='rtc:polygon', min_items=1 + ) + + +class RtcStorageDown1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcStorageUp1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPumpGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_storageDown: RtcStorageDown1 = Field(..., alias='rtc:storageDown') + rtc_storageUp: RtcStorageUp1 = Field(..., alias='rtc:storageUp') + + +class RtcHDown9(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp12(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQ5(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPumpInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_HDown: RtcHDown9 = Field(..., alias='rtc:HDown') + rtc_HUp: RtcHUp12 = Field(..., alias='rtc:HUp') + rtc_Q: RtcQ5 = Field(..., alias='rtc:Q') + + +class RtcQ6(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPumpOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_Q: RtcQ6 = Field(..., alias='rtc:Q') + + +class RtcRelationalOperator(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcRelationalOperatorEnumStringType] = Field(None, alias='$') + + +class RtcRelationalConditionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_relationalOperator: RtcRelationalOperator = Field( + ..., alias='rtc:relationalOperator' + ) + rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field22] = Field( + None, alias='rtc:x1Series' + ) + rtc_x1Value: Optional[RtcX1Value1] = Field(None, alias='rtc:x1Value') + rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field23] = Field( + None, alias='rtc:x2Series' + ) + rtc_x2Value: Optional[RtcX2Value1] = Field(None, alias='rtc:x2Value') + + +class RtcOutput(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcReleaseTotalComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputReleaseTotalComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutput = Field( + ..., alias='rtc:output', description='total discharge [m3/s]' + ) + + +class RtcLevelStorageTableExternal(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcTailwaterExternalTable(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcTailwaterExternalTimeSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTurbineEfficiencyTable2DExternal(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcTurbineEfficiencyTableExternal(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcUnits(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcUnitTypeEnumStringType] = Field(None, alias='$') + + +class RtcFB(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPM(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPX(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQ7(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQIItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQMISC(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQS(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQTX(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcReservoirCompactInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_FB: RtcFB = Field( + ..., + alias='rtc:FB', + description='forebay elevation [m above reference level] or [ft above sea level]', + ) + rtc_OF: Optional[RtcOF] = Field( + None, + alias='rtc:OF', + description='optional time series with the unit outage factor [0-1], it reduces the (physical) constraints PXValue and QTXValue (NO impact on PX, QTX)', + ) + rtc_PM: Optional[RtcPM] = Field( + None, + alias='rtc:PM', + description='minimum generation constraint on aggregated turbine level [MW], primarly used as operational constraint', + ) + rtc_PMValue: Optional[RtcPMValue] = Field( + None, + alias='rtc:PMValue', + description='fixed minimum generation constraint on aggregated turbine level [MW], primarily used as physical constraint', + ) + rtc_PX: Optional[RtcPX] = Field( + None, + alias='rtc:PX', + description='maximum generation constraint on aggregated turbine level [MW], primarly used as operational constraint', + ) + rtc_PXValue: Optional[RtcPXValue] = Field( + None, + alias='rtc:PXValue', + description='fixed maximum generation constraint on aggregated turbine level [MW], primarly used as physical constraint', + ) + rtc_Q: RtcQ7 = Field( + ..., + alias='rtc:Q', + description='reservoir outflow [m3/s] or [KCFS], data is expected to be complete and valid', + ) + rtc_QI: List[RtcQIItem] = Field(..., alias='rtc:QI', min_items=1) + rtc_QMISC: Optional[RtcQMISC] = Field( + None, + alias='rtc:QMISC', + description='optional miscellaneous flow (uncontrolled), will be zero by default [m3/s] or [KCFS] if no time series is supplied or if the time series includes NaN values', + ) + rtc_QS: Optional[RtcQS] = Field( + None, alias='rtc:QS', description='absolute spill target [m3/s] or [KCFS]' + ) + rtc_QSPercentage: Optional[rtc_TimeSeriesSimpleType.Field7] = Field( + None, + alias='rtc:QSPercentage', + description='relative spill target as a percentage [0..100] of the total flow Q', + ) + rtc_QSPercentageValue: Optional[rtc_ExternalParameterSimpleType.Field1] = Field( + None, + alias='rtc:QSPercentageValue', + description='relative spill target as a percentage [0..100] of the total flow Q', + ) + rtc_QSValue: Optional[RtcQSValue] = Field( + None, alias='rtc:QSValue', description='absolute spill target [m3/s] or [KCFS]' + ) + rtc_QTX: Optional[RtcQTX] = Field( + None, + alias='rtc:QTX', + description='maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as operational constraint', + ) + rtc_QTXValue: Optional[RtcQTXValue] = Field( + None, + alias='rtc:QTXValue', + description='fixed maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as physical constraint', + ) + + +class RtcDQ(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcFB1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcH2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcP3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPX1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQ8(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQI(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQMISC1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQS3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQSPercentage(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQT(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQTX1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcR2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcS3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTW(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcReservoirCompactOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_DQ: RtcDQ = Field( + ..., alias='rtc:DQ', description='deviation from spill target [m3/s] or [KCFS]' + ) + rtc_FB: RtcFB1 = Field( + ..., + alias='rtc:FB', + description='forebay elevation [m above reference level] or [ft above sea level]', + ) + rtc_H: RtcH2 = Field(..., alias='rtc:H', description='head [m] or [ft]') + rtc_P: RtcP3 = Field(..., alias='rtc:P', description='power generation [MW]') + rtc_PX: Optional[RtcPX1] = Field( + None, alias='rtc:PX', description='maximum power generation [MW]' + ) + rtc_Q: RtcQ8 = Field( + ..., alias='rtc:Q', description='reservoir outflow [m3/s] or [KCFS]' + ) + rtc_QI: RtcQI = Field( + ..., alias='rtc:QI', description='reservoir inflow [m3/s] or [KCFS]' + ) + rtc_QMISC: Optional[RtcQMISC1] = Field( + None, alias='rtc:QMISC', description='miscellaneous flow [m3/s] or [KCFS]' + ) + rtc_QS: RtcQS3 = Field(..., alias='rtc:QS', description='spillage [m3/s] or [KCFS]') + rtc_QSPercentage: Optional[RtcQSPercentage] = Field( + None, alias='rtc:QSPercentage', description='relative spillage [0..100]' + ) + rtc_QT: RtcQT = Field( + ..., alias='rtc:QT', description='turbine flow [m3/s] or [KCFS]' + ) + rtc_QTX: Optional[RtcQTX1] = Field( + None, alias='rtc:QTX', description='maximum turbine flow [m3/s] or [KCFS]' + ) + rtc_R: RtcR2 = Field( + ..., + alias='rtc:R', + description='residuum of mass balance (in simultaneous mode) [m3/s] or [KCFS]', + ) + rtc_S: RtcS3 = Field( + ..., + alias='rtc:S', + description='storage [m3] or [KCFS-hrs], this is the system state needed in the state file', + ) + rtc_TW: RtcTW = Field( + ..., + alias='rtc:TW', + description='tailwater elevation [m above reference level] or [ft above sea level]', + ) + + +class RtcMode4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcPoolRoutingEnumStringType] = Field(None, alias='$') + + +class RtcTheta3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcLambda1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLambdaDown(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcReservoirGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_lambda: RtcLambda1 = Field(..., alias='rtc:lambda') + rtc_lambdaDown: Optional[RtcLambdaDown] = Field(None, alias='rtc:lambdaDown') + + +class RtcEvaporation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInflowItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPrecipitation(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcReservoirInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_evaporation: Optional[RtcEvaporation] = Field( + None, + alias='rtc:evaporation', + description='Direct evaporation from the reservoir [mm/time step]', + ) + rtc_inflow: List[RtcInflowItem] = Field(..., alias='rtc:inflow', min_items=1) + rtc_level: Optional[RtcLevel] = Field( + None, + alias='rtc:level', + description='Optional level [m] for updating the simulated level by an observed water level (simple data assimilation), if provided the error output is equal to the mass balance correction ', + ) + rtc_precipitation: Optional[RtcPrecipitation] = Field( + None, + alias='rtc:precipitation', + description='Direct precitation into the reservoir [mm/time step], the value will be multiplied by the current water surface area of the reservoir', + ) + + +class RtcError(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInflow(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLevel1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRelativeStorage(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRelease2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcResiduum1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcStorage(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcReservoirOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_error: Optional[RtcError] = Field( + None, + alias='rtc:error', + description='optional error output [m3/s] which is non-zero if the simple data assimilation option for overruling the simulated water level is used ', + ) + rtc_inflow: RtcInflow = Field( + ..., alias='rtc:inflow', description='aggregated inflows [m3/s]' + ) + rtc_level: RtcLevel1 = Field( + ..., alias='rtc:level', description='water level [m] in the reservoir' + ) + rtc_relativeStorage: Optional[RtcRelativeStorage] = Field( + None, + alias='rtc:relativeStorage', + description='relative storage [-] typically between 0 and 1 depending on the definition of the maximum level above]', + ) + rtc_release: RtcRelease2 = Field( + ..., alias='rtc:release', description='aggregated release [m3/s]' + ) + rtc_residuum: Optional[RtcResiduum1] = Field( + None, + alias='rtc:residuum', + description='optional residuum of the implicit solution', + ) + rtc_storage: RtcStorage = Field( + ..., alias='rtc:storage', description='storage [m3] (state variable)' + ) + + +class RtcResponseStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputResponseStorageSystemComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterResponseStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcOutput1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcValue2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInteger] = Field(None, alias='$') + + +class RtcResultComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_output: RtcOutput1 = Field(..., alias='rtc:output') + rtc_value: RtcValue2 = Field(..., alias='rtc:value') + + +class RtcExponentWeirFormula1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcFlowDirection1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcFlowDirectionEnumStringType] = Field(None, alias='$') + + +class RtcSubmergedFlowFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSubmergedFlowRatio(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcWidth1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcCConst(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcCSeries(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDeltaHDown1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcDeltaHUp1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHDown10(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcHUp13(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRiverWeirInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_CConst: Optional[RtcCConst] = Field(None, alias='rtc:CConst') + rtc_CSeries: Optional[RtcCSeries] = Field(None, alias='rtc:CSeries') + rtc_DeltaHDown: Optional[RtcDeltaHDown1] = Field(None, alias='rtc:DeltaHDown') + rtc_DeltaHUp: Optional[RtcDeltaHUp1] = Field(None, alias='rtc:DeltaHUp') + rtc_HDown: RtcHDown10 = Field(..., alias='rtc:HDown') + rtc_HUp: RtcHUp13 = Field(..., alias='rtc:HUp') + + +class RtcC2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQ9(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcFlowType1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRiverWeirOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_C: RtcC2 = Field(..., alias='rtc:C') + rtc_Q: RtcQ9 = Field(..., alias='rtc:Q') + rtc_flowType: Optional[RtcFlowType1] = Field(None, alias='rtc:flowType') + + +class RtcDischargeRef(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcDischarge2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcError1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRoutingOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_discharge: Optional[RtcDischarge2] = Field(None, alias='rtc:discharge') + rtc_error: Optional[RtcError1] = Field(None, alias='rtc:error') + + +class RtcRowComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _eta_head01: XsDouble = Field(..., alias='@eta_head01') + _eta_head02: XsDouble = Field(..., alias='@eta_head02') + _eta_head03: Optional[XsDouble] = Field(None, alias='@eta_head03') + _eta_head04: Optional[XsDouble] = Field(None, alias='@eta_head04') + _eta_head05: Optional[XsDouble] = Field(None, alias='@eta_head05') + _eta_head06: Optional[XsDouble] = Field(None, alias='@eta_head06') + _eta_head07: Optional[XsDouble] = Field(None, alias='@eta_head07') + _eta_head08: Optional[XsDouble] = Field(None, alias='@eta_head08') + _eta_head09: Optional[XsDouble] = Field(None, alias='@eta_head09') + _eta_head10: Optional[XsDouble] = Field(None, alias='@eta_head10') + _eta_head11: Optional[XsDouble] = Field(None, alias='@eta_head11') + _eta_head12: Optional[XsDouble] = Field(None, alias='@eta_head12') + _eta_head13: Optional[XsDouble] = Field(None, alias='@eta_head13') + _eta_head14: Optional[XsDouble] = Field(None, alias='@eta_head14') + _eta_head15: Optional[XsDouble] = Field(None, alias='@eta_head15') + _eta_head16: Optional[XsDouble] = Field(None, alias='@eta_head16') + _eta_head17: Optional[XsDouble] = Field(None, alias='@eta_head17') + _eta_head18: Optional[XsDouble] = Field(None, alias='@eta_head18') + _eta_head19: Optional[XsDouble] = Field(None, alias='@eta_head19') + _eta_head20: Optional[XsDouble] = Field(None, alias='@eta_head20') + _flow: XsDouble = Field(..., alias='@flow') + + +class RtcRuleId(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcRuleStateTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_ruleId: RtcRuleId = Field(..., alias='rtc:ruleId') + + +class RtcP4(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcPVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRCA(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcRCAVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSCA(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSCAVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcT3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcCr(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcCrVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcCs(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcCsVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSRMInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_P: Optional[RtcP4] = Field(None, alias='rtc:P') + rtc_P_Vector: Optional[RtcPVector] = Field(None, alias='rtc:P-Vector') + rtc_RCA: Optional[RtcRCA] = Field(None, alias='rtc:RCA') + rtc_RCA_Vector: Optional[RtcRCAVector] = Field(None, alias='rtc:RCA-Vector') + rtc_SCA: Optional[RtcSCA] = Field(None, alias='rtc:SCA') + rtc_SCA_Vector: Optional[RtcSCAVector] = Field(None, alias='rtc:SCA-Vector') + rtc_T: Optional[RtcT3] = Field(None, alias='rtc:T') + rtc_T_Vector: Optional[RtcTVector] = Field(None, alias='rtc:T-Vector') + rtc_cr: Optional[RtcCr] = Field(None, alias='rtc:cr') + rtc_cr_Vector: Optional[RtcCrVector] = Field(None, alias='rtc:cr-Vector') + rtc_cs: Optional[RtcCs] = Field(None, alias='rtc:cs') + rtc_cs_Vector: Optional[RtcCsVector] = Field(None, alias='rtc:cs-Vector') + + +class RtcQRainVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQSnowVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQStorageVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSRMOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_QRain_Vector: RtcQRainVector = Field(..., alias='rtc:QRain-Vector') + rtc_QSnow_Vector: RtcQSnowVector = Field(..., alias='rtc:QSnow-Vector') + rtc_QStorage_Vector: RtcQStorageVector = Field(..., alias='rtc:QStorage-Vector') + + +class RtcSRMParameterZoneComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: Optional[XsString] = Field(None, alias='@id') + rtc_Tcr1: RtcTcr1 = Field( + ..., alias='rtc:Tcr1', description='critical temperature (???) [oC]' + ) + rtc_Tcr2: RtcTcr2 = Field( + ..., alias='rtc:Tcr2', description='critical temperature (???) [oC]' + ) + rtc_a: RtcA5 = Field( + ..., alias='rtc:a', description='degree day factor [mm/(oC*day)]' + ) + rtc_area: RtcArea = Field(..., alias='rtc:area', description='area [km2]') + + +class RtcPStorageVector(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcQ10(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSRMStateComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_PStorage_Vector: RtcPStorageVector = Field( + ..., + alias='rtc:PStorage-Vector', + description='snow storage of non-snow-covered areas [mm]', + ) + rtc_Q: RtcQ10 = Field(..., alias='rtc:Q', description='discharge [m3/s]') + + +class RtcDefault2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcLogicalOperator(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcLogicalOperatorEnumStringType] = Field(None, alias='$') + + +class RtcX1Value2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcX2Value2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcSnowRainJunctionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputSnowRainJunctionComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutputSnowRainJunctionComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterSnowRainJunctionComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcSoilRunoffStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputSoilRunoffStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterSoilRunoffStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcDefaultInputValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcDefaultOutputValue(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcTolerance(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcSpreadsheetInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x1: rtc_TimeSeriesSimpleType.Field14 = Field(..., alias='rtc:x1') + rtc_x2: rtc_TimeSeriesSimpleType.Field15 = Field(..., alias='rtc:x2') + rtc_x3: Optional[rtc_TimeSeriesSimpleType.Field16] = Field(None, alias='rtc:x3') + + +class RtcStatus3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcSpreadsheetOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_status: RtcStatus3 = Field(..., alias='rtc:status') + + +class RtcSpreadsheetRecordComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _x1: XsDouble = Field(..., alias='@x1') + _x2: XsDouble = Field(..., alias='@x2') + _x3: Optional[XsDouble] = Field(None, alias='@x3') + _y: XsDouble = Field(..., alias='@y') + + +class RtcSpreadsheetTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _initialState: Optional[XsDouble] = Field(None, alias='@initialState') + rtc_record: List[RtcSpreadsheetRecordComplexType] = Field( + ..., alias='rtc:record', min_items=1 + ) + + +class RtcSpreadsheetTablesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_table: List[RtcSpreadsheetTableComplexType] = Field( + ..., alias='rtc:table', min_items=1 + ) + + +class RtcDefault3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcMaximumLevel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcStorageCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_maximumLevel: Optional[RtcMaximumLevel] = Field( + None, + alias='rtc:maximumLevel', + description='Maximum water level h in the reservoir: this optional value does not limit the water level, it is used however to compute the relative filling percentage of the reservoir according to s = S/S(maximumLevel), where S is the absolute storage volume', + ) + rtc_storageEquation: Optional[RtcEquationsComplexType] = Field( + None, + alias='rtc:storageEquation', + description='Storage equation, storage S = f(water level h)', + ) + rtc_storageTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:storageTable', + description='Storage table with pairs of elevation h and storage S', + ) + + +class RtcAcceptableConvergenceThreshold(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcConvergenceThreshold1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcTreatNonConvergenceAsError1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsBoolean] = Field(None, alias='$') + + +class RtcStorageSystemSettingsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_acceptableConvergenceThreshold: Optional[ + RtcAcceptableConvergenceThreshold + ] = Field( + None, + alias='rtc:acceptableConvergenceThreshold', + description='optional threshold after reaching the maximum number of iterations, writes a warning if reached, writes error otherwise', + ) + rtc_convergenceThreshold: RtcConvergenceThreshold1 = Field( + ..., + alias='rtc:convergenceThreshold', + description='iteration stops after reaching this threshold', + ) + rtc_treatNonConvergenceAsError: RtcTreatNonConvergenceAsError1 = Field( + ..., + alias='rtc:treatNonConvergenceAsError', + description='treat non-convergence related to the thresholds as error or not', + ) + + +class RtcTableLookupTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_record: List[RtcDateRecord2DataComplexType] = Field( + ..., alias='rtc:record', min_items=1 + ) + + +class RtcConstant1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcFBDown(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTailwaterEquationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_A: RtcA6 = Field(..., alias='rtc:A') + rtc_B: RtcB3 = Field(..., alias='rtc:B') + rtc_C: RtcC3 = Field(..., alias='rtc:C') + rtc_D: Optional[RtcD7] = Field(None, alias='rtc:D') + rtc_FBDown: Optional[RtcFBDown] = Field( + None, + alias='rtc:FBDown', + description='time series reference to forebay elevation of the downstream project, only required if B is non-zero', + ) + + +class RtcHead(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLevel2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTailwaterOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_head: RtcHead = Field(..., alias='rtc:head', description='head [m]') + rtc_level: RtcLevel2 = Field( + ..., alias='rtc:level', description='tailwater level [m]' + ) + + +class RtcQObs(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTWObs(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTailwaterTidalEquationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_A: RtcA7 = Field(..., alias='rtc:A') + rtc_QObs: RtcQObs = Field(..., alias='rtc:QObs') + rtc_TWObs: RtcTWObs = Field(..., alias='rtc:TWObs') + + +class RtcLevelSetpoint(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcReleaseLimiterPercentage(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcCatchment(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcInflow1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcLevel3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcThunerseeRuleInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_catchment: RtcCatchment = Field(..., alias='rtc:catchment') + rtc_inflow: RtcInflow1 = Field(..., alias='rtc:inflow') + rtc_level: RtcLevel3 = Field(..., alias='rtc:level') + + +class RtcActive1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcReleaseTotal(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcReleaseTunnel(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcReleaseWeir(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcThunerseeRuleOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_active: Optional[RtcActive1] = Field(None, alias='rtc:active') + rtc_releaseTotal: RtcReleaseTotal = Field(..., alias='rtc:releaseTotal') + rtc_releaseTunnel: RtcReleaseTunnel = Field(..., alias='rtc:releaseTunnel') + rtc_releaseWeir: RtcReleaseWeir = Field(..., alias='rtc:releaseWeir') + + +class RtcX11(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTimeAbsoluteInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_x: RtcX11 = Field(..., alias='rtc:x') + + +class RtcY15(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTimeAbsoluteOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: RtcY15 = Field(..., alias='rtc:y') + + +class RtcInterpolationOption1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + + +class RtcMaximumPeriod(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcValueOption(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeRelativeEnumStringType] = Field(None, alias='$') + + +class RtcTimeRelativeControlTableRecordComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _time: XsDouble = Field(..., alias='@time') + _value: XsDouble = Field(..., alias='@value') + + +class RtcY16(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTimeRelativeInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_y: RtcY16 = Field( + ..., + alias='rtc:y', + description='optional input for deriving the timeActive in case of the relative from Value option', + ) + + +class RtcTimeActive(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcY17(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + + +class RtcTimeRelativeOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_timeActive: RtcTimeActive = Field(..., alias='rtc:timeActive') + rtc_y: RtcY17 = Field(..., alias='rtc:y') + + +class RtcTimeStepComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') + _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') + _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + + +class RtcRuleReference(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcValue3(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsInteger] = Field(None, alias='$') + + +class RtcTriggerControllerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_input: RtcInput = Field(..., alias='rtc:input') + rtc_value: RtcValue3 = Field(..., alias='rtc:value') + + +class RtcLevelThreshold(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcTurbineCapacityCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_capacityEquation: Optional[RtcEquationsComplexType] = Field( + None, + alias='rtc:capacityEquation', + description='capacity equation of hydropower turbine as a function of the water head', + ) + rtc_capacityTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:capacityTable', + description='capacity table of hydropower turbine as a function of the water head', + ) + + +class RtcTurbineCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_efficiencyTable: RtcElevationTableComplexType = Field( + ..., + alias='rtc:efficiencyTable', + description='efficiency table unit power output [MW / m3/s] as function of head [m] ', + ) + rtc_output: RtcTurbineOutputCharacteristicsComplexType = Field( + ..., alias='rtc:output' + ) + + +class RtcNodeDown(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcNodeUp(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcEfficiencyConstant(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcTurbineEfficiencyCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_efficiencyConstant: Optional[RtcEfficiencyConstant] = Field( + None, + alias='rtc:efficiencyConstant', + description='constant efficiency over all discharges, typical range is [0.80, 0.90]', + ) + + +class RtcTurbineEfficiencyTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_columns: RtcColumnsComplexType = Field( + ..., + alias='rtc:columns', + description='column Ids refering to the head [m] of each column', + ) + rtc_maxFlows: RtcMaxFlowsComplexType = Field( + ..., + alias='rtc:maxFlows', + description='maximum flow for a given head (provided above)', + ) + rtc_row: List[RtcRowComplexType] = Field(..., alias='rtc:row', min_items=1) + + +class RtcTypicalProfileComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_data: List[RtcDataTypicalProfileComplexType] = Field( + ..., alias='rtc:data', min_items=1 + ) + rtc_output: RtcOutput2 = Field(..., alias='rtc:output') + + +class RtcUnitDelayComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcUnitDelayInputComplexType = Field(..., alias='rtc:input') + rtc_nStep: Optional[RtcNStep] = Field( + None, + alias='rtc:nStep', + description='nStep optionally provides a delay with an arbitrary numer of time steps or sub time step, i.e. 1.5 time steps, if being used also specify the yFinal tag in the output options', + ) + rtc_output: RtcUnitDelayOutputComplexType = Field( + ..., + alias='rtc:output', + description='The configuration of a multiple unit delay requires the configuration of a time series for each delay time step', + ) + + +class RtcWeightItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcUnitHydrographWeightCustomComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_weight: List[RtcWeightItem] = Field(..., alias='rtc:weight', min_items=1) + + +class RtcFactor(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsDouble] = Field(None, alias='$') + + +class RtcUnitHydrographWeightTriangularComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_factor: Optional[RtcFactor] = Field( + None, alias='rtc:factor', description='sum of all weight, if not equal to 1.0' + ) + rtc_nSteps: RtcNSteps = Field( + ..., alias='rtc:nSteps', description='number of time steps' + ) + + +class RtcValidPeriodComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_endDate: RtcDateComplexType = Field(..., alias='rtc:endDate') + rtc_startDate: RtcDateComplexType = Field(..., alias='rtc:startDate') + + +class RtcValidPeriodsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_validPeriod: Optional[List[RtcValidPeriodComplexType]] = Field( + None, alias='rtc:validPeriod' + ) + + +class RtcValueItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsFloat] = Field(None, alias='$') + + +class RtcValueArrayComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_value: List[RtcValueItem] = Field(..., alias='rtc:value', min_items=1) + + +class RtcYDimItem(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsFloat] = Field(None, alias='$') + + +class RtcYDimComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_yDim: List[RtcYDimItem] = Field(..., alias='rtc:yDim', min_items=1) + + +class RtcZoneComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _max: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@max') + _min: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@min') + rtc_dateTable: RtcDateTableComplexType = Field(..., alias='rtc:dateTable') + + +class RtcZonesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_zone: List[RtcZoneComplexType] = Field(..., alias='rtc:zone', min_items=1) + + +class RtcEvaporationActualStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputEvaporationActualStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterEvaporationActualStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcEvaporationInterceptionStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputEvaporationInterceptionStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterEvaporationInterceptionStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcGroundwaterFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputGroundwaterFlowStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParametergroundwaterFlowStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcNodeD(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcNodeU(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcIrrigationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_nodeD: RtcNodeD = Field( + ..., + alias='rtc:nodeD', + description='downstream node which recieves the irrigation water', + ) + rtc_nodeU: RtcNodeU = Field( + ..., + alias='rtc:nodeU', + description='upstream node, source of water usually the drinking water treatment plant', + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterIrrigationStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcNodeD1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcNodeU1(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcMeltRefreezingStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInput1 = Field( + ..., alias='rtc:input', description='instanteneous temperature [oC]' + ) + rtc_nodeD: RtcNodeD1 = Field( + ..., + alias='rtc:nodeD', + description='downstream node, typically WC (water content)', + ) + rtc_nodeU: RtcNodeU1 = Field( + ..., alias='rtc:nodeU', description='upstream node, typically SP (snow pack)' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterMeltRefreezingStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcReleaseAboveThresholdStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputReleaseAboveThresholdStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterReleaseAboveThresholdStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcNodeA(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcNodeU2(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + __1: Optional[XsString] = Field(None, alias='$') + + +class RtcReleaseWaterContentStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_nodeA: RtcNodeA = Field( + ..., + alias='rtc:nodeA', + description='auxiliary node with snow pack, typically SP (snow pack)', + ) + rtc_nodeU: RtcNodeU2 = Field( + ..., + alias='rtc:nodeU', + description='upstream node, typically WC (water content)', + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterReleaseWaterContentStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcWaterDistributionConstantStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputWaterDistributionConstantStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterWaterDistributionConstantStorageSystemComplexType = ( + Field(..., alias='rtc:parameter') + ) + + +class RtcWaterDistributionVariableStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputWaterDistributionVariableStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterWaterDistributionVariableStorageSystemComplexType = ( + Field(..., alias='rtc:parameter') + ) + + +class RtcAccumulationComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcAccumulationInputComplexType = Field( + ..., alias='rtc:input', description='input variable' + ) + rtc_multiplier: Optional[RtcMultiplier] = Field( + None, alias='rtc:multiplier', description='optional multiplier' + ) + rtc_output: RtcAccumulationOutputComplexType = Field(..., alias='rtc:output') + + +class RtcAebiRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_FactorRTG: RtcFactorRTG = Field(..., alias='rtc:FactorRTG') + rtc_LangeteFall: RtcLangeteFall = Field(..., alias='rtc:LangeteFall') + rtc_input: RtcAebiRuleInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcAebiRuleOutputComplexType = Field(..., alias='rtc:output') + + +class RtcAllocationTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputATableComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutputATableComplexType = Field(..., alias='rtc:output') + rtc_table: Optional[RtcATableComplexType] = Field(None, alias='rtc:table') + rtc_tableExternal: Optional[RtcTableExternal] = Field( + None, alias='rtc:tableExternal' + ) + + +class RtcArmaComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_arCoef: RtcArCoef = Field( + ..., + alias='rtc:arCoef', + description='autoregression coefficient related to prior time step', + ) + rtc_input: RtcArmaInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcArmaOutputComplexType = Field(..., alias='rtc:output') + + +class RtcCapacityCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _reference: Optional[RtcCapacityReferenceEnumStringType] = Field( + None, alias='@reference' + ) + rtc_capacityEquation: Optional[RtcEquationsComplexType] = Field( + None, alias='rtc:capacityEquation' + ) + rtc_capacityTable: Optional[RtcElevationTableComplexType] = Field( + None, alias='rtc:capacityTable' + ) + + +class RtcCapillaryFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputCapillaryFlowStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterCapillaryFlowStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcConstantRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_constant: RtcConstant = Field(..., alias='rtc:constant') + rtc_output: RtcConstantRuleOutputComplexType = Field(..., alias='rtc:output') + + +class RtcControlledOutletComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., + alias='rtc:capacityCharacteristics', + description='Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero', + ) + rtc_input: RtcOutletInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutletOutputComplexType = Field(..., alias='rtc:output') + rtc_turbineCharacteristics: Optional[RtcTurbineCharacteristicsComplexType] = Field( + None, + alias='rtc:turbineCharacteristics', + description='Characteristics of optional turbine', + ) + + +class RtcCrossSectionComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_crossSectionTable: RtcElevationTableComplexType = Field( + ..., + alias='rtc:crossSectionTable', + description='Tabulated cross section, pairs of elevation h and width b ', + ) + + +class RtcCrossSectionRoughnessComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_roughnessTable: RtcElevationTableComplexType = Field( + ..., + alias='rtc:roughnessTable', + description='Pairs of elevation h and roughness C (according to Chezy)', + ) + + +class RtcDateRecord2ComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _monthDay: XsGMonthDay = Field(..., alias='@monthDay') + rtc_record: List[RtcDateRecord2DataComplexType] = Field( + ..., alias='rtc:record', min_items=1 + ) + + +class RtcDeadBandValueComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcDeadBandValueInputComplexType = Field(..., alias='rtc:input') + rtc_threshold: RtcThreshold = Field(..., alias='rtc:threshold') + + +class RtcEvaporationPotentialComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputEvaporationPotentialComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutputEvaporationPotentialComplexType = Field( + ..., alias='rtc:output' + ) + rtc_parameter: RtcParameterEvaporationPotentialComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcGradientInputComplexType = Field( + ..., alias='rtc:input', description='input variable' + ) + rtc_multiplier: Optional[RtcMultiplier1] = Field( + None, alias='rtc:multiplier', description='optional multiplier' + ) + rtc_output: RtcGradientOutputComplexType = Field( + ..., alias='rtc:output', description='gradient, dx = multiplier*(xNew-xOld)/dt' + ) + + +class RtcGuideBandRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcGuideBandRuleInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcGuideBandRuleOutputComplexType = Field(..., alias='rtc:output') + rtc_xMax: RtcDateTableComplexType = Field(..., alias='rtc:xMax') + rtc_xMin: RtcDateTableComplexType = Field(..., alias='rtc:xMin') + rtc_yMax: Optional[RtcYMax] = Field(None, alias='rtc:yMax') + rtc_yMaxSeries: Optional[RtcYMaxSeries] = Field(None, alias='rtc:yMaxSeries') + rtc_yMin: Optional[RtcYMin] = Field(None, alias='rtc:yMin') + rtc_yMinSeries: Optional[RtcYMinSeries] = Field(None, alias='rtc:yMinSeries') + + +class RtcHBVComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcHBVInputComplexType = Field(..., alias='rtc:input') + rtc_link: Optional[RtcHBVLinkComplexType] = Field(None, alias='rtc:link') + rtc_output: RtcHBVOutputComplexType = Field(..., alias='rtc:output') + rtc_parameterInput: RtcHBVParameterInputComplexType = Field( + ..., alias='rtc:parameterInput' + ) + rtc_parameterInterception: RtcHBVParameterInterceptionComplexType = Field( + ..., alias='rtc:parameterInterception' + ) + rtc_parameterResponse: RtcHBVParameterResponseComplexType = Field( + ..., alias='rtc:parameterResponse' + ) + rtc_parameterSnow: RtcHBVParameterSnowComplexType = Field( + ..., alias='rtc:parameterSnow' + ) + rtc_parameterSoil: RtcHBVParameterSoilComplexType = Field( + ..., alias='rtc:parameterSoil' + ) + rtc_state: RtcHBVStateComplexType = Field(..., alias='rtc:state') + rtc_stateUpdate: Optional[RtcHBVStateUpdateComplexType] = Field( + None, alias='rtc:stateUpdate' + ) + + +class RtcIntervalComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_deadbandSetpointAbsolute: Optional[RtcDeadbandSetpointAbsolute] = Field( + None, alias='rtc:deadbandSetpointAbsolute' + ) + rtc_deadbandSetpointRelative: Optional[RtcDeadbandSetpointRelative] = Field( + None, alias='rtc:deadbandSetpointRelative' + ) + rtc_input: RtcIntervalInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcIntervalOutputComplexType = Field(..., alias='rtc:output') + rtc_settingAbove: RtcSettingAbove = Field(..., alias='rtc:settingAbove') + rtc_settingBelow: RtcSettingBelow = Field(..., alias='rtc:settingBelow') + rtc_settingMaxSpeed: Optional[RtcSettingMaxSpeed] = Field( + None, alias='rtc:settingMaxSpeed' + ) + rtc_settingMaxStep: Optional[RtcSettingMaxStep] = Field( + None, alias='rtc:settingMaxStep' + ) + + +class RtcLimiterComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcLimiterInputComplexType = Field(..., alias='rtc:input') + rtc_mode: RtcMode1 = Field(..., alias='rtc:mode') + + +class RtcLinkStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_capillaryFlow: Optional[RtcCapillaryFlowStorageSystemComplexType] = Field( + None, + alias='rtc:capillaryFlow', + description='capillary flow, typically from GW (saturated upper zone - ground water) to UZ (unsaturated zone)', + ) + rtc_evaporationActual: Optional[ + RtcEvaporationActualStorageSystemComplexType + ] = Field( + None, + alias='rtc:evaporationActual', + description='actual evaporation from unsaturated zone storage node', + ) + rtc_evaporationInterception: Optional[ + RtcEvaporationInterceptionStorageSystemComplexType + ] = Field( + None, + alias='rtc:evaporationInterception', + description='evaporation from interception storage node, typically VEG/P/UP (vegeration/paved interception)', + ) + rtc_groundwaterFlow: Optional[RtcGroundwaterFlowStorageSystemComplexType] = Field( + None, + alias='rtc:groundwaterFlow', + description='GW Groundwater interaction with SW Surface water', + ) + rtc_irrigation: Optional[RtcIrrigationStorageSystemComplexType] = Field( + None, + alias='rtc:irrigation', + description='NOT REFACTORED. water consumption by domestic irrigation due to dry soil', + ) + rtc_meltRefreezing: Optional[RtcMeltRefreezingStorageSystemComplexType] = Field( + None, + alias='rtc:meltRefreezing', + description='NOT REFACTORED. melting and refreezing, typically used between SP (snow pack) and WC (water content) nodes', + ) + rtc_percolation: Optional[RtcPercolationStorageSystemComplexType] = Field( + None, + alias='rtc:percolation', + description='percolation, typically from GW upper zone to GW lower zone), or from UP unpaved surface to UZ unsaturated zone', + ) + rtc_releaseInterception: Optional[ + RtcReleaseAboveThresholdStorageSystemComplexType + ] = Field( + None, + alias='rtc:releaseInterception', + description='release above threshold from interception storage node, typically VEG/P/UP (uses relese above threshold link)', + ) + rtc_releaseWaterContent: Optional[ + RtcReleaseWaterContentStorageSystemComplexType + ] = Field( + None, + alias='rtc:releaseWaterContent', + description='NOT REFACTORED. release from water content storage node (typically WC)', + ) + rtc_response: Optional[RtcResponseStorageSystemComplexType] = Field( + None, + alias='rtc:response', + description='response from storage node, typically GW upper and GW lower zone storage nodes', + ) + rtc_sewerOverflow: Optional[ + RtcReleaseAboveThresholdStorageSystemComplexType + ] = Field( + None, + alias='rtc:sewerOverflow', + description='sewer overflow (uses relese above threshold link)', + ) + rtc_soilRunoff: Optional[RtcSoilRunoffStorageSystemComplexType] = Field( + None, + alias='rtc:soilRunoff', + description='soil runoff from UZ unsaturated zone to GW upper zone storage node', + ) + rtc_wasteWaterTreatmentPlant: Optional[ + RtcWaterDistributionConstantStorageSystemComplexType + ] = Field( + None, + alias='rtc:wasteWaterTreatmentPlant', + description='water treated via the WWTP, flows at a max rate of a constant max pump capacity. Uses water distribution constant link', + ) + rtc_waterDistributionConstant: Optional[ + RtcWaterDistributionConstantStorageSystemComplexType + ] = Field( + None, + alias='rtc:waterDistributionConstant', + description='water abstraction/distribution/consumption referenced to a constant demand (e.i. maxpump capacity). Uses water distribution constant link', + ) + rtc_waterDistributionVariable: Optional[ + RtcWaterDistributionVariableStorageSystemComplexType + ] = Field( + None, + alias='rtc:waterDistributionVariable', + description='water abstraction/distribution/consumption referenced to a variable demand (e.i. domestic or industrial water demands). Uses water distribution variable link)', + ) + + +class RtcLookupTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_extrapolationOption: Optional[RtcExtrapolationOption] = Field( + None, + alias='rtc:extrapolationOption', + description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', + ) + rtc_input: RtcLookupTableInputComplexType = Field(..., alias='rtc:input') + rtc_interpolationOption: Optional[RtcInterpolationOption] = Field( + None, + alias='rtc:interpolationOption', + description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', + ) + rtc_output: RtcLookupTableOutputComplexType = Field(..., alias='rtc:output') + rtc_property: Optional[List[RtcPropertyItem]] = Field(None, alias='rtc:property') + rtc_table: Optional[RtcTableLookupTableComplexType] = Field(None, alias='rtc:table') + rtc_tableExternal: Optional[RtcTableExternal1] = Field( + None, alias='rtc:tableExternal' + ) + + +class RtcLorentGeversComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcLorentGeversInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcLorentGeversOutputComplexType = Field(..., alias='rtc:output') + rtc_parameterResponse: RtcLorentGeversParameterResponseComplexType = Field( + ..., alias='rtc:parameterResponse' + ) + rtc_parameterSoil: RtcLorentGeversParameterSoilComplexType = Field( + ..., alias='rtc:parameterSoil' + ) + rtc_state: RtcLorentGeversStateComplexType = Field(..., alias='rtc:state') + rtc_stateUpdate: Optional[RtcLorentGeversStateUpdateComplexType] = Field( + None, alias='rtc:stateUpdate' + ) + + +class RtcMergerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcMergerInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcMergerOutputComplexType = Field(..., alias='rtc:output') + + +class RtcMergerSplitterComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcMergerSplitterInputComplexType = Field(..., alias='rtc:input') + rtc_mode: RtcMode2 = Field(..., alias='rtc:mode') + rtc_output: RtcMergerSplitterOutputComplexType = Field(..., alias='rtc:output') + + +class RtcMinSimpleRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_dateTable: Optional[RtcDateTableComplexType] = Field( + None, alias='rtc:dateTable' + ) + rtc_zones: Optional[RtcZonesComplexType] = Field(None, alias='rtc:zones') + + +class RtcNeuronComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: RtcNeuronIDSimpleType = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_bias: RtcBias = Field(..., alias='rtc:bias') + rtc_input: RtcNeuronInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcNeuronOutputComplexType = Field(..., alias='rtc:output') + rtc_transferFunction: RtcTransferFunction = Field( + ..., + alias='rtc:transferFunction', + description='transfer function: sigmoid, linear etc.', + ) + + +class RtcNodeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _x: Optional[XsDouble] = Field(None, alias='@x') + _y: Optional[XsDouble] = Field(None, alias='@y') + rtc_input: Optional[RtcNodeInputComplexType] = Field(None, alias='rtc:input') + rtc_output: RtcNodeOutputComplexType = Field(..., alias='rtc:output') + rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + ..., + alias='rtc:storageCharacteristics', + description='Storage characteristics of the node: The storage as a function of water level h. It can be provided as table or as a formula.', + ) + + +class RtcOrificeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_contractionCoefficient: RtcContractionCoefficient = Field( + ..., alias='rtc:contractionCoefficient' + ) + rtc_crestLevel: RtcCrestLevel = Field(..., alias='rtc:crestLevel') + rtc_exponentGateFormula: Optional[RtcExponentGateFormula] = Field( + None, alias='rtc:exponentGateFormula' + ) + rtc_exponentWeirFormula: Optional[RtcExponentWeirFormula] = Field( + None, alias='rtc:exponentWeirFormula' + ) + rtc_flowDirection: Optional[RtcFlowDirection] = Field( + None, alias='rtc:flowDirection' + ) + rtc_input: RtcOrificeInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOrificeOutputComplexType = Field(..., alias='rtc:output') + rtc_width: RtcWidth = Field(..., alias='rtc:width') + + +class RtcPumpComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_input: RtcPumpInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcPumpOutputComplexType = Field(..., alias='rtc:output') + + +class RtcReservoirCompactComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcReservoirCompactInputComplexType = Field( + ..., alias='rtc:input', description='input time series' + ) + rtc_levelStorageEquation: Optional[RtcLevelStorageEquationComplexType] = Field( + None, + alias='rtc:levelStorageEquation', + description='level storage equation according to S = A0 + A1*FB ( + A2*FB^2 + ...)', + ) + rtc_levelStorageTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:levelStorageTable', + description='level-storage relation of the reservoir, level in [m] or [ft], storage in [m3] or [KCFS-hrs]', + ) + rtc_levelStorageTableExternal: Optional[RtcLevelStorageTableExternal] = Field( + None, + alias='rtc:levelStorageTableExternal', + description='externalizes the level storage table to a parameter file, requires the two columns "level" and "storage"', + ) + rtc_output: RtcReservoirCompactOutputComplexType = Field( + ..., alias='rtc:output', description='output time series' + ) + rtc_tailwaterConstant: Optional[RtcTailwaterConstant] = Field( + None, + alias='rtc:tailwaterConstant', + description='constant value for tailwater elevation', + ) + rtc_tailwaterEquation: Optional[RtcTailwaterEquationComplexType] = Field( + None, + alias='rtc:tailwaterEquation', + description='tailwater equation according to TW = A + B*FB_downstream(t-1) + C*Q(t)^D, D is equal 1.0 by default if not provided', + ) + rtc_tailwaterExternalTable: Optional[RtcTailwaterExternalTable] = Field( + None, alias='rtc:tailwaterExternalTable', description='external tailwater table' + ) + rtc_tailwaterExternalTimeSeries: Optional[RtcTailwaterExternalTimeSeries] = Field( + None, + alias='rtc:tailwaterExternalTimeSeries', + description='external tailwater elevation from an external source or a previous calculation OUTSIDE of the reservoirCompact components', + ) + rtc_tailwaterTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:tailwaterTable', + description='tailwater as a function of the reservoir release only', + ) + rtc_tailwaterTidalEquation: Optional[RtcTailwaterTidalEquationComplexType] = Field( + None, + alias='rtc:tailwaterTidalEquation', + description='tidal influenced tailwater equation (works only in hindcast mode, use tailwater external with appropiate forecast of the tailwater in operational forecasting), TW = TWObs + A*(Q-QObs)', + ) + rtc_turbineEfficiencyConstant: Optional[RtcTurbineEfficiencyConstant] = Field( + None, alias='rtc:turbineEfficiencyConstant' + ) + rtc_turbineEfficiencyTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:turbineEfficiencyTable', + description='old formulation, will be removed in the future', + ) + rtc_turbineEfficiencyTable2D: Optional[ + RtcTurbineEfficiencyTableComplexType + ] = Field( + None, + alias='rtc:turbineEfficiencyTable2D', + description='new formulation, turbine effiency depends on head and turbine release, computation by 2D lookup', + ) + rtc_turbineEfficiencyTable2DExternal: Optional[ + RtcTurbineEfficiencyTable2DExternal + ] = Field(None, alias='rtc:turbineEfficiencyTable2DExternal') + rtc_turbineEfficiencyTableExternal: Optional[ + RtcTurbineEfficiencyTableExternal + ] = Field(None, alias='rtc:turbineEfficiencyTableExternal') + rtc_units: Optional[RtcUnits] = Field( + None, alias='rtc:units', description=' "SI" or "Imperial" units' + ) + + +class RtcReservoirThunerseeRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + ..., alias='rtc:storageCharacteristics' + ) + + +class RtcRiverWeirComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_exponentWeirFormula: Optional[RtcExponentWeirFormula1] = Field( + None, alias='rtc:exponentWeirFormula' + ) + rtc_flowDirection: Optional[RtcFlowDirection1] = Field( + None, alias='rtc:flowDirection' + ) + rtc_input: RtcRiverWeirInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcRiverWeirOutputComplexType = Field(..., alias='rtc:output') + rtc_submergedFlowFactor: Optional[RtcSubmergedFlowFactor] = Field( + None, alias='rtc:submergedFlowFactor' + ) + rtc_submergedFlowRatio: Optional[RtcSubmergedFlowRatio] = Field( + None, alias='rtc:submergedFlowRatio' + ) + rtc_width: RtcWidth1 = Field(..., alias='rtc:width') + + +class RtcSRMComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcSRMInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcSRMOutputComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcSRMParameterComplexType = Field(..., alias='rtc:parameter') + rtc_parameterZone: List[RtcSRMParameterZoneComplexType] = Field( + ..., alias='rtc:parameterZone', min_items=1 + ) + rtc_state: RtcSRMStateComplexType = Field(..., alias='rtc:state') + + +class RtcSimpleReservoirComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _multiplier: Optional[conint(ge=1)] = Field(None, alias='@multiplier') + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., alias='rtc:capacityCharacteristics' + ) + rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + ..., alias='rtc:storageCharacteristics' + ) + + +class RtcStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_link: List[RtcLinkStorageSystemComplexType] = Field( + ..., alias='rtc:link', min_items=1 + ) + rtc_output: Optional[RtcOutputStorageSystemComplexType] = Field( + None, alias='rtc:output' + ) + rtc_settings: Optional[RtcStorageSystemSettingsComplexType] = Field( + None, alias='rtc:settings' + ) + rtc_storageNode: List[RtcNodeStorageSystemComplexType] = Field( + ..., alias='rtc:storageNode', min_items=1 + ) + + +class RtcSubmodelComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_evaporationPotential: Optional[RtcEvaporationPotentialComplexType] = Field( + None, alias='rtc:evaporationPotential', description='potential evaporation' + ) + rtc_snowRainJunction: Optional[RtcSnowRainJunctionComplexType] = Field( + None, + alias='rtc:snowRainJunction', + description='separates precipitation into snow and rainfall', + ) + rtc_storageSystem: Optional[RtcStorageSystemComplexType] = Field( + None, + alias='rtc:storageSystem', + description='storage systems with storage nodes and links for setting up bucket models', + ) + rtc_typicalProfile: Optional[RtcTypicalProfileComplexType] = Field( + None, alias='rtc:typicalProfile' + ) + + +class RtcTailwaterComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_constant: Optional[RtcConstant1] = Field( + None, alias='rtc:constant', description='Constant tailwater level [m]' + ) + rtc_output: RtcTailwaterOutputComplexType = Field(..., alias='rtc:output') + rtc_ratingCurve: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:ratingCurve', + description='Tailwater depending on discharge computed by a rating curve', + ) + + +class RtcTimeAbsoluteComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcTimeAbsoluteInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcTimeAbsoluteOutputComplexType = Field(..., alias='rtc:output') + + +class RtcTimeRelativeControlTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_record: List[RtcTimeRelativeControlTableRecordComplexType] = Field( + ..., alias='rtc:record', min_items=1 + ) + + +class RtcTunnelThunerseeRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., alias='rtc:capacityCharacteristics' + ) + rtc_levelThreshold: RtcLevelThreshold = Field(..., alias='rtc:levelThreshold') + + +class RtcTurbineComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_capacityCharacteristics: RtcTurbineCapacityCharacteristicsComplexType = Field( + ..., alias='rtc:capacityCharacteristics' + ) + rtc_efficiencyCharacteristics: RtcTurbineEfficiencyCharacteristicsComplexType = ( + Field(..., alias='rtc:efficiencyCharacteristics') + ) + rtc_input: RtcTurbineInputComplexType = Field(..., alias='rtc:input') + rtc_nodeDown: RtcNodeDown = Field(..., alias='rtc:nodeDown') + rtc_nodeUp: RtcNodeUp = Field(..., alias='rtc:nodeUp') + rtc_output: RtcTurbineOutputComplexType = Field(..., alias='rtc:output') + + +class RtcUncontrolledOutletComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., + alias='rtc:capacityCharacteristics', + description='Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero', + ) + rtc_input: Optional[RtcUOutletInputComplexType] = Field(None, alias='rtc:input') + rtc_output: RtcOutletOutputComplexType = Field(..., alias='rtc:output') + + +class RtcUnitHydrographWeightComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_custom: Optional[RtcUnitHydrographWeightCustomComplexType] = Field( + None, alias='rtc:custom', description='user-defined weights' + ) + rtc_triangular: Optional[RtcUnitHydrographWeightTriangularComplexType] = Field( + None, alias='rtc:triangular', description='weights with triangular shape' + ) + + +class RtcWeirThunerseeRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., alias='rtc:capacityCharacteristics' + ) + + +class RtcXDimComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_xDim: List[RtcYDimComplexType] = Field(..., alias='rtc:xDim', min_items=1) + + +class RtcBranchComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_alpha1: Optional[RtcAlpha1] = Field( + None, + alias='rtc:alpha1', + description='the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw', + ) + rtc_alpha2: Optional[RtcAlpha2] = Field( + None, + alias='rtc:alpha2', + description='the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw', + ) + rtc_crossSection: RtcCrossSectionComplexType = Field( + ..., + alias='rtc:crossSection', + description='Cross section in the center of the flow branch.', + ) + rtc_equationType: Optional[RtcEquationType] = Field(None, alias='rtc:equationType') + rtc_input: RtcBranchInputComplexType = Field(..., alias='rtc:input') + rtc_length: RtcLength = Field( + ..., alias='rtc:length', description='Length of the flow branch' + ) + rtc_output: RtcBranchOutputComplexType = Field(..., alias='rtc:output') + rtc_roughness: RtcCrossSectionRoughnessComplexType = Field( + ..., + alias='rtc:roughness', + description='Roughness (Chezy) as a function of elevation h', + ) + rtc_slope: Optional[RtcSlope] = Field( + None, alias='rtc:slope', description='slope for optional kinematic wave branch' + ) + rtc_spatialScheme: Optional[RtcSpatialScheme] = Field( + None, alias='rtc:spatialScheme' + ) + + +class RtcDateLookupTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_dateRecord: List[RtcDateRecord2ComplexType] = Field( + ..., alias='rtc:dateRecord', min_items=1 + ) + rtc_input: RtcDateLookupTableInputComplexType = Field(..., alias='rtc:input') + rtc_interpolationOptions: RtcInterpolationOptionsComplexType = Field( + ..., + alias='rtc:interpolationOptions', + description='Interpolation option BLOCK / LINEAR for the two inputs date and value', + ) + rtc_output: RtcDateLookupTableOutputComplexType = Field(..., alias='rtc:output') + + +class RtcHydraulicStructureComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + rtc_orifice: Optional[RtcOrificeComplexType] = Field( + None, + alias='rtc:orifice', + description='Orifice according to definition in SOBEK-Rural', + ) + rtc_pump: Optional[RtcPumpComplexType] = Field( + None, alias='rtc:pump', description='Pump' + ) + rtc_weir: Optional[RtcRiverWeirComplexType] = Field( + None, + alias='rtc:weir', + description='Weir according to definition in SOBEK-River', + ) + + +class RtcHydrologicalModelComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_submodel: List[RtcSubmodelComplexType] = Field( + ..., alias='rtc:submodel', min_items=1 + ) + + +class RtcLayerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: RtcLayerIDSimpleType = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_neuron: List[RtcNeuronComplexType] = Field(..., alias='rtc:neuron', min_items=1) + + +class RtcNeuralNetworkComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_layer: List[RtcLayerComplexType] = Field(..., alias='rtc:layer', min_items=1) + + +class RtcReservoirComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_controlledOutlet: Optional[List[RtcControlledOutletComplexType]] = Field( + None, alias='rtc:controlledOutlet' + ) + rtc_input: RtcReservoirInputComplexType = Field(..., alias='rtc:input') + rtc_mode: RtcMode4 = Field( + ..., + alias='rtc:mode', + description='Time integration scheme for the network components', + ) + rtc_output: RtcReservoirOutputComplexType = Field(..., alias='rtc:output') + rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + ..., + alias='rtc:storageCharacteristics', + description='Storage characteristics of the reservoir: The storage S as a function of the water level h can be provided as a table or formula.', + ) + rtc_tailwater: Optional[RtcTailwaterComplexType] = Field( + None, + alias='rtc:tailwater', + description='Tailwater rating curve\n ', + ) + rtc_theta: RtcTheta3 = Field( + ..., + alias='rtc:theta', + description='Time weighting coefficient for the semi-implicit theta schema: 0 is equal to a full weight on the old time step, 1 represents a full weight on new time step. The coefficient is not used in the fully explicit or implicit schemas. The permitted range is between 0.5 and 1.0.', + ) + rtc_uncontrolledOutlet: Optional[List[RtcUncontrolledOutletComplexType]] = Field( + None, alias='rtc:uncontrolledOutlet' + ) + + +class RtcReservoirRoutingComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_simpleReservoir: List[RtcSimpleReservoirComplexType] = Field( + ..., alias='rtc:simpleReservoir', min_items=1 + ) + + +class RtcRoutingComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_dischargeRef: Optional[RtcDischargeRef] = Field( + None, + alias='rtc:dischargeRef', + description='Reference to timeseries in data configuration', + ) + rtc_inflow: Optional[List[RtcInflowComplexType]] = Field(None, alias='rtc:inflow') + rtc_outputReferences: RtcRoutingOutputComplexType = Field( + ..., + alias='rtc:outputReferences', + description='Contains references to the output timeseries in the data configuration', + ) + rtc_reservoirRouting: Optional[RtcReservoirRoutingComplexType] = Field( + None, alias='rtc:reservoirRouting' + ) + + +class RtcTable2DLookupTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_matrix: RtcXDimComplexType = Field(..., alias='rtc:matrix') + rtc_x: RtcValueArrayComplexType = Field(..., alias='rtc:x') + rtc_y: RtcValueArrayComplexType = Field(..., alias='rtc:y') + + +class RtcThunerseeRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcThunerseeRuleInputComplexType = Field(..., alias='rtc:input') + rtc_levelSetpoint: RtcLevelSetpoint = Field(..., alias='rtc:levelSetpoint') + rtc_output: RtcThunerseeRuleOutputComplexType = Field(..., alias='rtc:output') + rtc_releaseLimiterPercentage: RtcReleaseLimiterPercentage = Field( + ..., alias='rtc:releaseLimiterPercentage' + ) + rtc_reservoir: RtcReservoirThunerseeRuleComplexType = Field( + ..., alias='rtc:reservoir' + ) + rtc_tunnel: RtcTunnelThunerseeRuleComplexType = Field(..., alias='rtc:tunnel') + rtc_weir: RtcWeirThunerseeRuleComplexType = Field(..., alias='rtc:weir') + + +class RtcTimeRelativeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_controlTable: RtcTimeRelativeControlTableComplexType = Field( + ..., alias='rtc:controlTable', description='table with time [s] / value records' + ) + rtc_input: Optional[RtcTimeRelativeInputComplexType] = Field( + None, alias='rtc:input' + ) + rtc_interpolationOption: Optional[RtcInterpolationOption1] = Field( + None, + alias='rtc:interpolationOption', + description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', + ) + rtc_maximumPeriod: Optional[RtcMaximumPeriod] = Field( + None, alias='rtc:maximumPeriod' + ) + rtc_mode: Optional[RtcMode5] = Field( + None, + alias='rtc:mode', + description='timeRelative mode, either "NATIVE" or "RETAINVALUEWHENINACTIVE"', + ) + rtc_output: RtcTimeRelativeOutputComplexType = Field(..., alias='rtc:output') + rtc_valueOption: RtcValueOption = Field( + ..., + alias='rtc:valueOption', + description='setting if the control table provides the absolute value or the relative value ', + ) + + +class RtcUnitHydrographComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcUnitHydrographInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcUnitHydrographOutputComplexType = Field(..., alias='rtc:output') + rtc_weights: RtcUnitHydrographWeightComplexType = Field(..., alias='rtc:weights') + + +class RtcHydraulicModelComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_branch: Optional[List[RtcBranchComplexType]] = Field(None, alias='rtc:branch') + rtc_hydraulicStructure: Optional[List[RtcHydraulicStructureComplexType]] = Field( + None, alias='rtc:hydraulicStructure' + ) + rtc_mode: RtcMode = Field(..., alias='rtc:mode') + rtc_node: Optional[List[RtcNodeComplexType]] = Field(None, alias='rtc:node') + rtc_numericalTolerance: RtcNumericalTolerance = Field( + ..., alias='rtc:numericalTolerance' + ) + rtc_output: Optional[RtcHydraulicModelOutputComplexType] = Field( + None, alias='rtc:output' + ) + rtc_sequentialImplicitSettings: Optional[ + RtcHydraulicModelSequentialImplicitComplexType + ] = Field(None, alias='rtc:sequentialImplicitSettings') + rtc_simultaneousSettings: Optional[ + RtcHydraulicModelSimultaneousComplexType + ] = Field(None, alias='rtc:simultaneousSettings') + + +class RtcLookup2DTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcLookup2DTableInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcLookup2DTableOutputComplexType = Field(..., alias='rtc:output') + rtc_table: RtcTable2DLookupTableComplexType = Field(..., alias='rtc:table') + + +class RtcComponentComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _template: Optional[XsString] = Field(None, alias='@template') + rtc_accumulation: Optional[RtcAccumulationComplexType] = Field( + None, + alias='rtc:accumulation', + description='Accumulation of a time series over time', + ) + rtc_allocationTable: Optional[RtcAllocationTableComplexType] = Field( + None, alias='rtc:allocationTable' + ) + rtc_arma: Optional[RtcArmaComplexType] = Field( + None, alias='rtc:arma', description='Arma error correction model' + ) + rtc_expression: Optional[RtcExpressionComplexType] = Field( + None, alias='rtc:expression', description='Mathematical expression' + ) + rtc_gradient: Optional[RtcGradientComplexType] = Field( + None, + alias='rtc:gradient', + description='Post processing for computing gradients of simulated values', + ) + rtc_hbv: Optional[RtcHBVComplexType] = Field( + None, + alias='rtc:hbv', + description='This is an implementation of the HBV-96 hydrological model. Note that the unit hydrograph is not included, but available separately.', + ) + rtc_hydraulicModel: Optional[RtcHydraulicModelComplexType] = Field( + None, + alias='rtc:hydraulicModel', + description='Simplifications of the full dynamic, one-dimensional hydraulic model according to the kinematic wave, diffusive wave and inertial assumptions.', + ) + rtc_hydrologicalModel: Optional[RtcHydrologicalModelComplexType] = Field( + None, + alias='rtc:hydrologicalModel', + description='Modular, conceptual hydrological model with implicit time stepping scheme.', + ) + rtc_lookup2DTable: Optional[RtcLookup2DTableComplexType] = Field( + None, alias='rtc:lookup2DTable' + ) + rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( + None, alias='rtc:lookupTable' + ) + rtc_lorentGevers: Optional[RtcLorentGeversComplexType] = Field( + None, alias='rtc:lorentGevers', description='Lorent/Gevers hydrological model' + ) + rtc_merger: Optional[RtcMergerComplexType] = Field(None, alias='rtc:merger') + rtc_mergerSplitter: Optional[RtcMergerSplitterComplexType] = Field( + None, alias='rtc:mergerSplitter' + ) + rtc_neuralNetwork: Optional[RtcNeuralNetworkComplexType] = Field( + None, alias='rtc:neuralNetwork' + ) + rtc_reservoir: Optional[RtcReservoirComplexType] = Field( + None, + alias='rtc:reservoir', + description='Reservoir with arbitrary number of inlets and outlets.', + ) + rtc_reservoirCompact: Optional[RtcReservoirCompactComplexType] = Field( + None, + alias='rtc:reservoirCompact', + description='Test implementation of a compact reservoir class for simultaneous and sequential optimization mode', + ) + rtc_routing: Optional[RtcRoutingComplexType] = Field( + None, alias='rtc:routing', description='not implemented yet' + ) + rtc_srm: Optional[RtcSRMComplexType] = Field(None, alias='rtc:srm') + rtc_unitDelay: Optional[RtcUnitDelayComplexType] = Field( + None, + alias='rtc:unitDelay', + description='Unit delay operator for delaying a value by n times the time step of the model.', + ) + rtc_unitHydrograph: Optional[RtcUnitHydrographComplexType] = Field( + None, alias='rtc:unitHydrograph', description='Unit hydrograph' + ) + + +class RtcComponentsComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_component: List[RtcComponentComplexType] = Field( + ..., alias='rtc:component', min_items=1 + ) + + +class Model(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') + _xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + ) + rtc_rtcToolsConfig: Optional[_.RtcRtcToolsConfig] = Field( + None, alias='rtc:rtcToolsConfig' + ) + + +class RtcDeadBandTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_discrete: RtcDeadBandTimeDiscreteComplexType = Field(..., alias='rtc:discrete') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_input: RtcDeadBandTimeInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcDeadBandTimeOutputComplexType = Field(..., alias='rtc:output') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + + +class RtcDeadBandTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_conditionOff: RtcRelationalConditionComplexType = Field( + ..., alias='rtc:conditionOff' + ) + rtc_conditionOn: RtcRelationalConditionComplexType = Field( + ..., alias='rtc:conditionOn' + ) + rtc_default: Optional[RtcDefault] = Field(None, alias='rtc:default') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + + +class RtcPolygonLookupComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_default: Optional[RtcDefault1] = Field(None, alias='rtc:default') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_input: RtcPolygonLookupInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcPolygonLookupOutputComplexType = Field(..., alias='rtc:output') + rtc_polygons: RtcPolygonsComplexType = Field(..., alias='rtc:polygons') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + + +class RtcRtcToolsConfigComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_components: Optional[RtcComponentsComplexType] = Field( + None, + alias='rtc:components', + description='The components section includes all simulation components.', + ) + rtc_general: Optional[RtcGeneralModuleConfigComplexType] = Field( + None, + alias='rtc:general', + description='OBSOLETE. Still here for backwards compatibility. Remove after next release.', + ) + rtc_rules: Optional[RtcRulesComplexType] = Field( + None, + alias='rtc:rules', + description='The rules section includes operating rules or controllers for defining the release of reservoir, structural settings of gates etc.', + ) + rtc_triggers: Optional[RtcTriggersComplexType] = Field( + None, + alias='rtc:triggers', + description='Triggers may activate or deactivate rules defined in the section above.', + ) + + +class RtcRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_constant: Optional[RtcConstantRuleComplexType] = Field( + None, alias='rtc:constant', description='Simple rule with constant value' + ) + rtc_dateLookupTable: Optional[RtcDateLookupTableComplexType] = Field( + None, + alias='rtc:dateLookupTable', + description='Date lookup table, output y is a function of date and an input value x, the interpolation on the date / value axis can be BLOCK or LINEAR, the number of records should be constant for each date record', + ) + rtc_deadBandTime: Optional[RtcDeadBandTimeComplexType] = Field( + None, alias='rtc:deadBandTime' + ) + rtc_deadBandValue: Optional[RtcDeadBandValueComplexType] = Field( + None, + alias='rtc:deadBandValue', + description='Deadband threshold, yNew will become yOld, if the change yNew-yOld is smaller than the threshold value ', + ) + rtc_dedicated_Aebi: Optional[RtcAebiRuleComplexType] = Field( + None, + alias='rtc:dedicated-Aebi', + description='Dedicated rule for the control of Bielersee, Canton Bern, CH', + ) + rtc_dedicated_Thunersee: Optional[RtcThunerseeRuleComplexType] = Field( + None, + alias='rtc:dedicated-Thunersee', + description='Dedicated rule for the control of Thunersee, Canton Bern, CH', + ) + rtc_expression: Optional[RtcExpressionComplexType] = Field( + None, alias='rtc:expression', description='mathematical expression' + ) + rtc_guideband: Optional[RtcGuideBandRuleComplexType] = Field( + None, + alias='rtc:guideband', + description='Guide band rule, output get 0 if input less equal xMin, 1 if input greater equal xMax, linear interpolation otherwise xMin and xMax can be a function of date, main application in combination with a relative release of a reservoir outlet', + ) + rtc_interval: Optional[RtcIntervalComplexType] = Field(None, alias='rtc:interval') + rtc_limiter: Optional[RtcLimiterComplexType] = Field( + None, + alias='rtc:limiter', + description='Limiter for limiting the change of a variable in a time step to a relative (PERCENTAGE) or absolute (ABSOLUTE) change', + ) + rtc_lookup2DTable: Optional[RtcLookup2DTableComplexType] = Field( + None, alias='rtc:lookup2DTable' + ) + rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( + None, alias='rtc:lookupTable' + ) + rtc_merger: Optional[RtcMergerComplexType] = Field( + None, + alias='rtc:merger', + description='Data hierarchy, highest input has highest priority', + ) + rtc_pid: Optional[RtcPidComplexType] = Field(None, alias='rtc:pid') + rtc_timeAbsolute: Optional[RtcTimeAbsoluteComplexType] = Field( + None, alias='rtc:timeAbsolute', description='absolute time controller' + ) + rtc_timeRelative: Optional[RtcTimeRelativeComplexType] = Field( + None, alias='rtc:timeRelative', description='relative time controller' + ) + rtc_unitDelay: Optional[RtcUnitDelayComplexType] = Field( + None, + alias='rtc:unitDelay', + description='Unit delay operator for delaying a value by n times the time step of the model.', + ) + + +class RtcRuleTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_trigger: Optional[List[RtcTriggerComplexType]] = Field( + None, alias='rtc:trigger' + ) + + +class RtcRulesComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_rule: List[RtcRuleComplexType] = Field(..., alias='rtc:rule', min_items=1) + + +class RtcSetTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_default: Optional[RtcDefault2] = Field(None, alias='rtc:default') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_logicalOperator: RtcLogicalOperator = Field(..., alias='rtc:logicalOperator') + rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field24] = Field( + None, alias='rtc:x1Series' + ) + rtc_x1Trigger: Optional[RtcTriggerComplexType] = Field(None, alias='rtc:x1Trigger') + rtc_x1Value: Optional[RtcX1Value2] = Field(None, alias='rtc:x1Value') + rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field25] = Field( + None, alias='rtc:x2Series' + ) + rtc_x2Trigger: Optional[RtcTriggerComplexType] = Field(None, alias='rtc:x2Trigger') + rtc_x2Value: Optional[RtcX2Value2] = Field(None, alias='rtc:x2Value') + + +class RtcSpreadsheetComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_defaultInputValue: Optional[RtcDefaultInputValue] = Field( + None, + alias='rtc:defaultInputValue', + description='default input value, if input is NaN or infinity', + ) + rtc_defaultOutputValue: Optional[RtcDefaultOutputValue] = Field( + None, + alias='rtc:defaultOutputValue', + description='default output, if no combination of the table applies', + ) + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_input: RtcSpreadsheetInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcSpreadsheetOutputComplexType = Field(..., alias='rtc:output') + rtc_tables: RtcSpreadsheetTablesComplexType = Field( + ..., + alias='rtc:tables', + description='number of tables with input, output values, the initial state can be taken into account optionally', + ) + rtc_tolerance: RtcTolerance = Field( + ..., + alias='rtc:tolerance', + description='tolerance for finding a match, keep in mind that the all variable are stored in doubles', + ) + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_validPeriods: Optional[RtcValidPeriodsComplexType] = Field( + None, + alias='rtc:validPeriods', + description='optional period of the year for which the trigger is active', + ) + + +class RtcStandardTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_condition: RtcRelationalConditionComplexType = Field(..., alias='rtc:condition') + rtc_default: Optional[RtcDefault3] = Field(None, alias='rtc:default') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + + +class RtcTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_deadBand: Optional[RtcDeadBandTriggerComplexType] = Field( + None, alias='rtc:deadBand', description='trigger with deadband' + ) + rtc_deadBandTime: Optional[RtcDeadBandTimeComplexType] = Field( + None, alias='rtc:deadBandTime', description='trigger with time deadband' + ) + rtc_expression: Optional[RtcExpressionComplexType] = Field( + None, alias='rtc:expression', description='mathematical expression' + ) + rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( + None, alias='rtc:lookupTable' + ) + rtc_merger: Optional[RtcMergerComplexType] = Field( + None, + alias='rtc:merger', + description='Data hierarchy, highest input has highest priority', + ) + rtc_polygonLookup: Optional[RtcPolygonLookupComplexType] = Field( + None, + alias='rtc:polygonLookup', + description='trigger with two-dimensional lookup table, trigger results are defined by polygons', + ) + rtc_ruleReference: Optional[RtcRuleReference] = Field( + None, alias='rtc:ruleReference' + ) + rtc_set: Optional[RtcSetTriggerComplexType] = Field( + None, alias='rtc:set', description='set of triggers' + ) + rtc_spreadsheet: Optional[RtcSpreadsheetComplexType] = Field( + None, alias='rtc:spreadsheet', description='spread sheet trigger' + ) + rtc_standard: Optional[RtcStandardTriggerComplexType] = Field( + None, alias='rtc:standard', description='standard trigger' + ) + + +class RtcTriggersComplexType(BaseModel): + class Config: + extra = Extra.forbid + + _: Optional[str] = Field(None, alias='#') + rtc_trigger: List[RtcTriggerComplexType] = Field( + ..., alias='rtc:trigger', min_items=1 + ) + + +Model.update_forward_refs() +RtcDeadBandTimeComplexType.update_forward_refs() +RtcDeadBandTriggerComplexType.update_forward_refs() +RtcPolygonLookupComplexType.update_forward_refs() +RtcRtcToolsConfigComplexType.update_forward_refs() +RtcRuleTriggerComplexType.update_forward_refs() +RtcSetTriggerComplexType.update_forward_refs() From 11cf9861dba73c82cc97a84eaa63d5cb83ceea4d Mon Sep 17 00:00:00 2001 From: RuudHurkmans Date: Fri, 23 Sep 2022 11:13:27 +0000 Subject: [PATCH 02/22] autoformat: isort & black --- hydrolib/core/io/rtc/pi_state/models.py | 686 +-- hydrolib/core/io/rtc/pi_timeseries/models.py | 844 +-- hydrolib/core/io/rtc/rtcDataConfig/models.py | 268 +- .../core/io/rtc/rtcObjectiveConfig/models.py | 994 +-- .../core/io/rtc/rtcRuntimeConfig/models.py | 1946 +++--- hydrolib/core/io/rtc/rtcToolsConfig/models.py | 5486 ++++++++--------- 6 files changed, 5112 insertions(+), 5112 deletions(-) diff --git a/hydrolib/core/io/rtc/pi_state/models.py b/hydrolib/core/io/rtc/pi_state/models.py index b4a4b937b..c6a26d951 100644 --- a/hydrolib/core/io/rtc/pi_state/models.py +++ b/hydrolib/core/io/rtc/pi_state/models.py @@ -13,64 +13,64 @@ class FewsGeoDatumEnumStringType(Enum): - LOCAL = 'LOCAL' - WGS_1984 = 'WGS 1984' - Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' - TWD_1967 = 'TWD 1967' - Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' - Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' - Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' - Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' - Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' - JRC = 'JRC' - DWD = 'DWD' - KNMI_Radar = 'KNMI Radar' - CH1903 = 'CH1903' - PAK1 = 'PAK1' - PAK2 = 'PAK2' - SVY21 = 'SVY21' + LOCAL = "LOCAL" + WGS_1984 = "WGS 1984" + Ordnance_Survey_Great_Britain_1936 = "Ordnance Survey Great Britain 1936" + TWD_1967 = "TWD 1967" + Gauss_Krueger_Meridian2 = "Gauss Krueger Meridian2" + Gauss_Krueger_Meridian3 = "Gauss Krueger Meridian3" + Gauss_Krueger_Austria_M34 = "Gauss Krueger Austria M34" + Gauss_Krueger_Austria_M31 = "Gauss Krueger Austria M31" + Rijks_Driehoekstelsel = "Rijks Driehoekstelsel" + JRC = "JRC" + DWD = "DWD" + KNMI_Radar = "KNMI Radar" + CH1903 = "CH1903" + PAK1 = "PAK1" + PAK2 = "PAK2" + SVY21 = "SVY21" class FewsGeoDatumStringTypeEnum(Enum): - LOCAL = 'LOCAL' - WGS_1984 = 'WGS 1984' - Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' - TWD_1967 = 'TWD 1967' - Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' - Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' - Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' - Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' - Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' - JRC = 'JRC' - DWD = 'DWD' - KNMI_Radar = 'KNMI Radar' - CH1903 = 'CH1903' - PAK1 = 'PAK1' - PAK2 = 'PAK2' - SVY21 = 'SVY21' + LOCAL = "LOCAL" + WGS_1984 = "WGS 1984" + Ordnance_Survey_Great_Britain_1936 = "Ordnance Survey Great Britain 1936" + TWD_1967 = "TWD 1967" + Gauss_Krueger_Meridian2 = "Gauss Krueger Meridian2" + Gauss_Krueger_Meridian3 = "Gauss Krueger Meridian3" + Gauss_Krueger_Austria_M34 = "Gauss Krueger Austria M34" + Gauss_Krueger_Austria_M31 = "Gauss Krueger Austria M31" + Rijks_Driehoekstelsel = "Rijks Driehoekstelsel" + JRC = "JRC" + DWD = "DWD" + KNMI_Radar = "KNMI Radar" + CH1903 = "CH1903" + PAK1 = "PAK1" + PAK2 = "PAK2" + SVY21 = "SVY21" class FewsGeoDatumStringType(BaseModel): __root__: Union[ FewsGeoDatumStringTypeEnum, - constr(regex=r'^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$'), + constr(regex=r"^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$"), ] class FewsLocationIdSimpleType(BaseModel): - __root__: str = Field(..., description='Location ID, defined by the model') + __root__: str = Field(..., description="Location ID, defined by the model") class FewsParameterSimpleType(BaseModel): __root__: str = Field( ..., - description='Content of the data (Discharge, Precipitation, VPD); defined by the model', + description="Content of the data (Discharge, Precipitation, VPD); defined by the model", ) class _Type(Enum): - file = 'file' - directory = 'directory' + file = "file" + directory = "directory" class _Unit(Enum): @@ -83,25 +83,25 @@ class _Unit(Enum): class FewsTimeZoneSimpleType(BaseModel): __root__: float = Field( ..., - description='The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS', + description="The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS", ) class FewsUtmGeoDatumStringType(BaseModel): - __root__: constr(regex=r'^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$') + __root__: constr(regex=r"^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$") class FewsValueTypeEnumStringType(Enum): - boolean = 'boolean' - int = 'int' - float = 'float' - double = 'double' - string = 'string' + boolean = "boolean" + int = "int" + float = "float" + double = "double" + string = "string" class FewsBooleanStringType(BaseModel): - __root__: Union[bool, constr(regex=r'^([\w\D]*[@][\w\D]*)$')] = Field( - ..., description=' \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t' + __root__: Union[bool, constr(regex=r"^([\w\D]*[@][\w\D]*)$")] = Field( + ..., description=" \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t" ) @@ -110,18 +110,18 @@ class FewsCommentString(BaseModel): class FewsDateType(BaseModel): - __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + __root__: constr(regex=r"^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$") class FewsDoubleStringType(BaseModel): - __root__: Union[float, constr(regex=r'^([\w\D]*[@][\w\D]*)$')] = Field( + __root__: Union[float, constr(regex=r"^([\w\D]*[@][\w\D]*)$")] = Field( ..., - description='\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t', + description="\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t", ) class FewsEventCodeString(BaseModel): - __root__: constr(regex=r'^(\^\:)$') + __root__: constr(regex=r"^(\^\:)$") class FewsIdString(BaseModel): @@ -134,9 +134,9 @@ class FewsIdStringType(BaseModel): class FewsIntStringType(BaseModel): __root__: Union[ - conint(ge=-2147483648, le=2147483647), constr(regex=r'^([\w\D]*[@][\w\D]*)$') + conint(ge=-2147483648, le=2147483647), constr(regex=r"^([\w\D]*[@][\w\D]*)$") ] = Field( - ..., description='\n\t\t\t\tInteger that allows (global) properties\n\t\t\t' + ..., description="\n\t\t\t\tInteger that allows (global) properties\n\t\t\t" ) @@ -149,52 +149,52 @@ class FewsNonEmptyStringType(BaseModel): class FewsPropertyReferenceString(BaseModel): - __root__: constr(regex=r'^([\w\D]*[@][\w\D]*)$') + __root__: constr(regex=r"^([\w\D]*[@][\w\D]*)$") class FewsTimeSeriesType1(Enum): - accumulative = 'accumulative' - instantaneous = 'instantaneous' - mean = 'mean' + accumulative = "accumulative" + instantaneous = "instantaneous" + mean = "mean" class FewsTimeSeriesTypeEnumStringType(Enum): - external_historical = 'external historical' - external_forecasting = 'external forecasting' - simulated_historical = 'simulated historical' - simulated_forecasting = 'simulated forecasting' - temporary = 'temporary' + external_historical = "external historical" + external_forecasting = "external forecasting" + simulated_historical = "simulated historical" + simulated_forecasting = "simulated forecasting" + temporary = "temporary" class FewsTimeStepUnitEnumStringType(Enum): - second = 'second' - minute = 'minute' - hour = 'hour' - day = 'day' - week = 'week' - month = 'month' - year = 'year' - nonequidistant = 'nonequidistant' + second = "second" + minute = "minute" + hour = "hour" + day = "day" + week = "week" + month = "month" + year = "year" + nonequidistant = "nonequidistant" class FewsTimeType(BaseModel): - __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + __root__: constr(regex=r"^([\d][\d]\:[\d][\d]\:[\d][\d])$") class FewsVersionString(Enum): - field_1_2 = '1.2' - field_1_3 = '1.3' - field_1_4 = '1.4' - field_1_5 = '1.5' - field_1_6 = '1.6' - field_1_7 = '1.7' - field_1_8 = '1.8' - field_1_9 = '1.9' - field_1_10 = '1.10' - field_1_11 = '1.11' - field_1_12 = '1.12' - field_1_13 = '1.13' - field_1_14 = '1.14' + field_1_2 = "1.2" + field_1_3 = "1.3" + field_1_4 = "1.4" + field_1_5 = "1.5" + field_1_6 = "1.6" + field_1_7 = "1.7" + field_1_8 = "1.8" + field_1_9 = "1.9" + field_1_10 = "1.10" + field_1_11 = "1.11" + field_1_12 = "1.12" + field_1_13 = "1.13" + field_1_14 = "1.14" class XsAnyURI(BaseModel): @@ -245,352 +245,352 @@ class FewsEnsembleId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsLocationIdItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsModuleInstanceId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsParameterId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsQualifierIdItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsTimeSeriesType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsTimeSeriesTypeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsTimeSeriesTypeEnumStringType] = Field(None, alias="$") class FewsDescription(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsBoolPropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsBoolean = Field(..., alias='@value') - fews_description: Optional[FewsDescription] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsBoolean = Field(..., alias="@value") + fews_description: Optional[FewsDescription] = Field(None, alias="fews:description") class FewsColumnIdsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _A: XsString = Field(..., alias='@A') - _B: Optional[XsString] = Field(None, alias='@B') - _C: Optional[XsString] = Field(None, alias='@C') - _D: Optional[XsString] = Field(None, alias='@D') - _E: Optional[XsString] = Field(None, alias='@E') - _F: Optional[XsString] = Field(None, alias='@F') - _G: Optional[XsString] = Field(None, alias='@G') - _H: Optional[XsString] = Field(None, alias='@H') - _I: Optional[XsString] = Field(None, alias='@I') - _J: Optional[XsString] = Field(None, alias='@J') - _K: Optional[XsString] = Field(None, alias='@K') - _L: Optional[XsString] = Field(None, alias='@L') - _M: Optional[XsString] = Field(None, alias='@M') - _N: Optional[XsString] = Field(None, alias='@N') - _O: Optional[XsString] = Field(None, alias='@O') - _P: Optional[XsString] = Field(None, alias='@P') - _Q: Optional[XsString] = Field(None, alias='@Q') - _R: Optional[XsString] = Field(None, alias='@R') - _S: Optional[XsString] = Field(None, alias='@S') - _T: Optional[XsString] = Field(None, alias='@T') - _U: Optional[XsString] = Field(None, alias='@U') - _V: Optional[XsString] = Field(None, alias='@V') - _W: Optional[XsString] = Field(None, alias='@W') - _X: Optional[XsString] = Field(None, alias='@X') - _Y: Optional[XsString] = Field(None, alias='@Y') - _Z: Optional[XsString] = Field(None, alias='@Z') + _: Optional[str] = Field(None, alias="#") + _A: XsString = Field(..., alias="@A") + _B: Optional[XsString] = Field(None, alias="@B") + _C: Optional[XsString] = Field(None, alias="@C") + _D: Optional[XsString] = Field(None, alias="@D") + _E: Optional[XsString] = Field(None, alias="@E") + _F: Optional[XsString] = Field(None, alias="@F") + _G: Optional[XsString] = Field(None, alias="@G") + _H: Optional[XsString] = Field(None, alias="@H") + _I: Optional[XsString] = Field(None, alias="@I") + _J: Optional[XsString] = Field(None, alias="@J") + _K: Optional[XsString] = Field(None, alias="@K") + _L: Optional[XsString] = Field(None, alias="@L") + _M: Optional[XsString] = Field(None, alias="@M") + _N: Optional[XsString] = Field(None, alias="@N") + _O: Optional[XsString] = Field(None, alias="@O") + _P: Optional[XsString] = Field(None, alias="@P") + _Q: Optional[XsString] = Field(None, alias="@Q") + _R: Optional[XsString] = Field(None, alias="@R") + _S: Optional[XsString] = Field(None, alias="@S") + _T: Optional[XsString] = Field(None, alias="@T") + _U: Optional[XsString] = Field(None, alias="@U") + _V: Optional[XsString] = Field(None, alias="@V") + _W: Optional[XsString] = Field(None, alias="@W") + _X: Optional[XsString] = Field(None, alias="@X") + _Y: Optional[XsString] = Field(None, alias="@Y") + _Z: Optional[XsString] = Field(None, alias="@Z") class FewsColumnMetaDataComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _A: XsString = Field(..., alias='@A') - _B: Optional[XsString] = Field(None, alias='@B') - _C: Optional[XsString] = Field(None, alias='@C') - _D: Optional[XsString] = Field(None, alias='@D') - _E: Optional[XsString] = Field(None, alias='@E') - _F: Optional[XsString] = Field(None, alias='@F') - _G: Optional[XsString] = Field(None, alias='@G') - _H: Optional[XsString] = Field(None, alias='@H') - _I: Optional[XsString] = Field(None, alias='@I') - _J: Optional[XsString] = Field(None, alias='@J') - _K: Optional[XsString] = Field(None, alias='@K') - _L: Optional[XsString] = Field(None, alias='@L') - _M: Optional[XsString] = Field(None, alias='@M') - _N: Optional[XsString] = Field(None, alias='@N') - _O: Optional[XsString] = Field(None, alias='@O') - _P: Optional[XsString] = Field(None, alias='@P') - _Q: Optional[XsString] = Field(None, alias='@Q') - _R: Optional[XsString] = Field(None, alias='@R') - _S: Optional[XsString] = Field(None, alias='@S') - _T: Optional[XsString] = Field(None, alias='@T') - _U: Optional[XsString] = Field(None, alias='@U') - _V: Optional[XsString] = Field(None, alias='@V') - _W: Optional[XsString] = Field(None, alias='@W') - _X: Optional[XsString] = Field(None, alias='@X') - _Y: Optional[XsString] = Field(None, alias='@Y') - _Z: Optional[XsString] = Field(None, alias='@Z') - _id: Optional[XsString] = Field(None, alias='@id') - _type: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@type') + _: Optional[str] = Field(None, alias="#") + _A: XsString = Field(..., alias="@A") + _B: Optional[XsString] = Field(None, alias="@B") + _C: Optional[XsString] = Field(None, alias="@C") + _D: Optional[XsString] = Field(None, alias="@D") + _E: Optional[XsString] = Field(None, alias="@E") + _F: Optional[XsString] = Field(None, alias="@F") + _G: Optional[XsString] = Field(None, alias="@G") + _H: Optional[XsString] = Field(None, alias="@H") + _I: Optional[XsString] = Field(None, alias="@I") + _J: Optional[XsString] = Field(None, alias="@J") + _K: Optional[XsString] = Field(None, alias="@K") + _L: Optional[XsString] = Field(None, alias="@L") + _M: Optional[XsString] = Field(None, alias="@M") + _N: Optional[XsString] = Field(None, alias="@N") + _O: Optional[XsString] = Field(None, alias="@O") + _P: Optional[XsString] = Field(None, alias="@P") + _Q: Optional[XsString] = Field(None, alias="@Q") + _R: Optional[XsString] = Field(None, alias="@R") + _S: Optional[XsString] = Field(None, alias="@S") + _T: Optional[XsString] = Field(None, alias="@T") + _U: Optional[XsString] = Field(None, alias="@U") + _V: Optional[XsString] = Field(None, alias="@V") + _W: Optional[XsString] = Field(None, alias="@W") + _X: Optional[XsString] = Field(None, alias="@X") + _Y: Optional[XsString] = Field(None, alias="@Y") + _Z: Optional[XsString] = Field(None, alias="@Z") + _id: Optional[XsString] = Field(None, alias="@id") + _type: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@type") class FewsColumnTypesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _A: FewsValueTypeEnumStringType = Field(..., alias='@A') - _B: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@B') - _C: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@C') - _D: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@D') - _E: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@E') - _F: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@F') - _G: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@G') - _H: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@H') - _I: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@I') - _J: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@J') - _K: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@K') - _L: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@L') - _M: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@M') - _N: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@N') - _O: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@O') - _P: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@P') - _Q: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Q') - _R: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@R') - _S: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@S') - _T: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@T') - _U: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@U') - _V: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@V') - _W: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@W') - _X: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@X') - _Y: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Y') - _Z: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Z') + _: Optional[str] = Field(None, alias="#") + _A: FewsValueTypeEnumStringType = Field(..., alias="@A") + _B: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@B") + _C: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@C") + _D: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@D") + _E: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@E") + _F: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@F") + _G: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@G") + _H: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@H") + _I: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@I") + _J: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@J") + _K: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@K") + _L: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@L") + _M: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@M") + _N: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@N") + _O: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@O") + _P: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@P") + _Q: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@Q") + _R: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@R") + _S: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@S") + _T: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@T") + _U: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@U") + _V: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@V") + _W: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@W") + _X: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@X") + _Y: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@Y") + _Z: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@Z") class FewsDateTimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _date: FewsDateType = Field(..., alias='@date') - _time: FewsTimeType = Field(..., alias='@time') + _: Optional[str] = Field(None, alias="#") + _date: FewsDateType = Field(..., alias="@date") + _time: FewsTimeType = Field(..., alias="@time") class FewsDescription1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsDateTimePropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _date: FewsDateType = Field(..., alias='@date') - _key: XsString = Field(..., alias='@key') - _time: FewsTimeType = Field(..., alias='@time') - fews_description: Optional[FewsDescription1] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _date: FewsDateType = Field(..., alias="@date") + _key: XsString = Field(..., alias="@key") + _time: FewsTimeType = Field(..., alias="@time") + fews_description: Optional[FewsDescription1] = Field(None, alias="fews:description") class FewsDescription2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsDoublePropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsDouble = Field(..., alias='@value') - fews_description: Optional[FewsDescription2] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsDouble = Field(..., alias="@value") + fews_description: Optional[FewsDescription2] = Field(None, alias="fews:description") class FewsEnsembleMemberComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _index: XsNonNegativeInteger = Field(..., alias='@index') - _weight: Optional[XsDouble] = Field(None, alias='@weight') + _: Optional[str] = Field(None, alias="#") + _index: XsNonNegativeInteger = Field(..., alias="@index") + _weight: Optional[XsDouble] = Field(None, alias="@weight") class FewsEnsembleMemberRangeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _end: Optional[XsNonNegativeInteger] = Field(None, alias='@end') - _start: XsNonNegativeInteger = Field(..., alias='@start') - _weight: Optional[XsDouble] = Field(None, alias='@weight') + _: Optional[str] = Field(None, alias="#") + _end: Optional[XsNonNegativeInteger] = Field(None, alias="@end") + _start: XsNonNegativeInteger = Field(..., alias="@start") + _weight: Optional[XsDouble] = Field(None, alias="@weight") class FewsDescription3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsFloatPropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsFloat = Field(..., alias='@value') - fews_description: Optional[FewsDescription3] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsFloat = Field(..., alias="@value") + fews_description: Optional[FewsDescription3] = Field(None, alias="fews:description") class FewsDescription4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsIntPropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsInt = Field(..., alias='@value') - fews_description: Optional[FewsDescription4] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsInt = Field(..., alias="@value") + fews_description: Optional[FewsDescription4] = Field(None, alias="fews:description") class FewsDayItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGDay] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGDay] = Field(None, alias="$") class FewsEndMonthDay(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGMonthDay] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGMonthDay] = Field(None, alias="$") class FewsMonthItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGMonth] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGMonth] = Field(None, alias="$") class FewsMonthDayItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGMonthDay] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGMonthDay] = Field(None, alias="$") class FewsStartMonthDay(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGMonthDay] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGMonthDay] = Field(None, alias="$") class FewsTimeZone(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias="$") class FewsPeriodConditionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - fews_day: Optional[List[FewsDayItem]] = Field(None, alias='fews:day') + _: Optional[str] = Field(None, alias="#") + fews_day: Optional[List[FewsDayItem]] = Field(None, alias="fews:day") fews_endDate: Optional[FewsDateTimeComplexType] = Field( - None, alias='fews:endDate', description='End date and time for this period.' + None, alias="fews:endDate", description="End date and time for this period." ) fews_endMonthDay: Optional[FewsEndMonthDay] = Field( - None, alias='fews:endMonthDay', description='End month and day of this season.' + None, alias="fews:endMonthDay", description="End month and day of this season." ) - fews_month: Optional[List[FewsMonthItem]] = Field(None, alias='fews:month') - fews_monthDay: Optional[List[FewsMonthDayItem]] = Field(None, alias='fews:monthDay') + fews_month: Optional[List[FewsMonthItem]] = Field(None, alias="fews:month") + fews_monthDay: Optional[List[FewsMonthDayItem]] = Field(None, alias="fews:monthDay") fews_startDate: Optional[FewsDateTimeComplexType] = Field( - None, alias='fews:startDate', description='Start date and time for this period.' + None, alias="fews:startDate", description="Start date and time for this period." ) fews_startMonthDay: Optional[FewsStartMonthDay] = Field( None, - alias='fews:startMonthDay', - description='Start month and day of this season.', + alias="fews:startMonthDay", + description="Start month and day of this season.", ) fews_timeZone: Optional[FewsTimeZone] = Field( - None, alias='fews:timeZone', description='Timezone' + None, alias="fews:timeZone", description="Timezone" ) fews_validAfterDate: Optional[FewsDateTimeComplexType] = Field( None, - alias='fews:validAfterDate', - description='Valid for entire period after this date and time.', + alias="fews:validAfterDate", + description="Valid for entire period after this date and time.", ) fews_validBeforeDate: Optional[FewsDateTimeComplexType] = Field( None, - alias='fews:validBeforeDate', - description='Valid for entire period prior to this date and time.', + alias="fews:validBeforeDate", + description="Valid for entire period prior to this date and time.", ) @@ -598,106 +598,106 @@ class FewsDescription5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsRowComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _A: XsString = Field(..., alias='@A') - _B: Optional[XsString] = Field(None, alias='@B') - _C: Optional[XsString] = Field(None, alias='@C') - _D: Optional[XsString] = Field(None, alias='@D') - _E: Optional[XsString] = Field(None, alias='@E') - _F: Optional[XsString] = Field(None, alias='@F') - _G: Optional[XsString] = Field(None, alias='@G') - _H: Optional[XsString] = Field(None, alias='@H') - _I: Optional[XsString] = Field(None, alias='@I') - _J: Optional[XsString] = Field(None, alias='@J') - _K: Optional[XsString] = Field(None, alias='@K') - _L: Optional[XsString] = Field(None, alias='@L') - _M: Optional[XsString] = Field(None, alias='@M') - _N: Optional[XsString] = Field(None, alias='@N') - _O: Optional[XsString] = Field(None, alias='@O') - _P: Optional[XsString] = Field(None, alias='@P') - _Q: Optional[XsString] = Field(None, alias='@Q') - _R: Optional[XsString] = Field(None, alias='@R') - _S: Optional[XsString] = Field(None, alias='@S') - _T: Optional[XsString] = Field(None, alias='@T') - _U: Optional[XsString] = Field(None, alias='@U') - _V: Optional[XsString] = Field(None, alias='@V') - _W: Optional[XsString] = Field(None, alias='@W') - _X: Optional[XsString] = Field(None, alias='@X') - _Y: Optional[XsString] = Field(None, alias='@Y') - _Z: Optional[XsString] = Field(None, alias='@Z') + _: Optional[str] = Field(None, alias="#") + _A: XsString = Field(..., alias="@A") + _B: Optional[XsString] = Field(None, alias="@B") + _C: Optional[XsString] = Field(None, alias="@C") + _D: Optional[XsString] = Field(None, alias="@D") + _E: Optional[XsString] = Field(None, alias="@E") + _F: Optional[XsString] = Field(None, alias="@F") + _G: Optional[XsString] = Field(None, alias="@G") + _H: Optional[XsString] = Field(None, alias="@H") + _I: Optional[XsString] = Field(None, alias="@I") + _J: Optional[XsString] = Field(None, alias="@J") + _K: Optional[XsString] = Field(None, alias="@K") + _L: Optional[XsString] = Field(None, alias="@L") + _M: Optional[XsString] = Field(None, alias="@M") + _N: Optional[XsString] = Field(None, alias="@N") + _O: Optional[XsString] = Field(None, alias="@O") + _P: Optional[XsString] = Field(None, alias="@P") + _Q: Optional[XsString] = Field(None, alias="@Q") + _R: Optional[XsString] = Field(None, alias="@R") + _S: Optional[XsString] = Field(None, alias="@S") + _T: Optional[XsString] = Field(None, alias="@T") + _U: Optional[XsString] = Field(None, alias="@U") + _V: Optional[XsString] = Field(None, alias="@V") + _W: Optional[XsString] = Field(None, alias="@W") + _X: Optional[XsString] = Field(None, alias="@X") + _Y: Optional[XsString] = Field(None, alias="@Y") + _Z: Optional[XsString] = Field(None, alias="@Z") class FewsComment(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsCommentString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsCommentString] = Field(None, alias="$") class FewsStateId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdString] = Field(None, alias="$") class FewsStateName(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsNameString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsNameString] = Field(None, alias="$") class FewsTimeZone1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias="$") class FewsReadLocation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsAnyURI] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsAnyURI] = Field(None, alias="$") class FewsWriteLocation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsAnyURI] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsAnyURI] = Field(None, alias="$") class FewsStateReadWriteDirectoryComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _type: _Type = Field(..., alias='@type') + _: Optional[str] = Field(None, alias="#") + _type: _Type = Field(..., alias="@type") fews_readLocation: FewsReadLocation = Field( ..., - alias='fews:readLocation', - description='The name of the input state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally', + alias="fews:readLocation", + description="The name of the input state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally", ) fews_writeLocation: FewsWriteLocation = Field( ..., - alias='fews:writeLocation', - description='The name of the output state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally', + alias="fews:writeLocation", + description="The name of the output state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally", ) @@ -705,104 +705,104 @@ class FewsDescription6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsStringPropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsString = Field(..., alias='@value') - fews_description: Optional[FewsDescription6] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsString = Field(..., alias="@value") + fews_description: Optional[FewsDescription6] = Field(None, alias="fews:description") class FewsTimeStepComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') - _multiplier: Optional[XsNonNegativeInteger] = Field(None, alias='@multiplier') - _unit: FewsTimeStepUnitEnumStringType = Field(..., alias='@unit') + _: Optional[str] = Field(None, alias="#") + _divider: Optional[XsPositiveInteger] = Field(None, alias="@divider") + _multiplier: Optional[XsNonNegativeInteger] = Field(None, alias="@multiplier") + _unit: FewsTimeStepUnitEnumStringType = Field(..., alias="@unit") class FewsTimeStepUnitComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _divider: Optional[XsInt] = Field(None, alias='@divider') - _unit: _Unit = Field(..., alias='@unit') + _: Optional[str] = Field(None, alias="#") + _divider: Optional[XsInt] = Field(None, alias="@divider") + _unit: _Unit = Field(..., alias="@unit") class FewsArchiveTimeSeriesSetComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") fews_ensembleId: Optional[FewsEnsembleId] = Field( None, - alias='fews:ensembleId', + alias="fews:ensembleId", description="Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow.", ) fews_locationId: List[FewsLocationIdItem] = Field( - ..., alias='fews:locationId', min_items=1 + ..., alias="fews:locationId", min_items=1 ) fews_moduleInstanceId: FewsModuleInstanceId = Field( - ..., alias='fews:moduleInstanceId' + ..., alias="fews:moduleInstanceId" ) - fews_parameterId: FewsParameterId = Field(..., alias='fews:parameterId') + fews_parameterId: FewsParameterId = Field(..., alias="fews:parameterId") fews_qualifierId: Optional[List[FewsQualifierIdItem]] = Field( - None, alias='fews:qualifierId' + None, alias="fews:qualifierId" ) - fews_timeSeriesType: FewsTimeSeriesType = Field(..., alias='fews:timeSeriesType') - fews_timeStep: FewsTimeStepComplexType = Field(..., alias='fews:timeStep') + fews_timeSeriesType: FewsTimeSeriesType = Field(..., alias="fews:timeSeriesType") + fews_timeStep: FewsTimeStepComplexType = Field(..., alias="fews:timeStep") class FewsGlobalTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") fews_columnIds: Optional[FewsColumnIdsComplexType] = Field( - None, alias='fews:columnIds' + None, alias="fews:columnIds" ) fews_columnMetaData: Optional[List[FewsColumnMetaDataComplexType]] = Field( - None, alias='fews:columnMetaData' + None, alias="fews:columnMetaData" ) fews_columnTypes: Optional[FewsColumnTypesComplexType] = Field( - None, alias='fews:columnTypes' + None, alias="fews:columnTypes" ) fews_columnUnits: Optional[FewsColumnIdsComplexType] = Field( - None, alias='fews:columnUnits' + None, alias="fews:columnUnits" ) - fews_row: List[FewsRowComplexType] = Field(..., alias='fews:row', min_items=1) + fews_row: List[FewsRowComplexType] = Field(..., alias="fews:row", min_items=1) class FewsPropertiesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") fews_bool: Optional[List[FewsBoolPropertyComplexType]] = Field( - None, alias='fews:bool' + None, alias="fews:bool" ) fews_dateTime: Optional[List[FewsDateTimePropertyComplexType]] = Field( - None, alias='fews:dateTime' + None, alias="fews:dateTime" ) - fews_description: Optional[FewsDescription5] = Field(None, alias='fews:description') + fews_description: Optional[FewsDescription5] = Field(None, alias="fews:description") fews_double: Optional[List[FewsDoublePropertyComplexType]] = Field( - None, alias='fews:double' + None, alias="fews:double" ) fews_float: Optional[List[FewsFloatPropertyComplexType]] = Field( - None, alias='fews:float' + None, alias="fews:float" ) - fews_int: Optional[List[FewsIntPropertyComplexType]] = Field(None, alias='fews:int') + fews_int: Optional[List[FewsIntPropertyComplexType]] = Field(None, alias="fews:int") fews_string: Optional[List[FewsStringPropertyComplexType]] = Field( - None, alias='fews:string' + None, alias="fews:string" ) @@ -810,33 +810,33 @@ class FewsStateComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _version: FewsVersionString = Field(..., alias='@version') + _: Optional[str] = Field(None, alias="#") + _version: FewsVersionString = Field(..., alias="@version") fews_comment: Optional[FewsComment] = Field( None, - alias='fews:comment', - description='use this field as a notebook to add comments, suggestions\n description of data entered etc.', + alias="fews:comment", + description="use this field as a notebook to add comments, suggestions\n description of data entered etc.", ) fews_dateTime: Optional[FewsDateTimeComplexType] = Field( None, - alias='fews:dateTime', - description='date and time this state is valid for/was taken', + alias="fews:dateTime", + description="date and time this state is valid for/was taken", ) fews_stateId: FewsStateId = Field( - ..., alias='fews:stateId', description='id of this state, defined by the module' + ..., alias="fews:stateId", description="id of this state, defined by the module" ) fews_stateLoc: List[FewsStateReadWriteDirectoryComplexType] = Field( - ..., alias='fews:stateLoc', min_items=1 + ..., alias="fews:stateLoc", min_items=1 ) fews_stateName: Optional[FewsStateName] = Field( None, - alias='fews:stateName', - description='optional descriptive name of this state', + alias="fews:stateName", + description="optional descriptive name of this state", ) fews_timeZone: Optional[FewsTimeZone1] = Field( None, - alias='fews:timeZone', - description='the time zone of the pi input files is assumed when the time zone in a pi output file is missing', + alias="fews:timeZone", + description="the time zone of the pi input files is assumed when the time zone in a pi output file is missing", ) @@ -844,11 +844,11 @@ class Model(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") _xmlns_fews: Optional[Any] = Field( - 'http://www.wldelft.nl/fews/PI', alias='@xmlns:fews' + "http://www.wldelft.nl/fews/PI", alias="@xmlns:fews" ) _xmlns_xs: Optional[Any] = Field( - 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) - fews_State: Optional[_.FewsState] = Field(None, alias='fews:State') + fews_State: Optional[_.FewsState] = Field(None, alias="fews:State") diff --git a/hydrolib/core/io/rtc/pi_timeseries/models.py b/hydrolib/core/io/rtc/pi_timeseries/models.py index b367f65db..278f1e9e4 100644 --- a/hydrolib/core/io/rtc/pi_timeseries/models.py +++ b/hydrolib/core/io/rtc/pi_timeseries/models.py @@ -13,58 +13,58 @@ class FewsGeoDatumEnumStringType(Enum): - LOCAL = 'LOCAL' - WGS_1984 = 'WGS 1984' - Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' - TWD_1967 = 'TWD 1967' - Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' - Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' - Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' - Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' - Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' - JRC = 'JRC' - DWD = 'DWD' - KNMI_Radar = 'KNMI Radar' - CH1903 = 'CH1903' - PAK1 = 'PAK1' - PAK2 = 'PAK2' - SVY21 = 'SVY21' + LOCAL = "LOCAL" + WGS_1984 = "WGS 1984" + Ordnance_Survey_Great_Britain_1936 = "Ordnance Survey Great Britain 1936" + TWD_1967 = "TWD 1967" + Gauss_Krueger_Meridian2 = "Gauss Krueger Meridian2" + Gauss_Krueger_Meridian3 = "Gauss Krueger Meridian3" + Gauss_Krueger_Austria_M34 = "Gauss Krueger Austria M34" + Gauss_Krueger_Austria_M31 = "Gauss Krueger Austria M31" + Rijks_Driehoekstelsel = "Rijks Driehoekstelsel" + JRC = "JRC" + DWD = "DWD" + KNMI_Radar = "KNMI Radar" + CH1903 = "CH1903" + PAK1 = "PAK1" + PAK2 = "PAK2" + SVY21 = "SVY21" class FewsGeoDatumStringTypeEnum(Enum): - LOCAL = 'LOCAL' - WGS_1984 = 'WGS 1984' - Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' - TWD_1967 = 'TWD 1967' - Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' - Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' - Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' - Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' - Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' - JRC = 'JRC' - DWD = 'DWD' - KNMI_Radar = 'KNMI Radar' - CH1903 = 'CH1903' - PAK1 = 'PAK1' - PAK2 = 'PAK2' - SVY21 = 'SVY21' + LOCAL = "LOCAL" + WGS_1984 = "WGS 1984" + Ordnance_Survey_Great_Britain_1936 = "Ordnance Survey Great Britain 1936" + TWD_1967 = "TWD 1967" + Gauss_Krueger_Meridian2 = "Gauss Krueger Meridian2" + Gauss_Krueger_Meridian3 = "Gauss Krueger Meridian3" + Gauss_Krueger_Austria_M34 = "Gauss Krueger Austria M34" + Gauss_Krueger_Austria_M31 = "Gauss Krueger Austria M31" + Rijks_Driehoekstelsel = "Rijks Driehoekstelsel" + JRC = "JRC" + DWD = "DWD" + KNMI_Radar = "KNMI Radar" + CH1903 = "CH1903" + PAK1 = "PAK1" + PAK2 = "PAK2" + SVY21 = "SVY21" class FewsGeoDatumStringType(BaseModel): __root__: Union[ FewsGeoDatumStringTypeEnum, - constr(regex=r'^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$'), + constr(regex=r"^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$"), ] class FewsLocationIdSimpleType(BaseModel): - __root__: str = Field(..., description='Location ID, defined by the model') + __root__: str = Field(..., description="Location ID, defined by the model") class FewsParameterSimpleType(BaseModel): __root__: str = Field( ..., - description='Content of the data (Discharge, Precipitation, VPD); defined by the model', + description="Content of the data (Discharge, Precipitation, VPD); defined by the model", ) @@ -78,25 +78,25 @@ class _Unit(Enum): class FewsTimeZoneSimpleType(BaseModel): __root__: float = Field( ..., - description='The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS', + description="The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS", ) class FewsUtmGeoDatumStringType(BaseModel): - __root__: constr(regex=r'^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$') + __root__: constr(regex=r"^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$") class FewsValueTypeEnumStringType(Enum): - boolean = 'boolean' - int = 'int' - float = 'float' - double = 'double' - string = 'string' + boolean = "boolean" + int = "int" + float = "float" + double = "double" + string = "string" class FewsBooleanStringType(BaseModel): - __root__: Union[bool, constr(regex=r'^([\w\D]*[@][\w\D]*)$')] = Field( - ..., description=' \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t' + __root__: Union[bool, constr(regex=r"^([\w\D]*[@][\w\D]*)$")] = Field( + ..., description=" \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t" ) @@ -105,18 +105,18 @@ class FewsCommentString(BaseModel): class FewsDateType(BaseModel): - __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + __root__: constr(regex=r"^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$") class FewsDoubleStringType(BaseModel): - __root__: Union[float, constr(regex=r'^([\w\D]*[@][\w\D]*)$')] = Field( + __root__: Union[float, constr(regex=r"^([\w\D]*[@][\w\D]*)$")] = Field( ..., - description='\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t', + description="\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t", ) class FewsEventCodeString(BaseModel): - __root__: constr(regex=r'^(\^\:)$') + __root__: constr(regex=r"^(\^\:)$") class FewsIdString(BaseModel): @@ -129,9 +129,9 @@ class FewsIdStringType(BaseModel): class FewsIntStringType(BaseModel): __root__: Union[ - conint(ge=-2147483648, le=2147483647), constr(regex=r'^([\w\D]*[@][\w\D]*)$') + conint(ge=-2147483648, le=2147483647), constr(regex=r"^([\w\D]*[@][\w\D]*)$") ] = Field( - ..., description='\n\t\t\t\tInteger that allows (global) properties\n\t\t\t' + ..., description="\n\t\t\t\tInteger that allows (global) properties\n\t\t\t" ) @@ -144,52 +144,52 @@ class FewsNonEmptyStringType(BaseModel): class FewsPropertyReferenceString(BaseModel): - __root__: constr(regex=r'^([\w\D]*[@][\w\D]*)$') + __root__: constr(regex=r"^([\w\D]*[@][\w\D]*)$") class FewsTimeSeriesType(Enum): - accumulative = 'accumulative' - instantaneous = 'instantaneous' - mean = 'mean' + accumulative = "accumulative" + instantaneous = "instantaneous" + mean = "mean" class FewsTimeSeriesTypeEnumStringType(Enum): - external_historical = 'external historical' - external_forecasting = 'external forecasting' - simulated_historical = 'simulated historical' - simulated_forecasting = 'simulated forecasting' - temporary = 'temporary' + external_historical = "external historical" + external_forecasting = "external forecasting" + simulated_historical = "simulated historical" + simulated_forecasting = "simulated forecasting" + temporary = "temporary" class FewsTimeStepUnitEnumStringType(Enum): - second = 'second' - minute = 'minute' - hour = 'hour' - day = 'day' - week = 'week' - month = 'month' - year = 'year' - nonequidistant = 'nonequidistant' + second = "second" + minute = "minute" + hour = "hour" + day = "day" + week = "week" + month = "month" + year = "year" + nonequidistant = "nonequidistant" class FewsTimeType(BaseModel): - __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + __root__: constr(regex=r"^([\d][\d]\:[\d][\d]\:[\d][\d])$") class FewsVersionString(Enum): - field_1_2 = '1.2' - field_1_3 = '1.3' - field_1_4 = '1.4' - field_1_5 = '1.5' - field_1_6 = '1.6' - field_1_7 = '1.7' - field_1_8 = '1.8' - field_1_9 = '1.9' - field_1_10 = '1.10' - field_1_11 = '1.11' - field_1_12 = '1.12' - field_1_13 = '1.13' - field_1_14 = '1.14' + field_1_2 = "1.2" + field_1_3 = "1.3" + field_1_4 = "1.4" + field_1_5 = "1.5" + field_1_6 = "1.6" + field_1_7 = "1.7" + field_1_8 = "1.8" + field_1_9 = "1.9" + field_1_10 = "1.10" + field_1_11 = "1.11" + field_1_12 = "1.12" + field_1_13 = "1.13" + field_1_14 = "1.14" class XsBoolean(BaseModel): @@ -244,554 +244,554 @@ class FewsEnsembleId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsLocationIdItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsModuleInstanceId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsParameterId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsQualifierIdItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdStringType] = Field(None, alias="$") class FewsTimeSeriesTypeModel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsTimeSeriesTypeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsTimeSeriesTypeEnumStringType] = Field(None, alias="$") class FewsDescription(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsBoolPropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsBoolean = Field(..., alias='@value') - fews_description: Optional[FewsDescription] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsBoolean = Field(..., alias="@value") + fews_description: Optional[FewsDescription] = Field(None, alias="fews:description") class FewsColumnIdsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _A: XsString = Field(..., alias='@A') - _B: Optional[XsString] = Field(None, alias='@B') - _C: Optional[XsString] = Field(None, alias='@C') - _D: Optional[XsString] = Field(None, alias='@D') - _E: Optional[XsString] = Field(None, alias='@E') - _F: Optional[XsString] = Field(None, alias='@F') - _G: Optional[XsString] = Field(None, alias='@G') - _H: Optional[XsString] = Field(None, alias='@H') - _I: Optional[XsString] = Field(None, alias='@I') - _J: Optional[XsString] = Field(None, alias='@J') - _K: Optional[XsString] = Field(None, alias='@K') - _L: Optional[XsString] = Field(None, alias='@L') - _M: Optional[XsString] = Field(None, alias='@M') - _N: Optional[XsString] = Field(None, alias='@N') - _O: Optional[XsString] = Field(None, alias='@O') - _P: Optional[XsString] = Field(None, alias='@P') - _Q: Optional[XsString] = Field(None, alias='@Q') - _R: Optional[XsString] = Field(None, alias='@R') - _S: Optional[XsString] = Field(None, alias='@S') - _T: Optional[XsString] = Field(None, alias='@T') - _U: Optional[XsString] = Field(None, alias='@U') - _V: Optional[XsString] = Field(None, alias='@V') - _W: Optional[XsString] = Field(None, alias='@W') - _X: Optional[XsString] = Field(None, alias='@X') - _Y: Optional[XsString] = Field(None, alias='@Y') - _Z: Optional[XsString] = Field(None, alias='@Z') + _: Optional[str] = Field(None, alias="#") + _A: XsString = Field(..., alias="@A") + _B: Optional[XsString] = Field(None, alias="@B") + _C: Optional[XsString] = Field(None, alias="@C") + _D: Optional[XsString] = Field(None, alias="@D") + _E: Optional[XsString] = Field(None, alias="@E") + _F: Optional[XsString] = Field(None, alias="@F") + _G: Optional[XsString] = Field(None, alias="@G") + _H: Optional[XsString] = Field(None, alias="@H") + _I: Optional[XsString] = Field(None, alias="@I") + _J: Optional[XsString] = Field(None, alias="@J") + _K: Optional[XsString] = Field(None, alias="@K") + _L: Optional[XsString] = Field(None, alias="@L") + _M: Optional[XsString] = Field(None, alias="@M") + _N: Optional[XsString] = Field(None, alias="@N") + _O: Optional[XsString] = Field(None, alias="@O") + _P: Optional[XsString] = Field(None, alias="@P") + _Q: Optional[XsString] = Field(None, alias="@Q") + _R: Optional[XsString] = Field(None, alias="@R") + _S: Optional[XsString] = Field(None, alias="@S") + _T: Optional[XsString] = Field(None, alias="@T") + _U: Optional[XsString] = Field(None, alias="@U") + _V: Optional[XsString] = Field(None, alias="@V") + _W: Optional[XsString] = Field(None, alias="@W") + _X: Optional[XsString] = Field(None, alias="@X") + _Y: Optional[XsString] = Field(None, alias="@Y") + _Z: Optional[XsString] = Field(None, alias="@Z") class FewsColumnMetaDataComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _A: XsString = Field(..., alias='@A') - _B: Optional[XsString] = Field(None, alias='@B') - _C: Optional[XsString] = Field(None, alias='@C') - _D: Optional[XsString] = Field(None, alias='@D') - _E: Optional[XsString] = Field(None, alias='@E') - _F: Optional[XsString] = Field(None, alias='@F') - _G: Optional[XsString] = Field(None, alias='@G') - _H: Optional[XsString] = Field(None, alias='@H') - _I: Optional[XsString] = Field(None, alias='@I') - _J: Optional[XsString] = Field(None, alias='@J') - _K: Optional[XsString] = Field(None, alias='@K') - _L: Optional[XsString] = Field(None, alias='@L') - _M: Optional[XsString] = Field(None, alias='@M') - _N: Optional[XsString] = Field(None, alias='@N') - _O: Optional[XsString] = Field(None, alias='@O') - _P: Optional[XsString] = Field(None, alias='@P') - _Q: Optional[XsString] = Field(None, alias='@Q') - _R: Optional[XsString] = Field(None, alias='@R') - _S: Optional[XsString] = Field(None, alias='@S') - _T: Optional[XsString] = Field(None, alias='@T') - _U: Optional[XsString] = Field(None, alias='@U') - _V: Optional[XsString] = Field(None, alias='@V') - _W: Optional[XsString] = Field(None, alias='@W') - _X: Optional[XsString] = Field(None, alias='@X') - _Y: Optional[XsString] = Field(None, alias='@Y') - _Z: Optional[XsString] = Field(None, alias='@Z') - _id: Optional[XsString] = Field(None, alias='@id') - _type: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@type') + _: Optional[str] = Field(None, alias="#") + _A: XsString = Field(..., alias="@A") + _B: Optional[XsString] = Field(None, alias="@B") + _C: Optional[XsString] = Field(None, alias="@C") + _D: Optional[XsString] = Field(None, alias="@D") + _E: Optional[XsString] = Field(None, alias="@E") + _F: Optional[XsString] = Field(None, alias="@F") + _G: Optional[XsString] = Field(None, alias="@G") + _H: Optional[XsString] = Field(None, alias="@H") + _I: Optional[XsString] = Field(None, alias="@I") + _J: Optional[XsString] = Field(None, alias="@J") + _K: Optional[XsString] = Field(None, alias="@K") + _L: Optional[XsString] = Field(None, alias="@L") + _M: Optional[XsString] = Field(None, alias="@M") + _N: Optional[XsString] = Field(None, alias="@N") + _O: Optional[XsString] = Field(None, alias="@O") + _P: Optional[XsString] = Field(None, alias="@P") + _Q: Optional[XsString] = Field(None, alias="@Q") + _R: Optional[XsString] = Field(None, alias="@R") + _S: Optional[XsString] = Field(None, alias="@S") + _T: Optional[XsString] = Field(None, alias="@T") + _U: Optional[XsString] = Field(None, alias="@U") + _V: Optional[XsString] = Field(None, alias="@V") + _W: Optional[XsString] = Field(None, alias="@W") + _X: Optional[XsString] = Field(None, alias="@X") + _Y: Optional[XsString] = Field(None, alias="@Y") + _Z: Optional[XsString] = Field(None, alias="@Z") + _id: Optional[XsString] = Field(None, alias="@id") + _type: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@type") class FewsColumnTypesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _A: FewsValueTypeEnumStringType = Field(..., alias='@A') - _B: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@B') - _C: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@C') - _D: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@D') - _E: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@E') - _F: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@F') - _G: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@G') - _H: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@H') - _I: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@I') - _J: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@J') - _K: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@K') - _L: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@L') - _M: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@M') - _N: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@N') - _O: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@O') - _P: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@P') - _Q: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Q') - _R: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@R') - _S: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@S') - _T: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@T') - _U: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@U') - _V: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@V') - _W: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@W') - _X: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@X') - _Y: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Y') - _Z: Optional[FewsValueTypeEnumStringType] = Field(None, alias='@Z') + _: Optional[str] = Field(None, alias="#") + _A: FewsValueTypeEnumStringType = Field(..., alias="@A") + _B: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@B") + _C: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@C") + _D: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@D") + _E: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@E") + _F: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@F") + _G: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@G") + _H: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@H") + _I: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@I") + _J: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@J") + _K: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@K") + _L: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@L") + _M: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@M") + _N: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@N") + _O: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@O") + _P: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@P") + _Q: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@Q") + _R: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@R") + _S: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@S") + _T: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@T") + _U: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@U") + _V: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@V") + _W: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@W") + _X: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@X") + _Y: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@Y") + _Z: Optional[FewsValueTypeEnumStringType] = Field(None, alias="@Z") class FewsDateTimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _date: FewsDateType = Field(..., alias='@date') - _time: FewsTimeType = Field(..., alias='@time') + _: Optional[str] = Field(None, alias="#") + _date: FewsDateType = Field(..., alias="@date") + _time: FewsTimeType = Field(..., alias="@time") class FewsDescription1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsDateTimePropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _date: FewsDateType = Field(..., alias='@date') - _key: XsString = Field(..., alias='@key') - _time: FewsTimeType = Field(..., alias='@time') - fews_description: Optional[FewsDescription1] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _date: FewsDateType = Field(..., alias="@date") + _key: XsString = Field(..., alias="@key") + _time: FewsTimeType = Field(..., alias="@time") + fews_description: Optional[FewsDescription1] = Field(None, alias="fews:description") class FewsDescription2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsDoublePropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsDouble = Field(..., alias='@value') - fews_description: Optional[FewsDescription2] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsDouble = Field(..., alias="@value") + fews_description: Optional[FewsDescription2] = Field(None, alias="fews:description") class FewsEnsembleMemberComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _index: XsNonNegativeInteger = Field(..., alias='@index') - _weight: Optional[XsDouble] = Field(None, alias='@weight') + _: Optional[str] = Field(None, alias="#") + _index: XsNonNegativeInteger = Field(..., alias="@index") + _weight: Optional[XsDouble] = Field(None, alias="@weight") class FewsEnsembleMemberRangeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _end: Optional[XsNonNegativeInteger] = Field(None, alias='@end') - _start: XsNonNegativeInteger = Field(..., alias='@start') - _weight: Optional[XsDouble] = Field(None, alias='@weight') + _: Optional[str] = Field(None, alias="#") + _end: Optional[XsNonNegativeInteger] = Field(None, alias="@end") + _start: XsNonNegativeInteger = Field(..., alias="@start") + _weight: Optional[XsDouble] = Field(None, alias="@weight") class FewsEventComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _comment: Optional[XsString] = Field(None, alias='@comment') - _date: FewsDateType = Field(..., alias='@date') - _flag: Optional[XsInt] = Field(None, alias='@flag') - _flagSource: Optional[XsString] = Field(None, alias='@flagSource') - _time: FewsTimeType = Field(..., alias='@time') - _user: Optional[XsString] = Field(None, alias='@user') - _value: XsDouble = Field(..., alias='@value') + _: Optional[str] = Field(None, alias="#") + _comment: Optional[XsString] = Field(None, alias="@comment") + _date: FewsDateType = Field(..., alias="@date") + _flag: Optional[XsInt] = Field(None, alias="@flag") + _flagSource: Optional[XsString] = Field(None, alias="@flagSource") + _time: FewsTimeType = Field(..., alias="@time") + _user: Optional[XsString] = Field(None, alias="@user") + _value: XsDouble = Field(..., alias="@value") class FewsDescription3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsFloatPropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsFloat = Field(..., alias='@value') - fews_description: Optional[FewsDescription3] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsFloat = Field(..., alias="@value") + fews_description: Optional[FewsDescription3] = Field(None, alias="fews:description") class FewsCreationDate(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDate] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDate] = Field(None, alias="$") class FewsCreationTime(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsTime] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsTime] = Field(None, alias="$") class FewsEnsembleId1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdString] = Field(None, alias="$") class FewsEnsembleMemberId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdString] = Field(None, alias="$") class FewsEnsembleMemberIndex(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsNonNegativeInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsNonNegativeInteger] = Field(None, alias="$") class FewsFileDescription(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsLat(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class FewsLocationId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsLocationIdSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsLocationIdSimpleType] = Field(None, alias="$") class FewsLon(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class FewsLongName(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsMissVal(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class FewsParameterId1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsParameterSimpleType] = Field(None, alias="$") class FewsQualifierIdItem1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsIdString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsIdString] = Field(None, alias="$") class FewsRegion(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsSourceOrganisation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsSourceSystem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsStationName(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsNameString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsNameString] = Field(None, alias="$") class FewsType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsTimeSeriesType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsTimeSeriesType] = Field(None, alias="$") class FewsUnits(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsX(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class FewsY(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class FewsZ(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class FewsHighLevelThresholdsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _groupId: Optional[XsString] = Field(None, alias='@groupId') - _groupName: Optional[XsString] = Field(None, alias='@groupName') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - _value: XsFloat = Field(..., alias='@value') + _: Optional[str] = Field(None, alias="#") + _groupId: Optional[XsString] = Field(None, alias="@groupId") + _groupName: Optional[XsString] = Field(None, alias="@groupName") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + _value: XsFloat = Field(..., alias="@value") class FewsDescription4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsIntPropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsInt = Field(..., alias='@value') - fews_description: Optional[FewsDescription4] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsInt = Field(..., alias="@value") + fews_description: Optional[FewsDescription4] = Field(None, alias="fews:description") class FewsDayItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGDay] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGDay] = Field(None, alias="$") class FewsEndMonthDay(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGMonthDay] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGMonthDay] = Field(None, alias="$") class FewsMonthItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGMonth] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGMonth] = Field(None, alias="$") class FewsMonthDayItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGMonthDay] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGMonthDay] = Field(None, alias="$") class FewsStartMonthDay(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsGMonthDay] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsGMonthDay] = Field(None, alias="$") class FewsTimeZone(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias="$") class FewsPeriodConditionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - fews_day: Optional[List[FewsDayItem]] = Field(None, alias='fews:day') + _: Optional[str] = Field(None, alias="#") + fews_day: Optional[List[FewsDayItem]] = Field(None, alias="fews:day") fews_endDate: Optional[FewsDateTimeComplexType] = Field( - None, alias='fews:endDate', description='End date and time for this period.' + None, alias="fews:endDate", description="End date and time for this period." ) fews_endMonthDay: Optional[FewsEndMonthDay] = Field( - None, alias='fews:endMonthDay', description='End month and day of this season.' + None, alias="fews:endMonthDay", description="End month and day of this season." ) - fews_month: Optional[List[FewsMonthItem]] = Field(None, alias='fews:month') - fews_monthDay: Optional[List[FewsMonthDayItem]] = Field(None, alias='fews:monthDay') + fews_month: Optional[List[FewsMonthItem]] = Field(None, alias="fews:month") + fews_monthDay: Optional[List[FewsMonthDayItem]] = Field(None, alias="fews:monthDay") fews_startDate: Optional[FewsDateTimeComplexType] = Field( - None, alias='fews:startDate', description='Start date and time for this period.' + None, alias="fews:startDate", description="Start date and time for this period." ) fews_startMonthDay: Optional[FewsStartMonthDay] = Field( None, - alias='fews:startMonthDay', - description='Start month and day of this season.', + alias="fews:startMonthDay", + description="Start month and day of this season.", ) fews_timeZone: Optional[FewsTimeZone] = Field( - None, alias='fews:timeZone', description='Timezone' + None, alias="fews:timeZone", description="Timezone" ) fews_validAfterDate: Optional[FewsDateTimeComplexType] = Field( None, - alias='fews:validAfterDate', - description='Valid for entire period after this date and time.', + alias="fews:validAfterDate", + description="Valid for entire period after this date and time.", ) fews_validBeforeDate: Optional[FewsDateTimeComplexType] = Field( None, - alias='fews:validBeforeDate', - description='Valid for entire period prior to this date and time.', + alias="fews:validBeforeDate", + description="Valid for entire period prior to this date and time.", ) @@ -799,68 +799,68 @@ class FewsDescription5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsRowComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _A: XsString = Field(..., alias='@A') - _B: Optional[XsString] = Field(None, alias='@B') - _C: Optional[XsString] = Field(None, alias='@C') - _D: Optional[XsString] = Field(None, alias='@D') - _E: Optional[XsString] = Field(None, alias='@E') - _F: Optional[XsString] = Field(None, alias='@F') - _G: Optional[XsString] = Field(None, alias='@G') - _H: Optional[XsString] = Field(None, alias='@H') - _I: Optional[XsString] = Field(None, alias='@I') - _J: Optional[XsString] = Field(None, alias='@J') - _K: Optional[XsString] = Field(None, alias='@K') - _L: Optional[XsString] = Field(None, alias='@L') - _M: Optional[XsString] = Field(None, alias='@M') - _N: Optional[XsString] = Field(None, alias='@N') - _O: Optional[XsString] = Field(None, alias='@O') - _P: Optional[XsString] = Field(None, alias='@P') - _Q: Optional[XsString] = Field(None, alias='@Q') - _R: Optional[XsString] = Field(None, alias='@R') - _S: Optional[XsString] = Field(None, alias='@S') - _T: Optional[XsString] = Field(None, alias='@T') - _U: Optional[XsString] = Field(None, alias='@U') - _V: Optional[XsString] = Field(None, alias='@V') - _W: Optional[XsString] = Field(None, alias='@W') - _X: Optional[XsString] = Field(None, alias='@X') - _Y: Optional[XsString] = Field(None, alias='@Y') - _Z: Optional[XsString] = Field(None, alias='@Z') + _: Optional[str] = Field(None, alias="#") + _A: XsString = Field(..., alias="@A") + _B: Optional[XsString] = Field(None, alias="@B") + _C: Optional[XsString] = Field(None, alias="@C") + _D: Optional[XsString] = Field(None, alias="@D") + _E: Optional[XsString] = Field(None, alias="@E") + _F: Optional[XsString] = Field(None, alias="@F") + _G: Optional[XsString] = Field(None, alias="@G") + _H: Optional[XsString] = Field(None, alias="@H") + _I: Optional[XsString] = Field(None, alias="@I") + _J: Optional[XsString] = Field(None, alias="@J") + _K: Optional[XsString] = Field(None, alias="@K") + _L: Optional[XsString] = Field(None, alias="@L") + _M: Optional[XsString] = Field(None, alias="@M") + _N: Optional[XsString] = Field(None, alias="@N") + _O: Optional[XsString] = Field(None, alias="@O") + _P: Optional[XsString] = Field(None, alias="@P") + _Q: Optional[XsString] = Field(None, alias="@Q") + _R: Optional[XsString] = Field(None, alias="@R") + _S: Optional[XsString] = Field(None, alias="@S") + _T: Optional[XsString] = Field(None, alias="@T") + _U: Optional[XsString] = Field(None, alias="@U") + _V: Optional[XsString] = Field(None, alias="@V") + _W: Optional[XsString] = Field(None, alias="@W") + _X: Optional[XsString] = Field(None, alias="@X") + _Y: Optional[XsString] = Field(None, alias="@Y") + _Z: Optional[XsString] = Field(None, alias="@Z") class FewsDescription6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class FewsStringPropertyComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _key: XsString = Field(..., alias='@key') - _value: XsString = Field(..., alias='@value') - fews_description: Optional[FewsDescription6] = Field(None, alias='fews:description') + _: Optional[str] = Field(None, alias="#") + _key: XsString = Field(..., alias="@key") + _value: XsString = Field(..., alias="@value") + fews_description: Optional[FewsDescription6] = Field(None, alias="fews:description") class FewsThresholdComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") fews_highLevelThreshold: List[FewsHighLevelThresholdsComplexType] = Field( - ..., alias='fews:highLevelThreshold', min_items=1 + ..., alias="fews:highLevelThreshold", min_items=1 ) @@ -868,188 +868,188 @@ class FewsTimeZone1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsTimeZoneSimpleType] = Field(None, alias="$") class FewsComment(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[FewsCommentString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[FewsCommentString] = Field(None, alias="$") class FewsTimeStepComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') - _multiplier: Optional[XsNonNegativeInteger] = Field(None, alias='@multiplier') - _unit: FewsTimeStepUnitEnumStringType = Field(..., alias='@unit') + _: Optional[str] = Field(None, alias="#") + _divider: Optional[XsPositiveInteger] = Field(None, alias="@divider") + _multiplier: Optional[XsNonNegativeInteger] = Field(None, alias="@multiplier") + _unit: FewsTimeStepUnitEnumStringType = Field(..., alias="@unit") class FewsTimeStepUnitComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _divider: Optional[XsInt] = Field(None, alias='@divider') - _unit: _Unit = Field(..., alias='@unit') + _: Optional[str] = Field(None, alias="#") + _divider: Optional[XsInt] = Field(None, alias="@divider") + _unit: _Unit = Field(..., alias="@unit") class FewsArchiveTimeSeriesSetComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") fews_ensembleId: Optional[FewsEnsembleId] = Field( None, - alias='fews:ensembleId', + alias="fews:ensembleId", description="Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow.", ) fews_locationId: List[FewsLocationIdItem] = Field( - ..., alias='fews:locationId', min_items=1 + ..., alias="fews:locationId", min_items=1 ) fews_moduleInstanceId: FewsModuleInstanceId = Field( - ..., alias='fews:moduleInstanceId' + ..., alias="fews:moduleInstanceId" ) - fews_parameterId: FewsParameterId = Field(..., alias='fews:parameterId') + fews_parameterId: FewsParameterId = Field(..., alias="fews:parameterId") fews_qualifierId: Optional[List[FewsQualifierIdItem]] = Field( - None, alias='fews:qualifierId' + None, alias="fews:qualifierId" ) fews_timeSeriesType: FewsTimeSeriesTypeModel = Field( - ..., alias='fews:timeSeriesType' + ..., alias="fews:timeSeriesType" ) - fews_timeStep: FewsTimeStepComplexType = Field(..., alias='fews:timeStep') + fews_timeStep: FewsTimeStepComplexType = Field(..., alias="fews:timeStep") class FewsGlobalTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") fews_columnIds: Optional[FewsColumnIdsComplexType] = Field( - None, alias='fews:columnIds' + None, alias="fews:columnIds" ) fews_columnMetaData: Optional[List[FewsColumnMetaDataComplexType]] = Field( - None, alias='fews:columnMetaData' + None, alias="fews:columnMetaData" ) fews_columnTypes: Optional[FewsColumnTypesComplexType] = Field( - None, alias='fews:columnTypes' + None, alias="fews:columnTypes" ) fews_columnUnits: Optional[FewsColumnIdsComplexType] = Field( - None, alias='fews:columnUnits' + None, alias="fews:columnUnits" ) - fews_row: List[FewsRowComplexType] = Field(..., alias='fews:row', min_items=1) + fews_row: List[FewsRowComplexType] = Field(..., alias="fews:row", min_items=1) class FewsHeaderComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") fews_creationDate: Optional[FewsCreationDate] = Field( None, - alias='fews:creationDate', - description='Date on which this TimeSeries was\n created', + alias="fews:creationDate", + description="Date on which this TimeSeries was\n created", ) fews_creationTime: Optional[FewsCreationTime] = Field( None, - alias='fews:creationTime', - description='Time on which this TimeSeries was\n created', + alias="fews:creationTime", + description="Time on which this TimeSeries was\n created", ) fews_endDate: FewsDateTimeComplexType = Field( - ..., alias='fews:endDate', description='date/time of the last event' + ..., alias="fews:endDate", description="date/time of the last event" ) fews_ensembleId: Optional[FewsEnsembleId1] = Field( None, - alias='fews:ensembleId', + alias="fews:ensembleId", description="\n\t\t\t\t\t\t\tSince version 1.4\n\t\t\t\t\t\t\tAn ensemble forecast consists of a number of simulations made by making small changes to the\n\t\t\t\t\t\t\testimate of the current state used to initialize the simulation. These small changes are\n\t\t\t\t\t\t\tdesigned to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberIndex\n\t\t\t\t\t\t\tWhen specified the ensembleMemberIndex is required\n\t\t\t\t\t\t", ) fews_ensembleMemberId: Optional[FewsEnsembleMemberId] = Field( None, - alias='fews:ensembleMemberId', + alias="fews:ensembleMemberId", description="\n\t\t\t\t\t\t\t\tSince version 1.10 An ensemble forecast consists of a number of simulations made by making small changes to the estimate of the current state used to initialize the simulation. These small changes are designed to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberId. Ensemble id is not required when the ensembleMemberId is specified\n\t\t\t\t\t\t\t", ) fews_ensembleMemberIndex: Optional[FewsEnsembleMemberIndex] = Field( None, - alias='fews:ensembleMemberIndex', + alias="fews:ensembleMemberIndex", description="\n\t\t\t\t\t\t\t\tSince version 1.4 An ensemble forecast consists of a number of simulations made by making small changes to the estimate of the current state used to initialize the simulation. These small changes are designed to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberIndex. Ensemble id is not required when the ensembleMemberIndex is specified\n\t\t\t\t\t\t\t", ) fews_fileDescription: Optional[FewsFileDescription] = Field( None, - alias='fews:fileDescription', - description='Description of (the content of)\n this file', + alias="fews:fileDescription", + description="Description of (the content of)\n this file", ) fews_forecastDate: Optional[FewsDateTimeComplexType] = Field( None, - alias='fews:forecastDate', - description='\n\t\t\t\t\t\tSince version 1.5\n\t\t\t\t\t\tdate/time of the forecast. By default the forecastDate equals the start time', + alias="fews:forecastDate", + description="\n\t\t\t\t\t\tSince version 1.5\n\t\t\t\t\t\tdate/time of the forecast. By default the forecastDate equals the start time", ) fews_lat: Optional[FewsLat] = Field( - None, alias='fews:lat', description='Latitude of station' + None, alias="fews:lat", description="Latitude of station" ) - fews_locationId: FewsLocationId = Field(..., alias='fews:locationId') + fews_locationId: FewsLocationId = Field(..., alias="fews:locationId") fews_lon: Optional[FewsLon] = Field( - None, alias='fews:lon', description='Longitude of station' + None, alias="fews:lon", description="Longitude of station" ) fews_longName: Optional[FewsLongName] = Field( - None, alias='fews:longName', description='Optional long (descriptive) name' + None, alias="fews:longName", description="Optional long (descriptive) name" ) fews_missVal: FewsMissVal = Field( ..., - alias='fews:missVal', - description='Missing value definition for this TimeSeries. Defaults to NaN if left empty', + alias="fews:missVal", + description="Missing value definition for this TimeSeries. Defaults to NaN if left empty", ) - fews_parameterId: FewsParameterId1 = Field(..., alias='fews:parameterId') + fews_parameterId: FewsParameterId1 = Field(..., alias="fews:parameterId") fews_qualifierId: Optional[List[FewsQualifierIdItem1]] = Field( - None, alias='fews:qualifierId' + None, alias="fews:qualifierId" ) fews_region: Optional[FewsRegion] = Field( None, - alias='fews:region', + alias="fews:region", description="code/description of the region. Needed if the id's\n can be the same in different regions.", ) fews_sourceOrganisation: Optional[FewsSourceOrganisation] = Field( - None, alias='fews:sourceOrganisation' + None, alias="fews:sourceOrganisation" ) fews_sourceSystem: Optional[FewsSourceSystem] = Field( - None, alias='fews:sourceSystem' + None, alias="fews:sourceSystem" ) fews_startDate: FewsDateTimeComplexType = Field( - ..., alias='fews:startDate', description='date/time of the first event' + ..., alias="fews:startDate", description="date/time of the first event" ) fews_stationName: Optional[FewsStationName] = Field( - None, alias='fews:stationName', description='Station name' + None, alias="fews:stationName", description="Station name" ) fews_thresholds: Optional[FewsThresholdComplexType] = Field( - None, alias='fews:thresholds' + None, alias="fews:thresholds" ) fews_timeStep: FewsTimeStepComplexType = Field( ..., - alias='fews:timeStep', - description='The timeStep element provides three choices', + alias="fews:timeStep", + description="The timeStep element provides three choices", ) fews_type: FewsType = Field( ..., - alias='fews:type', - description='\n Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ', + alias="fews:type", + description="\n Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ", ) fews_units: Optional[FewsUnits] = Field( None, - alias='fews:units', - description='Optional string that identifies the units used', + alias="fews:units", + description="Optional string that identifies the units used", ) fews_x: Optional[FewsX] = Field( - None, alias='fews:x', description='X coordinate of station' + None, alias="fews:x", description="X coordinate of station" ) fews_y: Optional[FewsY] = Field( - None, alias='fews:y', description='Y coordinate of station' + None, alias="fews:y", description="Y coordinate of station" ) fews_z: Optional[FewsZ] = Field( - None, alias='fews:z', description='Z coordinate of station' + None, alias="fews:z", description="Z coordinate of station" ) @@ -1057,23 +1057,23 @@ class FewsPropertiesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") fews_bool: Optional[List[FewsBoolPropertyComplexType]] = Field( - None, alias='fews:bool' + None, alias="fews:bool" ) fews_dateTime: Optional[List[FewsDateTimePropertyComplexType]] = Field( - None, alias='fews:dateTime' + None, alias="fews:dateTime" ) - fews_description: Optional[FewsDescription5] = Field(None, alias='fews:description') + fews_description: Optional[FewsDescription5] = Field(None, alias="fews:description") fews_double: Optional[List[FewsDoublePropertyComplexType]] = Field( - None, alias='fews:double' + None, alias="fews:double" ) fews_float: Optional[List[FewsFloatPropertyComplexType]] = Field( - None, alias='fews:float' + None, alias="fews:float" ) - fews_int: Optional[List[FewsIntPropertyComplexType]] = Field(None, alias='fews:int') + fews_int: Optional[List[FewsIntPropertyComplexType]] = Field(None, alias="fews:int") fews_string: Optional[List[FewsStringPropertyComplexType]] = Field( - None, alias='fews:string' + None, alias="fews:string" ) @@ -1081,20 +1081,20 @@ class FewsTimeSeriesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") fews_comment: Optional[FewsComment] = Field( None, - alias='fews:comment', - description='use this field as a notebook to add comments, suggestions\n description of data entered etc.', + alias="fews:comment", + description="use this field as a notebook to add comments, suggestions\n description of data entered etc.", ) - fews_event: Optional[List[FewsEventComplexType]] = Field(None, alias='fews:event') + fews_event: Optional[List[FewsEventComplexType]] = Field(None, alias="fews:event") fews_header: FewsHeaderComplexType = Field( ..., - alias='fews:header', - description='\n The header is used to specify the link to the location\n and the contents', + alias="fews:header", + description="\n The header is used to specify the link to the location\n and the contents", ) fews_properties: Optional[List[FewsPropertiesComplexType]] = Field( - None, alias='fews:properties' + None, alias="fews:properties" ) @@ -1102,23 +1102,23 @@ class FewsTimeSeriesCollectionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _version: Optional[FewsVersionString] = Field(None, alias='@version') + _: Optional[str] = Field(None, alias="#") + _version: Optional[FewsVersionString] = Field(None, alias="@version") fews_series: List[FewsTimeSeriesComplexType] = Field( - ..., alias='fews:series', min_items=1 + ..., alias="fews:series", min_items=1 ) - fews_timeZone: Optional[FewsTimeZone1] = Field(None, alias='fews:timeZone') + fews_timeZone: Optional[FewsTimeZone1] = Field(None, alias="fews:timeZone") class Model(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") _xmlns_fews: Optional[Any] = Field( - 'http://www.wldelft.nl/fews/PI', alias='@xmlns:fews' + "http://www.wldelft.nl/fews/PI", alias="@xmlns:fews" ) _xmlns_xs: Optional[Any] = Field( - 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) - fews_TimeSeries: Optional[_.FewsTimeSeries] = Field(None, alias='fews:TimeSeries') + fews_TimeSeries: Optional[_.FewsTimeSeries] = Field(None, alias="fews:TimeSeries") diff --git a/hydrolib/core/io/rtc/rtcDataConfig/models.py b/hydrolib/core/io/rtc/rtcDataConfig/models.py index f7ef6bb7b..2f4ad59c2 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/models.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/models.py @@ -13,69 +13,69 @@ class RtcAggregationTypeEnumStringType(Enum): - BLOCK = 'BLOCK' - LINEAR = 'LINEAR' + BLOCK = "BLOCK" + LINEAR = "LINEAR" class RtcEnsembleModeEnumStringType(Enum): - JOINT = 'JOINT' - TREE = 'TREE' - INDEPENDENT = 'INDEPENDENT' + JOINT = "JOINT" + TREE = "TREE" + INDEPENDENT = "INDEPENDENT" class RtcExternalBooleanSimpleType(BaseModel): - __root__: Union[bool, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + __root__: Union[bool, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] class RtcExternalIntegerSimpleType(BaseModel): - __root__: Union[int, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + __root__: Union[int, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] class RtcExternalParameterSimpleType(BaseModel): - __root__: Union[float, constr(regex=r'^([#-\$][\(-_a-z]+[#-\$])$')] + __root__: Union[float, constr(regex=r"^([#-\$][\(-_a-z]+[#-\$])$")] class RtcPIExtrapolationOptionEnumStringType(Enum): - BLOCK = 'BLOCK' - PERIODIC = 'PERIODIC' + BLOCK = "BLOCK" + PERIODIC = "PERIODIC" class RtcPIInterpolationOptionEnumStringType(Enum): - BLOCK = 'BLOCK' - LINEAR = 'LINEAR' + BLOCK = "BLOCK" + LINEAR = "LINEAR" class RtcExtrapolationOption(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcPIExtrapolationOptionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcPIExtrapolationOptionEnumStringType] = Field(None, alias="$") class RtcInterpolationOption(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcPIInterpolationOptionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcPIInterpolationOptionEnumStringType] = Field(None, alias="$") class _Validation(Enum): - NO = 'NO' - STATE = 'STATE' - UPDATE = 'UPDATE' - UPDATE_EXCEPT_STATE = 'UPDATE_EXCEPT_STATE' - FORECAST = 'FORECAST' - FORECAST_EXCEPT_T0 = 'FORECAST_EXCEPT_T0' - ALL = 'ALL' - ALL_EXCEPT_STATE = 'ALL_EXCEPT_STATE' + NO = "NO" + STATE = "STATE" + UPDATE = "UPDATE" + UPDATE_EXCEPT_STATE = "UPDATE_EXCEPT_STATE" + FORECAST = "FORECAST" + FORECAST_EXCEPT_T0 = "FORECAST_EXCEPT_T0" + ALL = "ALL" + ALL_EXCEPT_STATE = "ALL_EXCEPT_STATE" class RtcSeparatorEnumStringType(Enum): - _ = '.' - __1 = ',' - __2 = ';' + _ = "." + __1 = "," + __2 = ";" class RtcTimeSeriesSimpleType(BaseModel): @@ -85,43 +85,43 @@ class RtcTimeSeriesSimpleType(BaseModel): class RtcTimeZoneSimpleType(BaseModel): __root__: float = Field( ..., - description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + description="The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", ) class RtcUnitEnumStringType(Enum): - m = 'm' - m_2 = 'm^2' - m_3 = 'm^3' - m_3_s = 'm^3/s' - s = 's' + m = "m" + m_2 = "m^2" + m_3 = "m^3" + m_3_s = "m^3/s" + s = "s" class RtcVariableTypeEnumStringType(Enum): - CONTINUOUS = 'CONTINUOUS' - INTEGER = 'INTEGER' - TIMEINSTANCE = 'TIMEINSTANCE' + CONTINUOUS = "CONTINUOUS" + INTEGER = "INTEGER" + TIMEINSTANCE = "TIMEINSTANCE" class RtcDateType(BaseModel): - __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + __root__: constr(regex=r"^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$") class RtcTimeSeriesType(Enum): - accumulative = 'accumulative' - instantaneous = 'instantaneous' + accumulative = "accumulative" + instantaneous = "instantaneous" class RtcTimeStepUnitEnumStringType(Enum): - second = 'second' - minute = 'minute' - hour = 'hour' - day = 'day' - week = 'week' + second = "second" + minute = "minute" + hour = "hour" + day = "day" + week = "week" class RtcTimeType(BaseModel): - __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + __root__: constr(regex=r"^([\d][\d]\:[\d][\d]\:[\d][\d])$") class XsBoolean(BaseModel): @@ -140,64 +140,64 @@ class RtcCSVTimeSeriesFileComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _adjointOutput: Optional[XsBoolean] = Field(None, alias='@adjointOutput') + _: Optional[str] = Field(None, alias="#") + _adjointOutput: Optional[XsBoolean] = Field(None, alias="@adjointOutput") _decimalSeparator: Optional[RtcSeparatorEnumStringType] = Field( - None, alias='@decimalSeparator' + None, alias="@decimalSeparator" ) - _delimiter: Optional[RtcSeparatorEnumStringType] = Field(None, alias='@delimiter') + _delimiter: Optional[RtcSeparatorEnumStringType] = Field(None, alias="@delimiter") class RtcDateTimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _date: RtcDateType = Field(..., alias='@date') - _time: RtcTimeType = Field(..., alias='@time') + _: Optional[str] = Field(None, alias="#") + _date: RtcDateType = Field(..., alias="@date") + _time: RtcTimeType = Field(..., alias="@time") class RtcElementId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcQuantityId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcUnit(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcUnitEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcUnitEnumStringType] = Field(None, alias="$") class RtcOpenMIExchangeItemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_elementId: RtcElementId = Field( ..., - alias='rtc:elementId', - description='OpenMI element ID, corresponds to the locationId', + alias="rtc:elementId", + description="OpenMI element ID, corresponds to the locationId", ) rtc_quantityId: RtcQuantityId = Field( ..., - alias='rtc:quantityId', - description='OpenMI quantity ID, corresponds to the parameterId', + alias="rtc:quantityId", + description="OpenMI quantity ID, corresponds to the parameterId", ) rtc_unit: RtcUnit = Field( - ..., alias='rtc:unit', description='Selection of supported units' + ..., alias="rtc:unit", description="Selection of supported units" ) @@ -205,74 +205,74 @@ class RtcLocationId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcParameterId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcQualifierIdItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcUnit1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcAdjointOutput(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcTimeSeriesFile(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcUseBinFile(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcPITimeSeriesExportFileComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_adjointOutput: Optional[RtcAdjointOutput] = Field( - None, alias='rtc:adjointOutput' + None, alias="rtc:adjointOutput" ) rtc_timeSeriesFile: RtcTimeSeriesFile = Field( ..., - alias='rtc:timeSeriesFile', - description='Name of the file containing timeseries data. ', + alias="rtc:timeSeriesFile", + description="Name of the file containing timeseries data. ", ) rtc_useBinFile: Optional[RtcUseBinFile] = Field( None, - alias='rtc:useBinFile', + alias="rtc:useBinFile", description='When true the events in the PI time series file are read from / written into a binairy file instead of the xml file.\nThe xml file only contains the time series headers and optionally a time zone.\nThe binairy file has the same name as the xml file only the extension is "bin" instead of "xml". The byte order in the bin file is always Intel x86.\n ', ) @@ -281,32 +281,32 @@ class RtcTimeSeriesFile1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcUseBinFile1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcPITimeSeriesImportFileComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_timeSeriesFile: RtcTimeSeriesFile1 = Field( ..., - alias='rtc:timeSeriesFile', - description='Name of the file containing timeseries data. ', + alias="rtc:timeSeriesFile", + description="Name of the file containing timeseries data. ", ) rtc_useBinFile: Optional[RtcUseBinFile1] = Field( None, - alias='rtc:useBinFile', - description='OBSOLETE. Still here for backwards compatibility. Remove after next release.', + alias="rtc:useBinFile", + description="OBSOLETE. Still here for backwards compatibility. Remove after next release.", ) @@ -314,47 +314,47 @@ class RtcTimeStepComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') - _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') - _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + _: Optional[str] = Field(None, alias="#") + _divider: Optional[XsPositiveInteger] = Field(None, alias="@divider") + _multiplier: Optional[XsPositiveInteger] = Field(None, alias="@multiplier") + _unit: RtcTimeStepUnitEnumStringType = Field(..., alias="@unit") class RtcPITimeSeriesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_extrapolationOption: Optional[RtcExtrapolationOption] = Field( None, - alias='rtc:extrapolationOption', - description='Extrapolation option in data import', + alias="rtc:extrapolationOption", + description="Extrapolation option in data import", ) rtc_interpolationOption: Optional[RtcInterpolationOption] = Field( None, - alias='rtc:interpolationOption', - description='Interpolation option in data import', + alias="rtc:interpolationOption", + description="Interpolation option in data import", ) rtc_locationId: RtcLocationId = Field( - ..., alias='rtc:locationId', description='Location ID in Delft-FEWS PI-XML file' + ..., alias="rtc:locationId", description="Location ID in Delft-FEWS PI-XML file" ) rtc_parameterId: RtcParameterId = Field( ..., - alias='rtc:parameterId', - description='Parameter ID in Delft-FEWS PI-XML file', + alias="rtc:parameterId", + description="Parameter ID in Delft-FEWS PI-XML file", ) rtc_qualifierId: Optional[List[RtcQualifierIdItem]] = Field( - None, alias='rtc:qualifierId' + None, alias="rtc:qualifierId" ) rtc_timeStep: Optional[RtcTimeStepComplexType] = Field( None, - alias='rtc:timeStep', - description='Equidistant time step of time series with optional multiplier of divider', + alias="rtc:timeStep", + description="Equidistant time step of time series with optional multiplier of divider", ) rtc_unit: Optional[RtcUnit1] = Field( None, - alias='rtc:unit', - description='Optional check for this unit during import, write this unit optionally when export the time series', + alias="rtc:unit", + description="Optional check for this unit during import, write this unit optionally when export the time series", ) @@ -362,21 +362,21 @@ class RtcRTCTimeSeriesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: constr(min_length=1) = Field(..., alias='@id') - _validation: Optional[_Validation] = Field(None, alias='@validation') + _: Optional[str] = Field(None, alias="#") + _id: constr(min_length=1) = Field(..., alias="@id") + _validation: Optional[_Validation] = Field(None, alias="@validation") _vectorLength: Optional[conint(ge=1, le=2147483647)] = Field( - None, alias='@vectorLength' + None, alias="@vectorLength" ) rtc_OpenMIExchangeItem: Optional[RtcOpenMIExchangeItemComplexType] = Field( None, - alias='rtc:OpenMIExchangeItem', - description='Time series definition of the OpenMI format for the online coupling of models during runtime', + alias="rtc:OpenMIExchangeItem", + description="Time series definition of the OpenMI format for the online coupling of models during runtime", ) rtc_PITimeSeries: Optional[RtcPITimeSeriesComplexType] = Field( None, - alias='rtc:PITimeSeries', - description='Time series definition of the PI XML time series format of Delft-FEWS', + alias="rtc:PITimeSeries", + description="Time series definition of the PI XML time series format of Delft-FEWS", ) @@ -384,17 +384,17 @@ class RtcRTCSeriesExportComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_CSVTimeSeriesFile: Optional[RtcCSVTimeSeriesFileComplexType] = Field( None, - alias='rtc:CSVTimeSeriesFile', - description='Comma-separated file for data exports. Note that this option is only used in the exportSeries element. If selected, all available time series will be exported.', + alias="rtc:CSVTimeSeriesFile", + description="Comma-separated file for data exports. Note that this option is only used in the exportSeries element. If selected, all available time series will be exported.", ) rtc_PITimeSeriesFile: Optional[RtcPITimeSeriesExportFileComplexType] = Field( - None, alias='rtc:PITimeSeriesFile' + None, alias="rtc:PITimeSeriesFile" ) rtc_timeSeries: List[RtcRTCTimeSeriesComplexType] = Field( - ..., alias='rtc:timeSeries', min_items=1 + ..., alias="rtc:timeSeries", min_items=1 ) @@ -402,12 +402,12 @@ class RtcRTCSeriesImportComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_PITimeSeriesFile: Optional[RtcPITimeSeriesImportFileComplexType] = Field( - None, alias='rtc:PITimeSeriesFile' + None, alias="rtc:PITimeSeriesFile" ) rtc_timeSeries: List[RtcRTCTimeSeriesComplexType] = Field( - ..., alias='rtc:timeSeries', min_items=1 + ..., alias="rtc:timeSeries", min_items=1 ) @@ -415,16 +415,16 @@ class RtcRTCDataConfigComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_exportSeries: RtcRTCSeriesExportComplexType = Field( ..., - alias='rtc:exportSeries', - description='Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces', + alias="rtc:exportSeries", + description="Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces", ) rtc_importSeries: RtcRTCSeriesImportComplexType = Field( ..., - alias='rtc:importSeries', - description='Import time series RTC-Tools imports from XML files or other interfaces', + alias="rtc:importSeries", + description="Import time series RTC-Tools imports from XML files or other interfaces", ) @@ -432,11 +432,11 @@ class Model(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') + _: Optional[str] = Field(None, alias="#") + _xmlns_rtc: Optional[Any] = Field("http://www.wldelft.nl/fews", alias="@xmlns:rtc") _xmlns_xs: Optional[Any] = Field( - 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) rtc_rtcDataConfig: Optional[_.RtcRtcDataConfig] = Field( - None, alias='rtc:rtcDataConfig' + None, alias="rtc:rtcDataConfig" ) diff --git a/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py b/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py index 932c1f854..dd5c7a872 100644 --- a/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py +++ b/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py @@ -13,140 +13,140 @@ class RtcAggregationTypeEnumStringType(Enum): - BLOCK = 'BLOCK' - LINEAR = 'LINEAR' + BLOCK = "BLOCK" + LINEAR = "LINEAR" class RtcNStep(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[conint(ge=1)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[conint(ge=1)] = Field(None, alias="$") class RtcNStep1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[conint(ge=1)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[conint(ge=1)] = Field(None, alias="$") class RtcNStep2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[conint(ge=1)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[conint(ge=1)] = Field(None, alias="$") class RtcStepIndexItem1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[conint(ge=0, le=2147483647)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[conint(ge=0, le=2147483647)] = Field(None, alias="$") class RtcBoundStateStepIndicesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_stepIndex: List[RtcStepIndexItem1] = Field( - ..., alias='rtc:stepIndex', min_items=1 + ..., alias="rtc:stepIndex", min_items=1 ) class RtcEnsembleModeEnumStringType(Enum): - JOINT = 'JOINT' - TREE = 'TREE' - INDEPENDENT = 'INDEPENDENT' + JOINT = "JOINT" + TREE = "TREE" + INDEPENDENT = "INDEPENDENT" class RtcExternalBooleanSimpleType(BaseModel): - __root__: Union[bool, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + __root__: Union[bool, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] class RtcExternalIntegerSimpleType(BaseModel): - __root__: Union[int, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + __root__: Union[int, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] class RtcExternalParameterSimpleType(BaseModel): - __root__: Union[float, constr(regex=r'^([#-\$][\(-_a-z]+[#-\$])$')] + __root__: Union[float, constr(regex=r"^([#-\$][\(-_a-z]+[#-\$])$")] class RtcNStep3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[conint(ge=1)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[conint(ge=1)] = Field(None, alias="$") class RtcNStep4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[conint(ge=1)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[conint(ge=1)] = Field(None, alias="$") class RtcSetPoint(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcWeightingFactorItem1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcWeightingFactorFinalItem1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcSetPoint1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcWeightingFactorItem2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcWeightingFactorFinalItem2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcWeightingFactorItem3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTimeSeriesSimpleType(BaseModel): @@ -156,40 +156,40 @@ class RtcTimeSeriesSimpleType(BaseModel): class RtcTimeZoneSimpleType(BaseModel): __root__: float = Field( ..., - description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + description="The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", ) class RtcVariableTypeEnumStringType(Enum): - CONTINUOUS = 'CONTINUOUS' - INTEGER = 'INTEGER' - TIMEINSTANCE = 'TIMEINSTANCE' + CONTINUOUS = "CONTINUOUS" + INTEGER = "INTEGER" + TIMEINSTANCE = "TIMEINSTANCE" class RtcDateType(BaseModel): - __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + __root__: constr(regex=r"^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$") class RtcNStepModeEnum(Enum): - CONTINUOUS = 'CONTINUOUS' - STEP = 'STEP' + CONTINUOUS = "CONTINUOUS" + STEP = "STEP" class RtcTimeSeriesType(Enum): - accumulative = 'accumulative' - instantaneous = 'instantaneous' + accumulative = "accumulative" + instantaneous = "instantaneous" class RtcTimeStepUnitEnumStringType(Enum): - second = 'second' - minute = 'minute' - hour = 'hour' - day = 'day' - week = 'week' + second = "second" + minute = "minute" + hour = "hour" + day = "day" + week = "week" class RtcTimeType(BaseModel): - __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + __root__: constr(regex=r"^([\d][\d]\:[\d][\d]\:[\d][\d])$") class XsAnySimpleType(BaseModel): @@ -224,38 +224,38 @@ class RtcConstant(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsAnySimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsAnySimpleType] = Field(None, alias="$") class RtcNAggregationSteps(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInteger] = Field(None, alias="$") class RtcType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcAggregationTypeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcAggregationTypeEnumStringType] = Field(None, alias="$") class RtcAggregationEquidistantComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_nAggregationSteps: RtcNAggregationSteps = Field( ..., - alias='rtc:nAggregationSteps', - description='aggregation, simulation time nOutputSteps (simulation) = nInputSteps (optimizer) * nAggregationSteps', + alias="rtc:nAggregationSteps", + description="aggregation, simulation time nOutputSteps (simulation) = nInputSteps (optimizer) * nAggregationSteps", ) rtc_type: RtcType = Field( - ..., alias='rtc:type', description='interpolation type: block or linear' + ..., alias="rtc:type", description="interpolation type: block or linear" ) @@ -263,50 +263,50 @@ class RtcNInputSteps(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInteger] = Field(None, alias="$") class RtcNOutputSteps(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInteger] = Field(None, alias="$") class RtcStepIndexItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInteger] = Field(None, alias="$") class RtcType1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcAggregationTypeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcAggregationTypeEnumStringType] = Field(None, alias="$") class RtcAggregationNonEquidistantComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_nInputSteps: RtcNInputSteps = Field( - ..., alias='rtc:nInputSteps', description='number of input time steps' + ..., alias="rtc:nInputSteps", description="number of input time steps" ) rtc_nOutputSteps: RtcNOutputSteps = Field( - ..., alias='rtc:nOutputSteps', description='number of output time steps' + ..., alias="rtc:nOutputSteps", description="number of output time steps" ) rtc_stepIndex: List[RtcStepIndexItem] = Field( - ..., alias='rtc:stepIndex', min_items=1 + ..., alias="rtc:stepIndex", min_items=1 ) rtc_type: RtcType1 = Field( - ..., alias='rtc:type', description='interpolation type: block or linear' + ..., alias="rtc:type", description="interpolation type: block or linear" ) @@ -314,33 +314,33 @@ class RtcInputDelayVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcNStepSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcAverageComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_inputDelayVector: Optional[RtcInputDelayVector] = Field( - None, alias='rtc:inputDelayVector' + None, alias="rtc:inputDelayVector" ) rtc_nStep: Optional[RtcNStep] = Field( - None, alias='rtc:nStep', description='fixed value for nStep' + None, alias="rtc:nStep", description="fixed value for nStep" ) rtc_nStepSeries: Optional[RtcNStepSeries] = Field( None, - alias='rtc:nStepSeries', - description='nStep value is provided as a time series, the average is computed if the value is a positive integer', + alias="rtc:nStepSeries", + description="nStep value is provided as a time series, the average is computed if the value is a positive integer", ) @@ -348,35 +348,35 @@ class RtcNStepSeries1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcVariableDelayVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcBoundAverageComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_nStep: Optional[RtcNStep1] = Field( - None, alias='rtc:nStep', description='fixed value for nStep' + None, alias="rtc:nStep", description="fixed value for nStep" ) rtc_nStepSeries: Optional[RtcNStepSeries1] = Field( None, - alias='rtc:nStepSeries', - description='nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer', + alias="rtc:nStepSeries", + description="nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer", ) rtc_variableDelayVector: Optional[RtcVariableDelayVector] = Field( None, - alias='rtc:variableDelayVector', - description='optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ', + alias="rtc:variableDelayVector", + description="optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ", ) @@ -384,57 +384,57 @@ class RtcLowerBound(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLowerBoundSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcState(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUpperBound(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcUpperBoundSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcComponentItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcBoundStateComponentsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_component: List[RtcComponentItem] = Field( - ..., alias='rtc:component', min_items=1 + ..., alias="rtc:component", min_items=1 ) @@ -442,85 +442,85 @@ class RtcVariableItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcBoundStateVariablesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_variable: List[RtcVariableItem] = Field(..., alias='rtc:variable', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_variable: List[RtcVariableItem] = Field(..., alias="rtc:variable", min_items=1) class RtcLowerBound1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLowerBoundSeries1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUpperBound1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcUpperBoundSeries1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcVariable(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcBoundVariableAverageComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_average: RtcBoundAverageComplexType = Field(..., alias='rtc:average') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_average: RtcBoundAverageComplexType = Field(..., alias="rtc:average") rtc_lowerBound: Optional[RtcLowerBound1] = Field( - None, alias='rtc:lowerBound', description='lower bound as a scalar' + None, alias="rtc:lowerBound", description="lower bound as a scalar" ) rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries1] = Field( None, - alias='rtc:lowerBoundSeries', - description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:lowerBoundSeries", + description="lower bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_upperBound: Optional[RtcUpperBound1] = Field( - None, alias='rtc:upperBound', description='upper bound as a scalar value' + None, alias="rtc:upperBound", description="upper bound as a scalar value" ) rtc_upperBoundSeries: Optional[RtcUpperBoundSeries1] = Field( None, - alias='rtc:upperBoundSeries', - description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:upperBoundSeries", + description="upper bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_variable: RtcVariable = Field( ..., - alias='rtc:variable', + alias="rtc:variable", description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", ) @@ -529,68 +529,68 @@ class RtcLowerBound2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLowerBoundSeries2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUpperBound2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcUpperBoundSeries2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcVariable1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcBoundVariableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_lowerBound: Optional[RtcLowerBound2] = Field( - None, alias='rtc:lowerBound', description='lower bound as a scalar' + None, alias="rtc:lowerBound", description="lower bound as a scalar" ) rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries2] = Field( None, - alias='rtc:lowerBoundSeries', - description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:lowerBoundSeries", + description="lower bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_upperBound: Optional[RtcUpperBound2] = Field( - None, alias='rtc:upperBound', description='upper bound as a scalar value' + None, alias="rtc:upperBound", description="upper bound as a scalar value" ) rtc_upperBoundSeries: Optional[RtcUpperBoundSeries2] = Field( None, - alias='rtc:upperBoundSeries', - description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:upperBoundSeries", + description="upper bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_variable: RtcVariable1 = Field( ..., - alias='rtc:variable', + alias="rtc:variable", description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", ) @@ -599,155 +599,155 @@ class RtcLowerBound3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLowerBoundSeries3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUpperBound3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcUpperBoundSeries3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcVariable2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcF(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcInput(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLowerBound4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLowerBoundSeries4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOrder(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcUpperBound4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcUpperBoundSeries4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcWeightingFactorItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcWeightingFactorFinalItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcWeightingFactorSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcChanceConstraintComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_f: RtcF = Field(..., alias='rtc:f') - rtc_input: RtcInput = Field(..., alias='rtc:input') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_f: RtcF = Field(..., alias="rtc:f") + rtc_input: RtcInput = Field(..., alias="rtc:input") rtc_lowerBound: Optional[RtcLowerBound4] = Field( - None, alias='rtc:lowerBound', description='lower bound as a scalar' + None, alias="rtc:lowerBound", description="lower bound as a scalar" ) rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries4] = Field( None, - alias='rtc:lowerBoundSeries', - description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:lowerBoundSeries", + description="lower bound from a times series, a missing value will switch out the constraint for this specific time step", ) - rtc_order: RtcOrder = Field(..., alias='rtc:order') + rtc_order: RtcOrder = Field(..., alias="rtc:order") rtc_upperBound: Optional[RtcUpperBound4] = Field( - None, alias='rtc:upperBound', description='upper bound as a scalar value' + None, alias="rtc:upperBound", description="upper bound as a scalar value" ) rtc_upperBoundSeries: Optional[RtcUpperBoundSeries4] = Field( None, - alias='rtc:upperBoundSeries', - description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:upperBoundSeries", + description="upper bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_weightingFactor: Optional[List[RtcWeightingFactorItem]] = Field( - None, alias='rtc:weightingFactor' + None, alias="rtc:weightingFactor" ) rtc_weightingFactorFinal: Optional[List[RtcWeightingFactorFinalItem]] = Field( - None, alias='rtc:weightingFactorFinal' + None, alias="rtc:weightingFactorFinal" ) rtc_weightingFactorSeries: Optional[RtcWeightingFactorSeries] = Field( - None, alias='rtc:weightingFactorSeries' + None, alias="rtc:weightingFactorSeries" ) @@ -755,77 +755,77 @@ class RtcF1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcLowerBound5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLowerBoundSeries5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUpperBound5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcUpperBoundSeries5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcVariable3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcChanceVariableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_f: RtcF1 = Field(..., alias='rtc:f') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_f: RtcF1 = Field(..., alias="rtc:f") rtc_lowerBound: Optional[RtcLowerBound5] = Field( - None, alias='rtc:lowerBound', description='lower bound as a scalar' + None, alias="rtc:lowerBound", description="lower bound as a scalar" ) rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries5] = Field( None, - alias='rtc:lowerBoundSeries', - description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:lowerBoundSeries", + description="lower bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_upperBound: Optional[RtcUpperBound5] = Field( - None, alias='rtc:upperBound', description='upper bound as a scalar value' + None, alias="rtc:upperBound", description="upper bound as a scalar value" ) rtc_upperBoundSeries: Optional[RtcUpperBoundSeries5] = Field( None, - alias='rtc:upperBoundSeries', - description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:upperBoundSeries", + description="upper bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_variable: RtcVariable3 = Field( ..., - alias='rtc:variable', + alias="rtc:variable", description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", ) @@ -834,70 +834,70 @@ class RtcDateTimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _date: RtcDateType = Field(..., alias='@date') - _time: RtcTimeType = Field(..., alias='@time') + _: Optional[str] = Field(None, alias="#") + _date: RtcDateType = Field(..., alias="@date") + _time: RtcTimeType = Field(..., alias="@time") class RtcNStepCorrection(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcNStepMode(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcNStepModeEnum] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcNStepModeEnum] = Field(None, alias="$") class RtcNStepSeries2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcVariableDelayVector1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcMultipleDelayComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_nStep: Optional[RtcNStep3] = Field( - None, alias='rtc:nStep', description='fixed value for nStep' + None, alias="rtc:nStep", description="fixed value for nStep" ) rtc_nStepCorrection: Optional[RtcNStepCorrection] = Field( None, - alias='rtc:nStepCorrection', - description='if TRUE, the rate-of-change bounds are given as change per time step, if FALSE, the bounds represent the total change over all time steps, default is FALSE ', + alias="rtc:nStepCorrection", + description="if TRUE, the rate-of-change bounds are given as change per time step, if FALSE, the bounds represent the total change over all time steps, default is FALSE ", ) rtc_nStepMode: Optional[RtcNStepMode] = Field( None, - alias='rtc:nStepMode', - description='STEP only computes the difference between T0-nStep and T0, CONTINUOUS computes the differences also at all intermediate steps', + alias="rtc:nStepMode", + description="STEP only computes the difference between T0-nStep and T0, CONTINUOUS computes the differences also at all intermediate steps", ) rtc_nStepSeries: Optional[RtcNStepSeries2] = Field( None, - alias='rtc:nStepSeries', - description='nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer', + alias="rtc:nStepSeries", + description="nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer", ) rtc_variableDelayVector: Optional[RtcVariableDelayVector1] = Field( None, - alias='rtc:variableDelayVector', - description='optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ', + alias="rtc:variableDelayVector", + description="optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ", ) @@ -905,32 +905,32 @@ class RtcJAcc(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcJInc(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_JAcc: RtcJAcc = Field( ..., - alias='rtc:JAcc', - description='time series reference for accumulating objective function value', + alias="rtc:JAcc", + description="time series reference for accumulating objective function value", ) rtc_JInc: RtcJInc = Field( ..., - alias='rtc:JInc', - description='time series reference for incremental objective function value', + alias="rtc:JInc", + description="time series reference for incremental objective function value", ) @@ -938,35 +938,35 @@ class RtcNStepSeries3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcStateDelayVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcStateAverageComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_nStep: Optional[RtcNStep4] = Field( - None, alias='rtc:nStep', description='fixed value for nStep' + None, alias="rtc:nStep", description="fixed value for nStep" ) rtc_nStepSeries: Optional[RtcNStepSeries3] = Field( None, - alias='rtc:nStepSeries', - description='nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer', + alias="rtc:nStepSeries", + description="nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer", ) rtc_stateDelayVector: RtcStateDelayVector = Field( ..., - alias='rtc:stateDelayVector', - description='optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ', + alias="rtc:stateDelayVector", + description="optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ", ) @@ -974,77 +974,77 @@ class RtcInput1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLowerBranch(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcOrder1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSetPointSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUpperBranch(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcWeightingFactorSeries1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTermAbsoluteComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") rtc_average: Optional[RtcAverageComplexType] = Field( None, - alias='rtc:average', - description='optional definition of an aggregation period over several time steps', + alias="rtc:average", + description="optional definition of an aggregation period over several time steps", ) - rtc_input: RtcInput1 = Field(..., alias='rtc:input') - rtc_lowerBranch: Optional[RtcLowerBranch] = Field(None, alias='rtc:lowerBranch') - rtc_order: RtcOrder1 = Field(..., alias='rtc:order') - rtc_setPoint: Optional[RtcSetPoint] = Field(None, alias='rtc:setPoint') + rtc_input: RtcInput1 = Field(..., alias="rtc:input") + rtc_lowerBranch: Optional[RtcLowerBranch] = Field(None, alias="rtc:lowerBranch") + rtc_order: RtcOrder1 = Field(..., alias="rtc:order") + rtc_setPoint: Optional[RtcSetPoint] = Field(None, alias="rtc:setPoint") rtc_setPointSeries: Optional[RtcSetPointSeries] = Field( - None, alias='rtc:setPointSeries' + None, alias="rtc:setPointSeries" ) - rtc_upperBranch: Optional[RtcUpperBranch] = Field(None, alias='rtc:upperBranch') + rtc_upperBranch: Optional[RtcUpperBranch] = Field(None, alias="rtc:upperBranch") rtc_weightingFactor: Optional[List[RtcWeightingFactorItem1]] = Field( - None, alias='rtc:weightingFactor' + None, alias="rtc:weightingFactor" ) rtc_weightingFactorFinal: Optional[List[RtcWeightingFactorFinalItem1]] = Field( - None, alias='rtc:weightingFactorFinal' + None, alias="rtc:weightingFactorFinal" ) rtc_weightingFactorSeries: Optional[RtcWeightingFactorSeries1] = Field( - None, alias='rtc:weightingFactorSeries' + None, alias="rtc:weightingFactorSeries" ) @@ -1052,10 +1052,10 @@ class RtcTermEnsembleChoiceComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='@active') + _: Optional[str] = Field(None, alias="#") + _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias="@active") rtc_chanceConstraint: Optional[RtcChanceConstraintComplexType] = Field( - None, alias='rtc:chanceConstraint' + None, alias="rtc:chanceConstraint" ) @@ -1063,9 +1063,9 @@ class RtcTermEnsembleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_termEnsemble: List[RtcTermEnsembleChoiceComplexType] = Field( - ..., alias='rtc:termEnsemble', min_items=1 + ..., alias="rtc:termEnsemble", min_items=1 ) @@ -1073,45 +1073,45 @@ class RtcInput2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSetPointSeries1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcWeightingFactorSeries2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTermLinearComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_input: RtcInput2 = Field(..., alias='rtc:input') - rtc_setPoint: Optional[RtcSetPoint1] = Field(None, alias='rtc:setPoint') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_input: RtcInput2 = Field(..., alias="rtc:input") + rtc_setPoint: Optional[RtcSetPoint1] = Field(None, alias="rtc:setPoint") rtc_setPointSeries: Optional[RtcSetPointSeries1] = Field( - None, alias='rtc:setPointSeries' + None, alias="rtc:setPointSeries" ) rtc_weightingFactor: Optional[List[RtcWeightingFactorItem2]] = Field( - None, alias='rtc:weightingFactor' + None, alias="rtc:weightingFactor" ) rtc_weightingFactorFinal: Optional[List[RtcWeightingFactorFinalItem2]] = Field( - None, alias='rtc:weightingFactorFinal' + None, alias="rtc:weightingFactorFinal" ) rtc_weightingFactorSeries: Optional[RtcWeightingFactorSeries2] = Field( - None, alias='rtc:weightingFactorSeries' + None, alias="rtc:weightingFactorSeries" ) @@ -1119,97 +1119,97 @@ class RtcFlag(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcObservation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSimulation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTermMSEComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_flag: Optional[RtcFlag] = Field(None, alias='rtc:flag') - rtc_observation: RtcObservation = Field(..., alias='rtc:observation') - rtc_simulation: RtcSimulation = Field(..., alias='rtc:simulation') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_flag: Optional[RtcFlag] = Field(None, alias="rtc:flag") + rtc_observation: RtcObservation = Field(..., alias="rtc:observation") + rtc_simulation: RtcSimulation = Field(..., alias="rtc:simulation") class RtcInput3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTermMaxComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_input: RtcInput3 = Field(..., alias='rtc:input') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_input: RtcInput3 = Field(..., alias="rtc:input") class RtcFlag1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcObservation1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSimulation1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSkipNFirstSteps(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcTermNSEComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_flag: Optional[RtcFlag1] = Field(None, alias='rtc:flag') - rtc_observation: RtcObservation1 = Field(..., alias='rtc:observation') - rtc_simulation: RtcSimulation1 = Field(..., alias='rtc:simulation') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_flag: Optional[RtcFlag1] = Field(None, alias="rtc:flag") + rtc_observation: RtcObservation1 = Field(..., alias="rtc:observation") + rtc_simulation: RtcSimulation1 = Field(..., alias="rtc:simulation") rtc_skipNFirstSteps: Optional[RtcSkipNFirstSteps] = Field( - None, alias='rtc:skipNFirstSteps' + None, alias="rtc:skipNFirstSteps" ) @@ -1217,170 +1217,170 @@ class RtcFlag2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcObservation2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSimulation2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTermRMSEComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_flag: Optional[RtcFlag2] = Field(None, alias='rtc:flag') - rtc_observation: RtcObservation2 = Field(..., alias='rtc:observation') - rtc_simulation: RtcSimulation2 = Field(..., alias='rtc:simulation') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_flag: Optional[RtcFlag2] = Field(None, alias="rtc:flag") + rtc_observation: RtcObservation2 = Field(..., alias="rtc:observation") + rtc_simulation: RtcSimulation2 = Field(..., alias="rtc:simulation") class RtcFlag3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcObservation3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSimulation3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSkipNFirstSteps1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcW(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcTermRVComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_flag: Optional[RtcFlag3] = Field(None, alias='rtc:flag') - rtc_observation: RtcObservation3 = Field(..., alias='rtc:observation') - rtc_simulation: RtcSimulation3 = Field(..., alias='rtc:simulation') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_flag: Optional[RtcFlag3] = Field(None, alias="rtc:flag") + rtc_observation: RtcObservation3 = Field(..., alias="rtc:observation") + rtc_simulation: RtcSimulation3 = Field(..., alias="rtc:simulation") rtc_skipNFirstSteps: Optional[RtcSkipNFirstSteps1] = Field( - None, alias='rtc:skipNFirstSteps' + None, alias="rtc:skipNFirstSteps" ) - rtc_w: RtcW = Field(..., alias='rtc:w') + rtc_w: RtcW = Field(..., alias="rtc:w") class RtcInput4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLowerBranch1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcOrder2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSetPoint2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSetPointSeries2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUpperBranch1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcWeightingFactorSeries3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTermRateOfChangeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_input: RtcInput4 = Field(..., alias='rtc:input') - rtc_lowerBranch: Optional[RtcLowerBranch1] = Field(None, alias='rtc:lowerBranch') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_input: RtcInput4 = Field(..., alias="rtc:input") + rtc_lowerBranch: Optional[RtcLowerBranch1] = Field(None, alias="rtc:lowerBranch") rtc_multipleDelay: Optional[RtcMultipleDelayComplexType] = Field( - None, alias='rtc:multipleDelay' + None, alias="rtc:multipleDelay" ) - rtc_order: RtcOrder2 = Field(..., alias='rtc:order') - rtc_setPoint: Optional[RtcSetPoint2] = Field(None, alias='rtc:setPoint') + rtc_order: RtcOrder2 = Field(..., alias="rtc:order") + rtc_setPoint: Optional[RtcSetPoint2] = Field(None, alias="rtc:setPoint") rtc_setPointSeries: Optional[RtcSetPointSeries2] = Field( - None, alias='rtc:setPointSeries' + None, alias="rtc:setPointSeries" ) - rtc_upperBranch: Optional[RtcUpperBranch1] = Field(None, alias='rtc:upperBranch') + rtc_upperBranch: Optional[RtcUpperBranch1] = Field(None, alias="rtc:upperBranch") rtc_weightingFactor: Optional[List[RtcWeightingFactorItem3]] = Field( - None, alias='rtc:weightingFactor' + None, alias="rtc:weightingFactor" ) rtc_weightingFactorSeries: Optional[RtcWeightingFactorSeries3] = Field( - None, alias='rtc:weightingFactorSeries' + None, alias="rtc:weightingFactorSeries" ) @@ -1388,45 +1388,45 @@ class RtcFlag4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcObservation4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSimulation4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSkipNFirstSteps2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcTermRelativeVolumeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_flag: Optional[RtcFlag4] = Field(None, alias='rtc:flag') - rtc_observation: RtcObservation4 = Field(..., alias='rtc:observation') - rtc_simulation: RtcSimulation4 = Field(..., alias='rtc:simulation') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_flag: Optional[RtcFlag4] = Field(None, alias="rtc:flag") + rtc_observation: RtcObservation4 = Field(..., alias="rtc:observation") + rtc_simulation: RtcSimulation4 = Field(..., alias="rtc:simulation") rtc_skipNFirstSteps: Optional[RtcSkipNFirstSteps2] = Field( - None, alias='rtc:skipNFirstSteps' + None, alias="rtc:skipNFirstSteps" ) @@ -1434,51 +1434,51 @@ class RtcFlag5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSimulation5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTermSumComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - rtc_flag: Optional[RtcFlag5] = Field(None, alias='rtc:flag') - rtc_simulation: RtcSimulation5 = Field(..., alias='rtc:simulation') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + rtc_flag: Optional[RtcFlag5] = Field(None, alias="rtc:flag") + rtc_simulation: RtcSimulation5 = Field(..., alias="rtc:simulation") class RtcTimeStepComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') - _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') - _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + _: Optional[str] = Field(None, alias="#") + _divider: Optional[XsPositiveInteger] = Field(None, alias="@divider") + _multiplier: Optional[XsPositiveInteger] = Field(None, alias="@multiplier") + _unit: RtcTimeStepUnitEnumStringType = Field(..., alias="@unit") class RtcAggregationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_constant: Optional[RtcConstant] = Field(None, alias='rtc:constant') + _: Optional[str] = Field(None, alias="#") + rtc_constant: Optional[RtcConstant] = Field(None, alias="rtc:constant") rtc_equidistant: Optional[RtcAggregationEquidistantComplexType] = Field( None, - alias='rtc:equidistant', - description='aggregation with equidistent steps, note that the number of time steps in the model needs to be a multiple of the aggregation step, i.e. 2,4,6,8 steps in case of an aggregation step of 2', + alias="rtc:equidistant", + description="aggregation with equidistent steps, note that the number of time steps in the model needs to be a multiple of the aggregation step, i.e. 2,4,6,8 steps in case of an aggregation step of 2", ) rtc_non_equidistant: Optional[RtcAggregationNonEquidistantComplexType] = Field( - None, alias='rtc:non-equidistant', description='still not implemented' + None, alias="rtc:non-equidistant", description="still not implemented" ) @@ -1486,43 +1486,43 @@ class RtcBoundStateComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - _scalingFactor: Optional[XsDouble] = Field(None, alias='@scalingFactor') - rtc_average: Optional[RtcStateAverageComplexType] = Field(None, alias='rtc:average') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + _scalingFactor: Optional[XsDouble] = Field(None, alias="@scalingFactor") + rtc_average: Optional[RtcStateAverageComplexType] = Field(None, alias="rtc:average") rtc_components: RtcBoundStateComponentsComplexType = Field( ..., - alias='rtc:components', - description='simulation components (in the order of the simulation model) which compute the state based on the variables (both defined below)', + alias="rtc:components", + description="simulation components (in the order of the simulation model) which compute the state based on the variables (both defined below)", ) rtc_lowerBound: Optional[RtcLowerBound] = Field( - None, alias='rtc:lowerBound', description='lower bound as a scalar' + None, alias="rtc:lowerBound", description="lower bound as a scalar" ) rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries] = Field( None, - alias='rtc:lowerBoundSeries', - description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:lowerBoundSeries", + description="lower bound from a times series, a missing value will switch out the constraint for this specific time step", ) - rtc_nStep: Optional[RtcNStep2] = Field(None, alias='rtc:nStep') + rtc_nStep: Optional[RtcNStep2] = Field(None, alias="rtc:nStep") rtc_state: RtcState = Field( - ..., alias='rtc:state', description='reference to the state to constrain' + ..., alias="rtc:state", description="reference to the state to constrain" ) rtc_stepIndices: Optional[RtcBoundStateStepIndicesComplexType] = Field( - None, alias='rtc:stepIndices' + None, alias="rtc:stepIndices" ) rtc_upperBound: Optional[RtcUpperBound] = Field( - None, alias='rtc:upperBound', description='upper bound as a scalar value' + None, alias="rtc:upperBound", description="upper bound as a scalar value" ) rtc_upperBoundSeries: Optional[RtcUpperBoundSeries] = Field( None, - alias='rtc:upperBoundSeries', - description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:upperBoundSeries", + description="upper bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_variables: RtcBoundStateVariablesComplexType = Field( ..., - alias='rtc:variables', - description='references to the optimization variable which contribute to the computation of the state', + alias="rtc:variables", + description="references to the optimization variable which contribute to the computation of the state", ) @@ -1530,33 +1530,33 @@ class RtcBoundVariableRateOfChangeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_lowerBound: Optional[RtcLowerBound3] = Field( - None, alias='rtc:lowerBound', description='lower bound as a scalar' + None, alias="rtc:lowerBound", description="lower bound as a scalar" ) rtc_lowerBoundSeries: Optional[RtcLowerBoundSeries3] = Field( None, - alias='rtc:lowerBoundSeries', - description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:lowerBoundSeries", + description="lower bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_multipleDelay: Optional[RtcMultipleDelayComplexType] = Field( None, - alias='rtc:multipleDelay', - description='option to look back more than a single time step', + alias="rtc:multipleDelay", + description="option to look back more than a single time step", ) rtc_upperBound: Optional[RtcUpperBound3] = Field( - None, alias='rtc:upperBound', description='upper bound as a scalar value' + None, alias="rtc:upperBound", description="upper bound as a scalar value" ) rtc_upperBoundSeries: Optional[RtcUpperBoundSeries3] = Field( None, - alias='rtc:upperBoundSeries', - description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + alias="rtc:upperBoundSeries", + description="upper bound from a times series, a missing value will switch out the constraint for this specific time step", ) rtc_variable: RtcVariable2 = Field( ..., - alias='rtc:variable', + alias="rtc:variable", description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", ) @@ -1565,34 +1565,34 @@ class RtcConstraintChoiceComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='@active') + _: Optional[str] = Field(None, alias="#") + _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias="@active") rtc_boundState: Optional[RtcBoundStateComplexType] = Field( None, - alias='rtc:boundState', - description='implements bounds on states or model outputs', + alias="rtc:boundState", + description="implements bounds on states or model outputs", ) rtc_boundVariable: Optional[RtcBoundVariableComplexType] = Field( None, - alias='rtc:boundVariable', - description='implement bounds on the optimization variable', + alias="rtc:boundVariable", + description="implement bounds on the optimization variable", ) rtc_boundVariableAverage: Optional[RtcBoundVariableAverageComplexType] = Field( None, - alias='rtc:boundVariableAverage', - description='defines a bound on an average value of an optimization variable for example to enable min/max bounds on aggregated time series', + alias="rtc:boundVariableAverage", + description="defines a bound on an average value of an optimization variable for example to enable min/max bounds on aggregated time series", ) rtc_boundVariableRateOfChange: Optional[ RtcBoundVariableRateOfChangeComplexType ] = Field( None, - alias='rtc:boundVariableRateOfChange', - description='implements bounds on the rate-of-change of an optimization variable', + alias="rtc:boundVariableRateOfChange", + description="implements bounds on the rate-of-change of an optimization variable", ) rtc_chanceBoundVariable: Optional[RtcChanceVariableComplexType] = Field( None, - alias='rtc:chanceBoundVariable', - description='implement chance constraints on the optimization variable', + alias="rtc:chanceBoundVariable", + description="implement chance constraints on the optimization variable", ) @@ -1600,9 +1600,9 @@ class RtcConstraintsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_constraint: List[RtcConstraintChoiceComplexType] = Field( - ..., alias='rtc:constraint', min_items=1 + ..., alias="rtc:constraint", min_items=1 ) @@ -1610,50 +1610,50 @@ class RtcTermChoiceComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='@active') + _: Optional[str] = Field(None, alias="#") + _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias="@active") rtc_absolute: Optional[RtcTermAbsoluteComplexType] = Field( - None, alias='rtc:absolute' + None, alias="rtc:absolute" ) - rtc_linear: Optional[RtcTermLinearComplexType] = Field(None, alias='rtc:linear') - rtc_max: Optional[RtcTermMaxComplexType] = Field(None, alias='rtc:max') - rtc_mse: Optional[RtcTermMSEComplexType] = Field(None, alias='rtc:mse') - rtc_nse: Optional[RtcTermNSEComplexType] = Field(None, alias='rtc:nse') + rtc_linear: Optional[RtcTermLinearComplexType] = Field(None, alias="rtc:linear") + rtc_max: Optional[RtcTermMaxComplexType] = Field(None, alias="rtc:max") + rtc_mse: Optional[RtcTermMSEComplexType] = Field(None, alias="rtc:mse") + rtc_nse: Optional[RtcTermNSEComplexType] = Field(None, alias="rtc:nse") rtc_rateOfChange: Optional[RtcTermRateOfChangeComplexType] = Field( - None, alias='rtc:rateOfChange' + None, alias="rtc:rateOfChange" ) rtc_relativeVolume: Optional[RtcTermRelativeVolumeComplexType] = Field( - None, alias='rtc:relativeVolume' + None, alias="rtc:relativeVolume" ) - rtc_rmse: Optional[RtcTermRMSEComplexType] = Field(None, alias='rtc:rmse') - rtc_rv: Optional[RtcTermRVComplexType] = Field(None, alias='rtc:rv') - rtc_sum: Optional[RtcTermSumComplexType] = Field(None, alias='rtc:sum') + rtc_rmse: Optional[RtcTermRMSEComplexType] = Field(None, alias="rtc:rmse") + rtc_rv: Optional[RtcTermRVComplexType] = Field(None, alias="rtc:rv") + rtc_sum: Optional[RtcTermSumComplexType] = Field(None, alias="rtc:sum") class RtcTermComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_term: List[RtcTermChoiceComplexType] = Field(..., alias='rtc:term', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_term: List[RtcTermChoiceComplexType] = Field(..., alias="rtc:term", min_items=1) class RtcVariableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='@active') + _: Optional[str] = Field(None, alias="#") + _active: Optional[RtcExternalBooleanSimpleType] = Field(None, alias="@active") _ensembleMode: Optional[RtcEnsembleModeEnumStringType] = Field( - None, alias='@ensembleMode' + None, alias="@ensembleMode" ) - _id: RtcTimeSeriesSimpleType = Field(..., alias='@id') - _max: Optional[RtcExternalParameterSimpleType] = Field(None, alias='@max') - _min: Optional[RtcExternalParameterSimpleType] = Field(None, alias='@min') - _scalingFactor: Optional[XsDouble] = Field(None, alias='@scalingFactor') - _type: RtcVariableTypeEnumStringType = Field(..., alias='@type') + _id: RtcTimeSeriesSimpleType = Field(..., alias="@id") + _max: Optional[RtcExternalParameterSimpleType] = Field(None, alias="@max") + _min: Optional[RtcExternalParameterSimpleType] = Field(None, alias="@min") + _scalingFactor: Optional[XsDouble] = Field(None, alias="@scalingFactor") + _type: RtcVariableTypeEnumStringType = Field(..., alias="@type") rtc_aggregation: Optional[RtcAggregationComplexType] = Field( - None, alias='rtc:aggregation' + None, alias="rtc:aggregation" ) @@ -1661,12 +1661,12 @@ class RtcVariablesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_aggregation: Optional[RtcAggregationComplexType] = Field( - None, alias='rtc:aggregation' + None, alias="rtc:aggregation" ) rtc_variable: List[RtcVariableComplexType] = Field( - ..., alias='rtc:variable', min_items=1 + ..., alias="rtc:variable", min_items=1 ) @@ -1674,17 +1674,17 @@ class RtcRtcObjectiveConfigComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_constraints: Optional[RtcConstraintsComplexType] = Field( - None, alias='rtc:constraints' + None, alias="rtc:constraints" ) - rtc_output: Optional[RtcOutputComplexType] = Field(None, alias='rtc:output') - rtc_terms: Optional[RtcTermComplexType] = Field(None, alias='rtc:terms') + rtc_output: Optional[RtcOutputComplexType] = Field(None, alias="rtc:output") + rtc_terms: Optional[RtcTermComplexType] = Field(None, alias="rtc:terms") rtc_termsEnsemble: Optional[RtcTermEnsembleComplexType] = Field( - None, alias='rtc:termsEnsemble' + None, alias="rtc:termsEnsemble" ) rtc_variables: Optional[RtcVariablesComplexType] = Field( - None, alias='rtc:variables' + None, alias="rtc:variables" ) @@ -1692,11 +1692,11 @@ class Model(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') + _: Optional[str] = Field(None, alias="#") + _xmlns_rtc: Optional[Any] = Field("http://www.wldelft.nl/fews", alias="@xmlns:rtc") _xmlns_xs: Optional[Any] = Field( - 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) rtc_rtcObjectiveConfig: Optional[_.RtcRtcObjectiveConfig] = Field( - None, alias='rtc:rtcObjectiveConfig' + None, alias="rtc:rtcObjectiveConfig" ) diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py b/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py index 38d82821d..43a9a2cbc 100644 --- a/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py @@ -13,437 +13,437 @@ class RtcAggregationTypeEnumStringType(Enum): - BLOCK = 'BLOCK' - LINEAR = 'LINEAR' + BLOCK = "BLOCK" + LINEAR = "LINEAR" class RtcEnsembleModeEnumStringType(Enum): - JOINT = 'JOINT' - TREE = 'TREE' - INDEPENDENT = 'INDEPENDENT' + JOINT = "JOINT" + TREE = "TREE" + INDEPENDENT = "INDEPENDENT" class RtcExternalBooleanSimpleType(BaseModel): - __root__: Union[bool, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + __root__: Union[bool, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] class RtcExternalIntegerSimpleType(BaseModel): - __root__: Union[int, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + __root__: Union[int, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] class RtcExternalParameterSimpleType(BaseModel): - __root__: Union[float, constr(regex=r'^([#-\$][\(-_a-z]+[#-\$])$')] + __root__: Union[float, constr(regex=r"^([#-\$][\(-_a-z]+[#-\$])$")] class RtcFunctionOutputEnumStringType(Enum): - NONE = 'NONE' - VALUE = 'VALUE' - DERIVATIVE = 'DERIVATIVE' - VALUE_DERIVATIVE = 'VALUE+DERIVATIVE' + NONE = "NONE" + VALUE = "VALUE" + DERIVATIVE = "DERIVATIVE" + VALUE_DERIVATIVE = "VALUE+DERIVATIVE" class _1(Enum): - ipopt = 'ipopt' - ipopth = 'ipopth' - conopt = 'conopt' + ipopt = "ipopt" + ipopth = "ipopth" + conopt = "conopt" class RtcAlgorithm(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_1] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_1] = Field(None, alias="$") class RtcGAMSComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_algorithm: Optional[RtcAlgorithm] = Field(None, alias='rtc:algorithm') + _: Optional[str] = Field(None, alias="#") + rtc_algorithm: Optional[RtcAlgorithm] = Field(None, alias="rtc:algorithm") class _11(Enum): - kkt_error = 'kkt-error' - obj_constr_filter = 'obj-constr-filter' - never_monotone_mode = 'never-monotone-mode' + kkt_error = "kkt-error" + obj_constr_filter = "obj-constr-filter" + never_monotone_mode = "never-monotone-mode" class RtcAdaptiveMuGlobalization(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_11] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_11] = Field(None, alias="$") class _12(Enum): - probing = 'probing' - loqo = 'loqo' - quality_function = 'quality-function' - average_compl = 'average_compl' + probing = "probing" + loqo = "loqo" + quality_function = "quality-function" + average_compl = "average_compl" class RtcFixedMuOracle(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_12] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_12] = Field(None, alias="$") class _13(Enum): - no = 'no' - yes = 'yes' + no = "no" + yes = "yes" class RtcMehrotraAlgorithm(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_13] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_13] = Field(None, alias="$") class _14(Enum): - probing = 'probing' - loqo = 'loqo' - quality_function = 'quality-function' + probing = "probing" + loqo = "loqo" + quality_function = "quality-function" class RtcMuOracle(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_14] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_14] = Field(None, alias="$") class _15(Enum): - monotone = 'monotone' - adaptive = 'adaptive' + monotone = "monotone" + adaptive = "adaptive" class RtcMuStrategy(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_15] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_15] = Field(None, alias="$") class _16(Enum): - none = 'none' - first_order = 'first-order' + none = "none" + first_order = "first-order" class RtcDerivativeTest(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_16] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_16] = Field(None, alias="$") class RtcDerivativeTestPerturbation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[PositiveFloat] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[PositiveFloat] = Field(None, alias="$") class _17(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcDerivativeTestPrintAll(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_17] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_17] = Field(None, alias="$") class RtcDerivativeTestTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[PositiveFloat] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[PositiveFloat] = Field(None, alias="$") class RtcFindiffPerturbation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[PositiveFloat] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[PositiveFloat] = Field(None, alias="$") class _18(Enum): - exact = 'exact' - finite_difference_values = 'finite-difference-values' + exact = "exact" + finite_difference_values = "finite-difference-values" class RtcJacobianApproximation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_18] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_18] = Field(None, alias="$") class RtcIPOPTDerivativeCheckerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_derivative_test: Optional[RtcDerivativeTest] = Field( - None, alias='rtc:derivative_test', description='Enable derivative checker' + None, alias="rtc:derivative_test", description="Enable derivative checker" ) rtc_derivative_test_perturbation: Optional[RtcDerivativeTestPerturbation] = Field( None, - alias='rtc:derivative_test_perturbation', - description='Size of the finite difference perturbation in derivative test', + alias="rtc:derivative_test_perturbation", + description="Size of the finite difference perturbation in derivative test", ) rtc_derivative_test_print_all: Optional[RtcDerivativeTestPrintAll] = Field( None, - alias='rtc:derivative_test_print_all', - description='Indicates whether information for all estimated derivatives should be\n printed', + alias="rtc:derivative_test_print_all", + description="Indicates whether information for all estimated derivatives should be\n printed", ) rtc_derivative_test_tol: Optional[RtcDerivativeTestTol] = Field( None, - alias='rtc:derivative_test_tol', - description='Threshold for indicating wrong derivative', + alias="rtc:derivative_test_tol", + description="Threshold for indicating wrong derivative", ) rtc_findiff_perturbation: Optional[RtcFindiffPerturbation] = Field( None, - alias='rtc:findiff_perturbation', - description='Size of the finite difference perturbation for derivative approximation', + alias="rtc:findiff_perturbation", + description="Size of the finite difference perturbation for derivative approximation", ) rtc_jacobian_approximation: Optional[RtcJacobianApproximation] = Field( None, - alias='rtc:jacobian_approximation', - description='Specifies technique to compute constraint Jacobian', + alias="rtc:jacobian_approximation", + description="Specifies technique to compute constraint Jacobian", ) class _19(Enum): - constant = 'constant' - mu_based = 'mu-based' + constant = "constant" + mu_based = "mu-based" class RtcBoundMultInitMethod(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_19] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_19] = Field(None, alias="$") class _110(Enum): - no = 'no' - yes = 'yes' + no = "no" + yes = "yes" class RtcAcceptEveryTrialStep(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_110] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_110] = Field(None, alias="$") class _111(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcLinearScalingOnDemand(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_111] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_111] = Field(None, alias="$") class _112(Enum): - ma27 = 'ma27' - ma57 = 'ma57' - ma77 = 'ma77' - ma86 = 'ma86' - ma97 = 'ma97' - mumps = 'mumps' - pardiso = 'pardiso' + ma27 = "ma27" + ma57 = "ma57" + ma77 = "ma77" + ma86 = "ma86" + ma97 = "ma97" + mumps = "mumps" + pardiso = "pardiso" class RtcLinearSolver(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_112] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_112] = Field(None, alias="$") class _113(Enum): - none = 'none' - mc19 = 'mc19' - slack_based = 'slack-based' + none = "none" + mc19 = "mc19" + slack_based = "slack-based" class RtcLinearSystemScaling(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_113] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_113] = Field(None, alias="$") class _114(Enum): - primal = 'primal' - bound_mult = 'bound-mult' - min = 'min' - max = 'max' - full = 'full' - min_dual_infeas = 'min-dual-infeas' - safer_min_dual_infeas = 'safer-min-dual-infeas' - primal_and_full = 'primal-and-full' - dual_and_full = 'dual-and-full' - acceptor = 'acceptor' + primal = "primal" + bound_mult = "bound-mult" + min = "min" + max = "max" + full = "full" + min_dual_infeas = "min-dual-infeas" + safer_min_dual_infeas = "safer-min-dual-infeas" + primal_and_full = "primal-and-full" + dual_and_full = "dual-and-full" + acceptor = "acceptor" class RtcAlphaForY(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_114] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_114] = Field(None, alias="$") class _115(Enum): - no = 'no' - yes = 'yes' + no = "no" + yes = "yes" class RtcRecalcY(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_115] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_115] = Field(None, alias="$") class RtcBoundRelaxFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[confloat(ge=0.0)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[confloat(ge=0.0)] = Field(None, alias="$") class _116(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcCheckDerivativesForNaninf(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_116] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_116] = Field(None, alias="$") class _117(Enum): - make_parameter = 'make_parameter' - make_constraint = 'make_constraint' - relax_bounds = 'relax_bounds' + make_parameter = "make_parameter" + make_constraint = "make_constraint" + relax_bounds = "relax_bounds" class RtcFixedVariableTreatment(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_117] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_117] = Field(None, alias="$") class _118(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcHonorOriginalBounds(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_118] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_118] = Field(None, alias="$") class _119(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcJacCConstant(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_119] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_119] = Field(None, alias="$") class _120(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcJacDConstant(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_120] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_120] = Field(None, alias="$") class RtcIPOPTNLPComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_bound_relax_factor: Optional[RtcBoundRelaxFactor] = Field( None, - alias='rtc:bound_relax_factor', - description='Factor for initial relaxation of the bounds', + alias="rtc:bound_relax_factor", + description="Factor for initial relaxation of the bounds", ) rtc_check_derivatives_for_naninf: Optional[RtcCheckDerivativesForNaninf] = Field( None, - alias='rtc:check_derivatives_for_naninf', - description='Indicates whether it is desired to check for Nan/Inf in derivative matrices [no/yes]', + alias="rtc:check_derivatives_for_naninf", + description="Indicates whether it is desired to check for Nan/Inf in derivative matrices [no/yes]", ) rtc_fixed_variable_treatment: Optional[RtcFixedVariableTreatment] = Field( None, - alias='rtc:fixed_variable_treatment', - description='Determines how fixed variables should be handled', + alias="rtc:fixed_variable_treatment", + description="Determines how fixed variables should be handled", ) rtc_honor_original_bounds: Optional[RtcHonorOriginalBounds] = Field( None, - alias='rtc:honor_original_bounds', - description='Indicates whether final points should be projected into original bounds [no/yes]', + alias="rtc:honor_original_bounds", + description="Indicates whether final points should be projected into original bounds [no/yes]", ) rtc_jac_c_constant: Optional[RtcJacCConstant] = Field( None, - alias='rtc:jac_c_constant', - description='Indicates whether all equality constraints are linear [no/yes]', + alias="rtc:jac_c_constant", + description="Indicates whether all equality constraints are linear [no/yes]", ) rtc_jac_d_constant: Optional[RtcJacDConstant] = Field( None, - alias='rtc:jac_d_constant', - description='Indicates whether all inequality constraints are linear [no/yes]', + alias="rtc:jac_d_constant", + description="Indicates whether all inequality constraints are linear [no/yes]", ) @@ -451,64 +451,64 @@ class RtcNlpScalingMaxGradient(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[PositiveFloat] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[PositiveFloat] = Field(None, alias="$") class _121(Enum): - none = 'none' - user_scaling = 'user-scaling' - gradient_based = 'gradient-based' + none = "none" + user_scaling = "user-scaling" + gradient_based = "gradient-based" class RtcNlpScalingMethod(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_121] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_121] = Field(None, alias="$") class RtcNlpScalingMinValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[confloat(ge=0.0)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[confloat(ge=0.0)] = Field(None, alias="$") class RtcObjScalingFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcIPOPTNLPScalingComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_nlp_scaling_max_gradient: Optional[RtcNlpScalingMaxGradient] = Field( None, - alias='rtc:nlp_scaling_max_gradient', - description='Maximum gradient after NLP scaling', + alias="rtc:nlp_scaling_max_gradient", + description="Maximum gradient after NLP scaling", ) rtc_nlp_scaling_method: Optional[RtcNlpScalingMethod] = Field( None, - alias='rtc:nlp_scaling_method', - description='Select the technique used for scaling the NLP', + alias="rtc:nlp_scaling_method", + description="Select the technique used for scaling the NLP", ) rtc_nlp_scaling_min_value: Optional[RtcNlpScalingMinValue] = Field( None, - alias='rtc:nlp_scaling_min_value', - description='Maximum gradient after NLP scaling', + alias="rtc:nlp_scaling_min_value", + description="Maximum gradient after NLP scaling", ) rtc_obj_scaling_factor: Optional[RtcObjScalingFactor] = Field( None, - alias='rtc:obj_scaling_factor', - description='Scaling factor for the objective function', + alias="rtc:obj_scaling_factor", + description="Scaling factor for the objective function", ) @@ -516,86 +516,86 @@ class RtcFilePrintLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[conint(ge=0, le=12)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[conint(ge=0, le=12)] = Field(None, alias="$") class RtcPrintLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[conint(ge=0, le=12)] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[conint(ge=0, le=12)] = Field(None, alias="$") class _122(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcPrintOptionsDocumentation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_122] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_122] = Field(None, alias="$") class _123(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcPrintTimingStatistics(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_123] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_123] = Field(None, alias="$") class _124(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcPrintUserOptions(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_124] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_124] = Field(None, alias="$") class RtcIPOPTOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_file_print_level: Optional[RtcFilePrintLevel] = Field( None, - alias='rtc:file_print_level', - description='Verbosity level for output file 0-12 NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12', + alias="rtc:file_print_level", + description="Verbosity level for output file 0-12 NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12", ) rtc_print_level: Optional[RtcPrintLevel] = Field( None, - alias='rtc:print_level', - description='Output verbosity level 0-12, NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12', + alias="rtc:print_level", + description="Output verbosity level 0-12, NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12", ) rtc_print_options_documentation: Optional[RtcPrintOptionsDocumentation] = Field( None, - alias='rtc:print_options_documentation', - description='Switch to print all algorithmic options [no/yes]', + alias="rtc:print_options_documentation", + description="Switch to print all algorithmic options [no/yes]", ) rtc_print_timing_statistics: Optional[RtcPrintTimingStatistics] = Field( None, - alias='rtc:print_timing_statistics', - description='Switch to print timing statistics [no/yes]', + alias="rtc:print_timing_statistics", + description="Switch to print timing statistics [no/yes]", ) rtc_print_user_options: Optional[RtcPrintUserOptions] = Field( None, - alias='rtc:print_user_options', - description='Print all options set by the user [no/yes]', + alias="rtc:print_user_options", + description="Print all options set by the user [no/yes]", ) @@ -603,663 +603,663 @@ class RtcLimitedMemoryMaxHistory(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias="$") class RtcLimitedMemoryMaxSkipping(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias="$") class RtcIPOPTQuasiNewtonComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_limited_memory_max_history: Optional[RtcLimitedMemoryMaxHistory] = Field( None, - alias='rtc:limited_memory_max_history', - description='Maximum size of the history for the limited quasi-Newton Hessian\napproximation', + alias="rtc:limited_memory_max_history", + description="Maximum size of the history for the limited quasi-Newton Hessian\napproximation", ) rtc_limited_memory_max_skipping: Optional[RtcLimitedMemoryMaxSkipping] = Field( None, - alias='rtc:limited_memory_max_skipping', - description='Threshold for successive iterations where update is skipped', + alias="rtc:limited_memory_max_skipping", + description="Threshold for successive iterations where update is skipped", ) class _125(Enum): - no = 'no' - yes = 'yes' + no = "no" + yes = "yes" class RtcEvaluateOrigObjAtRestoTrial(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_125] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_125] = Field(None, alias="$") class _126(Enum): - no = 'no' - yes = 'yes' + no = "no" + yes = "yes" class RtcExpectInfeasibleProblem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_126] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_126] = Field(None, alias="$") class _127(Enum): - no = 'no' - yes = 'yes' + no = "no" + yes = "yes" class RtcStartWithResto(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_127] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_127] = Field(None, alias="$") class RtcAcceptableComplInfTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcAcceptableConstrViolTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcAcceptableDualInfTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcAcceptableIter(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias="$") class RtcAcceptableObjChangeTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcAcceptableTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcComplInfTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcConstrViolTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcDivergingIteratesTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcDualInfTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcMaxCpuTime(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcMaxIter(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias="$") class RtcTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTreatUnsuccessAsError(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalBooleanSimpleType] = Field(None, alias="$") class RtcIPOPTTerminationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_acceptable_compl_inf_tol: Optional[RtcAcceptableComplInfTol] = Field( None, - alias='rtc:acceptable_compl_inf_tol', + alias="rtc:acceptable_compl_inf_tol", description='"Acceptance" threshold for the complementarity conditions', ) rtc_acceptable_constr_viol_tol: Optional[RtcAcceptableConstrViolTol] = Field( None, - alias='rtc:acceptable_constr_viol_tol', + alias="rtc:acceptable_constr_viol_tol", description='"Acceptance" threshold for the constraint violation', ) rtc_acceptable_dual_inf_tol: Optional[RtcAcceptableDualInfTol] = Field( None, - alias='rtc:acceptable_dual_inf_tol', + alias="rtc:acceptable_dual_inf_tol", description='"Acceptance" threshold for the dual infeasibility', ) rtc_acceptable_iter: Optional[RtcAcceptableIter] = Field( None, - alias='rtc:acceptable_iter', + alias="rtc:acceptable_iter", description='Number of "acceptable" iterates before triggering termination', ) rtc_acceptable_obj_change_tol: Optional[RtcAcceptableObjChangeTol] = Field( None, - alias='rtc:acceptable_obj_change_tol', + alias="rtc:acceptable_obj_change_tol", description='"Acceptance" stopping criterion based on objective function change', ) rtc_acceptable_tol: Optional[RtcAcceptableTol] = Field( None, - alias='rtc:acceptable_tol', + alias="rtc:acceptable_tol", description='"Acceptable" convergence tolerance (relative)', ) rtc_compl_inf_tol: Optional[RtcComplInfTol] = Field( None, - alias='rtc:compl_inf_tol', - description='Desired threshold for the complementarity conditions', + alias="rtc:compl_inf_tol", + description="Desired threshold for the complementarity conditions", ) rtc_constr_viol_tol: Optional[RtcConstrViolTol] = Field( None, - alias='rtc:constr_viol_tol', - description='Desired threshold for the constraint violation', + alias="rtc:constr_viol_tol", + description="Desired threshold for the constraint violation", ) rtc_diverging_iterates_tol: Optional[RtcDivergingIteratesTol] = Field( None, - alias='rtc:diverging_iterates_tol', - description='Threshold for maximal value of primal iterates', + alias="rtc:diverging_iterates_tol", + description="Threshold for maximal value of primal iterates", ) rtc_dual_inf_tol: Optional[RtcDualInfTol] = Field( None, - alias='rtc:dual_inf_tol', - description='Desired threshold for the dual infeasibility', + alias="rtc:dual_inf_tol", + description="Desired threshold for the dual infeasibility", ) rtc_max_cpu_time: Optional[RtcMaxCpuTime] = Field( - None, alias='rtc:max_cpu_time', description='Maximum number of CPU seconds' + None, alias="rtc:max_cpu_time", description="Maximum number of CPU seconds" ) rtc_max_iter: Optional[RtcMaxIter] = Field( - None, alias='rtc:max_iter', description='Maximum number of iterations' + None, alias="rtc:max_iter", description="Maximum number of iterations" ) rtc_tol: Optional[RtcTol] = Field( - None, alias='rtc:tol', description='Desired convergence tolerance (relative)' + None, alias="rtc:tol", description="Desired convergence tolerance (relative)" ) rtc_treat_unsuccess_as_error: Optional[RtcTreatUnsuccessAsError] = Field( None, - alias='rtc:treat_unsuccess_as_error', - description='Other return codes than SUCESS are treated as error message', + alias="rtc:treat_unsuccess_as_error", + description="Other return codes than SUCESS are treated as error message", ) class _128(Enum): - no = 'no' - yes = 'yes' + no = "no" + yes = "yes" class RtcWarmStartInitPoint(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_128] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_128] = Field(None, alias="$") class RtcConstraintViolationTolerance(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcEventCode(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalBooleanSimpleType] = Field(None, alias="$") class RtcFlushing(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalBooleanSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalBooleanSimpleType] = Field(None, alias="$") class RtcLogLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalIntegerSimpleType] = Field(None, alias="$") class RtcOutputConstraints(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcFunctionOutputEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcFunctionOutputEnumStringType] = Field(None, alias="$") class RtcOutputObjectiveFunction(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcFunctionOutputEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcFunctionOutputEnumStringType] = Field(None, alias="$") class RtcReportConstraintViolation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _level: Optional[RtcExternalIntegerSimpleType] = Field(None, alias='@level') + _: Optional[str] = Field(None, alias="#") + _level: Optional[RtcExternalIntegerSimpleType] = Field(None, alias="@level") class RtcLoggingComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_constraintViolationTolerance: Optional[RtcConstraintViolationTolerance] = Field( None, - alias='rtc:constraintViolationTolerance', - description='tolerance for scaled constraints for which a constraint violation is detected', + alias="rtc:constraintViolationTolerance", + description="tolerance for scaled constraints for which a constraint violation is detected", ) - rtc_eventCode: Optional[RtcEventCode] = Field(None, alias='rtc:eventCode') + rtc_eventCode: Optional[RtcEventCode] = Field(None, alias="rtc:eventCode") rtc_flushing: RtcFlushing = Field( ..., - alias='rtc:flushing', - description='set flushing of the diagnostics file after each new message (=true) or at the end of the program execution (=false)', + alias="rtc:flushing", + description="set flushing of the diagnostics file after each new message (=true) or at the end of the program execution (=false)", ) rtc_logLevel: RtcLogLevel = Field( ..., - alias='rtc:logLevel', - description='definition of the logging level, 0 = fatal error, 1 = error, 2 = warning, 3 = info, 4 = debug messages', + alias="rtc:logLevel", + description="definition of the logging level, 0 = fatal error, 1 = error, 2 = warning, 3 = info, 4 = debug messages", ) rtc_outputConstraints: Optional[RtcOutputConstraints] = Field( - None, alias='rtc:outputConstraints' + None, alias="rtc:outputConstraints" ) rtc_outputObjectiveFunction: Optional[RtcOutputObjectiveFunction] = Field( - None, alias='rtc:outputObjectiveFunction' + None, alias="rtc:outputObjectiveFunction" ) rtc_reportConstraintViolation: Optional[RtcReportConstraintViolation] = Field( None, - alias='rtc:reportConstraintViolation', - description='report constraint violation in diagnostics', + alias="rtc:reportConstraintViolation", + description="report constraint violation in diagnostics", ) class _129(Enum): - yes = 'yes' - no = 'no' + yes = "yes" + no = "no" class RtcMa57AutomaticScaling(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_129] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_129] = Field(None, alias="$") class _130(Enum): - amd = 'amd' - metis = 'metis' + amd = "amd" + metis = "metis" class RtcMa77Order(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_130] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_130] = Field(None, alias="$") class _131(Enum): - auto = 'auto' - amd = 'amd' - metis = 'metis' + auto = "auto" + amd = "amd" + metis = "metis" class RtcMa86Order(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_131] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_131] = Field(None, alias="$") class _132(Enum): - mone = 'mone' - mc64 = 'mc64' - mc77 = 'mc77' + mone = "mone" + mc64 = "mc64" + mc77 = "mc77" class RtcMa86Scaling(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_132] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_132] = Field(None, alias="$") class _133(Enum): - auto = 'auto' - best = 'best' - amd = 'amd' - metis = 'metis' - matched_auto = 'matched-auto' - matched_metis = 'matched-metis' - matched_amd = 'matched-amd' + auto = "auto" + best = "best" + amd = "amd" + metis = "metis" + matched_auto = "matched-auto" + matched_metis = "matched-metis" + matched_amd = "matched-amd" class RtcMa97Order(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_133] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_133] = Field(None, alias="$") class _134(Enum): - none = 'none' - mc30 = 'mc30' - mc64 = 'mc64' - mc77 = 'mc77' - dynamic = 'dynamic' + none = "none" + mc30 = "mc30" + mc64 = "mc64" + mc77 = "mc77" + dynamic = "dynamic" class RtcMa97Scaling(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_134] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_134] = Field(None, alias="$") class _135(Enum): - none = 'none' - mc30 = 'mc30' - mc64 = 'mc64' - mc77 = 'mc77' + none = "none" + mc30 = "mc30" + mc64 = "mc64" + mc77 = "mc77" class RtcMa97Scaling1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_135] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_135] = Field(None, alias="$") class _136(Enum): - none = 'none' - mc30 = 'mc30' - mc64 = 'mc64' - mc77 = 'mc77' + none = "none" + mc30 = "mc30" + mc64 = "mc64" + mc77 = "mc77" class RtcMa97Scaling2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_136] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_136] = Field(None, alias="$") class _137(Enum): - none = 'none' - mc30 = 'mc30' - mc64 = 'mc64' - mc77 = 'mc77' + none = "none" + mc30 = "mc30" + mc64 = "mc64" + mc77 = "mc77" class RtcMa97Scaling3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_137] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_137] = Field(None, alias="$") class _138(Enum): - no = 'no' - yes = 'yes' + no = "no" + yes = "yes" class RtcMa97SolveBlas3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_138] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_138] = Field(None, alias="$") class _139(Enum): - never = 'never' - at_start = 'at_start' - at_start_reuse = 'at_start_reuse' - on_demand = 'on_demand' - on_demand_reuse = 'on_demand_reuse' - high_delay = 'high_delay' - high_delay_reuse = 'high_delay_reuse' - od_hd = 'od_hd' - od_hd_reuse = 'od_hd_reuse' + never = "never" + at_start = "at_start" + at_start_reuse = "at_start_reuse" + on_demand = "on_demand" + on_demand_reuse = "on_demand_reuse" + high_delay = "high_delay" + high_delay_reuse = "high_delay_reuse" + od_hd = "od_hd" + od_hd_reuse = "od_hd_reuse" class RtcMa97Switch1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_139] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_139] = Field(None, alias="$") class _140(Enum): - never = 'never' - at_start = 'at_start' - at_start_reuse = 'at_start_reuse' - on_demand = 'on_demand' - on_demand_reuse = 'on_demand_reuse' - high_delay = 'high_delay' - high_delay_reuse = 'high_delay_reuse' - od_hd = 'od_hd' - od_hd_reuse = 'od_hd_reuse' + never = "never" + at_start = "at_start" + at_start_reuse = "at_start_reuse" + on_demand = "on_demand" + on_demand_reuse = "on_demand_reuse" + high_delay = "high_delay" + high_delay_reuse = "high_delay_reuse" + od_hd = "od_hd" + od_hd_reuse = "od_hd_reuse" class RtcMa97Switch2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_140] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_140] = Field(None, alias="$") class _141(Enum): - never = 'never' - at_start = 'at_start' - at_start_reuse = 'at_start_reuse' - on_demand = 'on_demand' - on_demand_reuse = 'on_demand_reuse' - high_delay = 'high_delay' - high_delay_reuse = 'high_delay_reuse' - od_hd = 'od_hd' - od_hd_reuse = 'od_hd_reuse' + never = "never" + at_start = "at_start" + at_start_reuse = "at_start_reuse" + on_demand = "on_demand" + on_demand_reuse = "on_demand_reuse" + high_delay = "high_delay" + high_delay_reuse = "high_delay_reuse" + od_hd = "od_hd" + od_hd_reuse = "od_hd_reuse" class RtcMa97Switch3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_141] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_141] = Field(None, alias="$") class RtcOptimizerModeEnumStringType(Enum): - SEQUENTIAL = 'SEQUENTIAL' - PARALLEL = 'PARALLEL' + SEQUENTIAL = "SEQUENTIAL" + PARALLEL = "PARALLEL" class RtcParallelModeEnumStringType(Enum): - NONE = 'NONE' - ENSEMBLE = 'ENSEMBLE' - INTERNAL = 'INTERNAL' - ENSEMBLE_INTERNAL = 'ENSEMBLE+INTERNAL' + NONE = "NONE" + ENSEMBLE = "ENSEMBLE" + INTERNAL = "INTERNAL" + ENSEMBLE_INTERNAL = "ENSEMBLE+INTERNAL" class RtcConstraints(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcParallelModeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcParallelModeEnumStringType] = Field(None, alias="$") class RtcSimulation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcParallelModeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcParallelModeEnumStringType] = Field(None, alias="$") class RtcParameterFilePrefixEnumStringType(Enum): - NONE = 'NONE' - LOCATIONID = 'LOCATIONID' + NONE = "NONE" + LOCATIONID = "LOCATIONID" class RtcParameterFileTypeEnumStringType(Enum): - TREEVECTOR = 'TREEVECTOR' - PIMODELPARAMETERS = 'PIMODELPARAMETERS' + TREEVECTOR = "TREEVECTOR" + PIMODELPARAMETERS = "PIMODELPARAMETERS" class _142(Enum): - complete = 'complete' - complete_2x2 = 'complete+2x2' - constraints = 'constraints' + complete = "complete" + complete_2x2 = "complete+2x2" + constraints = "constraints" class RtcPardisoMatchingStrategy(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_142] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_142] = Field(None, alias="$") class _143(Enum): - amd = 'amd' - one = 'one' - metis = 'metis' - pmetis = 'pmetis' - four = 'four' - five = 'five' + amd = "amd" + one = "one" + metis = "metis" + pmetis = "pmetis" + four = "four" + five = "five" class RtcPardisoOrder(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_143] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_143] = Field(None, alias="$") class RtcPeriodEnumStringType(Enum): - COMPLETE = 'COMPLETE' - UPDATE = 'UPDATE' - FORECAST = 'FORECAST' + COMPLETE = "COMPLETE" + UPDATE = "UPDATE" + FORECAST = "FORECAST" class RtcDels(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcFtoll(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcMaxCpuTime1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTimeSeriesSimpleType(BaseModel): @@ -1269,35 +1269,35 @@ class RtcTimeSeriesSimpleType(BaseModel): class RtcTimeZoneSimpleType(BaseModel): __root__: float = Field( ..., - description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + description="The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", ) class RtcVariableTypeEnumStringType(Enum): - CONTINUOUS = 'CONTINUOUS' - INTEGER = 'INTEGER' - TIMEINSTANCE = 'TIMEINSTANCE' + CONTINUOUS = "CONTINUOUS" + INTEGER = "INTEGER" + TIMEINSTANCE = "TIMEINSTANCE" class RtcDateType(BaseModel): - __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + __root__: constr(regex=r"^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$") class RtcTimeSeriesType(Enum): - accumulative = 'accumulative' - instantaneous = 'instantaneous' + accumulative = "accumulative" + instantaneous = "instantaneous" class RtcTimeStepUnitEnumStringType(Enum): - second = 'second' - minute = 'minute' - hour = 'hour' - day = 'day' - week = 'week' + second = "second" + minute = "minute" + hour = "hour" + day = "day" + week = "week" class RtcTimeType(BaseModel): - __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + __root__: constr(regex=r"^([\d][\d]\:[\d][\d]\:[\d][\d])$") class XsBoolean(BaseModel): @@ -1328,202 +1328,202 @@ class RtcDateTimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _date: RtcDateType = Field(..., alias='@date') - _time: RtcTimeType = Field(..., alias='@time') + _: Optional[str] = Field(None, alias="#") + _date: RtcDateType = Field(..., alias="@date") + _time: RtcTimeType = Field(..., alias="@time") class RtcFileDataComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _name: XsString = Field(..., alias='@name') + _: Optional[str] = Field(None, alias="#") + _name: XsString = Field(..., alias="@name") class RtcFileObjectiveComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _name: XsString = Field(..., alias='@name') + _: Optional[str] = Field(None, alias="#") + _name: XsString = Field(..., alias="@name") class RtcFileParameterComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _name: XsString = Field(..., alias='@name') + _: Optional[str] = Field(None, alias="#") + _name: XsString = Field(..., alias="@name") _prefix: Optional[RtcParameterFilePrefixEnumStringType] = Field( - None, alias='@prefix' + None, alias="@prefix" ) - _type: RtcParameterFileTypeEnumStringType = Field(..., alias='@type') + _type: RtcParameterFileTypeEnumStringType = Field(..., alias="@type") class RtcFileScenarioTreeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _name: XsString = Field(..., alias='@name') + _: Optional[str] = Field(None, alias="#") + _name: XsString = Field(..., alias="@name") class RtcFileToolsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _name: XsString = Field(..., alias='@name') + _: Optional[str] = Field(None, alias="#") + _name: XsString = Field(..., alias="@name") class RtcBarrierTolFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMuInit(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMuLinearDecreaseFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMuMax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMuMaxFact(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMuMin(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMuSuperlinearDecreasePower(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMuTarget(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcQualityFunctionMaxSectionSteps(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcIPOPTBarrierParameterComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_adaptive_mu_globalization: Optional[RtcAdaptiveMuGlobalization] = Field( None, - alias='rtc:adaptive_mu_globalization', + alias="rtc:adaptive_mu_globalization", description='Globalization strategy for the adaptive mu selection mode. \nTo achieve global convergence of the adaptive version, the algorithm has to switch to the monotone mode (Fiacco-McCormick approach) when convergence does not seem to appear. This option sets the criterion used to decide when to do this switch. (Only used if option "mu_strategy" is chosen as "adaptive".) The default value for this string option is "obj-constr-filter". \nPossible values:\nkkt-error: nonmonotone decrease of kkt-error\nobj-constr-filter: 2-dim filter for objective and constraint violation\nnever-monotone-mode: disables globalization', ) rtc_barrier_tol_factor: Optional[RtcBarrierTolFactor] = Field( None, - alias='rtc:barrier_tol_factor', + alias="rtc:barrier_tol_factor", description='Factor for mu in barrier stop test. \nThe convergence tolerance for each barrier problem in the monotone mode is the value of the barrier parameter times "barrier_tol_factor". This option is also used in the adaptive mu strategy during the monotone mode. (This is kappa_epsilon in implementation paper). The valid range for this real option is [0, inf]and its default value is 10.', ) rtc_fixed_mu_oracle: Optional[RtcFixedMuOracle] = Field( None, - alias='rtc:fixed_mu_oracle', + alias="rtc:fixed_mu_oracle", description='Oracle for the barrier parameter when switching to fixed mode. \nDetermines how the first value of the barrier parameter should be computed when switching to the "monotone mode" in the adaptive strategy. (Only considered if "adaptive" is selected for option "mu_strategy".) The default value for this string option is "average_compl". \nPossible values:\nprobing: Mehrotra\'s probing heuristic\nloqo: LOQO\'s centrality rule\nquality-function: minimize a quality function\naverage_compl: base on current average complementarity', ) rtc_mehrotra_algorithm: Optional[RtcMehrotraAlgorithm] = Field( None, - alias='rtc:mehrotra_algorithm', + alias="rtc:mehrotra_algorithm", description='Indicates if we want to do Mehrotra\'s algorithm. \nIf set to yes, Ipopt runs as Mehrotra\'s predictor-corrector algorithm. This works usually very well for LPs and convex QPs. This automatically disables the line search, and chooses the (unglobalized) adaptive mu strategy with the "probing" oracle, and uses "corrector_type=affine" without any safeguards; you should not set any of those options explicitly in addition. Also, unless otherwise specified, the values of "bound_push", "bound_frac", and "bound_mult_init_val" are set more aggressive, and sets "alpha_for_y=bound_mult". The default value for this string option is "no". \nPossible values:\nno: Do the usual Ipopt algorithm.\nyes: Do Mehrotra\'s predictor-corrector algorithm.', ) rtc_mu_init: Optional[RtcMuInit] = Field( None, - alias='rtc:mu_init', + alias="rtc:mu_init", description='Initial value for the barrier parameter. \nThis option determines the initial value for the barrier parameter (mu). It is only relevant in the monotone, Fiacco-McCormick version of the algorithm. (i.e., if "mu_strategy" is chosen as "monotone") The valid range for this real option is [0,inf] and its default value is0.1..', ) rtc_mu_linear_decrease_factor: Optional[RtcMuLinearDecreaseFactor] = Field( None, - alias='rtc:mu_linear_decrease_factor', + alias="rtc:mu_linear_decrease_factor", description='Determines linear decrease rate of barrier parameter. \nFor the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*"mu_linear_decrease_factor" and mu"superlinear_decrease_power". (This is kappa_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is[0,1] and its default value is 0.2', ) rtc_mu_max: Optional[RtcMuMax] = Field( None, - alias='rtc:mu_max', + alias="rtc:mu_max", description='Maximum value for barrier parameter. \nThis option specifies an upper bound on the barrier parameter in the adaptive mu selection mode. If this option is set, it overwrites the effect of mu_max_fact. (Only used if option "mu_strategy" is chosen as "adaptive".) The valid range for this real option is [0, inf] and its default value is 100000.', ) rtc_mu_max_fact: Optional[RtcMuMaxFact] = Field( None, - alias='rtc:mu_max_fact', + alias="rtc:mu_max_fact", description='Factor for initialization of maximum value for barrier parameter. \nThis option determines the upper bound on the barrier parameter. This upper bound is computed as the average complementarity at the initial point times the value of this option. (Only used if option "mu_strategy" is chosen as "adaptive".) The valid range for this real option is [0, inf] and its default value is 1000.', ) rtc_mu_min: Optional[RtcMuMin] = Field( None, - alias='rtc:mu_min', + alias="rtc:mu_min", description='Minimum value for barrier parameter. \nThis option specifies the lower bound on the barrier parameter in the adaptive mu selection mode. By default, it is set to the minimum of 1e-11 and min("tol","compl_inf_tol")/("barrier_tol_factor"+1), which should be a reasonable value. (Only used if option "mu_strategy" is chosen as "adaptive".) The valid range for this real option is [0, inf] and its default value is 1e-11.', ) rtc_mu_oracle: Optional[RtcMuOracle] = Field( None, - alias='rtc:mu_oracle', + alias="rtc:mu_oracle", description='Oracle for a new barrier parameter in the adaptive strategy. \nDetermines how a new barrier parameter is computed in each "free-mode" iteration of the adaptive barrier parameter strategy. (Only considered if "adaptive" is selected for option "mu_strategy"). The default value for this string option is "quality-function". \nPossible values:\nprobing: Mehrotra\'s probing heuristic\nloqo: LOQO\'s centrality rule\nquality-function: minimize a quality function', ) rtc_mu_strategy: Optional[RtcMuStrategy] = Field( None, - alias='rtc:mu_strategy', + alias="rtc:mu_strategy", description='Update strategy for barrier parameter. \nDetermines which barrier parameter update strategy is to be used. The default value for this string option is "monotone". \nPossible values:\nmonotone: use the monotone (Fiacco-McCormick) strategy\nadaptive: use the adaptive update strategy', ) rtc_mu_superlinear_decrease_power: Optional[RtcMuSuperlinearDecreasePower] = Field( None, - alias='rtc:mu_superlinear_decrease_power', + alias="rtc:mu_superlinear_decrease_power", description='Determines superlinear decrease rate of barrier parameter. \nFor the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*"mu_linear_decrease_factor" and mu"superlinear_decrease_power". (This is theta_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is [1,2] and its default value is 1.5.', ) rtc_mu_target: Optional[RtcMuTarget] = Field( None, - alias='rtc:mu_target', + alias="rtc:mu_target", description='Desired value of complementarity. \nUsually, the barrier parameter is driven to zero and the termination test for complementarity is measured with respect to zero complementarity. However, in some cases it might be desired to have Ipopt solve barrier problem for strictly positive value of the barrier parameter. In this case, the value of "mu_target" specifies the final value of the barrier parameter, and the termination tests are then defined with respect to the barrier problem for this value of the barrier parameter. The valid range for this real option is [0, inf] and its default value is 0.', ) rtc_quality_function_max_section_steps: Optional[ RtcQualityFunctionMaxSectionSteps ] = Field( None, - alias='rtc:quality_function_max_section_steps', + alias="rtc:quality_function_max_section_steps", description='Maximum number of search steps during direct search procedure determining the optimal centering parameter. \nThe golden section search is performed for the quality function based mu oracle. (Only used if option "mu_oracle" is set to "quality-function".) The valid range for this integer option is [0, inf] and its default value is 8.', ) @@ -1532,97 +1532,97 @@ class RtcFirstHessianPerturbation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcJacobianRegularizationValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMaxHessianPerturbation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMinHessianPerturbation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcPerturbDecFact(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcPerturbIncFact(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcPerturbIncFactFirst(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcIPOPTHessianPermutationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_first_hessian_perturbation: Optional[RtcFirstHessianPerturbation] = Field( None, - alias='rtc:first_hessian_perturbation', - description='Size of first x-s perturbation tried. \nThe first value tried for the x-s perturbation in the inertia correction scheme.(This is delta_0 in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e4.', + alias="rtc:first_hessian_perturbation", + description="Size of first x-s perturbation tried. \nThe first value tried for the x-s perturbation in the inertia correction scheme.(This is delta_0 in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e4.", ) rtc_jacobian_regularization_value: Optional[RtcJacobianRegularizationValue] = Field( None, - alias='rtc:jacobian_regularization_value', - description='Size of the regularization for rank-deficient constraint Jacobians. \n(This is bar delta_c in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e-8. .', + alias="rtc:jacobian_regularization_value", + description="Size of the regularization for rank-deficient constraint Jacobians. \n(This is bar delta_c in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e-8. .", ) rtc_max_hessian_perturbation: Optional[RtcMaxHessianPerturbation] = Field( None, - alias='rtc:max_hessian_perturbation', - description='This parameter gives the maximum value of the regularization parameter. If a regularization of that size is not enough, the algorithm skips this iteration and goes to the restoration phase. (This is delta_wmax in the implementation paper.) The valid range for this real option is [0,+inf] and its default value is 1e+20.', + alias="rtc:max_hessian_perturbation", + description="This parameter gives the maximum value of the regularization parameter. If a regularization of that size is not enough, the algorithm skips this iteration and goes to the restoration phase. (This is delta_wmax in the implementation paper.) The valid range for this real option is [0,+inf] and its default value is 1e+20.", ) rtc_min_hessian_perturbation: Optional[RtcMinHessianPerturbation] = Field( None, - alias='rtc:min_hessian_perturbation', - description='Smallest perturbation of the Hessian block. \nThe size of the perturbation of the Hessian block is never selected smaller than this value, unless no perturbation is necessary. (This is delta_wmin in implementation paper.) The valid range for this real option is [0, +inf] and its default value is 1e-20', + alias="rtc:min_hessian_perturbation", + description="Smallest perturbation of the Hessian block. \nThe size of the perturbation of the Hessian block is never selected smaller than this value, unless no perturbation is necessary. (This is delta_wmin in implementation paper.) The valid range for this real option is [0, +inf] and its default value is 1e-20", ) rtc_perturb_dec_fact: Optional[RtcPerturbDecFact] = Field( None, - alias='rtc:perturb_dec_fact', - description='Decrease factor for x-s perturbation. \nThe factor by which the perturbation is decreased when a trial value is deduced from the size of the most recent successful perturbation. (This is kappa_w- in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.333333.', + alias="rtc:perturb_dec_fact", + description="Decrease factor for x-s perturbation. \nThe factor by which the perturbation is decreased when a trial value is deduced from the size of the most recent successful perturbation. (This is kappa_w- in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.333333.", ) rtc_perturb_inc_fact: Optional[RtcPerturbIncFact] = Field( None, - alias='rtc:perturb_inc_fact', - description='Increase factor for x-s perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of all perturbations except for the first. (This is kappa_w+ in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 8.', + alias="rtc:perturb_inc_fact", + description="Increase factor for x-s perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of all perturbations except for the first. (This is kappa_w+ in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 8.", ) rtc_perturb_inc_fact_first: Optional[RtcPerturbIncFactFirst] = Field( None, - alias='rtc:perturb_inc_fact_first', - description='Increase factor for x-s perturbation for very first perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of the very first perturbation and allows a different value for for the first perturbation than that used for the remaining perturbations. (This is bar_kappa_w+ in the implementation paper.) The valid range for this real option is [1,inf] and its default value is100.', + alias="rtc:perturb_inc_fact_first", + description="Increase factor for x-s perturbation for very first perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of the very first perturbation and allows a different value for for the first perturbation than that used for the remaining perturbations. (This is bar_kappa_w+ in the implementation paper.) The valid range for this real option is [1,inf] and its default value is100.", ) @@ -1630,88 +1630,88 @@ class RtcBoundFrac(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcBoundMultInitVal(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcBoundPush(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcConstrMultInitMax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSlackBoundFrac(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSlackBoundPush(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcIPOPTInitializationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_bound_frac: Optional[RtcBoundFrac] = Field( None, - alias='rtc:bound_frac', + alias="rtc:bound_frac", description='Desired minimum relative distance from the initial point to bound. \nDetermines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with "bound_push"). (This is kappa_2 in Section 3.6 of implementation paper.) The valid range for this real option is [0, 0.5]and its default value is 0.01..', ) rtc_bound_mult_init_method: Optional[RtcBoundMultInitMethod] = Field( None, - alias='rtc:bound_mult_init_method', + alias="rtc:bound_mult_init_method", description='Initialization method for bound multipliers \nThis option defines how the iterates for the bound multipliers are initialized. If "constant" is chosen, then all bound multipliers are initialized to the value of "bound_mult_init_val". If "mu-based" is chosen, the each value is initialized to the the value of "mu_init" divided by the corresponding slack variable. This latter option might be useful if the starting point is close to the optimal solution. The default value for this string option is "constant". \nPossible values:\nconstant: set all bound multipliers to the value of bound_mult_init_val\nmu-based: initialize to mu_init/x_slack', ) rtc_bound_mult_init_val: Optional[RtcBoundMultInitVal] = Field( None, - alias='rtc:bound_mult_init_val', - description='Initial value for the bound multipliers. \nAll dual variables corresponding to bound constraints are initialized to this value. The valid range for this real option is [0, inf] and its default value is 1.', + alias="rtc:bound_mult_init_val", + description="Initial value for the bound multipliers. \nAll dual variables corresponding to bound constraints are initialized to this value. The valid range for this real option is [0, inf] and its default value is 1.", ) rtc_bound_push: Optional[RtcBoundPush] = Field( None, - alias='rtc:bound_push', + alias="rtc:bound_push", description='Desired minimum absolute distance from the initial point to bound. \nDetermines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with "bound_frac"). (This is kappa_1 in Section 3.6 of implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.01.', ) rtc_constr_mult_init_max: Optional[RtcConstrMultInitMax] = Field( None, - alias='rtc:constr_mult_init_max', + alias="rtc:constr_mult_init_max", description='Maximum allowed least-square guess of constraint multipliers. \nDetermines how large the initial least-square guesses of the constraint multipliers are allowed to be (in max-norm). If the guess is larger than this value, it is discarded and all constraint multipliers are set to zero. This options is also used when initializing the restoration phase. By default, "resto.constr_mult_init_max" (the one used in RestoIterateInitializer) is set to zero. The valid range for this real option is [0, inf] and its default value is 1000.', ) rtc_slack_bound_frac: Optional[RtcSlackBoundFrac] = Field( None, - alias='rtc:slack_bound_frac', + alias="rtc:slack_bound_frac", description='Desired minimum relative distance from the initial slack to bound. \nDetermines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with "slack_bound_push"). (This is kappa_2 in Section 3.6 of implementation paper.) The valid range for this real option is [0, 0.5] and its default value is 0.01.', ) rtc_slack_bound_push: Optional[RtcSlackBoundPush] = Field( None, - alias='rtc:slack_bound_push', + alias="rtc:slack_bound_push", description='Desired minimum absolute distance from the initial slack to bound. \nDetermines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with "slack_bound_frac"). (This is kappa_1 in Section 3.6 of implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.01.', ) @@ -1720,52 +1720,52 @@ class RtcMaxSoc(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcWatchdogShortenedIterTrigger(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcWatchdogTrialIterMax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcIPOPTLineSearchComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_accept_every_trial_step: Optional[RtcAcceptEveryTrialStep] = Field( None, - alias='rtc:accept_every_trial_step', + alias="rtc:accept_every_trial_step", description='Always accept the first trial step. \nSetting this option to "yes" essentially disables the line search and makes the algorithm take aggressive steps, without global convergence guarantees. The default value for this string option is "no". \nPossible values:\nno: don\'t arbitrarily accept the full step\nyes: always accept the full step', ) rtc_max_soc: Optional[RtcMaxSoc] = Field( None, - alias='rtc:max_soc', - description='Maximum number of second order correction trial steps at each iteration. \nChoosing 0 disables the second order corrections. (This is pmax of Step A-5.9 of Algorithm A in the implementation paper.) The valid range for this integer option is [0, inf] and its default value is 4 .', + alias="rtc:max_soc", + description="Maximum number of second order correction trial steps at each iteration. \nChoosing 0 disables the second order corrections. (This is pmax of Step A-5.9 of Algorithm A in the implementation paper.) The valid range for this integer option is [0, inf] and its default value is 4 .", ) rtc_watchdog_shortened_iter_trigger: Optional[ RtcWatchdogShortenedIterTrigger ] = Field( None, - alias='rtc:watchdog_shortened_iter_trigger', + alias="rtc:watchdog_shortened_iter_trigger", description='Number of shortened iterations that trigger the watchdog. \nIf the number of successive iterations in which the backtracking line search did not accept the first trial point exceeds this number, the watchdog procedure is activated. Choosing "0" here disables the watchdog procedure. The valid range for this integer option is [0,inf] and its default value is 10.', ) rtc_watchdog_trial_iter_max: Optional[RtcWatchdogTrialIterMax] = Field( None, - alias='rtc:watchdog_trial_iter_max', - description='Maximum number of watchdog iterations. \nThis option determines the number of trial iterations allowed before the watchdog procedure is aborted and the algorithm returns to the stored point. The valid range for this integer option is [1, inf] and its default value is 3. ', + alias="rtc:watchdog_trial_iter_max", + description="Maximum number of watchdog iterations. \nThis option determines the number of trial iterations allowed before the watchdog procedure is aborted and the algorithm returns to the stored point. The valid range for this integer option is [1, inf] and its default value is 3. ", ) @@ -1773,58 +1773,58 @@ class RtcMaxRefinementSteps(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMinRefinementSteps(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcAlphaForYTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcRecalcYFeasTol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcIPOPTMultiplierUpdatesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_alpha_for_y: Optional[RtcAlphaForY] = Field( None, - alias='rtc:alpha_for_y', + alias="rtc:alpha_for_y", description='Method to determine the step size for constraint multipliers. \nThis option determines how the step size (alpha_y) will be calculated when updating the constraint multipliers. The default value for this string option is "primal". \nPossible values:\nprimal: use primal step size\nbound-mult: use step size for the bound multipliers (good for LPs)\nmin: use the min of primal and bound multipliers\nmax: use the max of primal and bound multipliers\nfull: take a full step of size one\nmin-dual-infeas: choose step size minimizing new dual infeasibility\nsafer-min-dual-infeas: like "min_dual_infeas", but safeguarded by "min" and "max"\nprimal-and-full: use the primal step size, and full step if delta_x smaller or equal than alpha_for_y_tol\ndual-and-full: use the dual step size, and full step if delta_x smaller or equal than alpha_for_y_tol\nacceptor: Call LSAcceptor to get step size for y', ) rtc_alpha_for_y_tol: Optional[RtcAlphaForYTol] = Field( None, - alias='rtc:alpha_for_y_tol', + alias="rtc:alpha_for_y_tol", description='Tolerance for switching to full equality multiplier steps. \nThis is only relevant if "alpha_for_y" is chosen "primal-and-full" or "dual-and-full". The step size for the equality constraint multipliers is taken to be one if the max-norm of the primal step is less than this tolerance. The valid range for this real option is [0, inf] and its default value is 10.', ) rtc_recalc_y: Optional[RtcRecalcY] = Field( None, - alias='rtc:recalc_y', + alias="rtc:recalc_y", description='Tells the algorithm to recalculate the equality and inequality multipliers as least square estimates. \nThis asks the algorithm to recompute the multipliers, whenever the current infeasibility is less than recalc_y_feas_tol. Choosing yes might be helpful in the quasi-Newton option. However, each recalculation requires an extra factorization of the linear system. If a limited memory quasi-Newton option is chosen, this is used by default. The default value for this string option is "no". \nPossible values:\nno: use the Newton step to update the multipliers\nyes: use least-square multiplier estimates', ) rtc_recalc_y_feas_tol: Optional[RtcRecalcYFeasTol] = Field( None, - alias='rtc:recalc_y_feas_tol', - description='Feasibility threshold for recomputation of multipliers. \nIf recalc_y is chosen and the current infeasibility is less than this value, then the multipliers are recomputed. The valid range for this real option is [0, inf] and its default value is 1e-6.', + alias="rtc:recalc_y_feas_tol", + description="Feasibility threshold for recomputation of multipliers. \nIf recalc_y is chosen and the current infeasibility is less than this value, then the multipliers are recomputed. The valid range for this real option is [0, inf] and its default value is 1e-6.", ) @@ -1832,108 +1832,108 @@ class RtcBoundMultResetThreshold(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcConstrMultResetThreshold(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcExpectInfeasibleProblemCtol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcExpectInfeasibleProblemYtol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcRequiredInfeasibilityReduction(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSoftRestoPderrorReductionFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcIPOPTRestorationPhaseComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_bound_mult_reset_threshold: Optional[RtcBoundMultResetThreshold] = Field( None, - alias='rtc:bound_mult_reset_threshold', - description='Threshold for resetting bound multipliers after the restoration phase. \nAfter returning from the restoration phase, the bound multipliers are updated with a Newton step for complementarity. Here, the change in the primal variables during the entire restoration phase is taken to be the corresponding primal Newton step. However, if after the update the largest bound multiplier exceeds the threshold specified by this option, the multipliers are all reset to 1. The valid range for this real option is [0, inf] and its default value is 1000 .', + alias="rtc:bound_mult_reset_threshold", + description="Threshold for resetting bound multipliers after the restoration phase. \nAfter returning from the restoration phase, the bound multipliers are updated with a Newton step for complementarity. Here, the change in the primal variables during the entire restoration phase is taken to be the corresponding primal Newton step. However, if after the update the largest bound multiplier exceeds the threshold specified by this option, the multipliers are all reset to 1. The valid range for this real option is [0, inf] and its default value is 1000 .", ) rtc_constr_mult_reset_threshold: Optional[RtcConstrMultResetThreshold] = Field( None, - alias='rtc:constr_mult_reset_threshold', - description='Threshold for resetting equality and inequality multipliers after restoration phase. \nAfter returning from the restoration phase, the constraint multipliers are recomputed by a least square estimate. This option triggers when those least-square estimates should be ignored. The valid range for this real option is [0, inf] and its default value is 0 .', + alias="rtc:constr_mult_reset_threshold", + description="Threshold for resetting equality and inequality multipliers after restoration phase. \nAfter returning from the restoration phase, the constraint multipliers are recomputed by a least square estimate. This option triggers when those least-square estimates should be ignored. The valid range for this real option is [0, inf] and its default value is 0 .", ) rtc_evaluate_orig_obj_at_resto_trial: Optional[ RtcEvaluateOrigObjAtRestoTrial ] = Field( None, - alias='rtc:evaluate_orig_obj_at_resto_trial', + alias="rtc:evaluate_orig_obj_at_resto_trial", description='Determines if the original objective function should be evaluated at restoration phase trial points. \nSetting this option to "yes" makes the restoration phase algorithm evaluate the objective function of the original problem at every trial point encountered during the restoration phase, even if this value is not required. In this way, it is guaranteed that the original objective function can be evaluated without error at all accepted iterates; otherwise the algorithm might fail at a point where the restoration phase accepts an iterate that is good for the restoration phase problem, but not the original problem. On the other hand, if the evaluation of the original objective is expensive, this might be costly. The default value for this string option is "yes". \nPossible values:\nno: skip evaluation\nyes: evaluate at every trial point', ) rtc_expect_infeasible_problem: Optional[RtcExpectInfeasibleProblem] = Field( None, - alias='rtc:expect_infeasible_problem', + alias="rtc:expect_infeasible_problem", description='Enable heuristics to quickly detect an infeasible problem. \nThis options is meant to activate heuristics that may speed up the infeasibility determination if you expect that there is a good chance for the problem to be infeasible. In the filter line search procedure, the restoration phase is called more quickly than usually, and more reduction in the constraint violation is enforced before the restoration phase is left. If the problem is square, this option is enabled automatically. The default value for this string option is "no". \nPossible values:\nno: the problem probably be feasible\nyes: the problem has a good chance to be infeasible', ) rtc_expect_infeasible_problem_ctol: Optional[ RtcExpectInfeasibleProblemCtol ] = Field( None, - alias='rtc:expect_infeasible_problem_ctol', + alias="rtc:expect_infeasible_problem_ctol", description='Threshold for disabling "expect_infeasible_problem" option. \nIf the constraint violation becomes smaller than this threshold, the "expect_infeasible_problem" heuristics in the filter line search are disabled. If the problem is square, this options is set to 0. The valid range for this real option is [0, inf] and its default value is 0.001.', ) rtc_expect_infeasible_problem_ytol: Optional[ RtcExpectInfeasibleProblemYtol ] = Field( None, - alias='rtc:expect_infeasible_problem_ytol', + alias="rtc:expect_infeasible_problem_ytol", description='Multiplier threshold for activating "expect_infeasible_problem" option. \nIf the max norm of the constraint multipliers becomes larger than this value and "expect_infeasible_problem" is chosen, then the restoration phase is entered. The valid range for this real option is [0, inf] and its default value is 1e8.', ) rtc_required_infeasibility_reduction: Optional[ RtcRequiredInfeasibilityReduction ] = Field( None, - alias='rtc:required_infeasibility_reduction', - description='Required reduction of infeasibility before leaving restoration phase. \nThe restoration phase algorithm is performed, until a point is found that is acceptable to the filter and the infeasibility has been reduced by at least the fraction given by this option. The valid range for this real option is [0, inf] and its default value is 0.9 .', + alias="rtc:required_infeasibility_reduction", + description="Required reduction of infeasibility before leaving restoration phase. \nThe restoration phase algorithm is performed, until a point is found that is acceptable to the filter and the infeasibility has been reduced by at least the fraction given by this option. The valid range for this real option is [0, inf] and its default value is 0.9 .", ) rtc_soft_resto_pderror_reduction_factor: Optional[ RtcSoftRestoPderrorReductionFactor ] = Field( None, - alias='rtc:soft_resto_pderror_reduction_factor', + alias="rtc:soft_resto_pderror_reduction_factor", description='Required reduction in primal-dual error in the soft restoration phase. \nThe soft restoration phase attempts to reduce the primal-dual error with regular steps. If the damped primal-dual step (damped only to satisfy the fraction-to-the-boundary rule) is not decreasing the primal-dual error by at least this factor, then the regular restoration phase is called. Choosing "0" here disables the soft restoration phase. The valid range for this real option is [0, inf] and its default value is 0.9999 .', ) rtc_start_with_resto: Optional[RtcStartWithResto] = Field( None, - alias='rtc:start_with_resto', + alias="rtc:start_with_resto", description='Tells algorithm to switch to restoration phase in first iteration. \nSetting this option to "yes" forces the algorithm to switch to the feasibility restoration phase in the first iteration. If the initial point is feasible, the algorithm will abort with a failure. The default value for this string option is "no". \nPossible values:\nno: don\'t force start in restoration phase\nyes: force start in restoration phase', ) @@ -1942,89 +1942,89 @@ class RtcWarmStartBoundFrac(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcWarmStartBoundPush(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcWarmStartMultBoundPush(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcWarmStartMultInitMax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcWarmStartSlackBoundFrac(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcWarmStartSlackBoundPush(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcIPOPTWarmStartComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_warm_start_bound_frac: Optional[RtcWarmStartBoundFrac] = Field( None, - alias='rtc:warm_start_bound_frac', - description='same as bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001.', + alias="rtc:warm_start_bound_frac", + description="same as bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001.", ) rtc_warm_start_bound_push: Optional[RtcWarmStartBoundPush] = Field( None, - alias='rtc:warm_start_bound_push', - description='same as bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', + alias="rtc:warm_start_bound_push", + description="same as bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.", ) rtc_warm_start_init_point: Optional[RtcWarmStartInitPoint] = Field( None, - alias='rtc:warm_start_init_point', + alias="rtc:warm_start_init_point", description='Warm-start for initial point \nIndicates whether this optimization should use a warm start initialization, where values of primal and dual variables are given (e.g., from a previous optimization of a related problem.) The default value for this string option is "no". \nPossible values:\nno: do not use the warm start initialization\nyes: use the warm start initialization', ) rtc_warm_start_mult_bound_push: Optional[RtcWarmStartMultBoundPush] = Field( None, - alias='rtc:warm_start_mult_bound_push', - description='same as mult_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', + alias="rtc:warm_start_mult_bound_push", + description="same as mult_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.", ) rtc_warm_start_mult_init_max: Optional[RtcWarmStartMultInitMax] = Field( None, - alias='rtc:warm_start_mult_init_max', - description='Maximum initial value for the equality multipliers. \nThe valid range for this real option is [-inf, +inf] and its default value is 1e6.', + alias="rtc:warm_start_mult_init_max", + description="Maximum initial value for the equality multipliers. \nThe valid range for this real option is [-inf, +inf] and its default value is 1e6.", ) rtc_warm_start_slack_bound_frac: Optional[RtcWarmStartSlackBoundFrac] = Field( None, - alias='rtc:warm_start_slack_bound_frac', - description='same as slack_bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001.', + alias="rtc:warm_start_slack_bound_frac", + description="same as slack_bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001.", ) rtc_warm_start_slack_bound_push: Optional[RtcWarmStartSlackBoundPush] = Field( None, - alias='rtc:warm_start_slack_bound_push', - description='same as slack_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', + alias="rtc:warm_start_slack_bound_push", + description="same as slack_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.", ) @@ -2032,71 +2032,71 @@ class RtcMa27LaInitFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa27LiwInitFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa27MemincFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa27Pivtol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa27Pivtolmax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMA27ComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ma27_la_init_factor: Optional[RtcMa27LaInitFactor] = Field( None, - alias='rtc:ma27_la_init_factor', - description='Real workspace memory for MA27. \nThe initial real workspace memory = la_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5.', + alias="rtc:ma27_la_init_factor", + description="Real workspace memory for MA27. \nThe initial real workspace memory = la_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5.", ) rtc_ma27_liw_init_factor: Optional[RtcMa27LiwInitFactor] = Field( None, - alias='rtc:ma27_liw_init_factor', - description='Integer workspace memory for MA27. \nThe initial integer workspace memory = liw_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5.', + alias="rtc:ma27_liw_init_factor", + description="Integer workspace memory for MA27. \nThe initial integer workspace memory = liw_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5.", ) rtc_ma27_meminc_factor: Optional[RtcMa27MemincFactor] = Field( None, - alias='rtc:ma27_meminc_factor', - description='Increment factor for workspace size for MA27. \nIf the integer or real workspace is not large enough, Ipopt will increase its size by this factor. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 2.', + alias="rtc:ma27_meminc_factor", + description="Increment factor for workspace size for MA27. \nIf the integer or real workspace is not large enough, Ipopt will increase its size by this factor. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 2.", ) rtc_ma27_pivtol: Optional[RtcMa27Pivtol] = Field( None, - alias='rtc:ma27_pivtol', - description='Pivot tolerance for the linear solver MA27. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 1e-8.', + alias="rtc:ma27_pivtol", + description="Pivot tolerance for the linear solver MA27. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 1e-8.", ) rtc_ma27_pivtolmax: Optional[RtcMa27Pivtolmax] = Field( None, - alias='rtc:ma27_pivtolmax', - description='Maximum pivot tolerance for the linear solver MA27. \nIpopt may increase pivtol as high as ma27_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 0.0001.', + alias="rtc:ma27_pivtolmax", + description="Maximum pivot tolerance for the linear solver MA27. \nIpopt may increase pivtol as high as ma27_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 0.0001.", ) @@ -2104,102 +2104,102 @@ class RtcMa57BlockSize(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa57NodeAmalgamation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa57PivotOrder(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa57Pivtol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa57Pivtolmax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa57PreAlloc(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa57SmallPivotFlag(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMA57ComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ma57_automatic_scaling: Optional[RtcMa57AutomaticScaling] = Field( None, - alias='rtc:ma57_automatic_scaling', + alias="rtc:ma57_automatic_scaling", description='Controls MA57 automatic scaling \nThis option controls the internal scaling option of MA57. For higher reliability of the MA57 solver, you may want to set this option to yes. This is ICNTL(15) in MA57. The default value for this string option is "no". \nPossible values:\nno: Do not scale the linear system matrix\nyes: Scale the linear system matrix', ) rtc_ma57_block_size: Optional[RtcMa57BlockSize] = Field( None, - alias='rtc:ma57_block_size', - description='Controls block size used by Level 3 BLAS in MA57BD \nThis is ICNTL(11) in MA57. The valid range for this integer option is [1, inf] and its default value is 16. .', + alias="rtc:ma57_block_size", + description="Controls block size used by Level 3 BLAS in MA57BD \nThis is ICNTL(11) in MA57. The valid range for this integer option is [1, inf] and its default value is 16. .", ) rtc_ma57_node_amalgamation: Optional[RtcMa57NodeAmalgamation] = Field( None, - alias='rtc:ma57_node_amalgamation', - description='Node amalgamation parameter \nThis is ICNTL(12) in MA57. The valid range for this integer option is [1, inf] and its default value is 16.', + alias="rtc:ma57_node_amalgamation", + description="Node amalgamation parameter \nThis is ICNTL(12) in MA57. The valid range for this integer option is [1, inf] and its default value is 16.", ) rtc_ma57_pivot_order: Optional[RtcMa57PivotOrder] = Field( None, - alias='rtc:ma57_pivot_order', - description='Controls pivot order in MA57 \nThis is ICNTL(6) in MA57. The valid range for this integer option is [0,5] and its default value is 5.', + alias="rtc:ma57_pivot_order", + description="Controls pivot order in MA57 \nThis is ICNTL(6) in MA57. The valid range for this integer option is [0,5] and its default value is 5.", ) rtc_ma57_pivtol: Optional[RtcMa57Pivtol] = Field( None, - alias='rtc:ma57_pivtol', - description='Pivot tolerance for the linear solver MA57. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 1e-8.', + alias="rtc:ma57_pivtol", + description="Pivot tolerance for the linear solver MA57. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 1e-8.", ) rtc_ma57_pivtolmax: Optional[RtcMa57Pivtolmax] = Field( None, - alias='rtc:ma57_pivtolmax', - description='Maximum pivot tolerance for the linear solver MA57. \nIpopt may increase pivtol as high as ma57_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 0.0001.', + alias="rtc:ma57_pivtolmax", + description="Maximum pivot tolerance for the linear solver MA57. \nIpopt may increase pivtol as high as ma57_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 0.0001.", ) rtc_ma57_pre_alloc: Optional[RtcMa57PreAlloc] = Field( None, - alias='rtc:ma57_pre_alloc', - description='Safety factor for work space memory allocation for the linear solver MA57. \nIf 1 is chosen, the suggested amount of work space is used. However, choosing a larger number might avoid reallocation if the suggest values do not suffice. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [1, inf] and its default value is 1.05.', + alias="rtc:ma57_pre_alloc", + description="Safety factor for work space memory allocation for the linear solver MA57. \nIf 1 is chosen, the suggested amount of work space is used. However, choosing a larger number might avoid reallocation if the suggest values do not suffice. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [1, inf] and its default value is 1.05.", ) rtc_ma57_small_pivot_flag: Optional[RtcMa57SmallPivotFlag] = Field( None, - alias='rtc:ma57_small_pivot_flag', - description='If set to 1, then when small entries defined by CNTL(2) are detected they are removed and the corresponding pivots placed at the end of the factorization. This can be particularly efficient if the matrix is highly rank deficient. \nThis is ICNTL(16) in MA57. The valid range for this integer option is [0,1] and its default value is 0.', + alias="rtc:ma57_small_pivot_flag", + description="If set to 1, then when small entries defined by CNTL(2) are detected they are removed and the corresponding pivots placed at the end of the factorization. This can be particularly efficient if the matrix is highly rank deficient. \nThis is ICNTL(16) in MA57. The valid range for this integer option is [0,1] and its default value is 0.", ) @@ -2207,141 +2207,141 @@ class RtcMa77BufferLpage(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa77BufferNpage(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa77FileSize(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa77Maxstore(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa77Nemin(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa77PrintLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa77Small(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa77Static(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa77U(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa77Umax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMA77ComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ma77_buffer_lpage: Optional[RtcMa77BufferLpage] = Field( None, - alias='rtc:ma77_buffer_lpage', - description='Number of scalars per MA77 buffer page \nNumber of scalars per an in-core buffer in the out-of-core solver MA77. Must be at most ma77_file_size. The valid range for this integer option is [1, inf] and its default value is 4096.', + alias="rtc:ma77_buffer_lpage", + description="Number of scalars per MA77 buffer page \nNumber of scalars per an in-core buffer in the out-of-core solver MA77. Must be at most ma77_file_size. The valid range for this integer option is [1, inf] and its default value is 4096.", ) rtc_ma77_buffer_npage: Optional[RtcMa77BufferNpage] = Field( None, - alias='rtc:ma77_buffer_npage', - description='Number of pages that make up MA77 buffer \nNumber of pages of size buffer_lpage that exist in-core for the out-of-core solver MA77. The valid range for this integer option is [1, inf] and its default value is 1600.', + alias="rtc:ma77_buffer_npage", + description="Number of pages that make up MA77 buffer \nNumber of pages of size buffer_lpage that exist in-core for the out-of-core solver MA77. The valid range for this integer option is [1, inf] and its default value is 1600.", ) rtc_ma77_file_size: Optional[RtcMa77FileSize] = Field( None, - alias='rtc:ma77_file_size', - description='Target size of each temporary file for MA77, scalars per type \nMA77 uses many temporary files, this option controls the size of each one. It is measured in the number of entries (int or double), NOT bytes. The valid range for this integer option is [1, inf] and its default value is 2097152.', + alias="rtc:ma77_file_size", + description="Target size of each temporary file for MA77, scalars per type \nMA77 uses many temporary files, this option controls the size of each one. It is measured in the number of entries (int or double), NOT bytes. The valid range for this integer option is [1, inf] and its default value is 2097152.", ) rtc_ma77_maxstore: Optional[RtcMa77Maxstore] = Field( None, - alias='rtc:ma77_maxstore', - description='Maximum storage size for MA77 in-core mode \nIf greater than zero, the maximum size of factors stored in core before out-of-core mode is invoked. The valid range for this integer option is [0, inf] and its default value is 0', + alias="rtc:ma77_maxstore", + description="Maximum storage size for MA77 in-core mode \nIf greater than zero, the maximum size of factors stored in core before out-of-core mode is invoked. The valid range for this integer option is [0, inf] and its default value is 0", ) rtc_ma77_nemin: Optional[RtcMa77Nemin] = Field( None, - alias='rtc:ma77_nemin', - description='Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma77_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8.', + alias="rtc:ma77_nemin", + description="Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma77_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8.", ) rtc_ma77_order: Optional[RtcMa77Order] = Field( None, - alias='rtc:ma77_order', + alias="rtc:ma77_order", description='Controls type of ordering used by HSL_MA77 \nThis option controls ordering for the solver HSL_MA77. The default value for this string option is "metis". \nPossible values:\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm (if available)', ) rtc_ma77_print_level: Optional[RtcMa77PrintLevel] = Field( None, - alias='rtc:ma77_print_level', - description='Debug printing level for the linear solver MA77 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1.', + alias="rtc:ma77_print_level", + description="Debug printing level for the linear solver MA77 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1.", ) rtc_ma77_small: Optional[RtcMa77Small] = Field( None, - alias='rtc:ma77_small', - description='Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', + alias="rtc:ma77_small", + description="Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.", ) rtc_ma77_static: Optional[RtcMa77Static] = Field( None, - alias='rtc:ma77_static', - description='Static Pivoting Threshold \nSee MA77 documentation. Either ma77_static=0.0 or ma77_static>ma77_small. ma77_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 .', + alias="rtc:ma77_static", + description="Static Pivoting Threshold \nSee MA77 documentation. Either ma77_static=0.0 or ma77_static>ma77_small. ma77_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 .", ) rtc_ma77_u: Optional[RtcMa77U] = Field( None, - alias='rtc:ma77_u', - description='Pivoting Threshold \nSee MA77 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.', + alias="rtc:ma77_u", + description="Pivoting Threshold \nSee MA77 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.", ) rtc_ma77_umax: Optional[RtcMa77Umax] = Field( None, - alias='rtc:ma77_umax', - description='Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5]and its default value is 0.0001.', + alias="rtc:ma77_umax", + description="Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5]and its default value is 0.0001.", ) @@ -2349,94 +2349,94 @@ class RtcMa86Nemin(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa86PrintLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa86Small(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa86Static(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa86U(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa86Umax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMA86ComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ma86_nemin: Optional[RtcMa86Nemin] = Field( None, - alias='rtc:ma86_nemin', - description='Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma86_nemin variables. The valid range for this integer option is [1, inf] and its default value is 32.', + alias="rtc:ma86_nemin", + description="Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma86_nemin variables. The valid range for this integer option is [1, inf] and its default value is 32.", ) rtc_ma86_order: Optional[RtcMa86Order] = Field( None, - alias='rtc:ma86_order', + alias="rtc:ma86_order", description='CControls type of ordering used by HSL_MA86 \nThis option controls ordering for the solver HSL_MA86. The default value for this string option is "auto". \nPossible values:\nauto: Try both AMD and MeTiS, pick best\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm (if available)', ) rtc_ma86_print_level: Optional[RtcMa86PrintLevel] = Field( None, - alias='rtc:ma86_print_level', - description='Debug printing level for the linear solver ma86 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1.', + alias="rtc:ma86_print_level", + description="Debug printing level for the linear solver ma86 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1.", ) rtc_ma86_scaling: Optional[RtcMa86Scaling] = Field( None, - alias='rtc:ma86_scaling', + alias="rtc:ma86_scaling", description='Controls scaling of matrix \nThis option controls scaling for the solver HSL_MA86. The default value for this string option is "mc64". \nPossible values:\nnone: Do not scale the linear system matrix\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', ) rtc_ma86_small: Optional[RtcMa86Small] = Field( None, - alias='rtc:ma86_small', - description='Zero Pivot Threshold \nAny pivot less than ma86_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', + alias="rtc:ma86_small", + description="Zero Pivot Threshold \nAny pivot less than ma86_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.", ) rtc_ma86_static: Optional[RtcMa86Static] = Field( None, - alias='rtc:ma86_static', - description='Static Pivoting Threshold \nSee ma86 documentation. Either ma86_static=0.0 or ma86_static>ma86_small. ma86_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 .', + alias="rtc:ma86_static", + description="Static Pivoting Threshold \nSee ma86 documentation. Either ma86_static=0.0 or ma86_static>ma86_small. ma86_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 .", ) rtc_ma86_u: Optional[RtcMa86U] = Field( None, - alias='rtc:ma86_u', - description='Pivoting Threshold \nSee ma86 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.', + alias="rtc:ma86_u", + description="Pivoting Threshold \nSee ma86 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.", ) rtc_ma86_umax: Optional[RtcMa86Umax] = Field( None, - alias='rtc:ma86_umax', - description='Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5] and its default value is 0.0001.', + alias="rtc:ma86_umax", + description="Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5] and its default value is 0.0001.", ) @@ -2444,116 +2444,116 @@ class RtcMa97Nemin(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa97PrintLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMa97Small(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa97U(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMa97Umax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMA97ComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ma97_nemin: Optional[RtcMa97Nemin] = Field( None, - alias='rtc:ma97_nemin', - description='Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma97_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8.', + alias="rtc:ma97_nemin", + description="Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma97_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8.", ) rtc_ma97_order: Optional[RtcMa97Order] = Field( None, - alias='rtc:ma97_order', + alias="rtc:ma97_order", description='Controls type of ordering used by HSL_MA97 \nThe default value for this string option is "auto". \nPossible values:\nauto: Use HSL_MA97 heuristic to guess best of AMD and METIS\nbest: Try both AMD and MeTiS, pick best\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm\nmatched-auto: Use the HSL_MC80 matching with heuristic choice of AMD or METIS\nmatched-metis: Use the HSL_MC80 matching based ordering with METIS\nmatched-amd: Use the HSL_MC80 matching based ordering with AMD', ) rtc_ma97_print_level: Optional[RtcMa97PrintLevel] = Field( None, - alias='rtc:ma97_print_level', - description='Debug printing level for the linear solver MA97 \nThe valid range for this integer option is [-inf, +inf] and its default value is 0.', + alias="rtc:ma97_print_level", + description="Debug printing level for the linear solver MA97 \nThe valid range for this integer option is [-inf, +inf] and its default value is 0.", ) rtc_ma97_scaling: Optional[RtcMa97Scaling] = Field( None, - alias='rtc:ma97_scaling', + alias="rtc:ma97_scaling", description='Specifies strategy for scaling in HSL_MA97 linear solver \nThe default value for this string option is "dynamic". \nPossible values:\nnone: Do not scale the linear system matrix\nmc30: Scale all linear system matrices using MC30\nmc64: Scale all linear system matrices using MC64\nmc77: Scale all linear system matrices using MC77 [1,3,0]\ndynamic: Dynamically select scaling according to rules specified by ma97_scalingX and ma97_switchX options.', ) rtc_ma97_scaling1: Optional[RtcMa97Scaling1] = Field( None, - alias='rtc:ma97_scaling1', + alias="rtc:ma97_scaling1", description='First scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch1. If ma97_switch2 is triggered it is disabled. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', ) rtc_ma97_scaling2: Optional[RtcMa97Scaling2] = Field( None, - alias='rtc:ma97_scaling2', + alias="rtc:ma97_scaling2", description='Second scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch2. If ma97_switch3 is triggered it is disabled. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', ) rtc_ma97_scaling3: Optional[RtcMa97Scaling3] = Field( None, - alias='rtc:ma97_scaling3', + alias="rtc:ma97_scaling3", description='Third scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch3. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', ) rtc_ma97_small: Optional[RtcMa97Small] = Field( None, - alias='rtc:ma97_small', - description='Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', + alias="rtc:ma97_small", + description="Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.", ) rtc_ma97_solve_blas3: Optional[RtcMa97SolveBlas3] = Field( None, - alias='rtc:ma97_solve_blas3', + alias="rtc:ma97_solve_blas3", description='Controls if blas2 or blas3 routines are used for solve \nThe default value for this string option is "no". \nPossible values:\nno: Use BLAS2 (faster, some implementations bit incompatible)\nyes: Use BLAS3 (slower)', ) rtc_ma97_switch1: Optional[RtcMa97Switch1] = Field( None, - alias='rtc:ma97_switch1', + alias="rtc:ma97_switch1", description='First switch, determine when ma97_scaling1 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling1 is enabled according to this condition. If ma97_switch2 occurs this option is henceforth ignored. The default value for this string option is "od_hd_reuse". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', ) rtc_ma97_switch2: Optional[RtcMa97Switch2] = Field( None, - alias='rtc:ma97_switch2', + alias="rtc:ma97_switch2", description='Second switch, determine when ma97_scaling2 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling2 is enabled according to this condition. If ma97_switch3 occurs this option is henceforth ignored. The default value for this string option is "never". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', ) rtc_ma97_switch3: Optional[RtcMa97Switch3] = Field( None, - alias='rtc:ma97_switch3', + alias="rtc:ma97_switch3", description='Third switch, determine when ma97_scaling3 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling3 is enabled according to this condition. The default value for this string option is "never". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', ) rtc_ma97_u: Optional[RtcMa97U] = Field( None, - alias='rtc:ma97_u', - description='Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.', + alias="rtc:ma97_u", + description="Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.", ) rtc_ma97_umax: Optional[RtcMa97Umax] = Field( None, - alias='rtc:ma97_umax', - description='Maximum Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 0.0001.', + alias="rtc:ma97_umax", + description="Maximum Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 0.0001.", ) @@ -2561,84 +2561,84 @@ class RtcMumpsMemPercent(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMumpsPermutingScaling(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMumpsPivotOrder(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMumpsPivtol(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMumpsPivtolmax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcMumpsScaling(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcMUMPSComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_mumps_mem_percent: Optional[RtcMumpsMemPercent] = Field( None, - alias='rtc:mumps_mem_percent', - description='Percentage increase in the estimated working space for MUMPS. \nIn MUMPS when significant extra fill-in is caused by numerical pivoting, larger values of mumps_mem_percent may help use the workspace more efficiently. On the other hand, if memory requirement are too large at the very beginning of the optimization, choosing a much smaller value for this option, such as 5, might reduce memory requirements. The valid range for this integer option is [0, inf] and its default value is 1000.', + alias="rtc:mumps_mem_percent", + description="Percentage increase in the estimated working space for MUMPS. \nIn MUMPS when significant extra fill-in is caused by numerical pivoting, larger values of mumps_mem_percent may help use the workspace more efficiently. On the other hand, if memory requirement are too large at the very beginning of the optimization, choosing a much smaller value for this option, such as 5, might reduce memory requirements. The valid range for this integer option is [0, inf] and its default value is 1000.", ) rtc_mumps_permuting_scaling: Optional[RtcMumpsPermutingScaling] = Field( None, - alias='rtc:mumps_permuting_scaling', - description='Controls permuting and scaling in MUMPS \nThis is ICNTL(6) in MUMPS. The valid range for this integer option is [0,7] and its default value is 7.', + alias="rtc:mumps_permuting_scaling", + description="Controls permuting and scaling in MUMPS \nThis is ICNTL(6) in MUMPS. The valid range for this integer option is [0,7] and its default value is 7.", ) rtc_mumps_pivot_order: Optional[RtcMumpsPivotOrder] = Field( None, - alias='rtc:mumps_pivot_order', - description='Controls pivot order in MUMPS \nThis is ICNTL(7) in MUMPS. The valid range for this integer option is [0, 7] and its default value is 7.', + alias="rtc:mumps_pivot_order", + description="Controls pivot order in MUMPS \nThis is ICNTL(7) in MUMPS. The valid range for this integer option is [0, 7] and its default value is 7.", ) rtc_mumps_pivtol: Optional[RtcMumpsPivtol] = Field( None, - alias='rtc:mumps_pivtol', - description='Pivot tolerance for the linear solver MUMPS. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 1e-6.', + alias="rtc:mumps_pivtol", + description="Pivot tolerance for the linear solver MUMPS. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 1e-6.", ) rtc_mumps_pivtolmax: Optional[RtcMumpsPivtolmax] = Field( None, - alias='rtc:mumps_pivtolmax', - description='Maximum pivot tolerance for the linear solver MUMPS. \nIpopt may increase pivtol as high as pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 0.1', + alias="rtc:mumps_pivtolmax", + description="Maximum pivot tolerance for the linear solver MUMPS. \nIpopt may increase pivtol as high as pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 0.1", ) rtc_mumps_scaling: Optional[RtcMumpsScaling] = Field( None, - alias='rtc:mumps_scaling', - description='Controls scaling in MUMPS \nThis is ICNTL(8) in MUMPS. The valid range for this integer option is [-2,77] and its default value is 77.', + alias="rtc:mumps_scaling", + description="Controls scaling in MUMPS \nThis is ICNTL(8) in MUMPS. The valid range for this integer option is [-2,77] and its default value is 77.", ) @@ -2646,127 +2646,127 @@ class RtcForecastHorizon(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInteger] = Field(None, alias="$") class RtcRecedingHorizon(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInteger] = Field(None, alias="$") class RtcFirstOrderSensitivity(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcPostprocessing(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcOptimizerMode(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcOptimizerModeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcOptimizerModeEnumStringType] = Field(None, alias="$") class RtcPeriod(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcPeriodEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcPeriodEnumStringType] = Field(None, alias="$") class RtcExecuteConstraints(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcExecuteObjectiveFunction(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcLimitedMemory(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcPeriod1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcPeriodEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcPeriodEnumStringType] = Field(None, alias="$") class RtcModeSimulationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_executeConstraints: Optional[RtcExecuteConstraints] = Field( - None, alias='rtc:executeConstraints' + None, alias="rtc:executeConstraints" ) rtc_executeObjectiveFunction: Optional[RtcExecuteObjectiveFunction] = Field( - None, alias='rtc:executeObjectiveFunction' + None, alias="rtc:executeObjectiveFunction" ) rtc_limitedMemory: Optional[RtcLimitedMemory] = Field( None, - alias='rtc:limitedMemory', - description='limited-memory option for time series matrix', + alias="rtc:limitedMemory", + description="limited-memory option for time series matrix", ) - rtc_period: Optional[RtcPeriod1] = Field(None, alias='rtc:period') + rtc_period: Optional[RtcPeriod1] = Field(None, alias="rtc:period") class RtcFile(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcNumberEnsembles(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcPIInputRuntimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_file: RtcFile = Field(..., alias='rtc:file') + _: Optional[str] = Field(None, alias="#") + rtc_file: RtcFile = Field(..., alias="rtc:file") rtc_numberEnsembles: Optional[RtcNumberEnsembles] = Field( None, - alias='rtc:numberEnsembles', - description='optional number of ensemble, if not provides one ensemble member is assumed', + alias="rtc:numberEnsembles", + description="optional number of ensemble, if not provides one ensemble member is assumed", ) @@ -2774,77 +2774,77 @@ class RtcFile1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcNumberEnsembles1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcNThread(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcParallelizationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_constraints: Optional[RtcConstraints] = Field(None, alias='rtc:constraints') - rtc_nThread: Optional[RtcNThread] = Field(None, alias='rtc:nThread') - rtc_simulation: Optional[RtcSimulation] = Field(None, alias='rtc:simulation') + _: Optional[str] = Field(None, alias="#") + rtc_constraints: Optional[RtcConstraints] = Field(None, alias="rtc:constraints") + rtc_nThread: Optional[RtcNThread] = Field(None, alias="rtc:nThread") + rtc_simulation: Optional[RtcSimulation] = Field(None, alias="rtc:simulation") class RtcPardisoMaxIterativeRefinementSteps(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcPardisoMsglvl(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcPardisoComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_pardiso_matching_strategy: Optional[RtcPardisoMatchingStrategy] = Field( None, - alias='rtc:pardiso_matching_strategy', + alias="rtc:pardiso_matching_strategy", description='Matching strategy to be used by Pardiso \nThis is IPAR(13) in Pardiso manual. The default value for this string option is "complete+2x2". \nPossible values:\ncomplete: Match complete (IPAR(13)=1)\ncomplete+2x2: Match complete+2x2 (IPAR(13)=2)\nconstraints: Match constraints (IPAR(13)=3)', ) rtc_pardiso_max_iterative_refinement_steps: Optional[ RtcPardisoMaxIterativeRefinementSteps ] = Field( None, - alias='rtc:pardiso_max_iterative_refinement_steps', - description='Limit on number of iterative refinement steps. \nThe solver does not perform more than the absolute value of this value steps of iterative refinement and stops the process if a satisfactory level of accuracy of the solution in terms of backward error is achieved. If negative, the accumulation of the residue uses extended precision real and complex data types. Perturbed pivots result in iterative refinement. The solver automatically performs two steps of iterative refinements when perturbed pivots are obtained during the numerical factorization and this option is set to 0. The valid range for this integer option is [-inf, inf] and its default value is 0 .', + alias="rtc:pardiso_max_iterative_refinement_steps", + description="Limit on number of iterative refinement steps. \nThe solver does not perform more than the absolute value of this value steps of iterative refinement and stops the process if a satisfactory level of accuracy of the solution in terms of backward error is achieved. If negative, the accumulation of the residue uses extended precision real and complex data types. Perturbed pivots result in iterative refinement. The solver automatically performs two steps of iterative refinements when perturbed pivots are obtained during the numerical factorization and this option is set to 0. The valid range for this integer option is [-inf, inf] and its default value is 0 .", ) rtc_pardiso_msglvl: Optional[RtcPardisoMsglvl] = Field( None, - alias='rtc:pardiso_msglvl', - description='Pardiso message level \nThis determines the amount of analysis output from the Pardiso solver. This is MSGLVL in the Pardiso manual. The valid range for this integer option is [0, inf] and its default value is 0 .', + alias="rtc:pardiso_msglvl", + description="Pardiso message level \nThis determines the amount of analysis output from the Pardiso solver. This is MSGLVL in the Pardiso manual. The valid range for this integer option is [0, inf] and its default value is 0 .", ) rtc_pardiso_order: Optional[RtcPardisoOrder] = Field( None, - alias='rtc:pardiso_order', + alias="rtc:pardiso_order", description='Controls the fill-in reduction ordering algorithm for the input matrix. \nThe default value for this string option is "five". \nPossible values:\namd: minimum degree algorithm\none: undocumented\nmetis: MeTiS nested dissection algorithm\npmetis: parallel (OpenMP) version of MeTiS nested dissection algorithm\nfour: undocumented\nfive: undocumented', ) @@ -2853,24 +2853,24 @@ class RtcMaxIter1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInteger] = Field(None, alias="$") class RtcSAComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_dels: Optional[RtcDels] = Field(None, alias='rtc:dels', description='???') - rtc_ftoll: Optional[RtcFtoll] = Field(None, alias='rtc:ftoll', description='???') + _: Optional[str] = Field(None, alias="#") + rtc_dels: Optional[RtcDels] = Field(None, alias="rtc:dels", description="???") + rtc_ftoll: Optional[RtcFtoll] = Field(None, alias="rtc:ftoll", description="???") rtc_max_cpu_time: Optional[RtcMaxCpuTime1] = Field( None, - alias='rtc:max_cpu_time', - description='maximum cpu time for executing the optimization', + alias="rtc:max_cpu_time", + description="maximum cpu time for executing the optimization", ) rtc_max_iter: Optional[RtcMaxIter1] = Field( - None, alias='rtc:max_iter', description='Maximum number of iterations' + None, alias="rtc:max_iter", description="Maximum number of iterations" ) @@ -2878,45 +2878,45 @@ class RtcTimeStepComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') - _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') - _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + _: Optional[str] = Field(None, alias="#") + _divider: Optional[XsPositiveInteger] = Field(None, alias="@divider") + _multiplier: Optional[XsPositiveInteger] = Field(None, alias="@multiplier") + _unit: RtcTimeStepUnitEnumStringType = Field(..., alias="@unit") class RtcNumberEnsembles2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcUserDefinedRuntimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_endDate: RtcDateTimeComplexType = Field( - ..., alias='rtc:endDate', description='End date and time of the simulation.' + ..., alias="rtc:endDate", description="End date and time of the simulation." ) rtc_forecastDate: Optional[RtcDateTimeComplexType] = Field( None, - alias='rtc:forecastDate', - description='Forecast date and time of the simulation.', + alias="rtc:forecastDate", + description="Forecast date and time of the simulation.", ) rtc_numberEnsembles: Optional[RtcNumberEnsembles2] = Field( None, - alias='rtc:numberEnsembles', - description='Optional number of ensemble of the simulation. If not provided, one ensemble member is assumed.', + alias="rtc:numberEnsembles", + description="Optional number of ensemble of the simulation. If not provided, one ensemble member is assumed.", ) rtc_startDate: RtcDateTimeComplexType = Field( - ..., alias='rtc:startDate', description='Start date and time of the similation.' + ..., alias="rtc:startDate", description="Start date and time of the similation." ) rtc_timeStep: RtcTimeStepComplexType = Field( ..., - alias='rtc:timeStep', - description='Time step of the simulation (till now, the model supports only equidistant time steps)', + alias="rtc:timeStep", + description="Time step of the simulation (till now, the model supports only equidistant time steps)", ) @@ -2924,29 +2924,29 @@ class RtcStateTimeStep(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcUserDefinedStateExportComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_endDate: RtcDateTimeComplexType = Field( ..., - alias='rtc:endDate', - description='End date and time for exporting state files.', + alias="rtc:endDate", + description="End date and time for exporting state files.", ) rtc_startDate: RtcDateTimeComplexType = Field( ..., - alias='rtc:startDate', - description='Start date and time for exporting state files.', + alias="rtc:startDate", + description="Start date and time for exporting state files.", ) rtc_stateTimeStep: Optional[RtcStateTimeStep] = Field( None, - alias='rtc:stateTimeStep', - description='Step in seconds for exporting state files', + alias="rtc:stateTimeStep", + description="Step in seconds for exporting state files", ) @@ -2954,29 +2954,29 @@ class RtcFileComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_rtcDataConfig: RtcFileDataComplexType = Field( ..., - alias='rtc:rtcDataConfig', - description='File with the time series model definition', + alias="rtc:rtcDataConfig", + description="File with the time series model definition", ) rtc_rtcObjectiveConfig: Optional[RtcFileObjectiveComplexType] = Field( None, - alias='rtc:rtcObjectiveConfig', - description='Optional file with the definition of an optimization problem including optimization variables, constraints and objective function terms', + alias="rtc:rtcObjectiveConfig", + description="Optional file with the definition of an optimization problem including optimization variables, constraints and objective function terms", ) rtc_rtcParameterConfig: Optional[List[RtcFileParameterComplexType]] = Field( - None, alias='rtc:rtcParameterConfig' + None, alias="rtc:rtcParameterConfig" ) rtc_rtcScenarioTreeConfig: Optional[RtcFileScenarioTreeComplexType] = Field( None, - alias='rtc:rtcScenarioTreeConfig', - description='Optional file with the definition of a scenario tree for the control trajectory in case of multi-stage stochastic optimization problems', + alias="rtc:rtcScenarioTreeConfig", + description="Optional file with the definition of a scenario tree for the control trajectory in case of multi-stage stochastic optimization problems", ) rtc_rtcToolsConfig: RtcFileToolsComplexType = Field( ..., - alias='rtc:rtcToolsConfig', - description='File with the schematization of the process model, i.e. the model of the water resources systems', + alias="rtc:rtcToolsConfig", + description="File with the schematization of the process model, i.e. the model of the water resources systems", ) @@ -2984,56 +2984,56 @@ class RtcIPOPTLinearSolverComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_linear_scaling_on_demand: Optional[RtcLinearScalingOnDemand] = Field( None, - alias='rtc:linear_scaling_on_demand', + alias="rtc:linear_scaling_on_demand", description='Flag indicating that linear scaling is only done if it seems required. \nThis option is only important if a linear scaling method (e.g., mc19) is used. If you choose "no", then the scaling factors are computed for every linear system from the start. This can be quite expensive. Choosing "yes" means that the algorithm will start the scaling method only when the solutions to the linear system seem not good, and then use it until the end. The default value for this string option is "yes". ', ) rtc_linear_solver: Optional[RtcLinearSolver] = Field( None, - alias='rtc:linear_solver', - description='Linear solver used for step computations', + alias="rtc:linear_solver", + description="Linear solver used for step computations", ) rtc_linear_system_scaling: Optional[RtcLinearSystemScaling] = Field( None, - alias='rtc:linear_system_scaling', + alias="rtc:linear_system_scaling", description='Method for scaling the linear system. \nDetermines the method used to compute symmetric scaling factors for the augmented system (see also the "linear_scaling_on_demand" option). This scaling is independent of the NLP problem scaling. By default, MC19 is only used if MA27 or MA57 are selected as linear solvers. This value is only available if Ipopt has been compiled with MC19. The default value for this string option is "mc19". ', ) - rtc_ma27: Optional[RtcMA27ComplexType] = Field(None, alias='rtc:ma27') - rtc_ma57: Optional[RtcMA57ComplexType] = Field(None, alias='rtc:ma57') - rtc_ma77: Optional[RtcMA77ComplexType] = Field(None, alias='rtc:ma77') - rtc_ma86: Optional[RtcMA86ComplexType] = Field(None, alias='rtc:ma86') - rtc_ma97: Optional[RtcMA97ComplexType] = Field(None, alias='rtc:ma97') + rtc_ma27: Optional[RtcMA27ComplexType] = Field(None, alias="rtc:ma27") + rtc_ma57: Optional[RtcMA57ComplexType] = Field(None, alias="rtc:ma57") + rtc_ma77: Optional[RtcMA77ComplexType] = Field(None, alias="rtc:ma77") + rtc_ma86: Optional[RtcMA86ComplexType] = Field(None, alias="rtc:ma86") + rtc_ma97: Optional[RtcMA97ComplexType] = Field(None, alias="rtc:ma97") rtc_max_refinement_steps: Optional[RtcMaxRefinementSteps] = Field( None, - alias='rtc:max_refinement_steps', + alias="rtc:max_refinement_steps", description='Maximum number of iterative refinement steps per linear system solve. \nIterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the maximum number of iterative refinements (i.e. at least "min_refinement_steps" iterative refinement steps are enforced per right hand side.) The valid range for this integer option is [0,+inf] and its default value is 1.\n\t\t\t\t ', ) rtc_min_refinement_steps: Optional[RtcMinRefinementSteps] = Field( None, - alias='rtc:min_refinement_steps', + alias="rtc:min_refinement_steps", description='Minimum number of iterative refinement steps per linear system solve. \nIterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the minimum number of iterative refinements (i.e. at least "min_refinement_steps" iterative refinement steps are enforced per right hand side.) The valid range for this integer option is [0,+inf] and its default value is 10.\n\t\t\t\t ', ) - rtc_mumps: Optional[RtcMUMPSComplexType] = Field(None, alias='rtc:mumps') - rtc_pardiso: Optional[RtcPardisoComplexType] = Field(None, alias='rtc:pardiso') + rtc_mumps: Optional[RtcMUMPSComplexType] = Field(None, alias="rtc:mumps") + rtc_pardiso: Optional[RtcPardisoComplexType] = Field(None, alias="rtc:pardiso") class RtcPIRunFileRuntimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_file: RtcFile1 = Field(..., alias='rtc:file') + _: Optional[str] = Field(None, alias="#") + rtc_file: RtcFile1 = Field(..., alias="rtc:file") rtc_numberEnsembles: Optional[RtcNumberEnsembles1] = Field( None, - alias='rtc:numberEnsembles', - description='optional number of ensemble, if not provides one ensemble member is assumed', + alias="rtc:numberEnsembles", + description="optional number of ensemble, if not provides one ensemble member is assumed", ) rtc_timeStep: RtcTimeStepComplexType = Field( ..., - alias='rtc:timeStep', - description='Time step of the simulation (till now, the model supports only equidistant time steps)', + alias="rtc:timeStep", + description="Time step of the simulation (till now, the model supports only equidistant time steps)", ) @@ -3041,21 +3041,21 @@ class RtcPeriodComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_PIInput: Optional[RtcPIInputRuntimeComplexType] = Field( None, - alias='rtc:PIInput', - description='The execution period is defined by the first time series of the referred PI-XML file.', + alias="rtc:PIInput", + description="The execution period is defined by the first time series of the referred PI-XML file.", ) rtc_PIRunFile: Optional[RtcPIRunFileRuntimeComplexType] = Field( None, - alias='rtc:PIRunFile', - description='The execution period is defined in the PI-XML run file.', + alias="rtc:PIRunFile", + description="The execution period is defined in the PI-XML run file.", ) rtc_userDefined: Optional[RtcUserDefinedRuntimeComplexType] = Field( None, - alias='rtc:userDefined', - description='The execution period is user-defined by start and end time, time step and optionally the number of ensembles.', + alias="rtc:userDefined", + description="The execution period is user-defined by start and end time, time step and optionally the number of ensembles.", ) @@ -3063,70 +3063,70 @@ class RtcIPOPTComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_barrierParameter: RtcIPOPTBarrierParameterComplexType = Field( - ..., alias='rtc:barrierParameter' + ..., alias="rtc:barrierParameter" ) rtc_derivativeChecker: RtcIPOPTDerivativeCheckerComplexType = Field( - ..., alias='rtc:derivativeChecker', description='Optional derivative checker' + ..., alias="rtc:derivativeChecker", description="Optional derivative checker" ) rtc_hessianPermutation: RtcIPOPTHessianPermutationComplexType = Field( - ..., alias='rtc:hessianPermutation', description='Optional hessian settings' + ..., alias="rtc:hessianPermutation", description="Optional hessian settings" ) rtc_initialization: RtcIPOPTInitializationComplexType = Field( - ..., alias='rtc:initialization' + ..., alias="rtc:initialization" ) - rtc_lineSearch: RtcIPOPTLineSearchComplexType = Field(..., alias='rtc:lineSearch') + rtc_lineSearch: RtcIPOPTLineSearchComplexType = Field(..., alias="rtc:lineSearch") rtc_linearSolver: RtcIPOPTLinearSolverComplexType = Field( ..., - alias='rtc:linearSolver', - description='Settings and selection of the integrated linear equation solver ', + alias="rtc:linearSolver", + description="Settings and selection of the integrated linear equation solver ", ) rtc_multiplierUpdates: RtcIPOPTMultiplierUpdatesComplexType = Field( - ..., alias='rtc:multiplierUpdates' + ..., alias="rtc:multiplierUpdates" ) rtc_nlp: RtcIPOPTNLPComplexType = Field( - ..., alias='rtc:nlp', description='Settings of the nonlinear optimizer' + ..., alias="rtc:nlp", description="Settings of the nonlinear optimizer" ) rtc_nlpScaling: RtcIPOPTNLPScalingComplexType = Field( ..., - alias='rtc:nlpScaling', - description='Scaling options for the optimization problem', + alias="rtc:nlpScaling", + description="Scaling options for the optimization problem", ) rtc_output: RtcIPOPTOutputComplexType = Field( - ..., alias='rtc:output', description='Output options' + ..., alias="rtc:output", description="Output options" ) rtc_quasiNewton: RtcIPOPTQuasiNewtonComplexType = Field( - ..., alias='rtc:quasiNewton' + ..., alias="rtc:quasiNewton" ) rtc_restorationPhase: RtcIPOPTRestorationPhaseComplexType = Field( - ..., alias='rtc:restorationPhase' + ..., alias="rtc:restorationPhase" ) rtc_termination: RtcIPOPTTerminationComplexType = Field( - ..., alias='rtc:termination', description='Termination criteria' + ..., alias="rtc:termination", description="Termination criteria" ) - rtc_warmStart: RtcIPOPTWarmStartComplexType = Field(..., alias='rtc:warmStart') + rtc_warmStart: RtcIPOPTWarmStartComplexType = Field(..., alias="rtc:warmStart") class RtcOptimizerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_GAMS: Optional[RtcGAMSComplexType] = Field( None, - alias='rtc:GAMS', - description='This option generates a GAMS optimization problem with an external model in RTC-Tools. Note that you need to run the optimization in GAMS after executing the stand alone RTC-Tools.', + alias="rtc:GAMS", + description="This option generates a GAMS optimization problem with an external model in RTC-Tools. Note that you need to run the optimization in GAMS after executing the stand alone RTC-Tools.", ) rtc_IPOPT: Optional[RtcIPOPTComplexType] = Field( None, - alias='rtc:IPOPT', - description='Optimization by the IPOPT optimizer, check also the related documentation on the COIN-OR website', + alias="rtc:IPOPT", + description="Optimization by the IPOPT optimizer, check also the related documentation on the COIN-OR website", ) rtc_SA: Optional[RtcSAComplexType] = Field( None, - alias='rtc:SA', - description='Optimization by a simulated annealing optimizer (NOT FULLY IMPLEMENTED right now)', + alias="rtc:SA", + description="Optimization by a simulated annealing optimizer (NOT FULLY IMPLEMENTED right now)", ) @@ -3134,35 +3134,35 @@ class RtcModeOptimizationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_optimizer: Optional[List[RtcOptimizerComplexType]] = Field( - None, alias='rtc:optimizer' + None, alias="rtc:optimizer" ) rtc_optimizerMode: Optional[RtcOptimizerMode] = Field( None, - alias='rtc:optimizerMode', - description='Mode for defining more robust hybrid optimizer settings for running optimizations sequentially (optimimum of the first is input for the next) or parallel (independent optimization, best one is returned), STILL NOT IMPLEMENTED', + alias="rtc:optimizerMode", + description="Mode for defining more robust hybrid optimizer settings for running optimizations sequentially (optimimum of the first is input for the next) or parallel (independent optimization, best one is returned), STILL NOT IMPLEMENTED", ) - rtc_period: Optional[RtcPeriod] = Field(None, alias='rtc:period') + rtc_period: Optional[RtcPeriod] = Field(None, alias="rtc:period") class RtcModeClosedLoopComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_forecastHorizon: RtcForecastHorizon = Field( ..., - alias='rtc:forecastHorizon', - description='Number of time steps of forecasts in the predictive control mode', + alias="rtc:forecastHorizon", + description="Number of time steps of forecasts in the predictive control mode", ) rtc_optimization: RtcModeOptimizationComplexType = Field( - ..., alias='rtc:optimization' + ..., alias="rtc:optimization" ) rtc_recedingHorizon: RtcRecedingHorizon = Field( ..., - alias='rtc:recedingHorizon', - description='Number of time steps after which the optimization is repeated', + alias="rtc:recedingHorizon", + description="Number of time steps after which the optimization is repeated", ) @@ -3170,27 +3170,27 @@ class RtcModeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_closedLoop: Optional[RtcModeClosedLoopComplexType] = Field( None, - alias='rtc:closedLoop', - description='Closed loop mode with an alternating switch between simulation and optimization', + alias="rtc:closedLoop", + description="Closed loop mode with an alternating switch between simulation and optimization", ) rtc_firstOrderSensitivity: Optional[RtcFirstOrderSensitivity] = Field( None, - alias='rtc:firstOrderSensitivity', - description='Calculation of first-order model sensitivities of an objective function value with respect to inputs, states and outputs (requires the definition of an objective function in the rtcObjectiveConfig.xml)', + alias="rtc:firstOrderSensitivity", + description="Calculation of first-order model sensitivities of an objective function value with respect to inputs, states and outputs (requires the definition of an objective function in the rtcObjectiveConfig.xml)", ) rtc_optimization: Optional[RtcModeOptimizationComplexType] = Field( None, - alias='rtc:optimization', - description='Optimization mode (requires the definition of an optimization problem in the rtcObjectiveConfig.xml)', + alias="rtc:optimization", + description="Optimization mode (requires the definition of an optimization problem in the rtcObjectiveConfig.xml)", ) rtc_postprocessing: Optional[RtcPostprocessing] = Field( - None, alias='rtc:postprocessing' + None, alias="rtc:postprocessing" ) rtc_simulation: Optional[RtcModeSimulationComplexType] = Field( - None, alias='rtc:simulation', description='Simulation mode (default)' + None, alias="rtc:simulation", description="Simulation mode (default)" ) @@ -3198,43 +3198,43 @@ class RtcModesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_mode: List[RtcModeComplexType] = Field(..., alias='rtc:mode', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_mode: List[RtcModeComplexType] = Field(..., alias="rtc:mode", min_items=1) class RtcRtcRuntimeConfigComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_files: Optional[RtcFileComplexType] = Field( None, - alias='rtc:files', - description='Optional provision of input files, if provided ALL relevant input files needs to be defined, if not, the program will check for files with default naming in the current working folder', + alias="rtc:files", + description="Optional provision of input files, if provided ALL relevant input files needs to be defined, if not, the program will check for files with default naming in the current working folder", ) rtc_logging: Optional[RtcLoggingComplexType] = Field( - None, alias='rtc:logging', description='Logging' + None, alias="rtc:logging", description="Logging" ) rtc_mode: Optional[RtcModeComplexType] = Field( None, - alias='rtc:mode', - description='Optional definition of the execution mode of the application, default = simulation if not provided', + alias="rtc:mode", + description="Optional definition of the execution mode of the application, default = simulation if not provided", ) - rtc_modes: Optional[RtcModesComplexType] = Field(None, alias='rtc:modes') + rtc_modes: Optional[RtcModesComplexType] = Field(None, alias="rtc:modes") rtc_parallelization: Optional[RtcParallelizationComplexType] = Field( None, - alias='rtc:parallelization', - description='Optional parallelization settings', + alias="rtc:parallelization", + description="Optional parallelization settings", ) rtc_period: RtcPeriodComplexType = Field( ..., - alias='rtc:period', - description='Execution period of the simulation or optimization', + alias="rtc:period", + description="Execution period of the simulation or optimization", ) rtc_stateFiles: Optional[RtcUserDefinedStateExportComplexType] = Field( None, - alias='rtc:stateFiles', - description='Optional definition for saving periodic state files', + alias="rtc:stateFiles", + description="Optional definition for saving periodic state files", ) @@ -3242,11 +3242,11 @@ class Model(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') + _: Optional[str] = Field(None, alias="#") + _xmlns_rtc: Optional[Any] = Field("http://www.wldelft.nl/fews", alias="@xmlns:rtc") _xmlns_xs: Optional[Any] = Field( - 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) rtc_rtcRuntimeConfig: Optional[_.RtcRtcRuntimeConfig] = Field( - None, alias='rtc:rtcRuntimeConfig' + None, alias="rtc:rtcRuntimeConfig" ) diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/models.py b/hydrolib/core/io/rtc/rtcToolsConfig/models.py index 10969b089..a34a80292 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/models.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/models.py @@ -14,123 +14,123 @@ class RtcAggregationTypeEnumStringType(Enum): - BLOCK = 'BLOCK' - LINEAR = 'LINEAR' + BLOCK = "BLOCK" + LINEAR = "LINEAR" class RtcBranchTypeEnumStringType(Enum): - KINEMATIC = 'KINEMATIC' - DIFFUSIVE = 'DIFFUSIVE' - DIFFUSIVEPLUSLOCAL = 'DIFFUSIVEPLUSLOCAL' + KINEMATIC = "KINEMATIC" + DIFFUSIVE = "DIFFUSIVE" + DIFFUSIVEPLUSLOCAL = "DIFFUSIVEPLUSLOCAL" class RtcCapacityReferenceEnumStringType(Enum): - UPSTREAMLEVEL = 'UPSTREAMLEVEL' - HEAD = 'HEAD' + UPSTREAMLEVEL = "UPSTREAMLEVEL" + HEAD = "HEAD" class _MonthOfYear(Enum): - January = 'January' - February = 'February' - March = 'March' - April = 'April' - May = 'May' - June = 'June' - July = 'July' - August = 'August' - September = 'September' - October = 'October' - November = 'November' - December = 'December' + January = "January" + February = "February" + March = "March" + April = "April" + May = "May" + June = "June" + July = "July" + August = "August" + September = "September" + October = "October" + November = "November" + December = "December" class RtcEnsembleModeEnumStringType(Enum): - JOINT = 'JOINT' - TREE = 'TREE' - INDEPENDENT = 'INDEPENDENT' + JOINT = "JOINT" + TREE = "TREE" + INDEPENDENT = "INDEPENDENT" class RtcEquationEnumStringType(Enum): - KINEMATIC = 'KINEMATIC' - DIFFUSIVE = 'DIFFUSIVE' - INERTIAL = 'INERTIAL' + KINEMATIC = "KINEMATIC" + DIFFUSIVE = "DIFFUSIVE" + INERTIAL = "INERTIAL" class RtcExternalBooleanSimpleType(BaseModel): - __root__: Union[bool, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + __root__: Union[bool, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] class RtcExternalIntegerSimpleType(BaseModel): - __root__: Union[int, constr(regex=r'^([\$][\(-_a-z]+[\$])$')] + __root__: Union[int, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] class RtcExternalParameterSimpleType(BaseModel): - __root__: Union[float, constr(regex=r'^([#-\$][\(-_a-z]+[#-\$])$')] + __root__: Union[float, constr(regex=r"^([#-\$][\(-_a-z]+[#-\$])$")] class RtcECORR(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcRFCF(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcSFCF(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTT(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTTI(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcHBVParameterInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ECORR: Optional[RtcECORR] = Field( - None, alias='rtc:ECORR', description='correction factor for EP' + None, alias="rtc:ECORR", description="correction factor for EP" ) rtc_RFCF: Optional[RtcRFCF] = Field( - None, alias='rtc:RFCF', description='correction factor for rainfall' + None, alias="rtc:RFCF", description="correction factor for rainfall" ) rtc_SFCF: Optional[RtcSFCF] = Field( - None, alias='rtc:SFCF', description='correction factor for snow' + None, alias="rtc:SFCF", description="correction factor for snow" ) rtc_TT: RtcTT = Field( ..., - alias='rtc:TT', - description='temperature limit for snow / rain [oC], normally close to 0 ', + alias="rtc:TT", + description="temperature limit for snow / rain [oC], normally close to 0 ", ) rtc_TTI: RtcTTI = Field( ..., - alias='rtc:TTI', - description='temperature interval with a mixture of snow / rain [oC]', + alias="rtc:TTI", + description="temperature interval with a mixture of snow / rain [oC]", ) @@ -138,17 +138,17 @@ class RtcLIC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcHBVParameterInterceptionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_LIC: RtcLIC = Field( - ..., alias='rtc:LIC', description='maximum interception storage' + ..., alias="rtc:LIC", description="maximum interception storage" ) @@ -156,61 +156,61 @@ class RtcALPHA(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcAREA(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcK(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcK1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcPERC1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcHBVParameterResponseComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ALPHA: RtcALPHA = Field( ..., - alias='rtc:ALPHA', - description='response box parameter [-], usually between 1.0 and 2.0', + alias="rtc:ALPHA", + description="response box parameter [-], usually between 1.0 and 2.0", ) - rtc_AREA: RtcAREA = Field(..., alias='rtc:AREA', description='catchment area [km2]') - rtc_K: RtcK = Field(..., alias='rtc:K', description='recession coefficient') + rtc_AREA: RtcAREA = Field(..., alias="rtc:AREA", description="catchment area [km2]") + rtc_K: RtcK = Field(..., alias="rtc:K", description="recession coefficient") rtc_K1: RtcK1 = Field( - ..., alias='rtc:K1', description='recession coefficient [1/day]' + ..., alias="rtc:K1", description="recession coefficient [1/day]" ) rtc_PERC: RtcPERC1 = Field( ..., - alias='rtc:PERC', - description='percolation from upper to lower response box [mm/day], usually between 0 and 6', + alias="rtc:PERC", + description="percolation from upper to lower response box [mm/day], usually between 0 and 6", ) @@ -218,52 +218,52 @@ class RtcCFMAX(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcCFR(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcCWH(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTTM(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcHBVParameterSnowComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_CFMAX: RtcCFMAX = Field( ..., - alias='rtc:CFMAX', - description='degree day factor [mm/(oC*day)], varies normally between 1.5 and 4, 2 and 3.5 can be used in forested and open\nlandscape respectively', + alias="rtc:CFMAX", + description="degree day factor [mm/(oC*day)], varies normally between 1.5 and 4, 2 and 3.5 can be used in forested and open\nlandscape respectively", ) rtc_CFR: RtcCFR = Field( - ..., alias='rtc:CFR', description='refreezing factor [-], about 0.05' + ..., alias="rtc:CFR", description="refreezing factor [-], about 0.05" ) rtc_CWH: RtcCWH = Field( - ..., alias='rtc:CWH', description='water holding capacity [-], usually 0.1' + ..., alias="rtc:CWH", description="water holding capacity [-], usually 0.1" ) rtc_TTM: RtcTTM = Field( - ..., alias='rtc:TTM', description='temperature limit for melting [oC]' + ..., alias="rtc:TTM", description="temperature limit for melting [oC]" ) @@ -271,333 +271,333 @@ class RtcBETA(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcCFLUX(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcETF(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcFC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLP(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcHBVParameterSoilComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_BETA: RtcBETA = Field( ..., - alias='rtc:BETA', - description='parameter in soil routine [-], usually between 1 and 6', + alias="rtc:BETA", + description="parameter in soil routine [-], usually between 1 and 6", ) rtc_CFLUX: RtcCFLUX = Field( - ..., alias='rtc:CFLUX', description='maximum value of CF' + ..., alias="rtc:CFLUX", description="maximum value of CF" ) rtc_ETF: RtcETF = Field( - ..., alias='rtc:ETF', description='temperature correction factor' + ..., alias="rtc:ETF", description="temperature correction factor" ) rtc_FC: RtcFC = Field( - ..., alias='rtc:FC', description='field capacity [mm], between 50 and 500' + ..., alias="rtc:FC", description="field capacity [mm], between 50 and 500" ) rtc_LP: RtcLP = Field( ..., - alias='rtc:LP', - description='limit for potential evapotranspiration [-], in the range between 0.3 and 1', + alias="rtc:LP", + description="limit for potential evapotranspiration [-], in the range between 0.3 and 1", ) class RtcHydraulicModelModeEnumStringType(Enum): - SEQUENTIAL_EXPLICIT = 'SEQUENTIAL_EXPLICIT' - SEQUENTIAL_IMPLICIT = 'SEQUENTIAL_IMPLICIT' - SIMULTANEOUS = 'SIMULTANEOUS' + SEQUENTIAL_EXPLICIT = "SEQUENTIAL_EXPLICIT" + SEQUENTIAL_IMPLICIT = "SEQUENTIAL_IMPLICIT" + SIMULTANEOUS = "SIMULTANEOUS" class RtcLayerIDSimpleType(BaseModel): - __root__: constr(regex=r'^([L][0-9]+)$') + __root__: constr(regex=r"^([L][0-9]+)$") class _1(Enum): - MONOTON = 'MONOTON' - POSITIVE = 'POSITIVE' + MONOTON = "MONOTON" + POSITIVE = "POSITIVE" class RtcPropertyItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_1] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_1] = Field(None, alias="$") class RtcAREA1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcKB(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcKS(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTB1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTB2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTS1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTS2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLorentGeversParameterResponseComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_AREA: RtcAREA1 = Field(..., alias='rtc:AREA') - rtc_KB: RtcKB = Field(..., alias='rtc:KB') - rtc_KS: RtcKS = Field(..., alias='rtc:KS') - rtc_TB1: RtcTB1 = Field(..., alias='rtc:TB1') - rtc_TB2: RtcTB2 = Field(..., alias='rtc:TB2') - rtc_TS1: RtcTS1 = Field(..., alias='rtc:TS1') - rtc_TS2: RtcTS2 = Field(..., alias='rtc:TS2') + _: Optional[str] = Field(None, alias="#") + rtc_AREA: RtcAREA1 = Field(..., alias="rtc:AREA") + rtc_KB: RtcKB = Field(..., alias="rtc:KB") + rtc_KS: RtcKS = Field(..., alias="rtc:KS") + rtc_TB1: RtcTB1 = Field(..., alias="rtc:TB1") + rtc_TB2: RtcTB2 = Field(..., alias="rtc:TB2") + rtc_TS1: RtcTS1 = Field(..., alias="rtc:TS1") + rtc_TS2: RtcTS2 = Field(..., alias="rtc:TS2") class RtcBETA1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcPMAX(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcSMAX(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLorentGeversParameterSoilComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_BETA: RtcBETA1 = Field(..., alias='rtc:BETA') - rtc_PMAX: RtcPMAX = Field(..., alias='rtc:PMAX') - rtc_SMAX: RtcSMAX = Field(..., alias='rtc:SMAX') + _: Optional[str] = Field(None, alias="#") + rtc_BETA: RtcBETA1 = Field(..., alias="rtc:BETA") + rtc_PMAX: RtcPMAX = Field(..., alias="rtc:PMAX") + rtc_SMAX: RtcSMAX = Field(..., alias="rtc:SMAX") class RtcMathematicalOperatorEnumStringType(Enum): - _ = '+' - __1 = '-' - __2 = '*' - __3 = '/' - min = 'min' - max = 'max' - __4 = '^' + _ = "+" + __1 = "-" + __2 = "*" + __3 = "/" + min = "min" + max = "max" + __4 = "^" class RtcMergerSplitterEnumStringType(Enum): - AVERAGE = 'AVERAGE' - DATAHIERARCHY = 'DATAHIERARCHY' - SUM = 'SUM' + AVERAGE = "AVERAGE" + DATAHIERARCHY = "DATAHIERARCHY" + SUM = "SUM" class RtcBias(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcNeuronIDSimpleType(BaseModel): - __root__: constr(regex=r'^([L][0-9]+[N][0-9]+)$') + __root__: constr(regex=r"^([L][0-9]+[N][0-9]+)$") class RtcAREA2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcStateMax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcStateMin(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcAREA3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcCFLUX1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcFC1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterCapillaryFlowStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA3] = Field( - None, alias='rtc:AREA', description='area [km2]' + None, alias="rtc:AREA", description="area [km2]" ) rtc_CFLUX: RtcCFLUX1 = Field( - ..., alias='rtc:CFLUX', description='maximum value of capillary flow [mm/d]' + ..., alias="rtc:CFLUX", description="maximum value of capillary flow [mm/d]" ) - rtc_FC: RtcFC1 = Field(..., alias='rtc:FC', description='field capacity [mm]') + rtc_FC: RtcFC1 = Field(..., alias="rtc:FC", description="field capacity [mm]") class RtcAREA4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcD4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcFC2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLP1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterEvaporationActualStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA4] = Field( - None, alias='rtc:AREA', description='area [1000 m2], default = 1.0' + None, alias="rtc:AREA", description="area [1000 m2], default = 1.0" ) rtc_D: Optional[RtcD4] = Field( None, - alias='rtc:D', - description='distance measure for smoothing the transitions [-]', + alias="rtc:D", + description="distance measure for smoothing the transitions [-]", ) - rtc_FC: RtcFC2 = Field(..., alias='rtc:FC', description='field capacity [mm]') + rtc_FC: RtcFC2 = Field(..., alias="rtc:FC", description="field capacity [mm]") rtc_LP: RtcLP1 = Field( - ..., alias='rtc:LP', description='limit for potential evaporation [-]' + ..., alias="rtc:LP", description="limit for potential evaporation [-]" ) @@ -605,17 +605,17 @@ class RtcAREA5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterEvaporationInterceptionStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA5] = Field( - None, alias='rtc:AREA', description='area [km2]' + None, alias="rtc:AREA", description="area [km2]" ) @@ -623,30 +623,30 @@ class RtcECORR1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcETF1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterEvaporationPotentialComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ECORR: Optional[RtcECORR1] = Field( None, - alias='rtc:ECORR', - description='evaporation correction factor, default = 1.0', + alias="rtc:ECORR", + description="evaporation correction factor, default = 1.0", ) rtc_ETF: RtcETF1 = Field( - ..., alias='rtc:ETF', description='temperature correction factor' + ..., alias="rtc:ETF", description="temperature correction factor" ) @@ -654,112 +654,112 @@ class RtcAREA6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcIRRCONST(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcIRRTHR(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcM(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterIrrigationStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA6] = Field( - None, alias='rtc:AREA', description='area [km2], default = 1.0' + None, alias="rtc:AREA", description="area [km2], default = 1.0" ) rtc_IRR_CONST: Optional[RtcIRRCONST] = Field( - None, alias='rtc:IRR_CONST', description='costant irrigation flux [mm/d]' + None, alias="rtc:IRR_CONST", description="costant irrigation flux [mm/d]" ) rtc_IRR_THR: RtcIRRTHR = Field( ..., - alias='rtc:IRR_THR', - description='Threshold of the downstream node under which irrigation is needed [mm]', + alias="rtc:IRR_THR", + description="Threshold of the downstream node under which irrigation is needed [mm]", ) - rtc_M: Optional[RtcM] = Field(None, alias='rtc:M', description='smoothing factor') + rtc_M: Optional[RtcM] = Field(None, alias="rtc:M", description="smoothing factor") class RtcAREA7(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcCFMAX1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcCFR1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcM1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTTM1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterMeltRefreezingStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA7] = Field( - None, alias='rtc:AREA', description='area [km2]' + None, alias="rtc:AREA", description="area [km2]" ) rtc_CFMAX: RtcCFMAX1 = Field( - ..., alias='rtc:CFMAX', description='degree day factor [mm/day]' + ..., alias="rtc:CFMAX", description="degree day factor [mm/day]" ) - rtc_CFR: RtcCFR1 = Field(..., alias='rtc:CFR', description='refreezing factor [-]') + rtc_CFR: RtcCFR1 = Field(..., alias="rtc:CFR", description="refreezing factor [-]") rtc_M: Optional[RtcM1] = Field( None, - alias='rtc:M', - description='smoothing factor, default = 0.05, more smoothing for higher value and vice versa', + alias="rtc:M", + description="smoothing factor, default = 0.05, more smoothing for higher value and vice versa", ) rtc_TTM: RtcTTM1 = Field( - ..., alias='rtc:TTM', description='temperature limit for melting [oC]' + ..., alias="rtc:TTM", description="temperature limit for melting [oC]" ) @@ -767,135 +767,135 @@ class RtcAREA8(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcPERC2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterPercolationStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA8] = Field( - None, alias='rtc:AREA', description='area [km2]' + None, alias="rtc:AREA", description="area [km2]" ) - rtc_PERC: RtcPERC2 = Field(..., alias='rtc:PERC', description='percolation [mm/d]') + rtc_PERC: RtcPERC2 = Field(..., alias="rtc:PERC", description="percolation [mm/d]") class RtcAREA9(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcFRAC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLIC1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcM2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterReleaseAboveThresholdStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA9] = Field( - None, alias='rtc:AREA', description='area [km2], default = 1.0' + None, alias="rtc:AREA", description="area [km2], default = 1.0" ) rtc_FRAC: Optional[RtcFRAC] = Field( None, - alias='rtc:FRAC', - description='percentage of the flow which flows towards the bucket of interest. The permitted range is between 0 and 100', + alias="rtc:FRAC", + description="percentage of the flow which flows towards the bucket of interest. The permitted range is between 0 and 100", ) rtc_LIC: RtcLIC1 = Field( ..., - alias='rtc:LIC', - description='upper limit of (interception) storage node [mm]', + alias="rtc:LIC", + description="upper limit of (interception) storage node [mm]", ) - rtc_M: Optional[RtcM2] = Field(None, alias='rtc:M', description='smoothing factor') + rtc_M: Optional[RtcM2] = Field(None, alias="rtc:M", description="smoothing factor") class RtcAREA10(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterReleaseTotalComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_AREA: RtcAREA10 = Field(..., alias='rtc:AREA', description='area [km2]') + _: Optional[str] = Field(None, alias="#") + rtc_AREA: RtcAREA10 = Field(..., alias="rtc:AREA", description="area [km2]") class RtcAREA11(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcM3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcWHC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterReleaseWaterContentStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA11] = Field( - None, alias='rtc:AREA', description='area [km2]' + None, alias="rtc:AREA", description="area [km2]" ) rtc_M: Optional[RtcM3] = Field( - None, alias='rtc:M', description='smoothing coefficient' + None, alias="rtc:M", description="smoothing coefficient" ) rtc_WHC: RtcWHC = Field( - ..., alias='rtc:WHC', description='water holding capacity [-]' + ..., alias="rtc:WHC", description="water holding capacity [-]" ) @@ -903,107 +903,107 @@ class RtcALPHA1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcAREA12(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcK2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterResponseStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ALPHA: Optional[RtcALPHA1] = Field( - None, alias='rtc:ALPHA', description='response box parameter [-], default = 0.0' + None, alias="rtc:ALPHA", description="response box parameter [-], default = 0.0" ) rtc_AREA: Optional[RtcAREA12] = Field( - None, alias='rtc:AREA', description='area [km2]' + None, alias="rtc:AREA", description="area [km2]" ) - rtc_K: RtcK2 = Field(..., alias='rtc:K', description='recession coefficient [1/d]') + rtc_K: RtcK2 = Field(..., alias="rtc:K", description="recession coefficient [1/d]") class RtcD5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcRFCF1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcSFCF1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTT1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTTI1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterSnowRainJunctionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_D: Optional[RtcD5] = Field( None, - alias='rtc:D', - description='smoothing parameter for switching between a linear ramp (D=0.0) and a sigmoid function (D=1.0)', + alias="rtc:D", + description="smoothing parameter for switching between a linear ramp (D=0.0) and a sigmoid function (D=1.0)", ) rtc_RFCF: Optional[RtcRFCF1] = Field( None, - alias='rtc:RFCF', - description='rainfall correction factor [-], default is 1.0', + alias="rtc:RFCF", + description="rainfall correction factor [-], default is 1.0", ) rtc_SFCF: Optional[RtcSFCF1] = Field( None, - alias='rtc:SFCF', - description='snowfall correction factor [-], default is 1.0', + alias="rtc:SFCF", + description="snowfall correction factor [-], default is 1.0", ) rtc_TT: RtcTT1 = Field( - ..., alias='rtc:TT', description='temperature limit for snow and rainfall [oC]' + ..., alias="rtc:TT", description="temperature limit for snow and rainfall [oC]" ) rtc_TTI: RtcTTI1 = Field( ..., - alias='rtc:TTI', - description='temperature interval with a mixture of snow and rainfall [K]', + alias="rtc:TTI", + description="temperature interval with a mixture of snow and rainfall [K]", ) @@ -1011,88 +1011,88 @@ class RtcAREA13(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcBETA2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcFC3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterSoilRunoffStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA13] = Field( - None, alias='rtc:AREA', description='area [km2]' + None, alias="rtc:AREA", description="area [km2]" ) rtc_BETA: RtcBETA2 = Field( - ..., alias='rtc:BETA', description='parameter in soil routine [-]' + ..., alias="rtc:BETA", description="parameter in soil routine [-]" ) - rtc_FC: RtcFC3 = Field(..., alias='rtc:FC', description='field capacity [mm]') + rtc_FC: RtcFC3 = Field(..., alias="rtc:FC", description="field capacity [mm]") class RtcAREA14(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcD6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcM4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcMINUP(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterWaterDistributionConstantStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA14] = Field( - None, alias='rtc:AREA', description='area [km2], default = 1.0' + None, alias="rtc:AREA", description="area [km2], default = 1.0" ) rtc_D: RtcD6 = Field( - ..., alias='rtc:D', description='capacity of demand/abstraction [m3/s]' + ..., alias="rtc:D", description="capacity of demand/abstraction [m3/s]" ) - rtc_M: Optional[RtcM4] = Field(None, alias='rtc:M', description='smoothing factor') + rtc_M: Optional[RtcM4] = Field(None, alias="rtc:M", description="smoothing factor") rtc_MIN_UP: Optional[RtcMINUP] = Field( None, - alias='rtc:MIN_UP', - description='minimum abstraction level upstream [mm]. Default 0, till empty.', + alias="rtc:MIN_UP", + description="minimum abstraction level upstream [mm]. Default 0, till empty.", ) @@ -1100,39 +1100,39 @@ class RtcAREA15(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcM5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcMINUP1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParameterWaterDistributionVariableStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_AREA: Optional[RtcAREA15] = Field( - None, alias='rtc:AREA', description='area [km2], default = 1.0' + None, alias="rtc:AREA", description="area [km2], default = 1.0" ) - rtc_M: Optional[RtcM5] = Field(None, alias='rtc:M', description='smoothing factor') + rtc_M: Optional[RtcM5] = Field(None, alias="rtc:M", description="smoothing factor") rtc_MIN_UP: Optional[RtcMINUP1] = Field( None, - alias='rtc:MIN_UP', - description='minimum abstraction level upstream [mm]. Default 0, till empty.', + alias="rtc:MIN_UP", + description="minimum abstraction level upstream [mm]. Default 0, till empty.", ) @@ -1140,275 +1140,275 @@ class RtcALPHA2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcAREA16(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcK3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcMAXGFLOW(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcParametergroundwaterFlowStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_ALPHA: RtcALPHA2 = Field( - ..., alias='rtc:ALPHA', description='Ground water reaction coefficient' + ..., alias="rtc:ALPHA", description="Ground water reaction coefficient" ) rtc_AREA: Optional[RtcAREA16] = Field( - None, alias='rtc:AREA', description='area [km2]' + None, alias="rtc:AREA", description="area [km2]" ) rtc_K: RtcK3 = Field( - ..., alias='rtc:K', description='Ground water Conductivity [1/d]' + ..., alias="rtc:K", description="Ground water Conductivity [1/d]" ) rtc_MAX_GFLOW: RtcMAXGFLOW = Field( - ..., alias='rtc:MAX_GFLOW', description='Maximum groundwater flow [mm/d]' + ..., alias="rtc:MAX_GFLOW", description="Maximum groundwater flow [mm/d]" ) class _11(Enum): - NATIVE = 'NATIVE' - SOBEK2 = 'SOBEK2' - PIDPOS = 'PIDPOS' - PIDVEL = 'PIDVEL' + NATIVE = "NATIVE" + SOBEK2 = "SOBEK2" + PIDPOS = "PIDPOS" + PIDVEL = "PIDVEL" class RtcMode3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_11] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_11] = Field(None, alias="$") class RtcX1Value1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcX2Value1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTailwaterConstant(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTurbineEfficiencyConstant(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcOF(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcPMValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcPXValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcQSValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcQTXValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcPt(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTLag(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcX10(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcY14(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcSRMParameterComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_Pt: RtcPt = Field( - ..., alias='rtc:Pt', description='precipitation threshold [mm]' + ..., alias="rtc:Pt", description="precipitation threshold [mm]" ) rtc_TLag: RtcTLag = Field( - ..., alias='rtc:TLag', description='Time lag of input data [h]' + ..., alias="rtc:TLag", description="Time lag of input data [h]" ) - rtc_x: RtcX10 = Field(..., alias='rtc:x', description='recession coefficient 1') - rtc_y: RtcY14 = Field(..., alias='rtc:y', description='recession coefficient 2') + rtc_x: RtcX10 = Field(..., alias="rtc:x", description="recession coefficient 1") + rtc_y: RtcY14 = Field(..., alias="rtc:y", description="recession coefficient 2") class RtcTcr1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcTcr2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcA5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcArea(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcSpatialEnumStringType(Enum): - CENTRAL = 'CENTRAL' - UPWIND = 'UPWIND' + CENTRAL = "CENTRAL" + UPWIND = "UPWIND" class RtcA6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcB3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcC3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcD7(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcA7(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class _12(Enum): - NATIVE = 'NATIVE' - RETAINVALUEWHENINACTIVE = 'RETAINVALUEWHENINACTIVE' + NATIVE = "NATIVE" + RETAINVALUEWHENINACTIVE = "RETAINVALUEWHENINACTIVE" class RtcMode5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[_12] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[_12] = Field(None, alias="$") class RtcTimeSeriesSimpleType(BaseModel): @@ -1418,7 +1418,7 @@ class RtcTimeSeriesSimpleType(BaseModel): class RtcTimeZoneSimpleType(BaseModel): __root__: float = Field( ..., - description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + description="The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", ) @@ -1426,88 +1426,88 @@ class RtcInput(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcStatus4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTriggerInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_status: RtcStatus4 = Field(..., alias='rtc:status') + _: Optional[str] = Field(None, alias="#") + rtc_status: RtcStatus4 = Field(..., alias="rtc:status") class RtcStatus5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTimeFalse1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTimeTrue1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTriggerOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_status: RtcStatus5 = Field(..., alias='rtc:status') - rtc_timeFalse: Optional[RtcTimeFalse1] = Field(None, alias='rtc:timeFalse') - rtc_timeTrue: Optional[RtcTimeTrue1] = Field(None, alias='rtc:timeTrue') + _: Optional[str] = Field(None, alias="#") + rtc_status: RtcStatus5 = Field(..., alias="rtc:status") + rtc_timeFalse: Optional[RtcTimeFalse1] = Field(None, alias="rtc:timeFalse") + rtc_timeTrue: Optional[RtcTimeTrue1] = Field(None, alias="rtc:timeTrue") class RtcRelativeRelease(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRelease3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTurbineInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_relativeRelease: Optional[RtcRelativeRelease] = Field( None, - alias='rtc:relativeRelease', - description='provision of relative turbine release, 1 = maximum capacity', + alias="rtc:relativeRelease", + description="provision of relative turbine release, 1 = maximum capacity", ) rtc_release: Optional[RtcRelease3] = Field( - None, alias='rtc:release', description='provision of absolute turbine release' + None, alias="rtc:release", description="provision of absolute turbine release" ) @@ -1515,44 +1515,44 @@ class RtcPower(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTurbineOutputCharacteristicsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_power: RtcPower = Field(..., alias='rtc:power', description='power output [MW]') + _: Optional[str] = Field(None, alias="#") + rtc_power: RtcPower = Field(..., alias="rtc:power", description="power output [MW]") class RtcDischarge3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPowerProduction(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTurbineOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_discharge: RtcDischarge3 = Field( - ..., alias='rtc:discharge', description='discharge in m3/s' + ..., alias="rtc:discharge", description="discharge in m3/s" ) rtc_powerProduction: RtcPowerProduction = Field( - ..., alias='rtc:powerProduction', description='power production in MW' + ..., alias="rtc:powerProduction", description="power production in MW" ) @@ -1560,199 +1560,199 @@ class RtcOutput2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRelease4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUOutletInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_release: RtcRelease4 = Field(..., alias='rtc:release') + _: Optional[str] = Field(None, alias="#") + rtc_release: RtcRelease4 = Field(..., alias="rtc:release") class RtcNStep(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcX12(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUnitDelayInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: RtcX12 = Field(..., alias='rtc:x') + _: Optional[str] = Field(None, alias="#") + rtc_x: RtcX12 = Field(..., alias="rtc:x") class RtcYItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcYFinal(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcYMax1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcYMean(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcYMin1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcYSum1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcYVector1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUnitDelayOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_y: Optional[List[RtcYItem]] = Field(None, alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_y: Optional[List[RtcYItem]] = Field(None, alias="rtc:y") rtc_yFinal: Optional[RtcYFinal] = Field( None, - alias='rtc:yFinal', - description='optional result of the delay operator, identical to yVector[end] if the delay is a multiple of the time step, required in case of sub time steps', + alias="rtc:yFinal", + description="optional result of the delay operator, identical to yVector[end] if the delay is a multiple of the time step, required in case of sub time steps", ) - rtc_yMax: Optional[RtcYMax1] = Field(None, alias='rtc:yMax') + rtc_yMax: Optional[RtcYMax1] = Field(None, alias="rtc:yMax") rtc_yMean: Optional[RtcYMean] = Field( - None, alias='rtc:yMean', description='optional mean of input and outputs' + None, alias="rtc:yMean", description="optional mean of input and outputs" ) - rtc_yMin: Optional[RtcYMin1] = Field(None, alias='rtc:yMin') + rtc_yMin: Optional[RtcYMin1] = Field(None, alias="rtc:yMin") rtc_ySum: Optional[RtcYSum1] = Field( - None, alias='rtc:ySum', description='optional sum of input and outputs' + None, alias="rtc:ySum", description="optional sum of input and outputs" ) - rtc_yVector: Optional[RtcYVector1] = Field(None, alias='rtc:yVector') + rtc_yVector: Optional[RtcYVector1] = Field(None, alias="rtc:yVector") class RtcX13(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUnitHydrographInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: RtcX13 = Field(..., alias='rtc:x') + _: Optional[str] = Field(None, alias="#") + rtc_x: RtcX13 = Field(..., alias="rtc:x") class RtcXDelayItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcXDelayVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcY18(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUnitHydrographOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_xDelay: Optional[List[RtcXDelayItem]] = Field(None, alias='rtc:xDelay') + _: Optional[str] = Field(None, alias="#") + rtc_xDelay: Optional[List[RtcXDelayItem]] = Field(None, alias="rtc:xDelay") rtc_xDelayVector: Optional[RtcXDelayVector] = Field( None, - alias='rtc:xDelayVector', - description='definition of delay vector, configure one element less than weights defined above', + alias="rtc:xDelayVector", + description="definition of delay vector, configure one element less than weights defined above", ) - rtc_y: RtcY18 = Field(..., alias='rtc:y', description='result of unit hydrograph') + rtc_y: RtcY18 = Field(..., alias="rtc:y", description="result of unit hydrograph") class RtcNSteps(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcUnitTypeEnumStringType(Enum): - SI = 'SI' - Imperial = 'Imperial' + SI = "SI" + Imperial = "Imperial" class RtcVariableTypeEnumStringType(Enum): - CONTINUOUS = 'CONTINUOUS' - INTEGER = 'INTEGER' - TIMEINSTANCE = 'TIMEINSTANCE' + CONTINUOUS = "CONTINUOUS" + INTEGER = "INTEGER" + TIMEINSTANCE = "TIMEINSTANCE" class RtcCaseLangetenEnumStringType(Enum): @@ -1761,91 +1761,91 @@ class RtcCaseLangetenEnumStringType(Enum): class RtcDateType(BaseModel): - __root__: constr(regex=r'^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$') + __root__: constr(regex=r"^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$") class RtcFlowDirectionEnumStringTypeEnum(Enum): - POSITIVE = 'POSITIVE' - NEGATIVE = 'NEGATIVE' - BOTH = 'BOTH' + POSITIVE = "POSITIVE" + NEGATIVE = "NEGATIVE" + BOTH = "BOTH" class RtcFlowDirectionEnumStringType(BaseModel): __root__: Union[ - RtcFlowDirectionEnumStringTypeEnum, constr(regex=r'^([\$][\(-_a-z]+[\$])$') - ] = Field(..., description='flow direction') + RtcFlowDirectionEnumStringTypeEnum, constr(regex=r"^([\$][\(-_a-z]+[\$])$") + ] = Field(..., description="flow direction") class RtcInputReferenceEnumStringType(Enum): - EXPLICIT = 'EXPLICIT' - IMPLICIT = 'IMPLICIT' + EXPLICIT = "EXPLICIT" + IMPLICIT = "IMPLICIT" class RtcInterpolationOptionEnumStringType(Enum): - BLOCK = 'BLOCK' - LINEAR = 'LINEAR' + BLOCK = "BLOCK" + LINEAR = "LINEAR" class RtcLimiterOptionEnumStringType(Enum): - PERCENTAGE = 'PERCENTAGE' - ABSOLUTE = 'ABSOLUTE' + PERCENTAGE = "PERCENTAGE" + ABSOLUTE = "ABSOLUTE" class RtcLogicalOperatorEnumStringType(Enum): - AND = 'AND' - OR = 'OR' - XOR = 'XOR' + AND = "AND" + OR = "OR" + XOR = "XOR" class RtcInput1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPoolRoutingEnumStringType(Enum): - ForwardEuler = 'ForwardEuler' - BackwardEuler = 'BackwardEuler' - Theta = 'Theta' + ForwardEuler = "ForwardEuler" + BackwardEuler = "BackwardEuler" + Theta = "Theta" class RtcRelationalOperatorEnumStringType(Enum): - Less = 'Less' - LessEqual = 'LessEqual' - Equal = 'Equal' - Unequal = 'Unequal' - GreaterEqual = 'GreaterEqual' - Greater = 'Greater' + Less = "Less" + LessEqual = "LessEqual" + Equal = "Equal" + Unequal = "Unequal" + GreaterEqual = "GreaterEqual" + Greater = "Greater" class RtcTimeRelativeEnumStringType(Enum): - ABSOLUTE = 'ABSOLUTE' - RELATIVE = 'RELATIVE' + ABSOLUTE = "ABSOLUTE" + RELATIVE = "RELATIVE" class RtcTimeSeriesType(Enum): - accumulative = 'accumulative' - instantaneous = 'instantaneous' + accumulative = "accumulative" + instantaneous = "instantaneous" class RtcTimeStepUnitEnumStringType(Enum): - second = 'second' - minute = 'minute' - hour = 'hour' - day = 'day' - week = 'week' + second = "second" + minute = "minute" + hour = "hour" + day = "day" + week = "week" class RtcTimeType(BaseModel): - __root__: constr(regex=r'^([\d][\d]\:[\d][\d]\:[\d][\d])$') + __root__: constr(regex=r"^([\d][\d]\:[\d][\d]\:[\d][\d])$") class RtcTransferFunctionEnumStringType(Enum): - Linear = 'Linear' - SigmoidLogistic = 'SigmoidLogistic' - Tansig = 'Tansig' + Linear = "Linear" + SigmoidLogistic = "SigmoidLogistic" + Tansig = "Tansig" class XsBoolean(BaseModel): @@ -1892,277 +1892,277 @@ class RtcRowItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _value: XsDouble = Field(..., alias='@value') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _value: XsDouble = Field(..., alias="@value") class RtcATableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_row: List[RtcRowItem] = Field(..., alias='rtc:row', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_row: List[RtcRowItem] = Field(..., alias="rtc:row", min_items=1) class RtcMultiplier(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcX(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcAccumulationInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: RtcX = Field(..., alias='rtc:x') + _: Optional[str] = Field(None, alias="#") + rtc_x: RtcX = Field(..., alias="rtc:x") class RtcY(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcAccumulationOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_y: RtcY = Field(..., alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_y: RtcY = Field(..., alias="rtc:y") class RtcFactorRTG(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcLangeteFall(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcCaseLangetenEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcCaseLangetenEnumStringType] = Field(None, alias="$") class RtcAareBruegg(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcAareBrueggMin2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcAareMurg(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcAbflussReglementPort(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcEmenmatt(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcEmenmattMin4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLangeten(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLangetenMin4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPegelBielersee(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcAebiRuleInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_AareBruegg: RtcAareBruegg = Field(..., alias='rtc:AareBruegg') - rtc_AareBrueggMin2: RtcAareBrueggMin2 = Field(..., alias='rtc:AareBrueggMin2') - rtc_AareMurg: RtcAareMurg = Field(..., alias='rtc:AareMurg') + _: Optional[str] = Field(None, alias="#") + rtc_AareBruegg: RtcAareBruegg = Field(..., alias="rtc:AareBruegg") + rtc_AareBrueggMin2: RtcAareBrueggMin2 = Field(..., alias="rtc:AareBrueggMin2") + rtc_AareMurg: RtcAareMurg = Field(..., alias="rtc:AareMurg") rtc_AbflussReglementPort: RtcAbflussReglementPort = Field( - ..., alias='rtc:AbflussReglementPort' + ..., alias="rtc:AbflussReglementPort" ) - rtc_Emenmatt: RtcEmenmatt = Field(..., alias='rtc:Emenmatt') - rtc_EmenmattMin4: RtcEmenmattMin4 = Field(..., alias='rtc:EmenmattMin4') - rtc_Langeten: RtcLangeten = Field(..., alias='rtc:Langeten') - rtc_LangetenMin4: RtcLangetenMin4 = Field(..., alias='rtc:LangetenMin4') - rtc_PegelBielersee: RtcPegelBielersee = Field(..., alias='rtc:PegelBielersee') + rtc_Emenmatt: RtcEmenmatt = Field(..., alias="rtc:Emenmatt") + rtc_EmenmattMin4: RtcEmenmattMin4 = Field(..., alias="rtc:EmenmattMin4") + rtc_Langeten: RtcLangeten = Field(..., alias="rtc:Langeten") + rtc_LangetenMin4: RtcLangetenMin4 = Field(..., alias="rtc:LangetenMin4") + rtc_PegelBielersee: RtcPegelBielersee = Field(..., alias="rtc:PegelBielersee") class RtcAareMurgOKWMin1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcAbflussaenderungPort(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcMaxAbflussPort(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcProvMaxAbflussPort(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRTG(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcAebiRuleOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_AareMurg_oKWMin1: RtcAareMurgOKWMin1 = Field(..., alias='rtc:AareMurg_oKWMin1') + _: Optional[str] = Field(None, alias="#") + rtc_AareMurg_oKWMin1: RtcAareMurgOKWMin1 = Field(..., alias="rtc:AareMurg_oKWMin1") rtc_AbflussaenderungPort: RtcAbflussaenderungPort = Field( - ..., alias='rtc:AbflussaenderungPort' + ..., alias="rtc:AbflussaenderungPort" ) - rtc_MaxAbflussPort: RtcMaxAbflussPort = Field(..., alias='rtc:MaxAbflussPort') + rtc_MaxAbflussPort: RtcMaxAbflussPort = Field(..., alias="rtc:MaxAbflussPort") rtc_ProvMaxAbflussPort: RtcProvMaxAbflussPort = Field( - ..., alias='rtc:ProvMaxAbflussPort' + ..., alias="rtc:ProvMaxAbflussPort" ) - rtc_RTG: RtcRTG = Field(..., alias='rtc:RTG') + rtc_RTG: RtcRTG = Field(..., alias="rtc:RTG") class RtcTableExternal(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcArCoef(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcObs(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSim(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcArmaInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_obs: RtcObs = Field(..., alias='rtc:obs', description='observed data') - rtc_sim: RtcSim = Field(..., alias='rtc:sim', description='simulated data') + _: Optional[str] = Field(None, alias="#") + rtc_obs: RtcObs = Field(..., alias="rtc:obs", description="observed data") + rtc_sim: RtcSim = Field(..., alias="rtc:sim", description="simulated data") class RtcArma(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcArmaOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_arma: RtcArma = Field( - ..., alias='rtc:arma', description='output-corrected data' + ..., alias="rtc:arma", description="output-corrected data" ) @@ -2170,143 +2170,143 @@ class RtcAlpha1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcAlpha2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcEquationType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcEquationEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcEquationEnumStringType] = Field(None, alias="$") class RtcLength(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSlope(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSpatialScheme(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcSpatialEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcSpatialEnumStringType] = Field(None, alias="$") class RtcStorageDown(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcStorageUp(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSurfaceAreaDown(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSurfaceAreaUp(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcBranchGradientComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_storageDown: RtcStorageDown = Field(..., alias='rtc:storageDown') - rtc_storageUp: RtcStorageUp = Field(..., alias='rtc:storageUp') - rtc_surfaceAreaDown: RtcSurfaceAreaDown = Field(..., alias='rtc:surfaceAreaDown') - rtc_surfaceAreaUp: RtcSurfaceAreaUp = Field(..., alias='rtc:surfaceAreaUp') + _: Optional[str] = Field(None, alias="#") + rtc_storageDown: RtcStorageDown = Field(..., alias="rtc:storageDown") + rtc_storageUp: RtcStorageUp = Field(..., alias="rtc:storageUp") + rtc_surfaceAreaDown: RtcSurfaceAreaDown = Field(..., alias="rtc:surfaceAreaDown") + rtc_surfaceAreaUp: RtcSurfaceAreaUp = Field(..., alias="rtc:surfaceAreaUp") class RtcHDown(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUx(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUy(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcBranchInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_HDown: RtcHDown = Field( - ..., alias='rtc:HDown', description='ID of downstream node' + ..., alias="rtc:HDown", description="ID of downstream node" ) - rtc_HUp: RtcHUp = Field(..., alias='rtc:HUp', description='ID of upstream node') + rtc_HUp: RtcHUp = Field(..., alias="rtc:HUp", description="ID of upstream node") rtc_ux: Optional[RtcUx] = Field( None, - alias='rtc:ux', - description='optional wind velocity at an elevation of 10 m above the water surface (x-direction), implementation is for the inertial model only', + alias="rtc:ux", + description="optional wind velocity at an elevation of 10 m above the water surface (x-direction), implementation is for the inertial model only", ) rtc_uy: Optional[RtcUy] = Field( None, - alias='rtc:uy', - description='optional wind velocity at an elevation of 10 m above the water surface (y-direction), implementation is for the inertial model only', + alias="rtc:uy", + description="optional wind velocity at an elevation of 10 m above the water surface (y-direction), implementation is for the inertial model only", ) @@ -2314,455 +2314,455 @@ class RtcQ(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcBranchOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_Q: RtcQ = Field(..., alias='rtc:Q') + _: Optional[str] = Field(None, alias="#") + rtc_Q: RtcQ = Field(..., alias="rtc:Q") class RtcColumnsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _head01: XsDouble = Field(..., alias='@head01') - _head02: XsDouble = Field(..., alias='@head02') - _head03: Optional[XsDouble] = Field(None, alias='@head03') - _head04: Optional[XsDouble] = Field(None, alias='@head04') - _head05: Optional[XsDouble] = Field(None, alias='@head05') - _head06: Optional[XsDouble] = Field(None, alias='@head06') - _head07: Optional[XsDouble] = Field(None, alias='@head07') - _head08: Optional[XsDouble] = Field(None, alias='@head08') - _head09: Optional[XsDouble] = Field(None, alias='@head09') - _head10: Optional[XsDouble] = Field(None, alias='@head10') - _head11: Optional[XsDouble] = Field(None, alias='@head11') - _head12: Optional[XsDouble] = Field(None, alias='@head12') - _head13: Optional[XsDouble] = Field(None, alias='@head13') - _head14: Optional[XsDouble] = Field(None, alias='@head14') - _head15: Optional[XsDouble] = Field(None, alias='@head15') - _head16: Optional[XsDouble] = Field(None, alias='@head16') - _head17: Optional[XsDouble] = Field(None, alias='@head17') - _head18: Optional[XsDouble] = Field(None, alias='@head18') - _head19: Optional[XsDouble] = Field(None, alias='@head19') - _head20: Optional[XsDouble] = Field(None, alias='@head20') + _: Optional[str] = Field(None, alias="#") + _head01: XsDouble = Field(..., alias="@head01") + _head02: XsDouble = Field(..., alias="@head02") + _head03: Optional[XsDouble] = Field(None, alias="@head03") + _head04: Optional[XsDouble] = Field(None, alias="@head04") + _head05: Optional[XsDouble] = Field(None, alias="@head05") + _head06: Optional[XsDouble] = Field(None, alias="@head06") + _head07: Optional[XsDouble] = Field(None, alias="@head07") + _head08: Optional[XsDouble] = Field(None, alias="@head08") + _head09: Optional[XsDouble] = Field(None, alias="@head09") + _head10: Optional[XsDouble] = Field(None, alias="@head10") + _head11: Optional[XsDouble] = Field(None, alias="@head11") + _head12: Optional[XsDouble] = Field(None, alias="@head12") + _head13: Optional[XsDouble] = Field(None, alias="@head13") + _head14: Optional[XsDouble] = Field(None, alias="@head14") + _head15: Optional[XsDouble] = Field(None, alias="@head15") + _head16: Optional[XsDouble] = Field(None, alias="@head16") + _head17: Optional[XsDouble] = Field(None, alias="@head17") + _head18: Optional[XsDouble] = Field(None, alias="@head18") + _head19: Optional[XsDouble] = Field(None, alias="@head19") + _head20: Optional[XsDouble] = Field(None, alias="@head20") class RtcGreaterThan(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcLessThan(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcConditionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_greaterThan: Optional[RtcGreaterThan] = Field(None, alias='rtc:greaterThan') - rtc_lessThan: Optional[RtcLessThan] = Field(None, alias='rtc:lessThan') + _: Optional[str] = Field(None, alias="#") + rtc_greaterThan: Optional[RtcGreaterThan] = Field(None, alias="rtc:greaterThan") + rtc_lessThan: Optional[RtcLessThan] = Field(None, alias="rtc:lessThan") class RtcA(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcB(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcD(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcConnectionCoefficientsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_a: RtcA = Field(..., alias='rtc:a') - rtc_b: RtcB = Field(..., alias='rtc:b') - rtc_c: RtcC = Field(..., alias='rtc:c') - rtc_d: RtcD = Field(..., alias='rtc:d') + _: Optional[str] = Field(None, alias="#") + rtc_a: RtcA = Field(..., alias="rtc:a") + rtc_b: RtcB = Field(..., alias="rtc:b") + rtc_c: RtcC = Field(..., alias="rtc:c") + rtc_d: RtcD = Field(..., alias="rtc:d") class RtcDischarge(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDownstreamLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUpstreamLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcConnectionInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_discharge: RtcDischarge = Field(..., alias='rtc:discharge') - rtc_downstreamLevel: RtcDownstreamLevel = Field(..., alias='rtc:downstreamLevel') - rtc_upstreamLevel: RtcUpstreamLevel = Field(..., alias='rtc:upstreamLevel') + _: Optional[str] = Field(None, alias="#") + rtc_discharge: RtcDischarge = Field(..., alias="rtc:discharge") + rtc_downstreamLevel: RtcDownstreamLevel = Field(..., alias="rtc:downstreamLevel") + rtc_upstreamLevel: RtcUpstreamLevel = Field(..., alias="rtc:upstreamLevel") class RtcDischarge1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcConnectionOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_discharge: RtcDischarge1 = Field(..., alias='rtc:discharge') + _: Optional[str] = Field(None, alias="#") + rtc_discharge: RtcDischarge1 = Field(..., alias="rtc:discharge") class RtcConstant(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcY1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcConstantRuleOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_y: RtcY1 = Field(..., alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_y: RtcY1 = Field(..., alias="rtc:y") class RtcDataTypicalProfileComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _monthOfYear: _MonthOfYear = Field(..., alias='@monthOfYear') - _value: XsDouble = Field(..., alias='@value') + _: Optional[str] = Field(None, alias="#") + _monthOfYear: _MonthOfYear = Field(..., alias="@monthOfYear") + _value: XsDouble = Field(..., alias="@value") class RtcDateComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _monthDay: XsGMonthDay = Field(..., alias='@monthDay') + _: Optional[str] = Field(None, alias="#") + _monthDay: XsGMonthDay = Field(..., alias="@monthDay") class RtcX1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcY2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDateLookupTableInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: RtcX1 = Field(..., alias='rtc:x') - rtc_y: Optional[RtcY2] = Field(None, alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_x: RtcX1 = Field(..., alias="rtc:x") + rtc_y: Optional[RtcY2] = Field(None, alias="rtc:y") class RtcActive(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcY3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDateLookupTableOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_active: Optional[RtcActive] = Field(None, alias='rtc:active') - rtc_y: RtcY3 = Field(..., alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_active: Optional[RtcActive] = Field(None, alias="rtc:active") + rtc_y: RtcY3 = Field(..., alias="rtc:y") class RtcDateRecord2DataComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _x: XsDouble = Field(..., alias='@x') - _y: XsDouble = Field(..., alias='@y') + _: Optional[str] = Field(None, alias="#") + _x: XsDouble = Field(..., alias="@x") + _y: XsDouble = Field(..., alias="@y") class RtcDateRecordComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _comment: Optional[XsString] = Field(None, alias='@comment') - _dateTime: Optional[XsDateTime] = Field(None, alias='@dateTime') - _monthDay: Optional[XsGMonthDay] = Field(None, alias='@monthDay') - _time: Optional[XsTime] = Field(None, alias='@time') - _value: XsDouble = Field(..., alias='@value') + _: Optional[str] = Field(None, alias="#") + _comment: Optional[XsString] = Field(None, alias="@comment") + _dateTime: Optional[XsDateTime] = Field(None, alias="@dateTime") + _monthDay: Optional[XsGMonthDay] = Field(None, alias="@monthDay") + _time: Optional[XsTime] = Field(None, alias="@time") + _value: XsDouble = Field(..., alias="@value") class RtcDateTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_data: List[RtcDateRecordComplexType] = Field(..., alias='rtc:data', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_data: List[RtcDateRecordComplexType] = Field(..., alias="rtc:data", min_items=1) class RtcDateTimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _date: RtcDateType = Field(..., alias='@date') - _time: RtcTimeType = Field(..., alias='@time') + _: Optional[str] = Field(None, alias="#") + _date: RtcDateType = Field(..., alias="@date") + _time: RtcTimeType = Field(..., alias="@time") class RtcNumberOfStepsDown(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcNumberOfStepsUp(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInt] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInt] = Field(None, alias="$") class RtcDeadBandTimeDiscreteComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_numberOfStepsDown: RtcNumberOfStepsDown = Field( - ..., alias='rtc:numberOfStepsDown' + ..., alias="rtc:numberOfStepsDown" ) - rtc_numberOfStepsUp: RtcNumberOfStepsUp = Field(..., alias='rtc:numberOfStepsUp') + rtc_numberOfStepsUp: RtcNumberOfStepsUp = Field(..., alias="rtc:numberOfStepsUp") class RtcDeadBandTimeInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: rtc_TimeSeriesSimpleType.Field20 = Field(..., alias='rtc:x') + _: Optional[str] = Field(None, alias="#") + rtc_x: rtc_TimeSeriesSimpleType.Field20 = Field(..., alias="rtc:x") class RtcStatus(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcStepsDown(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcStepsUp(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTimeFalse(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTimeTrue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDeadBandTimeOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_status: RtcStatus = Field(..., alias='rtc:status') - rtc_stepsDown: RtcStepsDown = Field(..., alias='rtc:stepsDown') - rtc_stepsUp: RtcStepsUp = Field(..., alias='rtc:stepsUp') - rtc_timeFalse: Optional[RtcTimeFalse] = Field(None, alias='rtc:timeFalse') - rtc_timeTrue: Optional[RtcTimeTrue] = Field(None, alias='rtc:timeTrue') + _: Optional[str] = Field(None, alias="#") + rtc_status: RtcStatus = Field(..., alias="rtc:status") + rtc_stepsDown: RtcStepsDown = Field(..., alias="rtc:stepsDown") + rtc_stepsUp: RtcStepsUp = Field(..., alias="rtc:stepsUp") + rtc_timeFalse: Optional[RtcTimeFalse] = Field(None, alias="rtc:timeFalse") + rtc_timeTrue: Optional[RtcTimeTrue] = Field(None, alias="rtc:timeTrue") class RtcDefault(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcThreshold(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcX2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDeadBandValueInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: RtcX2 = Field(..., alias='rtc:x') + _: Optional[str] = Field(None, alias="#") + rtc_x: RtcX2 = Field(..., alias="rtc:x") class RtcEdgeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _x1: XsDouble = Field(..., alias='@x1') - _x2: XsDouble = Field(..., alias='@x2') + _: Optional[str] = Field(None, alias="#") + _x1: XsDouble = Field(..., alias="@x1") + _x2: XsDouble = Field(..., alias="@x2") class RtcEdgesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_edge: List[RtcEdgeComplexType] = Field(..., alias='rtc:edge', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_edge: List[RtcEdgeComplexType] = Field(..., alias="rtc:edge", min_items=1) class RtcA1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcB1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcEifelRurRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_a: RtcA1 = Field(..., alias='rtc:a') - rtc_b: RtcB1 = Field(..., alias='rtc:b') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_a: RtcA1 = Field(..., alias="rtc:a") + rtc_b: RtcB1 = Field(..., alias="rtc:b") rtc_minimumRelativeStorage: RtcDateTableComplexType = Field( - ..., alias='rtc:minimumRelativeStorage' + ..., alias="rtc:minimumRelativeStorage" ) @@ -2770,18 +2770,18 @@ class RtcElevationRecordComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _elevation: XsDouble = Field(..., alias='@elevation') - _value: RtcExternalParameterSimpleType = Field(..., alias='@value') + _: Optional[str] = Field(None, alias="#") + _elevation: XsDouble = Field(..., alias="@elevation") + _value: RtcExternalParameterSimpleType = Field(..., alias="@value") class RtcElevationTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_elevationRecord: List[RtcElevationRecordComplexType] = Field( - ..., alias='rtc:elevationRecord', min_items=1 + ..., alias="rtc:elevationRecord", min_items=1 ) @@ -2789,61 +2789,61 @@ class RtcA2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcB2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcC1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcLowerLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcUpperLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcEquationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_a: RtcA2 = Field(..., alias='rtc:a') - rtc_b: RtcB2 = Field(..., alias='rtc:b') - rtc_c: RtcC1 = Field(..., alias='rtc:c') - rtc_lowerLevel: Optional[RtcLowerLevel] = Field(None, alias='rtc:lowerLevel') - rtc_upperLevel: Optional[RtcUpperLevel] = Field(None, alias='rtc:upperLevel') + _: Optional[str] = Field(None, alias="#") + rtc_a: RtcA2 = Field(..., alias="rtc:a") + rtc_b: RtcB2 = Field(..., alias="rtc:b") + rtc_c: RtcC1 = Field(..., alias="rtc:c") + rtc_lowerLevel: Optional[RtcLowerLevel] = Field(None, alias="rtc:lowerLevel") + rtc_upperLevel: Optional[RtcUpperLevel] = Field(None, alias="rtc:upperLevel") class RtcEquationsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_equation: List[RtcEquationComplexType] = Field( - ..., alias='rtc:equation', min_items=1 + ..., alias="rtc:equation", min_items=1 ) @@ -2851,79 +2851,79 @@ class RtcMathematicalOperator(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcMathematicalOperatorEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcMathematicalOperatorEnumStringType] = Field(None, alias="$") class RtcX1Value(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcX2Value(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcExternalParameterSimpleType] = Field(None, alias="$") class RtcY4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcYVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcExpressionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_mathematicalOperator: RtcMathematicalOperator = Field( ..., - alias='rtc:mathematicalOperator', - description='mathematical operator: + (summation), - (substraction), * (multiplication), / (division), min, max, ^ (power)', + alias="rtc:mathematicalOperator", + description="mathematical operator: + (summation), - (substraction), * (multiplication), / (division), min, max, ^ (power)", ) rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field2] = Field( - None, alias='rtc:x1Series', description='reference to time series ID' + None, alias="rtc:x1Series", description="reference to time series ID" ) rtc_x1SeriesVector: Optional[rtc_TimeSeriesSimpleType.Field3] = Field( None, - alias='rtc:x1SeriesVector', - description='reference to time series ID vector', + alias="rtc:x1SeriesVector", + description="reference to time series ID vector", ) rtc_x1Value: Optional[RtcX1Value] = Field( - None, alias='rtc:x1Value', description='user-configured constant value' + None, alias="rtc:x1Value", description="user-configured constant value" ) rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field4] = Field( - None, alias='rtc:x2Series' + None, alias="rtc:x2Series" ) rtc_x2SeriesVector: Optional[rtc_TimeSeriesSimpleType.Field5] = Field( - None, alias='rtc:x2SeriesVector' + None, alias="rtc:x2SeriesVector" ) - rtc_x2Value: Optional[RtcX2Value] = Field(None, alias='rtc:x2Value') + rtc_x2Value: Optional[RtcX2Value] = Field(None, alias="rtc:x2Value") rtc_y: Optional[RtcY4] = Field( - None, alias='rtc:y', description='time series ID of resulting value' + None, alias="rtc:y", description="time series ID of resulting value" ) rtc_yVector: Optional[RtcYVector] = Field( None, - alias='rtc:yVector', - description='time series ID vector of resulting value', + alias="rtc:yVector", + description="time series ID vector of resulting value", ) @@ -2931,438 +2931,438 @@ class RtcDescription(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcPoolRoutingScheme(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcPoolRoutingEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcPoolRoutingEnumStringType] = Field(None, alias="$") class RtcTheta(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcGeneralModuleConfigComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_description: Optional[RtcDescription] = Field( - None, alias='rtc:description', description='DEPRICATED' + None, alias="rtc:description", description="DEPRICATED" ) rtc_poolRoutingScheme: RtcPoolRoutingScheme = Field( - ..., alias='rtc:poolRoutingScheme', description='DEPRICATED' + ..., alias="rtc:poolRoutingScheme", description="DEPRICATED" ) - rtc_theta: RtcTheta = Field(..., alias='rtc:theta', description='DEPRICATED') + rtc_theta: RtcTheta = Field(..., alias="rtc:theta", description="DEPRICATED") class RtcMultiplier1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcX3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcGradientInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: RtcX3 = Field(..., alias='rtc:x') + _: Optional[str] = Field(None, alias="#") + rtc_x: RtcX3 = Field(..., alias="rtc:x") class RtcDx(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcGradientOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_dx: RtcDx = Field(..., alias='rtc:dx') + _: Optional[str] = Field(None, alias="#") + rtc_dx: RtcDx = Field(..., alias="rtc:dx") class RtcYMax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcYMaxSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcYMin(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcYMinSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcX4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcY5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcGuideBandRuleInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: RtcX4 = Field(..., alias='rtc:x') - rtc_y: Optional[RtcY5] = Field(None, alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_x: RtcX4 = Field(..., alias="rtc:x") + rtc_y: Optional[RtcY5] = Field(None, alias="rtc:y") class RtcY6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcGuideBandRuleOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_y: RtcY6 = Field(..., alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_y: RtcY6 = Field(..., alias="rtc:y") class RtcEP(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcP(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcT(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTM(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHBVInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_EP: RtcEP = Field(..., alias='rtc:EP') - rtc_P: RtcP = Field(..., alias='rtc:P') - rtc_T: RtcT = Field(..., alias='rtc:T') - rtc_TM: RtcTM = Field(..., alias='rtc:TM') + _: Optional[str] = Field(None, alias="#") + rtc_EP: RtcEP = Field(..., alias="rtc:EP") + rtc_P: RtcP = Field(..., alias="rtc:P") + rtc_T: RtcT = Field(..., alias="rtc:T") + rtc_TM: RtcTM = Field(..., alias="rtc:TM") class RtcCF(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcEA(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcEI(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcEP1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcIN(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcINI(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPERC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcR(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHBVLinkComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_CF: RtcCF = Field(..., alias='rtc:CF') - rtc_EA: RtcEA = Field(..., alias='rtc:EA') - rtc_EI: RtcEI = Field(..., alias='rtc:EI') - rtc_EP: RtcEP1 = Field(..., alias='rtc:EP') - rtc_IN: RtcIN = Field(..., alias='rtc:IN') - rtc_INI: RtcINI = Field(..., alias='rtc:INI') - rtc_PERC: RtcPERC = Field(..., alias='rtc:PERC') - rtc_R: RtcR = Field(..., alias='rtc:R') + _: Optional[str] = Field(None, alias="#") + rtc_CF: RtcCF = Field(..., alias="rtc:CF") + rtc_EA: RtcEA = Field(..., alias="rtc:EA") + rtc_EI: RtcEI = Field(..., alias="rtc:EI") + rtc_EP: RtcEP1 = Field(..., alias="rtc:EP") + rtc_IN: RtcIN = Field(..., alias="rtc:IN") + rtc_INI: RtcINI = Field(..., alias="rtc:INI") + rtc_PERC: RtcPERC = Field(..., alias="rtc:PERC") + rtc_R: RtcR = Field(..., alias="rtc:R") class RtcQ1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSMPercentage(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSWE(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHBVOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_Q: RtcQ1 = Field(..., alias='rtc:Q') - rtc_SMPercentage: Optional[RtcSMPercentage] = Field(None, alias='rtc:SMPercentage') - rtc_SWE: Optional[RtcSWE] = Field(None, alias='rtc:SWE') + _: Optional[str] = Field(None, alias="#") + rtc_Q: RtcQ1 = Field(..., alias="rtc:Q") + rtc_SMPercentage: Optional[RtcSMPercentage] = Field(None, alias="rtc:SMPercentage") + rtc_SWE: Optional[RtcSWE] = Field(None, alias="rtc:SWE") class RtcIC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLZ(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSM(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSP(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUZ(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcWC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHBVStateComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_IC: RtcIC = Field(..., alias='rtc:IC') - rtc_LZ: RtcLZ = Field(..., alias='rtc:LZ') - rtc_SM: RtcSM = Field(..., alias='rtc:SM') - rtc_SP: RtcSP = Field(..., alias='rtc:SP') - rtc_UZ: RtcUZ = Field(..., alias='rtc:UZ') - rtc_WC: RtcWC = Field(..., alias='rtc:WC') + _: Optional[str] = Field(None, alias="#") + rtc_IC: RtcIC = Field(..., alias="rtc:IC") + rtc_LZ: RtcLZ = Field(..., alias="rtc:LZ") + rtc_SM: RtcSM = Field(..., alias="rtc:SM") + rtc_SP: RtcSP = Field(..., alias="rtc:SP") + rtc_UZ: RtcUZ = Field(..., alias="rtc:UZ") + rtc_WC: RtcWC = Field(..., alias="rtc:WC") class RtcIC1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLZ1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSM1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSP1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUZ1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcWC1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHBVStateUpdateComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_IC: Optional[RtcIC1] = Field(None, alias='rtc:IC') + _: Optional[str] = Field(None, alias="#") + rtc_IC: Optional[RtcIC1] = Field(None, alias="rtc:IC") rtc_LZ: Optional[RtcLZ1] = Field( - None, alias='rtc:LZ', description='increment on lower zone storage [mm]' + None, alias="rtc:LZ", description="increment on lower zone storage [mm]" ) rtc_SM: Optional[RtcSM1] = Field( - None, alias='rtc:SM', description='STILL NOT IMPLEMENTED' + None, alias="rtc:SM", description="STILL NOT IMPLEMENTED" ) rtc_SP: Optional[RtcSP1] = Field( - None, alias='rtc:SP', description='STILL NOT IMPLEMENTED' + None, alias="rtc:SP", description="STILL NOT IMPLEMENTED" ) rtc_UZ: Optional[RtcUZ1] = Field( - None, alias='rtc:UZ', description='STILL NOT IMPLEMENTED' + None, alias="rtc:UZ", description="STILL NOT IMPLEMENTED" ) rtc_WC: Optional[RtcWC1] = Field( - None, alias='rtc:WC', description='STILL NOT IMPLEMENTED' + None, alias="rtc:WC", description="STILL NOT IMPLEMENTED" ) @@ -3370,57 +3370,57 @@ class RtcMode(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcHydraulicModelModeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcHydraulicModelModeEnumStringType] = Field(None, alias="$") class RtcNumericalTolerance(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcNFun(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcNJac(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRes(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHydraulicModelOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_nFun: RtcNFun = Field( - ..., alias='rtc:nFun', description='number of function evaluations' + ..., alias="rtc:nFun", description="number of function evaluations" ) rtc_nJac: RtcNJac = Field( - ..., alias='rtc:nJac', description='number of evaluations of the Jacobian' + ..., alias="rtc:nJac", description="number of evaluations of the Jacobian" ) rtc_res: RtcRes = Field( ..., - alias='rtc:res', - description='residuum at last iteration step, 0.5*sum(SQR(ri))', + alias="rtc:res", + description="residuum at last iteration step, 0.5*sum(SQR(ri))", ) @@ -3428,37 +3428,37 @@ class RtcConvergenceThreshold(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcTheta1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcTreatNonConvergenceAsError(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcHydraulicModelSequentialImplicitComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_convergenceThreshold: RtcConvergenceThreshold = Field( - ..., alias='rtc:convergenceThreshold' + ..., alias="rtc:convergenceThreshold" ) - rtc_theta: RtcTheta1 = Field(..., alias='rtc:theta') + rtc_theta: RtcTheta1 = Field(..., alias="rtc:theta") rtc_treatNonConvergenceAsError: RtcTreatNonConvergenceAsError = Field( - ..., alias='rtc:treatNonConvergenceAsError' + ..., alias="rtc:treatNonConvergenceAsError" ) @@ -3466,81 +3466,81 @@ class RtcTheta2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcHydraulicModelSimultaneousComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_theta: RtcTheta2 = Field(..., alias='rtc:theta') + _: Optional[str] = Field(None, alias="#") + rtc_theta: RtcTheta2 = Field(..., alias="rtc:theta") class RtcInflowComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _factor: Optional[XsDouble] = Field(None, alias='@factor') + _: Optional[str] = Field(None, alias="#") + _factor: Optional[XsDouble] = Field(None, alias="@factor") class RtcValueSelection(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcX5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputATableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_valueSelection: Optional[RtcValueSelection] = Field( - None, alias='rtc:valueSelection' + None, alias="rtc:valueSelection" ) - rtc_x: RtcX5 = Field(..., alias='rtc:x') + rtc_x: RtcX5 = Field(..., alias="rtc:x") class RtcHDown1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputCapillaryFlowStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_HDown: RtcHDown1 = Field( ..., - alias='rtc:HDown', - description='downstream node, typically UZ unsaturted zone', + alias="rtc:HDown", + description="downstream node, typically UZ unsaturted zone", ) rtc_HUp: RtcHUp1 = Field( - ..., alias='rtc:HUp', description='upstream node, typically GW upper zone' + ..., alias="rtc:HUp", description="upstream node, typically GW upper zone" ) @@ -3548,35 +3548,35 @@ class RtcEI1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcEP2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputEvaporationActualStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_EI: Optional[RtcEI1] = Field(None, alias='rtc:EI') - rtc_EP: RtcEP2 = Field(..., alias='rtc:EP') + _: Optional[str] = Field(None, alias="#") + rtc_EI: Optional[RtcEI1] = Field(None, alias="rtc:EI") + rtc_EP: RtcEP2 = Field(..., alias="rtc:EP") rtc_HUp: RtcHUp2 = Field( - ..., alias='rtc:HUp', description='upstream node, typically SM (soil moisture)' + ..., alias="rtc:HUp", description="upstream node, typically SM (soil moisture)" ) @@ -3584,28 +3584,28 @@ class RtcEP3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputEvaporationInterceptionStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_EP: RtcEP3 = Field( - ..., alias='rtc:EP', description='potential evaporation [mm]' + ..., alias="rtc:EP", description="potential evaporation [mm]" ) rtc_HUp: RtcHUp3 = Field( - ..., alias='rtc:HUp', description='upstream node, typically IC (interception)' + ..., alias="rtc:HUp", description="upstream node, typically IC (interception)" ) @@ -3613,41 +3613,41 @@ class RtcEPM(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcT1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTM1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputEvaporationPotentialComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_EPM: RtcEPM = Field( ..., - alias='rtc:EPM', - description='monthly mean value of potential evaporation [mm/timestep]', + alias="rtc:EPM", + description="monthly mean value of potential evaporation [mm/timestep]", ) rtc_T: RtcT1 = Field( - ..., alias='rtc:T', description='instantaneous temperature [oC]' + ..., alias="rtc:T", description="instantaneous temperature [oC]" ) rtc_TM: RtcTM1 = Field( - ..., alias='rtc:TM', description='monthly mean temperature [oC]' + ..., alias="rtc:TM", description="monthly mean temperature [oC]" ) @@ -3655,32 +3655,32 @@ class RtcHDown2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputGroundwaterFlowStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_HDown: RtcHDown2 = Field( ..., - alias='rtc:HDown', - description='downstream node, can be GW groundwater or SW surface water', + alias="rtc:HDown", + description="downstream node, can be GW groundwater or SW surface water", ) rtc_HUp: RtcHUp4 = Field( ..., - alias='rtc:HUp', - description='upstream node, can be GW groundwater or SW surface water', + alias="rtc:HUp", + description="upstream node, can be GW groundwater or SW surface water", ) @@ -3688,39 +3688,39 @@ class RtcDischargeItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcState(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcUnitVolumeItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputNodeStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_discharge: Optional[List[RtcDischargeItem]] = Field(None, alias='rtc:discharge') + _: Optional[str] = Field(None, alias="#") + rtc_discharge: Optional[List[RtcDischargeItem]] = Field(None, alias="rtc:discharge") rtc_state: Optional[RtcState] = Field( None, - alias='rtc:state', - description='unit volume [mm], replaces the computes state', + alias="rtc:state", + description="unit volume [mm], replaces the computes state", ) rtc_unitVolume: Optional[List[RtcUnitVolumeItem]] = Field( - None, alias='rtc:unitVolume' + None, alias="rtc:unitVolume" ) @@ -3728,32 +3728,32 @@ class RtcHDown3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputPercolationStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_HDown: Optional[RtcHDown3] = Field( None, - alias='rtc:HDown', - description='downstream node, typically LZ (lower zone storage)', + alias="rtc:HDown", + description="downstream node, typically LZ (lower zone storage)", ) rtc_HUp: RtcHUp5 = Field( ..., - alias='rtc:HUp', - description='upstream node, typically UZ (upper zone storage)', + alias="rtc:HUp", + description="upstream node, typically UZ (upper zone storage)", ) @@ -3761,85 +3761,85 @@ class RtcSetpointSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSetpointValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcX6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputPidComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_disturbance: Optional[rtc_TimeSeriesSimpleType.Field8] = Field( - None, alias='rtc:disturbance' + None, alias="rtc:disturbance" ) rtc_setpointSeries: Optional[RtcSetpointSeries] = Field( - None, alias='rtc:setpointSeries' + None, alias="rtc:setpointSeries" ) rtc_setpointValue: Optional[RtcSetpointValue] = Field( - None, alias='rtc:setpointValue' + None, alias="rtc:setpointValue" ) - rtc_x: RtcX6 = Field(..., alias='rtc:x', description='controllable variable') + rtc_x: RtcX6 = Field(..., alias="rtc:x", description="controllable variable") class RtcHDown4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputReleaseAboveThresholdStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_HDown: Optional[RtcHDown4] = Field( - None, alias='rtc:HDown', description='downstream node' + None, alias="rtc:HDown", description="downstream node" ) - rtc_HUp: RtcHUp6 = Field(..., alias='rtc:HUp', description='upstream node') + rtc_HUp: RtcHUp6 = Field(..., alias="rtc:HUp", description="upstream node") class RtcDischargeItem1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputReleaseTotalComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_discharge: List[RtcDischargeItem1] = Field( - ..., alias='rtc:discharge', min_items=1 + ..., alias="rtc:discharge", min_items=1 ) @@ -3847,19 +3847,19 @@ class RtcHUp7(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputResponseStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_HUp: RtcHUp7 = Field( ..., - alias='rtc:HUp', - description='upstream (release) node, typically UZ and/or LZ (upper/lower zone storages)', + alias="rtc:HUp", + description="upstream (release) node, typically UZ and/or LZ (upper/lower zone storages)", ) @@ -3867,99 +3867,99 @@ class RtcP1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcT2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputSnowRainJunctionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_P: RtcP1 = Field(..., alias='rtc:P', description='precipitation [mm/timestep]') - rtc_T: RtcT2 = Field(..., alias='rtc:T', description='temperature [oC]') + _: Optional[str] = Field(None, alias="#") + rtc_P: RtcP1 = Field(..., alias="rtc:P", description="precipitation [mm/timestep]") + rtc_T: RtcT2 = Field(..., alias="rtc:T", description="temperature [oC]") class RtcHDown5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp8(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcINFItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputSoilRunoffStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_HDown: Optional[RtcHDown5] = Field( None, - alias='rtc:HDown', - description='optional downstream node, typically uper saturated zones (UZ upper zone storage). Required if capillary flow is used and SM and UZ are present in one storage system', + alias="rtc:HDown", + description="optional downstream node, typically uper saturated zones (UZ upper zone storage). Required if capillary flow is used and SM and UZ are present in one storage system", ) rtc_HUp: RtcHUp8 = Field( ..., - alias='rtc:HUp', - description='upstream node, typically unsaturated zone (SM soil moisture)', + alias="rtc:HUp", + description="upstream node, typically unsaturated zone (SM soil moisture)", ) - rtc_INF: List[RtcINFItem] = Field(..., alias='rtc:INF', min_items=1) + rtc_INF: List[RtcINFItem] = Field(..., alias="rtc:INF", min_items=1) class RtcHDown6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp9(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputWaterDistributionConstantStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_HDown: Optional[RtcHDown6] = Field( None, - alias='rtc:HDown', - description='downstream node collector of abstracted water. For instance drinking water treatment plant', + alias="rtc:HDown", + description="downstream node collector of abstracted water. For instance drinking water treatment plant", ) rtc_HUp: RtcHUp9 = Field( ..., - alias='rtc:HUp', - description='upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)', + alias="rtc:HUp", + description="upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)", ) @@ -3967,45 +3967,45 @@ class RtcD1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHDown7(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp10(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInputWaterDistributionVariableStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_D: RtcD1 = Field( ..., - alias='rtc:D', - description='series of industrial or domestic water demands/abstractions [m3/s]', + alias="rtc:D", + description="series of industrial or domestic water demands/abstractions [m3/s]", ) rtc_HDown: Optional[RtcHDown7] = Field( None, - alias='rtc:HDown', - description='downstream node collector of abstracted water. For instance drinking water treatment plant', + alias="rtc:HDown", + description="downstream node collector of abstracted water. For instance drinking water treatment plant", ) rtc_HUp: RtcHUp10 = Field( ..., - alias='rtc:HUp', - description='upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)', + alias="rtc:HUp", + description="upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)", ) @@ -4013,91 +4013,91 @@ class RtcDate(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias="$") class RtcValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias="$") class RtcInterpolationOptionsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_date: RtcDate = Field(..., alias='rtc:date') - rtc_value: RtcValue = Field(..., alias='rtc:value') + _: Optional[str] = Field(None, alias="#") + rtc_date: RtcDate = Field(..., alias="rtc:date") + rtc_value: RtcValue = Field(..., alias="rtc:value") class RtcDeadbandSetpointAbsolute(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcDeadbandSetpointRelative(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSettingAbove(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSettingBelow(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSettingMaxSpeed(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSettingMaxStep(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSetpoint(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcIntervalInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_setpoint: RtcSetpoint = Field(..., alias='rtc:setpoint') + _: Optional[str] = Field(None, alias="#") + rtc_setpoint: RtcSetpoint = Field(..., alias="rtc:setpoint") rtc_x: rtc_TimeSeriesSimpleType.Field9 = Field( - ..., alias='rtc:x', description='reference to time series ID' + ..., alias="rtc:x", description="reference to time series ID" ) @@ -4105,369 +4105,369 @@ class RtcStatus1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcY7(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcIntervalOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_status: RtcStatus1 = Field(..., alias='rtc:status') - rtc_y: RtcY7 = Field(..., alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_status: RtcStatus1 = Field(..., alias="rtc:status") + rtc_y: RtcY7 = Field(..., alias="rtc:y") class RtcA0(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcA11(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcA21(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcA3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcA4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcLevelStorageEquationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_A0: RtcA0 = Field(..., alias='rtc:A0') - rtc_A1: RtcA11 = Field(..., alias='rtc:A1') - rtc_A2: Optional[RtcA21] = Field(None, alias='rtc:A2') - rtc_A3: Optional[RtcA3] = Field(None, alias='rtc:A3') - rtc_A4: Optional[RtcA4] = Field(None, alias='rtc:A4') + _: Optional[str] = Field(None, alias="#") + rtc_A0: RtcA0 = Field(..., alias="rtc:A0") + rtc_A1: RtcA11 = Field(..., alias="rtc:A1") + rtc_A2: Optional[RtcA21] = Field(None, alias="rtc:A2") + rtc_A3: Optional[RtcA3] = Field(None, alias="rtc:A3") + rtc_A4: Optional[RtcA4] = Field(None, alias="rtc:A4") class RtcMode1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcLimiterOptionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcLimiterOptionEnumStringType] = Field(None, alias="$") class RtcThresholdValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcX7(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLimiterInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_thresholdSeries: Optional[rtc_TimeSeriesSimpleType.Field21] = Field( - None, alias='rtc:thresholdSeries' + None, alias="rtc:thresholdSeries" ) rtc_thresholdValue: Optional[RtcThresholdValue] = Field( - None, alias='rtc:thresholdValue' + None, alias="rtc:thresholdValue" ) - rtc_x: RtcX7 = Field(..., alias='rtc:x') + rtc_x: RtcX7 = Field(..., alias="rtc:x") class RtcX8(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcY8(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcZ(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLookup2DTableInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: RtcX8 = Field(..., alias='rtc:x') - rtc_y: RtcY8 = Field(..., alias='rtc:y') - rtc_z: Optional[RtcZ] = Field(None, alias='rtc:z') + _: Optional[str] = Field(None, alias="#") + rtc_x: RtcX8 = Field(..., alias="rtc:x") + rtc_y: RtcY8 = Field(..., alias="rtc:y") + rtc_z: Optional[RtcZ] = Field(None, alias="rtc:z") class RtcZ1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLookup2DTableOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_z: RtcZ1 = Field(..., alias='rtc:z') + _: Optional[str] = Field(None, alias="#") + rtc_z: RtcZ1 = Field(..., alias="rtc:z") class RtcExtrapolationOption(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias="$") class RtcInterpolationOption(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias="$") class RtcTableExternal1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcY9(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLookupTableInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_x: rtc_TimeSeriesSimpleType.Field10 = Field( - ..., alias='rtc:x', description='reference to time series ID' + ..., alias="rtc:x", description="reference to time series ID" ) - rtc_y: Optional[RtcY9] = Field(None, alias='rtc:y') + rtc_y: Optional[RtcY9] = Field(None, alias="rtc:y") class RtcY10(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLookupTableOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_y: RtcY10 = Field(..., alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_y: RtcY10 = Field(..., alias="rtc:y") class RtcEP4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcP2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLorentGeversInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_EP: RtcEP4 = Field(..., alias='rtc:EP') - rtc_P: RtcP2 = Field(..., alias='rtc:P') + _: Optional[str] = Field(None, alias="#") + rtc_EP: RtcEP4 = Field(..., alias="rtc:EP") + rtc_P: RtcP2 = Field(..., alias="rtc:P") class RtcQ2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLorentGeversOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_Q: RtcQ2 = Field(..., alias='rtc:Q') + _: Optional[str] = Field(None, alias="#") + rtc_Q: RtcQ2 = Field(..., alias="rtc:Q") class RtcQB1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQB2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQS1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQS2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcS(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLorentGeversStateComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_QB1: RtcQB1 = Field(..., alias='rtc:QB1') - rtc_QB2: RtcQB2 = Field(..., alias='rtc:QB2') - rtc_QS1: RtcQS1 = Field(..., alias='rtc:QS1') - rtc_QS2: RtcQS2 = Field(..., alias='rtc:QS2') - rtc_S: RtcS = Field(..., alias='rtc:S') + _: Optional[str] = Field(None, alias="#") + rtc_QB1: RtcQB1 = Field(..., alias="rtc:QB1") + rtc_QB2: RtcQB2 = Field(..., alias="rtc:QB2") + rtc_QS1: RtcQS1 = Field(..., alias="rtc:QS1") + rtc_QS2: RtcQS2 = Field(..., alias="rtc:QS2") + rtc_S: RtcS = Field(..., alias="rtc:S") class RtcS1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLorentGeversStateUpdateComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_S: RtcS1 = Field(..., alias='rtc:S') + _: Optional[str] = Field(None, alias="#") + rtc_S: RtcS1 = Field(..., alias="rtc:S") class RtcMaxFlowsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _maxFlow_head01: XsDouble = Field(..., alias='@maxFlow_head01') - _maxFlow_head02: XsDouble = Field(..., alias='@maxFlow_head02') - _maxFlow_head03: Optional[XsDouble] = Field(None, alias='@maxFlow_head03') - _maxFlow_head04: Optional[XsDouble] = Field(None, alias='@maxFlow_head04') - _maxFlow_head05: Optional[XsDouble] = Field(None, alias='@maxFlow_head05') - _maxFlow_head06: Optional[XsDouble] = Field(None, alias='@maxFlow_head06') - _maxFlow_head07: Optional[XsDouble] = Field(None, alias='@maxFlow_head07') - _maxFlow_head08: Optional[XsDouble] = Field(None, alias='@maxFlow_head08') - _maxFlow_head09: Optional[XsDouble] = Field(None, alias='@maxFlow_head09') - _maxFlow_head10: Optional[XsDouble] = Field(None, alias='@maxFlow_head10') - _maxFlow_head11: Optional[XsDouble] = Field(None, alias='@maxFlow_head11') - _maxFlow_head12: Optional[XsDouble] = Field(None, alias='@maxFlow_head12') - _maxFlow_head13: Optional[XsDouble] = Field(None, alias='@maxFlow_head13') - _maxFlow_head14: Optional[XsDouble] = Field(None, alias='@maxFlow_head14') - _maxFlow_head15: Optional[XsDouble] = Field(None, alias='@maxFlow_head15') - _maxFlow_head16: Optional[XsDouble] = Field(None, alias='@maxFlow_head16') - _maxFlow_head17: Optional[XsDouble] = Field(None, alias='@maxFlow_head17') - _maxFlow_head18: Optional[XsDouble] = Field(None, alias='@maxFlow_head18') - _maxFlow_head19: Optional[XsDouble] = Field(None, alias='@maxFlow_head19') - _maxFlow_head20: Optional[XsDouble] = Field(None, alias='@maxFlow_head20') + _: Optional[str] = Field(None, alias="#") + _maxFlow_head01: XsDouble = Field(..., alias="@maxFlow_head01") + _maxFlow_head02: XsDouble = Field(..., alias="@maxFlow_head02") + _maxFlow_head03: Optional[XsDouble] = Field(None, alias="@maxFlow_head03") + _maxFlow_head04: Optional[XsDouble] = Field(None, alias="@maxFlow_head04") + _maxFlow_head05: Optional[XsDouble] = Field(None, alias="@maxFlow_head05") + _maxFlow_head06: Optional[XsDouble] = Field(None, alias="@maxFlow_head06") + _maxFlow_head07: Optional[XsDouble] = Field(None, alias="@maxFlow_head07") + _maxFlow_head08: Optional[XsDouble] = Field(None, alias="@maxFlow_head08") + _maxFlow_head09: Optional[XsDouble] = Field(None, alias="@maxFlow_head09") + _maxFlow_head10: Optional[XsDouble] = Field(None, alias="@maxFlow_head10") + _maxFlow_head11: Optional[XsDouble] = Field(None, alias="@maxFlow_head11") + _maxFlow_head12: Optional[XsDouble] = Field(None, alias="@maxFlow_head12") + _maxFlow_head13: Optional[XsDouble] = Field(None, alias="@maxFlow_head13") + _maxFlow_head14: Optional[XsDouble] = Field(None, alias="@maxFlow_head14") + _maxFlow_head15: Optional[XsDouble] = Field(None, alias="@maxFlow_head15") + _maxFlow_head16: Optional[XsDouble] = Field(None, alias="@maxFlow_head16") + _maxFlow_head17: Optional[XsDouble] = Field(None, alias="@maxFlow_head17") + _maxFlow_head18: Optional[XsDouble] = Field(None, alias="@maxFlow_head18") + _maxFlow_head19: Optional[XsDouble] = Field(None, alias="@maxFlow_head19") + _maxFlow_head20: Optional[XsDouble] = Field(None, alias="@maxFlow_head20") class RtcMergerInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_x: List[rtc_TimeSeriesSimpleType.Field11] = Field( - ..., alias='rtc:x', min_items=1 + ..., alias="rtc:x", min_items=1 ) @@ -4475,43 +4475,43 @@ class RtcY11(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcYSum(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcMergerOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_y: Optional[RtcY11] = Field(None, alias='rtc:y') - rtc_ySum: Optional[RtcYSum] = Field(None, alias='rtc:ySum') + _: Optional[str] = Field(None, alias="#") + rtc_y: Optional[RtcY11] = Field(None, alias="rtc:y") + rtc_ySum: Optional[RtcYSum] = Field(None, alias="rtc:ySum") class RtcMode2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcMergerSplitterEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcMergerSplitterEnumStringType] = Field(None, alias="$") class RtcMergerSplitterInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: Optional[List[rtc_TimeSeriesSimpleType.Field17]] = Field(None, alias='rtc:x') + _: Optional[str] = Field(None, alias="#") + rtc_x: Optional[List[rtc_TimeSeriesSimpleType.Field17]] = Field(None, alias="rtc:x") rtc_xVector: Optional[rtc_TimeSeriesSimpleType.Field18] = Field( - None, alias='rtc:xVector' + None, alias="rtc:xVector" ) @@ -4519,55 +4519,55 @@ class RtcMergerSplitterOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_y: Optional[List[rtc_TimeSeriesSimpleType.Field19]] = Field(None, alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_y: Optional[List[rtc_TimeSeriesSimpleType.Field19]] = Field(None, alias="rtc:y") class RtcTransferFunction(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTransferFunctionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTransferFunctionEnumStringType] = Field(None, alias="$") class RtcNeuronInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_external: Optional[List[xs_string.Field1]] = Field(None, alias='rtc:external') - rtc_internal: Optional[List[xs_string.Field2]] = Field(None, alias='rtc:internal') + _: Optional[str] = Field(None, alias="#") + rtc_external: Optional[List[xs_string.Field1]] = Field(None, alias="rtc:external") + rtc_internal: Optional[List[xs_string.Field2]] = Field(None, alias="rtc:internal") class RtcX9(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcY12(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcNeuronOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_x: RtcX9 = Field( - ..., alias='rtc:x', description='result of the transfer function' + ..., alias="rtc:x", description="result of the transfer function" ) rtc_y: RtcY12 = Field( ..., - alias='rtc:y', - description='result of the summation of weighted input (intermediate result)', + alias="rtc:y", + description="result of the summation of weighted input (intermediate result)", ) @@ -4575,60 +4575,60 @@ class RtcLambda(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSurfaceArea(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcNodeGradientComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_lambda: RtcLambda = Field(..., alias='rtc:lambda') - rtc_surfaceArea: RtcSurfaceArea = Field(..., alias='rtc:surfaceArea') + _: Optional[str] = Field(None, alias="#") + rtc_lambda: RtcLambda = Field(..., alias="rtc:lambda") + rtc_surfaceArea: RtcSurfaceArea = Field(..., alias="rtc:surfaceArea") class RtcHBC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUpdate(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcNodeInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_HBC: Optional[RtcHBC] = Field( None, - alias='rtc:HBC', - description='Time series with the water level boundary condition, note that a value MUST be provided at all time steps, otherwise the model stops with an error message', + alias="rtc:HBC", + description="Time series with the water level boundary condition, note that a value MUST be provided at all time steps, otherwise the model stops with an error message", ) rtc_HUpdate: Optional[RtcHUpdate] = Field( None, - alias='rtc:HUpdate', - description='Time series with an optional water level for model updating', + alias="rtc:HUpdate", + description="Time series with an optional water level for model updating", ) rtc_QBC: Optional[List[rtc_TimeSeriesSimpleType.Field6]] = Field( - None, alias='rtc:QBC' + None, alias="rtc:QBC" ) @@ -4636,253 +4636,253 @@ class RtcH(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcR1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcS2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcNodeOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_H: RtcH = Field(..., alias='rtc:H') - rtc_R: Optional[RtcR1] = Field(None, alias='rtc:R') - rtc_S: RtcS2 = Field(..., alias='rtc:S') + _: Optional[str] = Field(None, alias="#") + rtc_H: RtcH = Field(..., alias="rtc:H") + rtc_R: Optional[RtcR1] = Field(None, alias="rtc:R") + rtc_S: RtcS2 = Field(..., alias="rtc:S") class RtcResiduum(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcState1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcNodeStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_AREA: Optional[RtcAREA2] = Field( - None, alias='rtc:AREA', description='constant area [km2], default is 1.0' + None, alias="rtc:AREA", description="constant area [km2], default is 1.0" ) rtc_input: Optional[RtcInputNodeStorageSystemComplexType] = Field( - None, alias='rtc:input' + None, alias="rtc:input" ) rtc_residuum: RtcResiduum = Field( - ..., alias='rtc:residuum', description='residuum [mm]' + ..., alias="rtc:residuum", description="residuum [mm]" ) - rtc_state: RtcState1 = Field(..., alias='rtc:state', description='unit volume [mm]') - rtc_stateMax: Optional[RtcStateMax] = Field(None, alias='rtc:stateMax') - rtc_stateMin: Optional[RtcStateMin] = Field(None, alias='rtc:stateMin') + rtc_state: RtcState1 = Field(..., alias="rtc:state", description="unit volume [mm]") + rtc_stateMax: Optional[RtcStateMax] = Field(None, alias="rtc:stateMax") + rtc_stateMin: Optional[RtcStateMin] = Field(None, alias="rtc:stateMin") class RtcContractionCoefficient(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcCrestLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcExponentGateFormula(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcExponentWeirFormula(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcFlowDirection(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcFlowDirectionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcFlowDirectionEnumStringType] = Field(None, alias="$") class RtcWidth(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcD2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDConst(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcDSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDeltaHDown(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDeltaHUp(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHDown8(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp11(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOrificeInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_D: Optional[RtcD2] = Field(None, alias='rtc:D', description='deprecated') - rtc_DConst: Optional[RtcDConst] = Field(None, alias='rtc:DConst') - rtc_DSeries: Optional[RtcDSeries] = Field(None, alias='rtc:DSeries') - rtc_DeltaHDown: Optional[RtcDeltaHDown] = Field(None, alias='rtc:DeltaHDown') - rtc_DeltaHUp: Optional[RtcDeltaHUp] = Field(None, alias='rtc:DeltaHUp') - rtc_HDown: RtcHDown8 = Field(..., alias='rtc:HDown') - rtc_HUp: RtcHUp11 = Field(..., alias='rtc:HUp') + _: Optional[str] = Field(None, alias="#") + rtc_D: Optional[RtcD2] = Field(None, alias="rtc:D", description="deprecated") + rtc_DConst: Optional[RtcDConst] = Field(None, alias="rtc:DConst") + rtc_DSeries: Optional[RtcDSeries] = Field(None, alias="rtc:DSeries") + rtc_DeltaHDown: Optional[RtcDeltaHDown] = Field(None, alias="rtc:DeltaHDown") + rtc_DeltaHUp: Optional[RtcDeltaHUp] = Field(None, alias="rtc:DeltaHUp") + rtc_HDown: RtcHDown8 = Field(..., alias="rtc:HDown") + rtc_HUp: RtcHUp11 = Field(..., alias="rtc:HUp") class RtcD3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQ3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcFlowType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOrificeOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_D: RtcD3 = Field(..., alias='rtc:D') - rtc_Q: RtcQ3 = Field(..., alias='rtc:Q') - rtc_flowType: Optional[RtcFlowType] = Field(None, alias='rtc:flowType') + _: Optional[str] = Field(None, alias="#") + rtc_D: RtcD3 = Field(..., alias="rtc:D") + rtc_Q: RtcQ3 = Field(..., alias="rtc:Q") + rtc_flowType: Optional[RtcFlowType] = Field(None, alias="rtc:flowType") class RtcRelativeReleaseItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRelease(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOutletInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_relativeRelease: Optional[List[RtcRelativeReleaseItem]] = Field( - None, alias='rtc:relativeRelease' + None, alias="rtc:relativeRelease" ) rtc_release: Optional[RtcRelease] = Field( None, - alias='rtc:release', - description='Reference to timeseries in data configuration containg an absolute release. (ONLY FOR CONTROLLED OUTLET)', + alias="rtc:release", + description="Reference to timeseries in data configuration containg an absolute release. (ONLY FOR CONTROLLED OUTLET)", ) @@ -4890,25 +4890,25 @@ class RtcRelease1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOutletOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_release: RtcRelease1 = Field(..., alias='rtc:release') + _: Optional[str] = Field(None, alias="#") + rtc_release: RtcRelease1 = Field(..., alias="rtc:release") class RtcOutputATableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_y: List[rtc_TimeSeriesSimpleType.Field1] = Field( - ..., alias='rtc:y', min_items=1 + ..., alias="rtc:y", min_items=1 ) @@ -4916,19 +4916,19 @@ class RtcEP5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOutputEvaporationPotentialComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_EP: RtcEP5 = Field( ..., - alias='rtc:EP', - description='instantaneous potential evaporation [mm/timestep]', + alias="rtc:EP", + description="instantaneous potential evaporation [mm/timestep]", ) @@ -4936,133 +4936,133 @@ class RtcH1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQ4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOutputLinkStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_H: RtcH1 = Field( - ..., alias='rtc:H', description='Discharge as unit volume [mm/timestep]' + ..., alias="rtc:H", description="Discharge as unit volume [mm/timestep]" ) - rtc_Q: RtcQ4 = Field(..., alias='rtc:Q', description='Discharge [m3/s]') + rtc_Q: RtcQ4 = Field(..., alias="rtc:Q", description="Discharge [m3/s]") class RtcDifferentialPart(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcIntegralPart(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcY13(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOutputPidComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_differentialPart: RtcDifferentialPart = Field( ..., - alias='rtc:differentialPart', - description='memory of differential part (in fact e of the last time step)', + alias="rtc:differentialPart", + description="memory of differential part (in fact e of the last time step)", ) rtc_integralPart: RtcIntegralPart = Field( ..., - alias='rtc:integralPart', - description='memory of integral part: integral(e)dt', + alias="rtc:integralPart", + description="memory of integral part: integral(e)dt", ) - rtc_y: RtcY13 = Field(..., alias='rtc:y', description='setting of the actuator') + rtc_y: RtcY13 = Field(..., alias="rtc:y", description="setting of the actuator") class RtcRF(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSF(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOutputSnowRainJunctionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_RF: RtcRF = Field(..., alias='rtc:RF', description='rainfall [mm/timestep]') - rtc_SF: RtcSF = Field(..., alias='rtc:SF', description='snowfall [mm/timestep]') + _: Optional[str] = Field(None, alias="#") + rtc_RF: RtcRF = Field(..., alias="rtc:RF", description="rainfall [mm/timestep]") + rtc_SF: RtcSF = Field(..., alias="rtc:SF", description="snowfall [mm/timestep]") class RtcNFun1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcNJac1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRes1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcOutputStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_nFun: RtcNFun1 = Field( - ..., alias='rtc:nFun', description='number of function evaluations' + ..., alias="rtc:nFun", description="number of function evaluations" ) rtc_nJac: RtcNJac1 = Field( - ..., alias='rtc:nJac', description='number of evaluations of the Jacobian' + ..., alias="rtc:nJac", description="number of evaluations of the Jacobian" ) rtc_res: RtcRes1 = Field( - ..., alias='rtc:res', description='residuum at last iteration step' + ..., alias="rtc:res", description="residuum at last iteration step" ) @@ -5070,15 +5070,15 @@ class RtcPercolationStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInputPercolationStorageSystemComplexType = Field( - ..., alias='rtc:input' + ..., alias="rtc:input" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterPercolationStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -5086,83 +5086,83 @@ class RtcKd(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcKi(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcKp(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSettingMax(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSettingMaxSpeed1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSettingMin(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcPidComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputPidComplexType = Field(..., alias='rtc:input') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcInputPidComplexType = Field(..., alias="rtc:input") rtc_kd: RtcKd = Field( - ..., alias='rtc:kd', description='fatcor on differential part kd*de/dt' + ..., alias="rtc:kd", description="fatcor on differential part kd*de/dt" ) rtc_ki: RtcKi = Field( - ..., alias='rtc:ki', description='factor on the integral part ki*integral(e)dt' + ..., alias="rtc:ki", description="factor on the integral part ki*integral(e)dt" ) rtc_kp: RtcKp = Field( - ..., alias='rtc:kp', description='factor on the proportional part kp*e' + ..., alias="rtc:kp", description="factor on the proportional part kp*e" ) rtc_mode: Optional[RtcMode3] = Field( None, - alias='rtc:mode', + alias="rtc:mode", description='pid mode, either "NATIVE" or "SOBEK2" or "PIDPOS" or PIDVEL"', ) - rtc_output: RtcOutputPidComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputPidComplexType = Field(..., alias="rtc:output") rtc_settingMax: RtcSettingMax = Field( - ..., alias='rtc:settingMax', description='maximum setting of the actuator' + ..., alias="rtc:settingMax", description="maximum setting of the actuator" ) rtc_settingMaxSpeed: RtcSettingMaxSpeed1 = Field( ..., - alias='rtc:settingMaxSpeed', - description='maximum speed of the actuation in [unit/s]', + alias="rtc:settingMaxSpeed", + description="maximum speed of the actuation in [unit/s]", ) rtc_settingMin: RtcSettingMin = Field( - ..., alias='rtc:settingMin', description='minimum setting of the actuator' + ..., alias="rtc:settingMin", description="minimum setting of the actuator" ) @@ -5170,60 +5170,60 @@ class RtcValue1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcPolygonComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: Optional[XsString] = Field(None, alias='@id') - rtc_edges: RtcEdgesComplexType = Field(..., alias='rtc:edges') - rtc_value: Optional[RtcValue1] = Field(None, alias='rtc:value') + _: Optional[str] = Field(None, alias="#") + _id: Optional[XsString] = Field(None, alias="@id") + rtc_edges: RtcEdgesComplexType = Field(..., alias="rtc:edges") + rtc_value: Optional[RtcValue1] = Field(None, alias="rtc:value") class RtcDefault1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcPolygonLookupInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x1: rtc_TimeSeriesSimpleType.Field12 = Field(..., alias='rtc:x1') - rtc_x2: rtc_TimeSeriesSimpleType.Field13 = Field(..., alias='rtc:x2') + _: Optional[str] = Field(None, alias="#") + rtc_x1: rtc_TimeSeriesSimpleType.Field12 = Field(..., alias="rtc:x1") + rtc_x2: rtc_TimeSeriesSimpleType.Field13 = Field(..., alias="rtc:x2") class RtcStatus2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPolygonLookupOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_status: RtcStatus2 = Field(..., alias='rtc:status') + _: Optional[str] = Field(None, alias="#") + rtc_status: RtcStatus2 = Field(..., alias="rtc:status") class RtcPolygonsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_polygon: List[RtcPolygonComplexType] = Field( - ..., alias='rtc:polygon', min_items=1 + ..., alias="rtc:polygon", min_items=1 ) @@ -5231,121 +5231,121 @@ class RtcStorageDown1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcStorageUp1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPumpGradientComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_storageDown: RtcStorageDown1 = Field(..., alias='rtc:storageDown') - rtc_storageUp: RtcStorageUp1 = Field(..., alias='rtc:storageUp') + _: Optional[str] = Field(None, alias="#") + rtc_storageDown: RtcStorageDown1 = Field(..., alias="rtc:storageDown") + rtc_storageUp: RtcStorageUp1 = Field(..., alias="rtc:storageUp") class RtcHDown9(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp12(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQ5(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPumpInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_HDown: RtcHDown9 = Field(..., alias='rtc:HDown') - rtc_HUp: RtcHUp12 = Field(..., alias='rtc:HUp') - rtc_Q: RtcQ5 = Field(..., alias='rtc:Q') + _: Optional[str] = Field(None, alias="#") + rtc_HDown: RtcHDown9 = Field(..., alias="rtc:HDown") + rtc_HUp: RtcHUp12 = Field(..., alias="rtc:HUp") + rtc_Q: RtcQ5 = Field(..., alias="rtc:Q") class RtcQ6(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPumpOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_Q: RtcQ6 = Field(..., alias='rtc:Q') + _: Optional[str] = Field(None, alias="#") + rtc_Q: RtcQ6 = Field(..., alias="rtc:Q") class RtcRelationalOperator(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcRelationalOperatorEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcRelationalOperatorEnumStringType] = Field(None, alias="$") class RtcRelationalConditionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_relationalOperator: RtcRelationalOperator = Field( - ..., alias='rtc:relationalOperator' + ..., alias="rtc:relationalOperator" ) rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field22] = Field( - None, alias='rtc:x1Series' + None, alias="rtc:x1Series" ) - rtc_x1Value: Optional[RtcX1Value1] = Field(None, alias='rtc:x1Value') + rtc_x1Value: Optional[RtcX1Value1] = Field(None, alias="rtc:x1Value") rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field23] = Field( - None, alias='rtc:x2Series' + None, alias="rtc:x2Series" ) - rtc_x2Value: Optional[RtcX2Value1] = Field(None, alias='rtc:x2Value') + rtc_x2Value: Optional[RtcX2Value1] = Field(None, alias="rtc:x2Value") class RtcOutput(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcReleaseTotalComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputReleaseTotalComplexType = Field(..., alias='rtc:input') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcInputReleaseTotalComplexType = Field(..., alias="rtc:input") rtc_output: RtcOutput = Field( - ..., alias='rtc:output', description='total discharge [m3/s]' + ..., alias="rtc:output", description="total discharge [m3/s]" ) @@ -5353,185 +5353,185 @@ class RtcLevelStorageTableExternal(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcTailwaterExternalTable(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcTailwaterExternalTimeSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTurbineEfficiencyTable2DExternal(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcTurbineEfficiencyTableExternal(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcUnits(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcUnitTypeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcUnitTypeEnumStringType] = Field(None, alias="$") class RtcFB(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPM(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPX(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQ7(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQIItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQMISC(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQS(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQTX(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcReservoirCompactInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_FB: RtcFB = Field( ..., - alias='rtc:FB', - description='forebay elevation [m above reference level] or [ft above sea level]', + alias="rtc:FB", + description="forebay elevation [m above reference level] or [ft above sea level]", ) rtc_OF: Optional[RtcOF] = Field( None, - alias='rtc:OF', - description='optional time series with the unit outage factor [0-1], it reduces the (physical) constraints PXValue and QTXValue (NO impact on PX, QTX)', + alias="rtc:OF", + description="optional time series with the unit outage factor [0-1], it reduces the (physical) constraints PXValue and QTXValue (NO impact on PX, QTX)", ) rtc_PM: Optional[RtcPM] = Field( None, - alias='rtc:PM', - description='minimum generation constraint on aggregated turbine level [MW], primarly used as operational constraint', + alias="rtc:PM", + description="minimum generation constraint on aggregated turbine level [MW], primarly used as operational constraint", ) rtc_PMValue: Optional[RtcPMValue] = Field( None, - alias='rtc:PMValue', - description='fixed minimum generation constraint on aggregated turbine level [MW], primarily used as physical constraint', + alias="rtc:PMValue", + description="fixed minimum generation constraint on aggregated turbine level [MW], primarily used as physical constraint", ) rtc_PX: Optional[RtcPX] = Field( None, - alias='rtc:PX', - description='maximum generation constraint on aggregated turbine level [MW], primarly used as operational constraint', + alias="rtc:PX", + description="maximum generation constraint on aggregated turbine level [MW], primarly used as operational constraint", ) rtc_PXValue: Optional[RtcPXValue] = Field( None, - alias='rtc:PXValue', - description='fixed maximum generation constraint on aggregated turbine level [MW], primarly used as physical constraint', + alias="rtc:PXValue", + description="fixed maximum generation constraint on aggregated turbine level [MW], primarly used as physical constraint", ) rtc_Q: RtcQ7 = Field( ..., - alias='rtc:Q', - description='reservoir outflow [m3/s] or [KCFS], data is expected to be complete and valid', + alias="rtc:Q", + description="reservoir outflow [m3/s] or [KCFS], data is expected to be complete and valid", ) - rtc_QI: List[RtcQIItem] = Field(..., alias='rtc:QI', min_items=1) + rtc_QI: List[RtcQIItem] = Field(..., alias="rtc:QI", min_items=1) rtc_QMISC: Optional[RtcQMISC] = Field( None, - alias='rtc:QMISC', - description='optional miscellaneous flow (uncontrolled), will be zero by default [m3/s] or [KCFS] if no time series is supplied or if the time series includes NaN values', + alias="rtc:QMISC", + description="optional miscellaneous flow (uncontrolled), will be zero by default [m3/s] or [KCFS] if no time series is supplied or if the time series includes NaN values", ) rtc_QS: Optional[RtcQS] = Field( - None, alias='rtc:QS', description='absolute spill target [m3/s] or [KCFS]' + None, alias="rtc:QS", description="absolute spill target [m3/s] or [KCFS]" ) rtc_QSPercentage: Optional[rtc_TimeSeriesSimpleType.Field7] = Field( None, - alias='rtc:QSPercentage', - description='relative spill target as a percentage [0..100] of the total flow Q', + alias="rtc:QSPercentage", + description="relative spill target as a percentage [0..100] of the total flow Q", ) rtc_QSPercentageValue: Optional[rtc_ExternalParameterSimpleType.Field1] = Field( None, - alias='rtc:QSPercentageValue', - description='relative spill target as a percentage [0..100] of the total flow Q', + alias="rtc:QSPercentageValue", + description="relative spill target as a percentage [0..100] of the total flow Q", ) rtc_QSValue: Optional[RtcQSValue] = Field( - None, alias='rtc:QSValue', description='absolute spill target [m3/s] or [KCFS]' + None, alias="rtc:QSValue", description="absolute spill target [m3/s] or [KCFS]" ) rtc_QTX: Optional[RtcQTX] = Field( None, - alias='rtc:QTX', - description='maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as operational constraint', + alias="rtc:QTX", + description="maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as operational constraint", ) rtc_QTXValue: Optional[RtcQTXValue] = Field( None, - alias='rtc:QTXValue', - description='fixed maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as physical constraint', + alias="rtc:QTXValue", + description="fixed maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as physical constraint", ) @@ -5539,173 +5539,173 @@ class RtcDQ(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcFB1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcH2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcP3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPX1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQ8(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQI(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQMISC1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQS3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQSPercentage(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQT(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQTX1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcR2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcS3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTW(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcReservoirCompactOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_DQ: RtcDQ = Field( - ..., alias='rtc:DQ', description='deviation from spill target [m3/s] or [KCFS]' + ..., alias="rtc:DQ", description="deviation from spill target [m3/s] or [KCFS]" ) rtc_FB: RtcFB1 = Field( ..., - alias='rtc:FB', - description='forebay elevation [m above reference level] or [ft above sea level]', + alias="rtc:FB", + description="forebay elevation [m above reference level] or [ft above sea level]", ) - rtc_H: RtcH2 = Field(..., alias='rtc:H', description='head [m] or [ft]') - rtc_P: RtcP3 = Field(..., alias='rtc:P', description='power generation [MW]') + rtc_H: RtcH2 = Field(..., alias="rtc:H", description="head [m] or [ft]") + rtc_P: RtcP3 = Field(..., alias="rtc:P", description="power generation [MW]") rtc_PX: Optional[RtcPX1] = Field( - None, alias='rtc:PX', description='maximum power generation [MW]' + None, alias="rtc:PX", description="maximum power generation [MW]" ) rtc_Q: RtcQ8 = Field( - ..., alias='rtc:Q', description='reservoir outflow [m3/s] or [KCFS]' + ..., alias="rtc:Q", description="reservoir outflow [m3/s] or [KCFS]" ) rtc_QI: RtcQI = Field( - ..., alias='rtc:QI', description='reservoir inflow [m3/s] or [KCFS]' + ..., alias="rtc:QI", description="reservoir inflow [m3/s] or [KCFS]" ) rtc_QMISC: Optional[RtcQMISC1] = Field( - None, alias='rtc:QMISC', description='miscellaneous flow [m3/s] or [KCFS]' + None, alias="rtc:QMISC", description="miscellaneous flow [m3/s] or [KCFS]" ) - rtc_QS: RtcQS3 = Field(..., alias='rtc:QS', description='spillage [m3/s] or [KCFS]') + rtc_QS: RtcQS3 = Field(..., alias="rtc:QS", description="spillage [m3/s] or [KCFS]") rtc_QSPercentage: Optional[RtcQSPercentage] = Field( - None, alias='rtc:QSPercentage', description='relative spillage [0..100]' + None, alias="rtc:QSPercentage", description="relative spillage [0..100]" ) rtc_QT: RtcQT = Field( - ..., alias='rtc:QT', description='turbine flow [m3/s] or [KCFS]' + ..., alias="rtc:QT", description="turbine flow [m3/s] or [KCFS]" ) rtc_QTX: Optional[RtcQTX1] = Field( - None, alias='rtc:QTX', description='maximum turbine flow [m3/s] or [KCFS]' + None, alias="rtc:QTX", description="maximum turbine flow [m3/s] or [KCFS]" ) rtc_R: RtcR2 = Field( ..., - alias='rtc:R', - description='residuum of mass balance (in simultaneous mode) [m3/s] or [KCFS]', + alias="rtc:R", + description="residuum of mass balance (in simultaneous mode) [m3/s] or [KCFS]", ) rtc_S: RtcS3 = Field( ..., - alias='rtc:S', - description='storage [m3] or [KCFS-hrs], this is the system state needed in the state file', + alias="rtc:S", + description="storage [m3] or [KCFS-hrs], this is the system state needed in the state file", ) rtc_TW: RtcTW = Field( ..., - alias='rtc:TW', - description='tailwater elevation [m above reference level] or [ft above sea level]', + alias="rtc:TW", + description="tailwater elevation [m above reference level] or [ft above sea level]", ) @@ -5713,95 +5713,95 @@ class RtcMode4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcPoolRoutingEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcPoolRoutingEnumStringType] = Field(None, alias="$") class RtcTheta3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcLambda1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLambdaDown(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcReservoirGradientComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_lambda: RtcLambda1 = Field(..., alias='rtc:lambda') - rtc_lambdaDown: Optional[RtcLambdaDown] = Field(None, alias='rtc:lambdaDown') + _: Optional[str] = Field(None, alias="#") + rtc_lambda: RtcLambda1 = Field(..., alias="rtc:lambda") + rtc_lambdaDown: Optional[RtcLambdaDown] = Field(None, alias="rtc:lambdaDown") class RtcEvaporation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInflowItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPrecipitation(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcReservoirInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_evaporation: Optional[RtcEvaporation] = Field( None, - alias='rtc:evaporation', - description='Direct evaporation from the reservoir [mm/time step]', + alias="rtc:evaporation", + description="Direct evaporation from the reservoir [mm/time step]", ) - rtc_inflow: List[RtcInflowItem] = Field(..., alias='rtc:inflow', min_items=1) + rtc_inflow: List[RtcInflowItem] = Field(..., alias="rtc:inflow", min_items=1) rtc_level: Optional[RtcLevel] = Field( None, - alias='rtc:level', - description='Optional level [m] for updating the simulated level by an observed water level (simple data assimilation), if provided the error output is equal to the mass balance correction ', + alias="rtc:level", + description="Optional level [m] for updating the simulated level by an observed water level (simple data assimilation), if provided the error output is equal to the mass balance correction ", ) rtc_precipitation: Optional[RtcPrecipitation] = Field( None, - alias='rtc:precipitation', - description='Direct precitation into the reservoir [mm/time step], the value will be multiplied by the current water surface area of the reservoir', + alias="rtc:precipitation", + description="Direct precitation into the reservoir [mm/time step], the value will be multiplied by the current water surface area of the reservoir", ) @@ -5809,89 +5809,89 @@ class RtcError(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInflow(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLevel1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRelativeStorage(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRelease2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcResiduum1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcStorage(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcReservoirOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_error: Optional[RtcError] = Field( None, - alias='rtc:error', - description='optional error output [m3/s] which is non-zero if the simple data assimilation option for overruling the simulated water level is used ', + alias="rtc:error", + description="optional error output [m3/s] which is non-zero if the simple data assimilation option for overruling the simulated water level is used ", ) rtc_inflow: RtcInflow = Field( - ..., alias='rtc:inflow', description='aggregated inflows [m3/s]' + ..., alias="rtc:inflow", description="aggregated inflows [m3/s]" ) rtc_level: RtcLevel1 = Field( - ..., alias='rtc:level', description='water level [m] in the reservoir' + ..., alias="rtc:level", description="water level [m] in the reservoir" ) rtc_relativeStorage: Optional[RtcRelativeStorage] = Field( None, - alias='rtc:relativeStorage', - description='relative storage [-] typically between 0 and 1 depending on the definition of the maximum level above]', + alias="rtc:relativeStorage", + description="relative storage [-] typically between 0 and 1 depending on the definition of the maximum level above]", ) rtc_release: RtcRelease2 = Field( - ..., alias='rtc:release', description='aggregated release [m3/s]' + ..., alias="rtc:release", description="aggregated release [m3/s]" ) rtc_residuum: Optional[RtcResiduum1] = Field( None, - alias='rtc:residuum', - description='optional residuum of the implicit solution', + alias="rtc:residuum", + description="optional residuum of the implicit solution", ) rtc_storage: RtcStorage = Field( - ..., alias='rtc:storage', description='storage [m3] (state variable)' + ..., alias="rtc:storage", description="storage [m3] (state variable)" ) @@ -5899,13 +5899,13 @@ class RtcResponseStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputResponseStorageSystemComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcInputResponseStorageSystemComplexType = Field(..., alias="rtc:input") + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterResponseStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -5913,480 +5913,480 @@ class RtcOutput1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcValue2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInteger] = Field(None, alias="$") class RtcResultComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_output: RtcOutput1 = Field(..., alias='rtc:output') - rtc_value: RtcValue2 = Field(..., alias='rtc:value') + _: Optional[str] = Field(None, alias="#") + rtc_output: RtcOutput1 = Field(..., alias="rtc:output") + rtc_value: RtcValue2 = Field(..., alias="rtc:value") class RtcExponentWeirFormula1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcFlowDirection1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcFlowDirectionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcFlowDirectionEnumStringType] = Field(None, alias="$") class RtcSubmergedFlowFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSubmergedFlowRatio(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcWidth1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcCConst(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcCSeries(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDeltaHDown1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcDeltaHUp1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHDown10(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcHUp13(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRiverWeirInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_CConst: Optional[RtcCConst] = Field(None, alias='rtc:CConst') - rtc_CSeries: Optional[RtcCSeries] = Field(None, alias='rtc:CSeries') - rtc_DeltaHDown: Optional[RtcDeltaHDown1] = Field(None, alias='rtc:DeltaHDown') - rtc_DeltaHUp: Optional[RtcDeltaHUp1] = Field(None, alias='rtc:DeltaHUp') - rtc_HDown: RtcHDown10 = Field(..., alias='rtc:HDown') - rtc_HUp: RtcHUp13 = Field(..., alias='rtc:HUp') + _: Optional[str] = Field(None, alias="#") + rtc_CConst: Optional[RtcCConst] = Field(None, alias="rtc:CConst") + rtc_CSeries: Optional[RtcCSeries] = Field(None, alias="rtc:CSeries") + rtc_DeltaHDown: Optional[RtcDeltaHDown1] = Field(None, alias="rtc:DeltaHDown") + rtc_DeltaHUp: Optional[RtcDeltaHUp1] = Field(None, alias="rtc:DeltaHUp") + rtc_HDown: RtcHDown10 = Field(..., alias="rtc:HDown") + rtc_HUp: RtcHUp13 = Field(..., alias="rtc:HUp") class RtcC2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQ9(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcFlowType1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRiverWeirOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_C: RtcC2 = Field(..., alias='rtc:C') - rtc_Q: RtcQ9 = Field(..., alias='rtc:Q') - rtc_flowType: Optional[RtcFlowType1] = Field(None, alias='rtc:flowType') + _: Optional[str] = Field(None, alias="#") + rtc_C: RtcC2 = Field(..., alias="rtc:C") + rtc_Q: RtcQ9 = Field(..., alias="rtc:Q") + rtc_flowType: Optional[RtcFlowType1] = Field(None, alias="rtc:flowType") class RtcDischargeRef(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcDischarge2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcError1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRoutingOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_discharge: Optional[RtcDischarge2] = Field(None, alias='rtc:discharge') - rtc_error: Optional[RtcError1] = Field(None, alias='rtc:error') + _: Optional[str] = Field(None, alias="#") + rtc_discharge: Optional[RtcDischarge2] = Field(None, alias="rtc:discharge") + rtc_error: Optional[RtcError1] = Field(None, alias="rtc:error") class RtcRowComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _eta_head01: XsDouble = Field(..., alias='@eta_head01') - _eta_head02: XsDouble = Field(..., alias='@eta_head02') - _eta_head03: Optional[XsDouble] = Field(None, alias='@eta_head03') - _eta_head04: Optional[XsDouble] = Field(None, alias='@eta_head04') - _eta_head05: Optional[XsDouble] = Field(None, alias='@eta_head05') - _eta_head06: Optional[XsDouble] = Field(None, alias='@eta_head06') - _eta_head07: Optional[XsDouble] = Field(None, alias='@eta_head07') - _eta_head08: Optional[XsDouble] = Field(None, alias='@eta_head08') - _eta_head09: Optional[XsDouble] = Field(None, alias='@eta_head09') - _eta_head10: Optional[XsDouble] = Field(None, alias='@eta_head10') - _eta_head11: Optional[XsDouble] = Field(None, alias='@eta_head11') - _eta_head12: Optional[XsDouble] = Field(None, alias='@eta_head12') - _eta_head13: Optional[XsDouble] = Field(None, alias='@eta_head13') - _eta_head14: Optional[XsDouble] = Field(None, alias='@eta_head14') - _eta_head15: Optional[XsDouble] = Field(None, alias='@eta_head15') - _eta_head16: Optional[XsDouble] = Field(None, alias='@eta_head16') - _eta_head17: Optional[XsDouble] = Field(None, alias='@eta_head17') - _eta_head18: Optional[XsDouble] = Field(None, alias='@eta_head18') - _eta_head19: Optional[XsDouble] = Field(None, alias='@eta_head19') - _eta_head20: Optional[XsDouble] = Field(None, alias='@eta_head20') - _flow: XsDouble = Field(..., alias='@flow') + _: Optional[str] = Field(None, alias="#") + _eta_head01: XsDouble = Field(..., alias="@eta_head01") + _eta_head02: XsDouble = Field(..., alias="@eta_head02") + _eta_head03: Optional[XsDouble] = Field(None, alias="@eta_head03") + _eta_head04: Optional[XsDouble] = Field(None, alias="@eta_head04") + _eta_head05: Optional[XsDouble] = Field(None, alias="@eta_head05") + _eta_head06: Optional[XsDouble] = Field(None, alias="@eta_head06") + _eta_head07: Optional[XsDouble] = Field(None, alias="@eta_head07") + _eta_head08: Optional[XsDouble] = Field(None, alias="@eta_head08") + _eta_head09: Optional[XsDouble] = Field(None, alias="@eta_head09") + _eta_head10: Optional[XsDouble] = Field(None, alias="@eta_head10") + _eta_head11: Optional[XsDouble] = Field(None, alias="@eta_head11") + _eta_head12: Optional[XsDouble] = Field(None, alias="@eta_head12") + _eta_head13: Optional[XsDouble] = Field(None, alias="@eta_head13") + _eta_head14: Optional[XsDouble] = Field(None, alias="@eta_head14") + _eta_head15: Optional[XsDouble] = Field(None, alias="@eta_head15") + _eta_head16: Optional[XsDouble] = Field(None, alias="@eta_head16") + _eta_head17: Optional[XsDouble] = Field(None, alias="@eta_head17") + _eta_head18: Optional[XsDouble] = Field(None, alias="@eta_head18") + _eta_head19: Optional[XsDouble] = Field(None, alias="@eta_head19") + _eta_head20: Optional[XsDouble] = Field(None, alias="@eta_head20") + _flow: XsDouble = Field(..., alias="@flow") class RtcRuleId(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcRuleStateTriggerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_ruleId: RtcRuleId = Field(..., alias='rtc:ruleId') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_ruleId: RtcRuleId = Field(..., alias="rtc:ruleId") class RtcP4(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcPVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRCA(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcRCAVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSCA(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSCAVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcT3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcCr(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcCrVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcCs(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcCsVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSRMInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_P: Optional[RtcP4] = Field(None, alias='rtc:P') - rtc_P_Vector: Optional[RtcPVector] = Field(None, alias='rtc:P-Vector') - rtc_RCA: Optional[RtcRCA] = Field(None, alias='rtc:RCA') - rtc_RCA_Vector: Optional[RtcRCAVector] = Field(None, alias='rtc:RCA-Vector') - rtc_SCA: Optional[RtcSCA] = Field(None, alias='rtc:SCA') - rtc_SCA_Vector: Optional[RtcSCAVector] = Field(None, alias='rtc:SCA-Vector') - rtc_T: Optional[RtcT3] = Field(None, alias='rtc:T') - rtc_T_Vector: Optional[RtcTVector] = Field(None, alias='rtc:T-Vector') - rtc_cr: Optional[RtcCr] = Field(None, alias='rtc:cr') - rtc_cr_Vector: Optional[RtcCrVector] = Field(None, alias='rtc:cr-Vector') - rtc_cs: Optional[RtcCs] = Field(None, alias='rtc:cs') - rtc_cs_Vector: Optional[RtcCsVector] = Field(None, alias='rtc:cs-Vector') + _: Optional[str] = Field(None, alias="#") + rtc_P: Optional[RtcP4] = Field(None, alias="rtc:P") + rtc_P_Vector: Optional[RtcPVector] = Field(None, alias="rtc:P-Vector") + rtc_RCA: Optional[RtcRCA] = Field(None, alias="rtc:RCA") + rtc_RCA_Vector: Optional[RtcRCAVector] = Field(None, alias="rtc:RCA-Vector") + rtc_SCA: Optional[RtcSCA] = Field(None, alias="rtc:SCA") + rtc_SCA_Vector: Optional[RtcSCAVector] = Field(None, alias="rtc:SCA-Vector") + rtc_T: Optional[RtcT3] = Field(None, alias="rtc:T") + rtc_T_Vector: Optional[RtcTVector] = Field(None, alias="rtc:T-Vector") + rtc_cr: Optional[RtcCr] = Field(None, alias="rtc:cr") + rtc_cr_Vector: Optional[RtcCrVector] = Field(None, alias="rtc:cr-Vector") + rtc_cs: Optional[RtcCs] = Field(None, alias="rtc:cs") + rtc_cs_Vector: Optional[RtcCsVector] = Field(None, alias="rtc:cs-Vector") class RtcQRainVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQSnowVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQStorageVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSRMOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_QRain_Vector: RtcQRainVector = Field(..., alias='rtc:QRain-Vector') - rtc_QSnow_Vector: RtcQSnowVector = Field(..., alias='rtc:QSnow-Vector') - rtc_QStorage_Vector: RtcQStorageVector = Field(..., alias='rtc:QStorage-Vector') + _: Optional[str] = Field(None, alias="#") + rtc_QRain_Vector: RtcQRainVector = Field(..., alias="rtc:QRain-Vector") + rtc_QSnow_Vector: RtcQSnowVector = Field(..., alias="rtc:QSnow-Vector") + rtc_QStorage_Vector: RtcQStorageVector = Field(..., alias="rtc:QStorage-Vector") class RtcSRMParameterZoneComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: Optional[XsString] = Field(None, alias='@id') + _: Optional[str] = Field(None, alias="#") + _id: Optional[XsString] = Field(None, alias="@id") rtc_Tcr1: RtcTcr1 = Field( - ..., alias='rtc:Tcr1', description='critical temperature (???) [oC]' + ..., alias="rtc:Tcr1", description="critical temperature (???) [oC]" ) rtc_Tcr2: RtcTcr2 = Field( - ..., alias='rtc:Tcr2', description='critical temperature (???) [oC]' + ..., alias="rtc:Tcr2", description="critical temperature (???) [oC]" ) rtc_a: RtcA5 = Field( - ..., alias='rtc:a', description='degree day factor [mm/(oC*day)]' + ..., alias="rtc:a", description="degree day factor [mm/(oC*day)]" ) - rtc_area: RtcArea = Field(..., alias='rtc:area', description='area [km2]') + rtc_area: RtcArea = Field(..., alias="rtc:area", description="area [km2]") class RtcPStorageVector(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcQ10(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSRMStateComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_PStorage_Vector: RtcPStorageVector = Field( ..., - alias='rtc:PStorage-Vector', - description='snow storage of non-snow-covered areas [mm]', + alias="rtc:PStorage-Vector", + description="snow storage of non-snow-covered areas [mm]", ) - rtc_Q: RtcQ10 = Field(..., alias='rtc:Q', description='discharge [m3/s]') + rtc_Q: RtcQ10 = Field(..., alias="rtc:Q", description="discharge [m3/s]") class RtcDefault2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcLogicalOperator(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcLogicalOperatorEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcLogicalOperatorEnumStringType] = Field(None, alias="$") class RtcX1Value2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcX2Value2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcSnowRainJunctionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputSnowRainJunctionComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOutputSnowRainJunctionComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcInputSnowRainJunctionComplexType = Field(..., alias="rtc:input") + rtc_output: RtcOutputSnowRainJunctionComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterSnowRainJunctionComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -6394,15 +6394,15 @@ class RtcSoilRunoffStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInputSoilRunoffStorageSystemComplexType = Field( - ..., alias='rtc:input' + ..., alias="rtc:input" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterSoilRunoffStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -6410,71 +6410,71 @@ class RtcDefaultInputValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcDefaultOutputValue(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcTolerance(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcSpreadsheetInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x1: rtc_TimeSeriesSimpleType.Field14 = Field(..., alias='rtc:x1') - rtc_x2: rtc_TimeSeriesSimpleType.Field15 = Field(..., alias='rtc:x2') - rtc_x3: Optional[rtc_TimeSeriesSimpleType.Field16] = Field(None, alias='rtc:x3') + _: Optional[str] = Field(None, alias="#") + rtc_x1: rtc_TimeSeriesSimpleType.Field14 = Field(..., alias="rtc:x1") + rtc_x2: rtc_TimeSeriesSimpleType.Field15 = Field(..., alias="rtc:x2") + rtc_x3: Optional[rtc_TimeSeriesSimpleType.Field16] = Field(None, alias="rtc:x3") class RtcStatus3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcSpreadsheetOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_status: RtcStatus3 = Field(..., alias='rtc:status') + _: Optional[str] = Field(None, alias="#") + rtc_status: RtcStatus3 = Field(..., alias="rtc:status") class RtcSpreadsheetRecordComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _x1: XsDouble = Field(..., alias='@x1') - _x2: XsDouble = Field(..., alias='@x2') - _x3: Optional[XsDouble] = Field(None, alias='@x3') - _y: XsDouble = Field(..., alias='@y') + _: Optional[str] = Field(None, alias="#") + _x1: XsDouble = Field(..., alias="@x1") + _x2: XsDouble = Field(..., alias="@x2") + _x3: Optional[XsDouble] = Field(None, alias="@x3") + _y: XsDouble = Field(..., alias="@y") class RtcSpreadsheetTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _initialState: Optional[XsDouble] = Field(None, alias='@initialState') + _: Optional[str] = Field(None, alias="#") + _initialState: Optional[XsDouble] = Field(None, alias="@initialState") rtc_record: List[RtcSpreadsheetRecordComplexType] = Field( - ..., alias='rtc:record', min_items=1 + ..., alias="rtc:record", min_items=1 ) @@ -6482,9 +6482,9 @@ class RtcSpreadsheetTablesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_table: List[RtcSpreadsheetTableComplexType] = Field( - ..., alias='rtc:table', min_items=1 + ..., alias="rtc:table", min_items=1 ) @@ -6492,37 +6492,37 @@ class RtcDefault3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcMaximumLevel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcStorageCharacteristicsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_maximumLevel: Optional[RtcMaximumLevel] = Field( None, - alias='rtc:maximumLevel', - description='Maximum water level h in the reservoir: this optional value does not limit the water level, it is used however to compute the relative filling percentage of the reservoir according to s = S/S(maximumLevel), where S is the absolute storage volume', + alias="rtc:maximumLevel", + description="Maximum water level h in the reservoir: this optional value does not limit the water level, it is used however to compute the relative filling percentage of the reservoir according to s = S/S(maximumLevel), where S is the absolute storage volume", ) rtc_storageEquation: Optional[RtcEquationsComplexType] = Field( None, - alias='rtc:storageEquation', - description='Storage equation, storage S = f(water level h)', + alias="rtc:storageEquation", + description="Storage equation, storage S = f(water level h)", ) rtc_storageTable: Optional[RtcElevationTableComplexType] = Field( None, - alias='rtc:storageTable', - description='Storage table with pairs of elevation h and storage S', + alias="rtc:storageTable", + description="Storage table with pairs of elevation h and storage S", ) @@ -6530,47 +6530,47 @@ class RtcAcceptableConvergenceThreshold(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcConvergenceThreshold1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcTreatNonConvergenceAsError1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsBoolean] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsBoolean] = Field(None, alias="$") class RtcStorageSystemSettingsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_acceptableConvergenceThreshold: Optional[ RtcAcceptableConvergenceThreshold ] = Field( None, - alias='rtc:acceptableConvergenceThreshold', - description='optional threshold after reaching the maximum number of iterations, writes a warning if reached, writes error otherwise', + alias="rtc:acceptableConvergenceThreshold", + description="optional threshold after reaching the maximum number of iterations, writes a warning if reached, writes error otherwise", ) rtc_convergenceThreshold: RtcConvergenceThreshold1 = Field( ..., - alias='rtc:convergenceThreshold', - description='iteration stops after reaching this threshold', + alias="rtc:convergenceThreshold", + description="iteration stops after reaching this threshold", ) rtc_treatNonConvergenceAsError: RtcTreatNonConvergenceAsError1 = Field( ..., - alias='rtc:treatNonConvergenceAsError', - description='treat non-convergence related to the thresholds as error or not', + alias="rtc:treatNonConvergenceAsError", + description="treat non-convergence related to the thresholds as error or not", ) @@ -6578,9 +6578,9 @@ class RtcTableLookupTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_record: List[RtcDateRecord2DataComplexType] = Field( - ..., alias='rtc:record', min_items=1 + ..., alias="rtc:record", min_items=1 ) @@ -6588,31 +6588,31 @@ class RtcConstant1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcFBDown(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTailwaterEquationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_A: RtcA6 = Field(..., alias='rtc:A') - rtc_B: RtcB3 = Field(..., alias='rtc:B') - rtc_C: RtcC3 = Field(..., alias='rtc:C') - rtc_D: Optional[RtcD7] = Field(None, alias='rtc:D') + _: Optional[str] = Field(None, alias="#") + rtc_A: RtcA6 = Field(..., alias="rtc:A") + rtc_B: RtcB3 = Field(..., alias="rtc:B") + rtc_C: RtcC3 = Field(..., alias="rtc:C") + rtc_D: Optional[RtcD7] = Field(None, alias="rtc:D") rtc_FBDown: Optional[RtcFBDown] = Field( None, - alias='rtc:FBDown', - description='time series reference to forebay elevation of the downstream project, only required if B is non-zero', + alias="rtc:FBDown", + description="time series reference to forebay elevation of the downstream project, only required if B is non-zero", ) @@ -6620,26 +6620,26 @@ class RtcHead(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLevel2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTailwaterOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_head: RtcHead = Field(..., alias='rtc:head', description='head [m]') + _: Optional[str] = Field(None, alias="#") + rtc_head: RtcHead = Field(..., alias="rtc:head", description="head [m]") rtc_level: RtcLevel2 = Field( - ..., alias='rtc:level', description='tailwater level [m]' + ..., alias="rtc:level", description="tailwater level [m]" ) @@ -6647,203 +6647,203 @@ class RtcQObs(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTWObs(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTailwaterTidalEquationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_A: RtcA7 = Field(..., alias='rtc:A') - rtc_QObs: RtcQObs = Field(..., alias='rtc:QObs') - rtc_TWObs: RtcTWObs = Field(..., alias='rtc:TWObs') + _: Optional[str] = Field(None, alias="#") + rtc_A: RtcA7 = Field(..., alias="rtc:A") + rtc_QObs: RtcQObs = Field(..., alias="rtc:QObs") + rtc_TWObs: RtcTWObs = Field(..., alias="rtc:TWObs") class RtcLevelSetpoint(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcReleaseLimiterPercentage(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcCatchment(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcInflow1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcLevel3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcThunerseeRuleInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_catchment: RtcCatchment = Field(..., alias='rtc:catchment') - rtc_inflow: RtcInflow1 = Field(..., alias='rtc:inflow') - rtc_level: RtcLevel3 = Field(..., alias='rtc:level') + _: Optional[str] = Field(None, alias="#") + rtc_catchment: RtcCatchment = Field(..., alias="rtc:catchment") + rtc_inflow: RtcInflow1 = Field(..., alias="rtc:inflow") + rtc_level: RtcLevel3 = Field(..., alias="rtc:level") class RtcActive1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcReleaseTotal(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcReleaseTunnel(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcReleaseWeir(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcThunerseeRuleOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_active: Optional[RtcActive1] = Field(None, alias='rtc:active') - rtc_releaseTotal: RtcReleaseTotal = Field(..., alias='rtc:releaseTotal') - rtc_releaseTunnel: RtcReleaseTunnel = Field(..., alias='rtc:releaseTunnel') - rtc_releaseWeir: RtcReleaseWeir = Field(..., alias='rtc:releaseWeir') + _: Optional[str] = Field(None, alias="#") + rtc_active: Optional[RtcActive1] = Field(None, alias="rtc:active") + rtc_releaseTotal: RtcReleaseTotal = Field(..., alias="rtc:releaseTotal") + rtc_releaseTunnel: RtcReleaseTunnel = Field(..., alias="rtc:releaseTunnel") + rtc_releaseWeir: RtcReleaseWeir = Field(..., alias="rtc:releaseWeir") class RtcX11(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTimeAbsoluteInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_x: RtcX11 = Field(..., alias='rtc:x') + _: Optional[str] = Field(None, alias="#") + rtc_x: RtcX11 = Field(..., alias="rtc:x") class RtcY15(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTimeAbsoluteOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_y: RtcY15 = Field(..., alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_y: RtcY15 = Field(..., alias="rtc:y") class RtcInterpolationOption1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcInterpolationOptionEnumStringType] = Field(None, alias="$") class RtcMaximumPeriod(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcValueOption(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeRelativeEnumStringType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeRelativeEnumStringType] = Field(None, alias="$") class RtcTimeRelativeControlTableRecordComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _time: XsDouble = Field(..., alias='@time') - _value: XsDouble = Field(..., alias='@value') + _: Optional[str] = Field(None, alias="#") + _time: XsDouble = Field(..., alias="@time") + _value: XsDouble = Field(..., alias="@value") class RtcY16(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTimeRelativeInputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_y: RtcY16 = Field( ..., - alias='rtc:y', - description='optional input for deriving the timeActive in case of the relative from Value option', + alias="rtc:y", + description="optional input for deriving the timeActive in case of the relative from Value option", ) @@ -6851,84 +6851,84 @@ class RtcTimeActive(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcY17(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="$") class RtcTimeRelativeOutputComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_timeActive: RtcTimeActive = Field(..., alias='rtc:timeActive') - rtc_y: RtcY17 = Field(..., alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_timeActive: RtcTimeActive = Field(..., alias="rtc:timeActive") + rtc_y: RtcY17 = Field(..., alias="rtc:y") class RtcTimeStepComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') - _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') - _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + _: Optional[str] = Field(None, alias="#") + _divider: Optional[XsPositiveInteger] = Field(None, alias="@divider") + _multiplier: Optional[XsPositiveInteger] = Field(None, alias="@multiplier") + _unit: RtcTimeStepUnitEnumStringType = Field(..., alias="@unit") class RtcRuleReference(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcValue3(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsInteger] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsInteger] = Field(None, alias="$") class RtcTriggerControllerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_input: RtcInput = Field(..., alias='rtc:input') - rtc_value: RtcValue3 = Field(..., alias='rtc:value') + _: Optional[str] = Field(None, alias="#") + rtc_input: RtcInput = Field(..., alias="rtc:input") + rtc_value: RtcValue3 = Field(..., alias="rtc:value") class RtcLevelThreshold(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcTurbineCapacityCharacteristicsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_capacityEquation: Optional[RtcEquationsComplexType] = Field( None, - alias='rtc:capacityEquation', - description='capacity equation of hydropower turbine as a function of the water head', + alias="rtc:capacityEquation", + description="capacity equation of hydropower turbine as a function of the water head", ) rtc_capacityTable: Optional[RtcElevationTableComplexType] = Field( None, - alias='rtc:capacityTable', - description='capacity table of hydropower turbine as a function of the water head', + alias="rtc:capacityTable", + description="capacity table of hydropower turbine as a function of the water head", ) @@ -6936,14 +6936,14 @@ class RtcTurbineCharacteristicsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_efficiencyTable: RtcElevationTableComplexType = Field( ..., - alias='rtc:efficiencyTable', - description='efficiency table unit power output [MW / m3/s] as function of head [m] ', + alias="rtc:efficiencyTable", + description="efficiency table unit power output [MW / m3/s] as function of head [m] ", ) rtc_output: RtcTurbineOutputCharacteristicsComplexType = Field( - ..., alias='rtc:output' + ..., alias="rtc:output" ) @@ -6951,35 +6951,35 @@ class RtcNodeDown(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcNodeUp(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcEfficiencyConstant(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcTurbineEfficiencyCharacteristicsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_efficiencyConstant: Optional[RtcEfficiencyConstant] = Field( None, - alias='rtc:efficiencyConstant', - description='constant efficiency over all discharges, typical range is [0.80, 0.90]', + alias="rtc:efficiencyConstant", + description="constant efficiency over all discharges, typical range is [0.80, 0.90]", ) @@ -6987,50 +6987,50 @@ class RtcTurbineEfficiencyTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_columns: RtcColumnsComplexType = Field( ..., - alias='rtc:columns', - description='column Ids refering to the head [m] of each column', + alias="rtc:columns", + description="column Ids refering to the head [m] of each column", ) rtc_maxFlows: RtcMaxFlowsComplexType = Field( ..., - alias='rtc:maxFlows', - description='maximum flow for a given head (provided above)', + alias="rtc:maxFlows", + description="maximum flow for a given head (provided above)", ) - rtc_row: List[RtcRowComplexType] = Field(..., alias='rtc:row', min_items=1) + rtc_row: List[RtcRowComplexType] = Field(..., alias="rtc:row", min_items=1) class RtcTypicalProfileComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_data: List[RtcDataTypicalProfileComplexType] = Field( - ..., alias='rtc:data', min_items=1 + ..., alias="rtc:data", min_items=1 ) - rtc_output: RtcOutput2 = Field(..., alias='rtc:output') + rtc_output: RtcOutput2 = Field(..., alias="rtc:output") class RtcUnitDelayComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcUnitDelayInputComplexType = Field(..., alias='rtc:input') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcUnitDelayInputComplexType = Field(..., alias="rtc:input") rtc_nStep: Optional[RtcNStep] = Field( None, - alias='rtc:nStep', - description='nStep optionally provides a delay with an arbitrary numer of time steps or sub time step, i.e. 1.5 time steps, if being used also specify the yFinal tag in the output options', + alias="rtc:nStep", + description="nStep optionally provides a delay with an arbitrary numer of time steps or sub time step, i.e. 1.5 time steps, if being used also specify the yFinal tag in the output options", ) rtc_output: RtcUnitDelayOutputComplexType = Field( ..., - alias='rtc:output', - description='The configuration of a multiple unit delay requires the configuration of a time series for each delay time step', + alias="rtc:output", + description="The configuration of a multiple unit delay requires the configuration of a time series for each delay time step", ) @@ -7038,36 +7038,36 @@ class RtcWeightItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcUnitHydrographWeightCustomComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_weight: List[RtcWeightItem] = Field(..., alias='rtc:weight', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_weight: List[RtcWeightItem] = Field(..., alias="rtc:weight", min_items=1) class RtcFactor(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsDouble] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsDouble] = Field(None, alias="$") class RtcUnitHydrographWeightTriangularComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_factor: Optional[RtcFactor] = Field( - None, alias='rtc:factor', description='sum of all weight, if not equal to 1.0' + None, alias="rtc:factor", description="sum of all weight, if not equal to 1.0" ) rtc_nSteps: RtcNSteps = Field( - ..., alias='rtc:nSteps', description='number of time steps' + ..., alias="rtc:nSteps", description="number of time steps" ) @@ -7075,18 +7075,18 @@ class RtcValidPeriodComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_endDate: RtcDateComplexType = Field(..., alias='rtc:endDate') - rtc_startDate: RtcDateComplexType = Field(..., alias='rtc:startDate') + _: Optional[str] = Field(None, alias="#") + rtc_endDate: RtcDateComplexType = Field(..., alias="rtc:endDate") + rtc_startDate: RtcDateComplexType = Field(..., alias="rtc:startDate") class RtcValidPeriodsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_validPeriod: Optional[List[RtcValidPeriodComplexType]] = Field( - None, alias='rtc:validPeriod' + None, alias="rtc:validPeriod" ) @@ -7094,65 +7094,65 @@ class RtcValueItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsFloat] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsFloat] = Field(None, alias="$") class RtcValueArrayComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_value: List[RtcValueItem] = Field(..., alias='rtc:value', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_value: List[RtcValueItem] = Field(..., alias="rtc:value", min_items=1) class RtcYDimItem(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsFloat] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsFloat] = Field(None, alias="$") class RtcYDimComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_yDim: List[RtcYDimItem] = Field(..., alias='rtc:yDim', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_yDim: List[RtcYDimItem] = Field(..., alias="rtc:yDim", min_items=1) class RtcZoneComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _max: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@max') - _min: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@min') - rtc_dateTable: RtcDateTableComplexType = Field(..., alias='rtc:dateTable') + _: Optional[str] = Field(None, alias="#") + _max: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="@max") + _min: Optional[RtcTimeSeriesSimpleType] = Field(None, alias="@min") + rtc_dateTable: RtcDateTableComplexType = Field(..., alias="rtc:dateTable") class RtcZonesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_zone: List[RtcZoneComplexType] = Field(..., alias='rtc:zone', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_zone: List[RtcZoneComplexType] = Field(..., alias="rtc:zone", min_items=1) class RtcEvaporationActualStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInputEvaporationActualStorageSystemComplexType = Field( - ..., alias='rtc:input' + ..., alias="rtc:input" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterEvaporationActualStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -7160,15 +7160,15 @@ class RtcEvaporationInterceptionStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInputEvaporationInterceptionStorageSystemComplexType = Field( - ..., alias='rtc:input' + ..., alias="rtc:input" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterEvaporationInterceptionStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -7176,15 +7176,15 @@ class RtcGroundwaterFlowStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInputGroundwaterFlowStorageSystemComplexType = Field( - ..., alias='rtc:input' + ..., alias="rtc:input" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParametergroundwaterFlowStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -7192,38 +7192,38 @@ class RtcNodeD(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcNodeU(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcIrrigationStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_nodeD: RtcNodeD = Field( ..., - alias='rtc:nodeD', - description='downstream node which recieves the irrigation water', + alias="rtc:nodeD", + description="downstream node which recieves the irrigation water", ) rtc_nodeU: RtcNodeU = Field( ..., - alias='rtc:nodeU', - description='upstream node, source of water usually the drinking water treatment plant', + alias="rtc:nodeU", + description="upstream node, source of water usually the drinking water treatment plant", ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterIrrigationStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -7231,39 +7231,39 @@ class RtcNodeD1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcNodeU1(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcMeltRefreezingStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInput1 = Field( - ..., alias='rtc:input', description='instanteneous temperature [oC]' + ..., alias="rtc:input", description="instanteneous temperature [oC]" ) rtc_nodeD: RtcNodeD1 = Field( ..., - alias='rtc:nodeD', - description='downstream node, typically WC (water content)', + alias="rtc:nodeD", + description="downstream node, typically WC (water content)", ) rtc_nodeU: RtcNodeU1 = Field( - ..., alias='rtc:nodeU', description='upstream node, typically SP (snow pack)' + ..., alias="rtc:nodeU", description="upstream node, typically SP (snow pack)" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterMeltRefreezingStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -7271,15 +7271,15 @@ class RtcReleaseAboveThresholdStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInputReleaseAboveThresholdStorageSystemComplexType = Field( - ..., alias='rtc:input' + ..., alias="rtc:input" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterReleaseAboveThresholdStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -7287,38 +7287,38 @@ class RtcNodeA(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcNodeU2(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - __1: Optional[XsString] = Field(None, alias='$') + _: Optional[str] = Field(None, alias="#") + __1: Optional[XsString] = Field(None, alias="$") class RtcReleaseWaterContentStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_nodeA: RtcNodeA = Field( ..., - alias='rtc:nodeA', - description='auxiliary node with snow pack, typically SP (snow pack)', + alias="rtc:nodeA", + description="auxiliary node with snow pack, typically SP (snow pack)", ) rtc_nodeU: RtcNodeU2 = Field( ..., - alias='rtc:nodeU', - description='upstream node, typically WC (water content)', + alias="rtc:nodeU", + description="upstream node, typically WC (water content)", ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterReleaseWaterContentStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -7326,15 +7326,15 @@ class RtcWaterDistributionConstantStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInputWaterDistributionConstantStorageSystemComplexType = Field( - ..., alias='rtc:input' + ..., alias="rtc:input" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterWaterDistributionConstantStorageSystemComplexType = ( - Field(..., alias='rtc:parameter') + Field(..., alias="rtc:parameter") ) @@ -7342,15 +7342,15 @@ class RtcWaterDistributionVariableStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInputWaterDistributionVariableStorageSystemComplexType = Field( - ..., alias='rtc:input' + ..., alias="rtc:input" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterWaterDistributionVariableStorageSystemComplexType = ( - Field(..., alias='rtc:parameter') + Field(..., alias="rtc:parameter") ) @@ -7358,43 +7358,43 @@ class RtcAccumulationComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcAccumulationInputComplexType = Field( - ..., alias='rtc:input', description='input variable' + ..., alias="rtc:input", description="input variable" ) rtc_multiplier: Optional[RtcMultiplier] = Field( - None, alias='rtc:multiplier', description='optional multiplier' + None, alias="rtc:multiplier", description="optional multiplier" ) - rtc_output: RtcAccumulationOutputComplexType = Field(..., alias='rtc:output') + rtc_output: RtcAccumulationOutputComplexType = Field(..., alias="rtc:output") class RtcAebiRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_FactorRTG: RtcFactorRTG = Field(..., alias='rtc:FactorRTG') - rtc_LangeteFall: RtcLangeteFall = Field(..., alias='rtc:LangeteFall') - rtc_input: RtcAebiRuleInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcAebiRuleOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_FactorRTG: RtcFactorRTG = Field(..., alias="rtc:FactorRTG") + rtc_LangeteFall: RtcLangeteFall = Field(..., alias="rtc:LangeteFall") + rtc_input: RtcAebiRuleInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcAebiRuleOutputComplexType = Field(..., alias="rtc:output") class RtcAllocationTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputATableComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOutputATableComplexType = Field(..., alias='rtc:output') - rtc_table: Optional[RtcATableComplexType] = Field(None, alias='rtc:table') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcInputATableComplexType = Field(..., alias="rtc:input") + rtc_output: RtcOutputATableComplexType = Field(..., alias="rtc:output") + rtc_table: Optional[RtcATableComplexType] = Field(None, alias="rtc:table") rtc_tableExternal: Optional[RtcTableExternal] = Field( - None, alias='rtc:tableExternal' + None, alias="rtc:tableExternal" ) @@ -7402,31 +7402,31 @@ class RtcArmaComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_arCoef: RtcArCoef = Field( ..., - alias='rtc:arCoef', - description='autoregression coefficient related to prior time step', + alias="rtc:arCoef", + description="autoregression coefficient related to prior time step", ) - rtc_input: RtcArmaInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcArmaOutputComplexType = Field(..., alias='rtc:output') + rtc_input: RtcArmaInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcArmaOutputComplexType = Field(..., alias="rtc:output") class RtcCapacityCharacteristicsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") _reference: Optional[RtcCapacityReferenceEnumStringType] = Field( - None, alias='@reference' + None, alias="@reference" ) rtc_capacityEquation: Optional[RtcEquationsComplexType] = Field( - None, alias='rtc:capacityEquation' + None, alias="rtc:capacityEquation" ) rtc_capacityTable: Optional[RtcElevationTableComplexType] = Field( - None, alias='rtc:capacityTable' + None, alias="rtc:capacityTable" ) @@ -7434,15 +7434,15 @@ class RtcCapillaryFlowStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcInputCapillaryFlowStorageSystemComplexType = Field( - ..., alias='rtc:input' + ..., alias="rtc:input" ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias="rtc:output") rtc_parameter: RtcParameterCapillaryFlowStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -7450,31 +7450,31 @@ class RtcConstantRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_constant: RtcConstant = Field(..., alias='rtc:constant') - rtc_output: RtcConstantRuleOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_constant: RtcConstant = Field(..., alias="rtc:constant") + rtc_output: RtcConstantRuleOutputComplexType = Field(..., alias="rtc:output") class RtcControlledOutletComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( ..., - alias='rtc:capacityCharacteristics', - description='Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero', + alias="rtc:capacityCharacteristics", + description="Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero", ) - rtc_input: RtcOutletInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOutletOutputComplexType = Field(..., alias='rtc:output') + rtc_input: RtcOutletInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcOutletOutputComplexType = Field(..., alias="rtc:output") rtc_turbineCharacteristics: Optional[RtcTurbineCharacteristicsComplexType] = Field( None, - alias='rtc:turbineCharacteristics', - description='Characteristics of optional turbine', + alias="rtc:turbineCharacteristics", + description="Characteristics of optional turbine", ) @@ -7482,11 +7482,11 @@ class RtcCrossSectionComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_crossSectionTable: RtcElevationTableComplexType = Field( ..., - alias='rtc:crossSectionTable', - description='Tabulated cross section, pairs of elevation h and width b ', + alias="rtc:crossSectionTable", + description="Tabulated cross section, pairs of elevation h and width b ", ) @@ -7494,11 +7494,11 @@ class RtcCrossSectionRoughnessComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_roughnessTable: RtcElevationTableComplexType = Field( ..., - alias='rtc:roughnessTable', - description='Pairs of elevation h and roughness C (according to Chezy)', + alias="rtc:roughnessTable", + description="Pairs of elevation h and roughness C (according to Chezy)", ) @@ -7506,10 +7506,10 @@ class RtcDateRecord2ComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _monthDay: XsGMonthDay = Field(..., alias='@monthDay') + _: Optional[str] = Field(None, alias="#") + _monthDay: XsGMonthDay = Field(..., alias="@monthDay") rtc_record: List[RtcDateRecord2DataComplexType] = Field( - ..., alias='rtc:record', min_items=1 + ..., alias="rtc:record", min_items=1 ) @@ -7517,26 +7517,26 @@ class RtcDeadBandValueComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcDeadBandValueInputComplexType = Field(..., alias='rtc:input') - rtc_threshold: RtcThreshold = Field(..., alias='rtc:threshold') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcDeadBandValueInputComplexType = Field(..., alias="rtc:input") + rtc_threshold: RtcThreshold = Field(..., alias="rtc:threshold") class RtcEvaporationPotentialComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputEvaporationPotentialComplexType = Field(..., alias='rtc:input') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcInputEvaporationPotentialComplexType = Field(..., alias="rtc:input") rtc_output: RtcOutputEvaporationPotentialComplexType = Field( - ..., alias='rtc:output' + ..., alias="rtc:output" ) rtc_parameter: RtcParameterEvaporationPotentialComplexType = Field( - ..., alias='rtc:parameter' + ..., alias="rtc:parameter" ) @@ -7544,17 +7544,17 @@ class RtcGradientComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcGradientInputComplexType = Field( - ..., alias='rtc:input', description='input variable' + ..., alias="rtc:input", description="input variable" ) rtc_multiplier: Optional[RtcMultiplier1] = Field( - None, alias='rtc:multiplier', description='optional multiplier' + None, alias="rtc:multiplier", description="optional multiplier" ) rtc_output: RtcGradientOutputComplexType = Field( - ..., alias='rtc:output', description='gradient, dx = multiplier*(xNew-xOld)/dt' + ..., alias="rtc:output", description="gradient, dx = multiplier*(xNew-xOld)/dt" ) @@ -7562,47 +7562,47 @@ class RtcGuideBandRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcGuideBandRuleInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcGuideBandRuleOutputComplexType = Field(..., alias='rtc:output') - rtc_xMax: RtcDateTableComplexType = Field(..., alias='rtc:xMax') - rtc_xMin: RtcDateTableComplexType = Field(..., alias='rtc:xMin') - rtc_yMax: Optional[RtcYMax] = Field(None, alias='rtc:yMax') - rtc_yMaxSeries: Optional[RtcYMaxSeries] = Field(None, alias='rtc:yMaxSeries') - rtc_yMin: Optional[RtcYMin] = Field(None, alias='rtc:yMin') - rtc_yMinSeries: Optional[RtcYMinSeries] = Field(None, alias='rtc:yMinSeries') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcGuideBandRuleInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcGuideBandRuleOutputComplexType = Field(..., alias="rtc:output") + rtc_xMax: RtcDateTableComplexType = Field(..., alias="rtc:xMax") + rtc_xMin: RtcDateTableComplexType = Field(..., alias="rtc:xMin") + rtc_yMax: Optional[RtcYMax] = Field(None, alias="rtc:yMax") + rtc_yMaxSeries: Optional[RtcYMaxSeries] = Field(None, alias="rtc:yMaxSeries") + rtc_yMin: Optional[RtcYMin] = Field(None, alias="rtc:yMin") + rtc_yMinSeries: Optional[RtcYMinSeries] = Field(None, alias="rtc:yMinSeries") class RtcHBVComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcHBVInputComplexType = Field(..., alias='rtc:input') - rtc_link: Optional[RtcHBVLinkComplexType] = Field(None, alias='rtc:link') - rtc_output: RtcHBVOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcHBVInputComplexType = Field(..., alias="rtc:input") + rtc_link: Optional[RtcHBVLinkComplexType] = Field(None, alias="rtc:link") + rtc_output: RtcHBVOutputComplexType = Field(..., alias="rtc:output") rtc_parameterInput: RtcHBVParameterInputComplexType = Field( - ..., alias='rtc:parameterInput' + ..., alias="rtc:parameterInput" ) rtc_parameterInterception: RtcHBVParameterInterceptionComplexType = Field( - ..., alias='rtc:parameterInterception' + ..., alias="rtc:parameterInterception" ) rtc_parameterResponse: RtcHBVParameterResponseComplexType = Field( - ..., alias='rtc:parameterResponse' + ..., alias="rtc:parameterResponse" ) rtc_parameterSnow: RtcHBVParameterSnowComplexType = Field( - ..., alias='rtc:parameterSnow' + ..., alias="rtc:parameterSnow" ) rtc_parameterSoil: RtcHBVParameterSoilComplexType = Field( - ..., alias='rtc:parameterSoil' + ..., alias="rtc:parameterSoil" ) - rtc_state: RtcHBVStateComplexType = Field(..., alias='rtc:state') + rtc_state: RtcHBVStateComplexType = Field(..., alias="rtc:state") rtc_stateUpdate: Optional[RtcHBVStateUpdateComplexType] = Field( - None, alias='rtc:stateUpdate' + None, alias="rtc:stateUpdate" ) @@ -7610,24 +7610,24 @@ class RtcIntervalComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_deadbandSetpointAbsolute: Optional[RtcDeadbandSetpointAbsolute] = Field( - None, alias='rtc:deadbandSetpointAbsolute' + None, alias="rtc:deadbandSetpointAbsolute" ) rtc_deadbandSetpointRelative: Optional[RtcDeadbandSetpointRelative] = Field( - None, alias='rtc:deadbandSetpointRelative' + None, alias="rtc:deadbandSetpointRelative" ) - rtc_input: RtcIntervalInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcIntervalOutputComplexType = Field(..., alias='rtc:output') - rtc_settingAbove: RtcSettingAbove = Field(..., alias='rtc:settingAbove') - rtc_settingBelow: RtcSettingBelow = Field(..., alias='rtc:settingBelow') + rtc_input: RtcIntervalInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcIntervalOutputComplexType = Field(..., alias="rtc:output") + rtc_settingAbove: RtcSettingAbove = Field(..., alias="rtc:settingAbove") + rtc_settingBelow: RtcSettingBelow = Field(..., alias="rtc:settingBelow") rtc_settingMaxSpeed: Optional[RtcSettingMaxSpeed] = Field( - None, alias='rtc:settingMaxSpeed' + None, alias="rtc:settingMaxSpeed" ) rtc_settingMaxStep: Optional[RtcSettingMaxStep] = Field( - None, alias='rtc:settingMaxStep' + None, alias="rtc:settingMaxStep" ) @@ -7635,108 +7635,108 @@ class RtcLimiterComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcLimiterInputComplexType = Field(..., alias='rtc:input') - rtc_mode: RtcMode1 = Field(..., alias='rtc:mode') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcLimiterInputComplexType = Field(..., alias="rtc:input") + rtc_mode: RtcMode1 = Field(..., alias="rtc:mode") class RtcLinkStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_capillaryFlow: Optional[RtcCapillaryFlowStorageSystemComplexType] = Field( None, - alias='rtc:capillaryFlow', - description='capillary flow, typically from GW (saturated upper zone - ground water) to UZ (unsaturated zone)', + alias="rtc:capillaryFlow", + description="capillary flow, typically from GW (saturated upper zone - ground water) to UZ (unsaturated zone)", ) rtc_evaporationActual: Optional[ RtcEvaporationActualStorageSystemComplexType ] = Field( None, - alias='rtc:evaporationActual', - description='actual evaporation from unsaturated zone storage node', + alias="rtc:evaporationActual", + description="actual evaporation from unsaturated zone storage node", ) rtc_evaporationInterception: Optional[ RtcEvaporationInterceptionStorageSystemComplexType ] = Field( None, - alias='rtc:evaporationInterception', - description='evaporation from interception storage node, typically VEG/P/UP (vegeration/paved interception)', + alias="rtc:evaporationInterception", + description="evaporation from interception storage node, typically VEG/P/UP (vegeration/paved interception)", ) rtc_groundwaterFlow: Optional[RtcGroundwaterFlowStorageSystemComplexType] = Field( None, - alias='rtc:groundwaterFlow', - description='GW Groundwater interaction with SW Surface water', + alias="rtc:groundwaterFlow", + description="GW Groundwater interaction with SW Surface water", ) rtc_irrigation: Optional[RtcIrrigationStorageSystemComplexType] = Field( None, - alias='rtc:irrigation', - description='NOT REFACTORED. water consumption by domestic irrigation due to dry soil', + alias="rtc:irrigation", + description="NOT REFACTORED. water consumption by domestic irrigation due to dry soil", ) rtc_meltRefreezing: Optional[RtcMeltRefreezingStorageSystemComplexType] = Field( None, - alias='rtc:meltRefreezing', - description='NOT REFACTORED. melting and refreezing, typically used between SP (snow pack) and WC (water content) nodes', + alias="rtc:meltRefreezing", + description="NOT REFACTORED. melting and refreezing, typically used between SP (snow pack) and WC (water content) nodes", ) rtc_percolation: Optional[RtcPercolationStorageSystemComplexType] = Field( None, - alias='rtc:percolation', - description='percolation, typically from GW upper zone to GW lower zone), or from UP unpaved surface to UZ unsaturated zone', + alias="rtc:percolation", + description="percolation, typically from GW upper zone to GW lower zone), or from UP unpaved surface to UZ unsaturated zone", ) rtc_releaseInterception: Optional[ RtcReleaseAboveThresholdStorageSystemComplexType ] = Field( None, - alias='rtc:releaseInterception', - description='release above threshold from interception storage node, typically VEG/P/UP (uses relese above threshold link)', + alias="rtc:releaseInterception", + description="release above threshold from interception storage node, typically VEG/P/UP (uses relese above threshold link)", ) rtc_releaseWaterContent: Optional[ RtcReleaseWaterContentStorageSystemComplexType ] = Field( None, - alias='rtc:releaseWaterContent', - description='NOT REFACTORED. release from water content storage node (typically WC)', + alias="rtc:releaseWaterContent", + description="NOT REFACTORED. release from water content storage node (typically WC)", ) rtc_response: Optional[RtcResponseStorageSystemComplexType] = Field( None, - alias='rtc:response', - description='response from storage node, typically GW upper and GW lower zone storage nodes', + alias="rtc:response", + description="response from storage node, typically GW upper and GW lower zone storage nodes", ) rtc_sewerOverflow: Optional[ RtcReleaseAboveThresholdStorageSystemComplexType ] = Field( None, - alias='rtc:sewerOverflow', - description='sewer overflow (uses relese above threshold link)', + alias="rtc:sewerOverflow", + description="sewer overflow (uses relese above threshold link)", ) rtc_soilRunoff: Optional[RtcSoilRunoffStorageSystemComplexType] = Field( None, - alias='rtc:soilRunoff', - description='soil runoff from UZ unsaturated zone to GW upper zone storage node', + alias="rtc:soilRunoff", + description="soil runoff from UZ unsaturated zone to GW upper zone storage node", ) rtc_wasteWaterTreatmentPlant: Optional[ RtcWaterDistributionConstantStorageSystemComplexType ] = Field( None, - alias='rtc:wasteWaterTreatmentPlant', - description='water treated via the WWTP, flows at a max rate of a constant max pump capacity. Uses water distribution constant link', + alias="rtc:wasteWaterTreatmentPlant", + description="water treated via the WWTP, flows at a max rate of a constant max pump capacity. Uses water distribution constant link", ) rtc_waterDistributionConstant: Optional[ RtcWaterDistributionConstantStorageSystemComplexType ] = Field( None, - alias='rtc:waterDistributionConstant', - description='water abstraction/distribution/consumption referenced to a constant demand (e.i. maxpump capacity). Uses water distribution constant link', + alias="rtc:waterDistributionConstant", + description="water abstraction/distribution/consumption referenced to a constant demand (e.i. maxpump capacity). Uses water distribution constant link", ) rtc_waterDistributionVariable: Optional[ RtcWaterDistributionVariableStorageSystemComplexType ] = Field( None, - alias='rtc:waterDistributionVariable', - description='water abstraction/distribution/consumption referenced to a variable demand (e.i. domestic or industrial water demands). Uses water distribution variable link)', + alias="rtc:waterDistributionVariable", + description="water abstraction/distribution/consumption referenced to a variable demand (e.i. domestic or industrial water demands). Uses water distribution variable link)", ) @@ -7744,25 +7744,25 @@ class RtcLookupTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_extrapolationOption: Optional[RtcExtrapolationOption] = Field( None, - alias='rtc:extrapolationOption', - description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', + alias="rtc:extrapolationOption", + description="table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR", ) - rtc_input: RtcLookupTableInputComplexType = Field(..., alias='rtc:input') + rtc_input: RtcLookupTableInputComplexType = Field(..., alias="rtc:input") rtc_interpolationOption: Optional[RtcInterpolationOption] = Field( None, - alias='rtc:interpolationOption', - description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', + alias="rtc:interpolationOption", + description="table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR", ) - rtc_output: RtcLookupTableOutputComplexType = Field(..., alias='rtc:output') - rtc_property: Optional[List[RtcPropertyItem]] = Field(None, alias='rtc:property') - rtc_table: Optional[RtcTableLookupTableComplexType] = Field(None, alias='rtc:table') + rtc_output: RtcLookupTableOutputComplexType = Field(..., alias="rtc:output") + rtc_property: Optional[List[RtcPropertyItem]] = Field(None, alias="rtc:property") + rtc_table: Optional[RtcTableLookupTableComplexType] = Field(None, alias="rtc:table") rtc_tableExternal: Optional[RtcTableExternal1] = Field( - None, alias='rtc:tableExternal' + None, alias="rtc:tableExternal" ) @@ -7770,20 +7770,20 @@ class RtcLorentGeversComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcLorentGeversInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcLorentGeversOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcLorentGeversInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcLorentGeversOutputComplexType = Field(..., alias="rtc:output") rtc_parameterResponse: RtcLorentGeversParameterResponseComplexType = Field( - ..., alias='rtc:parameterResponse' + ..., alias="rtc:parameterResponse" ) rtc_parameterSoil: RtcLorentGeversParameterSoilComplexType = Field( - ..., alias='rtc:parameterSoil' + ..., alias="rtc:parameterSoil" ) - rtc_state: RtcLorentGeversStateComplexType = Field(..., alias='rtc:state') + rtc_state: RtcLorentGeversStateComplexType = Field(..., alias="rtc:state") rtc_stateUpdate: Optional[RtcLorentGeversStateUpdateComplexType] = Field( - None, alias='rtc:stateUpdate' + None, alias="rtc:stateUpdate" ) @@ -7791,52 +7791,52 @@ class RtcMergerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcMergerInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcMergerOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcMergerInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcMergerOutputComplexType = Field(..., alias="rtc:output") class RtcMergerSplitterComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcMergerSplitterInputComplexType = Field(..., alias='rtc:input') - rtc_mode: RtcMode2 = Field(..., alias='rtc:mode') - rtc_output: RtcMergerSplitterOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcMergerSplitterInputComplexType = Field(..., alias="rtc:input") + rtc_mode: RtcMode2 = Field(..., alias="rtc:mode") + rtc_output: RtcMergerSplitterOutputComplexType = Field(..., alias="rtc:output") class RtcMinSimpleRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_dateTable: Optional[RtcDateTableComplexType] = Field( - None, alias='rtc:dateTable' + None, alias="rtc:dateTable" ) - rtc_zones: Optional[RtcZonesComplexType] = Field(None, alias='rtc:zones') + rtc_zones: Optional[RtcZonesComplexType] = Field(None, alias="rtc:zones") class RtcNeuronComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: RtcNeuronIDSimpleType = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_bias: RtcBias = Field(..., alias='rtc:bias') - rtc_input: RtcNeuronInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcNeuronOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: RtcNeuronIDSimpleType = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_bias: RtcBias = Field(..., alias="rtc:bias") + rtc_input: RtcNeuronInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcNeuronOutputComplexType = Field(..., alias="rtc:output") rtc_transferFunction: RtcTransferFunction = Field( ..., - alias='rtc:transferFunction', - description='transfer function: sigmoid, linear etc.', + alias="rtc:transferFunction", + description="transfer function: sigmoid, linear etc.", ) @@ -7844,16 +7844,16 @@ class RtcNodeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _x: Optional[XsDouble] = Field(None, alias='@x') - _y: Optional[XsDouble] = Field(None, alias='@y') - rtc_input: Optional[RtcNodeInputComplexType] = Field(None, alias='rtc:input') - rtc_output: RtcNodeOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _x: Optional[XsDouble] = Field(None, alias="@x") + _y: Optional[XsDouble] = Field(None, alias="@y") + rtc_input: Optional[RtcNodeInputComplexType] = Field(None, alias="rtc:input") + rtc_output: RtcNodeOutputComplexType = Field(..., alias="rtc:output") rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( ..., - alias='rtc:storageCharacteristics', - description='Storage characteristics of the node: The storage as a function of water level h. It can be provided as table or as a formula.', + alias="rtc:storageCharacteristics", + description="Storage characteristics of the node: The storage as a function of water level h. It can be provided as table or as a formula.", ) @@ -7861,113 +7861,113 @@ class RtcOrificeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_contractionCoefficient: RtcContractionCoefficient = Field( - ..., alias='rtc:contractionCoefficient' + ..., alias="rtc:contractionCoefficient" ) - rtc_crestLevel: RtcCrestLevel = Field(..., alias='rtc:crestLevel') + rtc_crestLevel: RtcCrestLevel = Field(..., alias="rtc:crestLevel") rtc_exponentGateFormula: Optional[RtcExponentGateFormula] = Field( - None, alias='rtc:exponentGateFormula' + None, alias="rtc:exponentGateFormula" ) rtc_exponentWeirFormula: Optional[RtcExponentWeirFormula] = Field( - None, alias='rtc:exponentWeirFormula' + None, alias="rtc:exponentWeirFormula" ) rtc_flowDirection: Optional[RtcFlowDirection] = Field( - None, alias='rtc:flowDirection' + None, alias="rtc:flowDirection" ) - rtc_input: RtcOrificeInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOrificeOutputComplexType = Field(..., alias='rtc:output') - rtc_width: RtcWidth = Field(..., alias='rtc:width') + rtc_input: RtcOrificeInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcOrificeOutputComplexType = Field(..., alias="rtc:output") + rtc_width: RtcWidth = Field(..., alias="rtc:width") class RtcPumpComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_input: RtcPumpInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcPumpOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + rtc_input: RtcPumpInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcPumpOutputComplexType = Field(..., alias="rtc:output") class RtcReservoirCompactComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_input: RtcReservoirCompactInputComplexType = Field( - ..., alias='rtc:input', description='input time series' + ..., alias="rtc:input", description="input time series" ) rtc_levelStorageEquation: Optional[RtcLevelStorageEquationComplexType] = Field( None, - alias='rtc:levelStorageEquation', - description='level storage equation according to S = A0 + A1*FB ( + A2*FB^2 + ...)', + alias="rtc:levelStorageEquation", + description="level storage equation according to S = A0 + A1*FB ( + A2*FB^2 + ...)", ) rtc_levelStorageTable: Optional[RtcElevationTableComplexType] = Field( None, - alias='rtc:levelStorageTable', - description='level-storage relation of the reservoir, level in [m] or [ft], storage in [m3] or [KCFS-hrs]', + alias="rtc:levelStorageTable", + description="level-storage relation of the reservoir, level in [m] or [ft], storage in [m3] or [KCFS-hrs]", ) rtc_levelStorageTableExternal: Optional[RtcLevelStorageTableExternal] = Field( None, - alias='rtc:levelStorageTableExternal', + alias="rtc:levelStorageTableExternal", description='externalizes the level storage table to a parameter file, requires the two columns "level" and "storage"', ) rtc_output: RtcReservoirCompactOutputComplexType = Field( - ..., alias='rtc:output', description='output time series' + ..., alias="rtc:output", description="output time series" ) rtc_tailwaterConstant: Optional[RtcTailwaterConstant] = Field( None, - alias='rtc:tailwaterConstant', - description='constant value for tailwater elevation', + alias="rtc:tailwaterConstant", + description="constant value for tailwater elevation", ) rtc_tailwaterEquation: Optional[RtcTailwaterEquationComplexType] = Field( None, - alias='rtc:tailwaterEquation', - description='tailwater equation according to TW = A + B*FB_downstream(t-1) + C*Q(t)^D, D is equal 1.0 by default if not provided', + alias="rtc:tailwaterEquation", + description="tailwater equation according to TW = A + B*FB_downstream(t-1) + C*Q(t)^D, D is equal 1.0 by default if not provided", ) rtc_tailwaterExternalTable: Optional[RtcTailwaterExternalTable] = Field( - None, alias='rtc:tailwaterExternalTable', description='external tailwater table' + None, alias="rtc:tailwaterExternalTable", description="external tailwater table" ) rtc_tailwaterExternalTimeSeries: Optional[RtcTailwaterExternalTimeSeries] = Field( None, - alias='rtc:tailwaterExternalTimeSeries', - description='external tailwater elevation from an external source or a previous calculation OUTSIDE of the reservoirCompact components', + alias="rtc:tailwaterExternalTimeSeries", + description="external tailwater elevation from an external source or a previous calculation OUTSIDE of the reservoirCompact components", ) rtc_tailwaterTable: Optional[RtcElevationTableComplexType] = Field( None, - alias='rtc:tailwaterTable', - description='tailwater as a function of the reservoir release only', + alias="rtc:tailwaterTable", + description="tailwater as a function of the reservoir release only", ) rtc_tailwaterTidalEquation: Optional[RtcTailwaterTidalEquationComplexType] = Field( None, - alias='rtc:tailwaterTidalEquation', - description='tidal influenced tailwater equation (works only in hindcast mode, use tailwater external with appropiate forecast of the tailwater in operational forecasting), TW = TWObs + A*(Q-QObs)', + alias="rtc:tailwaterTidalEquation", + description="tidal influenced tailwater equation (works only in hindcast mode, use tailwater external with appropiate forecast of the tailwater in operational forecasting), TW = TWObs + A*(Q-QObs)", ) rtc_turbineEfficiencyConstant: Optional[RtcTurbineEfficiencyConstant] = Field( - None, alias='rtc:turbineEfficiencyConstant' + None, alias="rtc:turbineEfficiencyConstant" ) rtc_turbineEfficiencyTable: Optional[RtcElevationTableComplexType] = Field( None, - alias='rtc:turbineEfficiencyTable', - description='old formulation, will be removed in the future', + alias="rtc:turbineEfficiencyTable", + description="old formulation, will be removed in the future", ) rtc_turbineEfficiencyTable2D: Optional[ RtcTurbineEfficiencyTableComplexType ] = Field( None, - alias='rtc:turbineEfficiencyTable2D', - description='new formulation, turbine effiency depends on head and turbine release, computation by 2D lookup', + alias="rtc:turbineEfficiencyTable2D", + description="new formulation, turbine effiency depends on head and turbine release, computation by 2D lookup", ) rtc_turbineEfficiencyTable2DExternal: Optional[ RtcTurbineEfficiencyTable2DExternal - ] = Field(None, alias='rtc:turbineEfficiencyTable2DExternal') + ] = Field(None, alias="rtc:turbineEfficiencyTable2DExternal") rtc_turbineEfficiencyTableExternal: Optional[ RtcTurbineEfficiencyTableExternal - ] = Field(None, alias='rtc:turbineEfficiencyTableExternal') + ] = Field(None, alias="rtc:turbineEfficiencyTableExternal") rtc_units: Optional[RtcUnits] = Field( - None, alias='rtc:units', description=' "SI" or "Imperial" units' + None, alias="rtc:units", description=' "SI" or "Imperial" units' ) @@ -7975,9 +7975,9 @@ class RtcReservoirThunerseeRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( - ..., alias='rtc:storageCharacteristics' + ..., alias="rtc:storageCharacteristics" ) @@ -7985,51 +7985,51 @@ class RtcRiverWeirComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_exponentWeirFormula: Optional[RtcExponentWeirFormula1] = Field( - None, alias='rtc:exponentWeirFormula' + None, alias="rtc:exponentWeirFormula" ) rtc_flowDirection: Optional[RtcFlowDirection1] = Field( - None, alias='rtc:flowDirection' + None, alias="rtc:flowDirection" ) - rtc_input: RtcRiverWeirInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcRiverWeirOutputComplexType = Field(..., alias='rtc:output') + rtc_input: RtcRiverWeirInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcRiverWeirOutputComplexType = Field(..., alias="rtc:output") rtc_submergedFlowFactor: Optional[RtcSubmergedFlowFactor] = Field( - None, alias='rtc:submergedFlowFactor' + None, alias="rtc:submergedFlowFactor" ) rtc_submergedFlowRatio: Optional[RtcSubmergedFlowRatio] = Field( - None, alias='rtc:submergedFlowRatio' + None, alias="rtc:submergedFlowRatio" ) - rtc_width: RtcWidth1 = Field(..., alias='rtc:width') + rtc_width: RtcWidth1 = Field(..., alias="rtc:width") class RtcSRMComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcSRMInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcSRMOutputComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcSRMParameterComplexType = Field(..., alias='rtc:parameter') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcSRMInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcSRMOutputComplexType = Field(..., alias="rtc:output") + rtc_parameter: RtcSRMParameterComplexType = Field(..., alias="rtc:parameter") rtc_parameterZone: List[RtcSRMParameterZoneComplexType] = Field( - ..., alias='rtc:parameterZone', min_items=1 + ..., alias="rtc:parameterZone", min_items=1 ) - rtc_state: RtcSRMStateComplexType = Field(..., alias='rtc:state') + rtc_state: RtcSRMStateComplexType = Field(..., alias="rtc:state") class RtcSimpleReservoirComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _multiplier: Optional[conint(ge=1)] = Field(None, alias='@multiplier') + _: Optional[str] = Field(None, alias="#") + _multiplier: Optional[conint(ge=1)] = Field(None, alias="@multiplier") rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( - ..., alias='rtc:capacityCharacteristics' + ..., alias="rtc:capacityCharacteristics" ) rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( - ..., alias='rtc:storageCharacteristics' + ..., alias="rtc:storageCharacteristics" ) @@ -8037,20 +8037,20 @@ class RtcStorageSystemComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_link: List[RtcLinkStorageSystemComplexType] = Field( - ..., alias='rtc:link', min_items=1 + ..., alias="rtc:link", min_items=1 ) rtc_output: Optional[RtcOutputStorageSystemComplexType] = Field( - None, alias='rtc:output' + None, alias="rtc:output" ) rtc_settings: Optional[RtcStorageSystemSettingsComplexType] = Field( - None, alias='rtc:settings' + None, alias="rtc:settings" ) rtc_storageNode: List[RtcNodeStorageSystemComplexType] = Field( - ..., alias='rtc:storageNode', min_items=1 + ..., alias="rtc:storageNode", min_items=1 ) @@ -8058,22 +8058,22 @@ class RtcSubmodelComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_evaporationPotential: Optional[RtcEvaporationPotentialComplexType] = Field( - None, alias='rtc:evaporationPotential', description='potential evaporation' + None, alias="rtc:evaporationPotential", description="potential evaporation" ) rtc_snowRainJunction: Optional[RtcSnowRainJunctionComplexType] = Field( None, - alias='rtc:snowRainJunction', - description='separates precipitation into snow and rainfall', + alias="rtc:snowRainJunction", + description="separates precipitation into snow and rainfall", ) rtc_storageSystem: Optional[RtcStorageSystemComplexType] = Field( None, - alias='rtc:storageSystem', - description='storage systems with storage nodes and links for setting up bucket models', + alias="rtc:storageSystem", + description="storage systems with storage nodes and links for setting up bucket models", ) rtc_typicalProfile: Optional[RtcTypicalProfileComplexType] = Field( - None, alias='rtc:typicalProfile' + None, alias="rtc:typicalProfile" ) @@ -8081,15 +8081,15 @@ class RtcTailwaterComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_constant: Optional[RtcConstant1] = Field( - None, alias='rtc:constant', description='Constant tailwater level [m]' + None, alias="rtc:constant", description="Constant tailwater level [m]" ) - rtc_output: RtcTailwaterOutputComplexType = Field(..., alias='rtc:output') + rtc_output: RtcTailwaterOutputComplexType = Field(..., alias="rtc:output") rtc_ratingCurve: Optional[RtcElevationTableComplexType] = Field( None, - alias='rtc:ratingCurve', - description='Tailwater depending on discharge computed by a rating curve', + alias="rtc:ratingCurve", + description="Tailwater depending on discharge computed by a rating curve", ) @@ -8097,20 +8097,20 @@ class RtcTimeAbsoluteComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcTimeAbsoluteInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcTimeAbsoluteOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcTimeAbsoluteInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcTimeAbsoluteOutputComplexType = Field(..., alias="rtc:output") class RtcTimeRelativeControlTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_record: List[RtcTimeRelativeControlTableRecordComplexType] = Field( - ..., alias='rtc:record', min_items=1 + ..., alias="rtc:record", min_items=1 ) @@ -8118,56 +8118,56 @@ class RtcTunnelThunerseeRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( - ..., alias='rtc:capacityCharacteristics' + ..., alias="rtc:capacityCharacteristics" ) - rtc_levelThreshold: RtcLevelThreshold = Field(..., alias='rtc:levelThreshold') + rtc_levelThreshold: RtcLevelThreshold = Field(..., alias="rtc:levelThreshold") class RtcTurbineComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_capacityCharacteristics: RtcTurbineCapacityCharacteristicsComplexType = Field( - ..., alias='rtc:capacityCharacteristics' + ..., alias="rtc:capacityCharacteristics" ) rtc_efficiencyCharacteristics: RtcTurbineEfficiencyCharacteristicsComplexType = ( - Field(..., alias='rtc:efficiencyCharacteristics') + Field(..., alias="rtc:efficiencyCharacteristics") ) - rtc_input: RtcTurbineInputComplexType = Field(..., alias='rtc:input') - rtc_nodeDown: RtcNodeDown = Field(..., alias='rtc:nodeDown') - rtc_nodeUp: RtcNodeUp = Field(..., alias='rtc:nodeUp') - rtc_output: RtcTurbineOutputComplexType = Field(..., alias='rtc:output') + rtc_input: RtcTurbineInputComplexType = Field(..., alias="rtc:input") + rtc_nodeDown: RtcNodeDown = Field(..., alias="rtc:nodeDown") + rtc_nodeUp: RtcNodeUp = Field(..., alias="rtc:nodeUp") + rtc_output: RtcTurbineOutputComplexType = Field(..., alias="rtc:output") class RtcUncontrolledOutletComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( ..., - alias='rtc:capacityCharacteristics', - description='Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero', + alias="rtc:capacityCharacteristics", + description="Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero", ) - rtc_input: Optional[RtcUOutletInputComplexType] = Field(None, alias='rtc:input') - rtc_output: RtcOutletOutputComplexType = Field(..., alias='rtc:output') + rtc_input: Optional[RtcUOutletInputComplexType] = Field(None, alias="rtc:input") + rtc_output: RtcOutletOutputComplexType = Field(..., alias="rtc:output") class RtcUnitHydrographWeightComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_custom: Optional[RtcUnitHydrographWeightCustomComplexType] = Field( - None, alias='rtc:custom', description='user-defined weights' + None, alias="rtc:custom", description="user-defined weights" ) rtc_triangular: Optional[RtcUnitHydrographWeightTriangularComplexType] = Field( - None, alias='rtc:triangular', description='weights with triangular shape' + None, alias="rtc:triangular", description="weights with triangular shape" ) @@ -8175,9 +8175,9 @@ class RtcWeirThunerseeRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( - ..., alias='rtc:capacityCharacteristics' + ..., alias="rtc:capacityCharacteristics" ) @@ -8185,47 +8185,47 @@ class RtcXDimComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_xDim: List[RtcYDimComplexType] = Field(..., alias='rtc:xDim', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_xDim: List[RtcYDimComplexType] = Field(..., alias="rtc:xDim", min_items=1) class RtcBranchComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") rtc_alpha1: Optional[RtcAlpha1] = Field( None, - alias='rtc:alpha1', - description='the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw', + alias="rtc:alpha1", + description="the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw", ) rtc_alpha2: Optional[RtcAlpha2] = Field( None, - alias='rtc:alpha2', - description='the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw', + alias="rtc:alpha2", + description="the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw", ) rtc_crossSection: RtcCrossSectionComplexType = Field( ..., - alias='rtc:crossSection', - description='Cross section in the center of the flow branch.', + alias="rtc:crossSection", + description="Cross section in the center of the flow branch.", ) - rtc_equationType: Optional[RtcEquationType] = Field(None, alias='rtc:equationType') - rtc_input: RtcBranchInputComplexType = Field(..., alias='rtc:input') + rtc_equationType: Optional[RtcEquationType] = Field(None, alias="rtc:equationType") + rtc_input: RtcBranchInputComplexType = Field(..., alias="rtc:input") rtc_length: RtcLength = Field( - ..., alias='rtc:length', description='Length of the flow branch' + ..., alias="rtc:length", description="Length of the flow branch" ) - rtc_output: RtcBranchOutputComplexType = Field(..., alias='rtc:output') + rtc_output: RtcBranchOutputComplexType = Field(..., alias="rtc:output") rtc_roughness: RtcCrossSectionRoughnessComplexType = Field( ..., - alias='rtc:roughness', - description='Roughness (Chezy) as a function of elevation h', + alias="rtc:roughness", + description="Roughness (Chezy) as a function of elevation h", ) rtc_slope: Optional[RtcSlope] = Field( - None, alias='rtc:slope', description='slope for optional kinematic wave branch' + None, alias="rtc:slope", description="slope for optional kinematic wave branch" ) rtc_spatialScheme: Optional[RtcSpatialScheme] = Field( - None, alias='rtc:spatialScheme' + None, alias="rtc:spatialScheme" ) @@ -8233,39 +8233,39 @@ class RtcDateLookupTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_dateRecord: List[RtcDateRecord2ComplexType] = Field( - ..., alias='rtc:dateRecord', min_items=1 + ..., alias="rtc:dateRecord", min_items=1 ) - rtc_input: RtcDateLookupTableInputComplexType = Field(..., alias='rtc:input') + rtc_input: RtcDateLookupTableInputComplexType = Field(..., alias="rtc:input") rtc_interpolationOptions: RtcInterpolationOptionsComplexType = Field( ..., - alias='rtc:interpolationOptions', - description='Interpolation option BLOCK / LINEAR for the two inputs date and value', + alias="rtc:interpolationOptions", + description="Interpolation option BLOCK / LINEAR for the two inputs date and value", ) - rtc_output: RtcDateLookupTableOutputComplexType = Field(..., alias='rtc:output') + rtc_output: RtcDateLookupTableOutputComplexType = Field(..., alias="rtc:output") class RtcHydraulicStructureComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") rtc_orifice: Optional[RtcOrificeComplexType] = Field( None, - alias='rtc:orifice', - description='Orifice according to definition in SOBEK-Rural', + alias="rtc:orifice", + description="Orifice according to definition in SOBEK-Rural", ) rtc_pump: Optional[RtcPumpComplexType] = Field( - None, alias='rtc:pump', description='Pump' + None, alias="rtc:pump", description="Pump" ) rtc_weir: Optional[RtcRiverWeirComplexType] = Field( None, - alias='rtc:weir', - description='Weir according to definition in SOBEK-River', + alias="rtc:weir", + description="Weir according to definition in SOBEK-River", ) @@ -8273,11 +8273,11 @@ class RtcHydrologicalModelComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_submodel: List[RtcSubmodelComplexType] = Field( - ..., alias='rtc:submodel', min_items=1 + ..., alias="rtc:submodel", min_items=1 ) @@ -8285,56 +8285,56 @@ class RtcLayerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: RtcLayerIDSimpleType = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_neuron: List[RtcNeuronComplexType] = Field(..., alias='rtc:neuron', min_items=1) + _: Optional[str] = Field(None, alias="#") + _id: RtcLayerIDSimpleType = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_neuron: List[RtcNeuronComplexType] = Field(..., alias="rtc:neuron", min_items=1) class RtcNeuralNetworkComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_layer: List[RtcLayerComplexType] = Field(..., alias='rtc:layer', min_items=1) + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_layer: List[RtcLayerComplexType] = Field(..., alias="rtc:layer", min_items=1) class RtcReservoirComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_controlledOutlet: Optional[List[RtcControlledOutletComplexType]] = Field( - None, alias='rtc:controlledOutlet' + None, alias="rtc:controlledOutlet" ) - rtc_input: RtcReservoirInputComplexType = Field(..., alias='rtc:input') + rtc_input: RtcReservoirInputComplexType = Field(..., alias="rtc:input") rtc_mode: RtcMode4 = Field( ..., - alias='rtc:mode', - description='Time integration scheme for the network components', + alias="rtc:mode", + description="Time integration scheme for the network components", ) - rtc_output: RtcReservoirOutputComplexType = Field(..., alias='rtc:output') + rtc_output: RtcReservoirOutputComplexType = Field(..., alias="rtc:output") rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( ..., - alias='rtc:storageCharacteristics', - description='Storage characteristics of the reservoir: The storage S as a function of the water level h can be provided as a table or formula.', + alias="rtc:storageCharacteristics", + description="Storage characteristics of the reservoir: The storage S as a function of the water level h can be provided as a table or formula.", ) rtc_tailwater: Optional[RtcTailwaterComplexType] = Field( None, - alias='rtc:tailwater', - description='Tailwater rating curve\n ', + alias="rtc:tailwater", + description="Tailwater rating curve\n ", ) rtc_theta: RtcTheta3 = Field( ..., - alias='rtc:theta', - description='Time weighting coefficient for the semi-implicit theta schema: 0 is equal to a full weight on the old time step, 1 represents a full weight on new time step. The coefficient is not used in the fully explicit or implicit schemas. The permitted range is between 0.5 and 1.0.', + alias="rtc:theta", + description="Time weighting coefficient for the semi-implicit theta schema: 0 is equal to a full weight on the old time step, 1 represents a full weight on new time step. The coefficient is not used in the fully explicit or implicit schemas. The permitted range is between 0.5 and 1.0.", ) rtc_uncontrolledOutlet: Optional[List[RtcUncontrolledOutletComplexType]] = Field( - None, alias='rtc:uncontrolledOutlet' + None, alias="rtc:uncontrolledOutlet" ) @@ -8342,9 +8342,9 @@ class RtcReservoirRoutingComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_simpleReservoir: List[RtcSimpleReservoirComplexType] = Field( - ..., alias='rtc:simpleReservoir', min_items=1 + ..., alias="rtc:simpleReservoir", min_items=1 ) @@ -8352,22 +8352,22 @@ class RtcRoutingComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_dischargeRef: Optional[RtcDischargeRef] = Field( None, - alias='rtc:dischargeRef', - description='Reference to timeseries in data configuration', + alias="rtc:dischargeRef", + description="Reference to timeseries in data configuration", ) - rtc_inflow: Optional[List[RtcInflowComplexType]] = Field(None, alias='rtc:inflow') + rtc_inflow: Optional[List[RtcInflowComplexType]] = Field(None, alias="rtc:inflow") rtc_outputReferences: RtcRoutingOutputComplexType = Field( ..., - alias='rtc:outputReferences', - description='Contains references to the output timeseries in the data configuration', + alias="rtc:outputReferences", + description="Contains references to the output timeseries in the data configuration", ) rtc_reservoirRouting: Optional[RtcReservoirRoutingComplexType] = Field( - None, alias='rtc:reservoirRouting' + None, alias="rtc:reservoirRouting" ) @@ -8375,63 +8375,63 @@ class RtcTable2DLookupTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_matrix: RtcXDimComplexType = Field(..., alias='rtc:matrix') - rtc_x: RtcValueArrayComplexType = Field(..., alias='rtc:x') - rtc_y: RtcValueArrayComplexType = Field(..., alias='rtc:y') + _: Optional[str] = Field(None, alias="#") + rtc_matrix: RtcXDimComplexType = Field(..., alias="rtc:matrix") + rtc_x: RtcValueArrayComplexType = Field(..., alias="rtc:x") + rtc_y: RtcValueArrayComplexType = Field(..., alias="rtc:y") class RtcThunerseeRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcThunerseeRuleInputComplexType = Field(..., alias='rtc:input') - rtc_levelSetpoint: RtcLevelSetpoint = Field(..., alias='rtc:levelSetpoint') - rtc_output: RtcThunerseeRuleOutputComplexType = Field(..., alias='rtc:output') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcThunerseeRuleInputComplexType = Field(..., alias="rtc:input") + rtc_levelSetpoint: RtcLevelSetpoint = Field(..., alias="rtc:levelSetpoint") + rtc_output: RtcThunerseeRuleOutputComplexType = Field(..., alias="rtc:output") rtc_releaseLimiterPercentage: RtcReleaseLimiterPercentage = Field( - ..., alias='rtc:releaseLimiterPercentage' + ..., alias="rtc:releaseLimiterPercentage" ) rtc_reservoir: RtcReservoirThunerseeRuleComplexType = Field( - ..., alias='rtc:reservoir' + ..., alias="rtc:reservoir" ) - rtc_tunnel: RtcTunnelThunerseeRuleComplexType = Field(..., alias='rtc:tunnel') - rtc_weir: RtcWeirThunerseeRuleComplexType = Field(..., alias='rtc:weir') + rtc_tunnel: RtcTunnelThunerseeRuleComplexType = Field(..., alias="rtc:tunnel") + rtc_weir: RtcWeirThunerseeRuleComplexType = Field(..., alias="rtc:weir") class RtcTimeRelativeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_controlTable: RtcTimeRelativeControlTableComplexType = Field( - ..., alias='rtc:controlTable', description='table with time [s] / value records' + ..., alias="rtc:controlTable", description="table with time [s] / value records" ) rtc_input: Optional[RtcTimeRelativeInputComplexType] = Field( - None, alias='rtc:input' + None, alias="rtc:input" ) rtc_interpolationOption: Optional[RtcInterpolationOption1] = Field( None, - alias='rtc:interpolationOption', - description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', + alias="rtc:interpolationOption", + description="table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR", ) rtc_maximumPeriod: Optional[RtcMaximumPeriod] = Field( - None, alias='rtc:maximumPeriod' + None, alias="rtc:maximumPeriod" ) rtc_mode: Optional[RtcMode5] = Field( None, - alias='rtc:mode', + alias="rtc:mode", description='timeRelative mode, either "NATIVE" or "RETAINVALUEWHENINACTIVE"', ) - rtc_output: RtcTimeRelativeOutputComplexType = Field(..., alias='rtc:output') + rtc_output: RtcTimeRelativeOutputComplexType = Field(..., alias="rtc:output") rtc_valueOption: RtcValueOption = Field( ..., - alias='rtc:valueOption', - description='setting if the control table provides the absolute value or the relative value ', + alias="rtc:valueOption", + description="setting if the control table provides the absolute value or the relative value ", ) @@ -8439,130 +8439,130 @@ class RtcUnitHydrographComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcUnitHydrographInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcUnitHydrographOutputComplexType = Field(..., alias='rtc:output') - rtc_weights: RtcUnitHydrographWeightComplexType = Field(..., alias='rtc:weights') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcUnitHydrographInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcUnitHydrographOutputComplexType = Field(..., alias="rtc:output") + rtc_weights: RtcUnitHydrographWeightComplexType = Field(..., alias="rtc:weights") class RtcHydraulicModelComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_branch: Optional[List[RtcBranchComplexType]] = Field(None, alias='rtc:branch') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_branch: Optional[List[RtcBranchComplexType]] = Field(None, alias="rtc:branch") rtc_hydraulicStructure: Optional[List[RtcHydraulicStructureComplexType]] = Field( - None, alias='rtc:hydraulicStructure' + None, alias="rtc:hydraulicStructure" ) - rtc_mode: RtcMode = Field(..., alias='rtc:mode') - rtc_node: Optional[List[RtcNodeComplexType]] = Field(None, alias='rtc:node') + rtc_mode: RtcMode = Field(..., alias="rtc:mode") + rtc_node: Optional[List[RtcNodeComplexType]] = Field(None, alias="rtc:node") rtc_numericalTolerance: RtcNumericalTolerance = Field( - ..., alias='rtc:numericalTolerance' + ..., alias="rtc:numericalTolerance" ) rtc_output: Optional[RtcHydraulicModelOutputComplexType] = Field( - None, alias='rtc:output' + None, alias="rtc:output" ) rtc_sequentialImplicitSettings: Optional[ RtcHydraulicModelSequentialImplicitComplexType - ] = Field(None, alias='rtc:sequentialImplicitSettings') + ] = Field(None, alias="rtc:sequentialImplicitSettings") rtc_simultaneousSettings: Optional[ RtcHydraulicModelSimultaneousComplexType - ] = Field(None, alias='rtc:simultaneousSettings') + ] = Field(None, alias="rtc:simultaneousSettings") class RtcLookup2DTableComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcLookup2DTableInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcLookup2DTableOutputComplexType = Field(..., alias='rtc:output') - rtc_table: RtcTable2DLookupTableComplexType = Field(..., alias='rtc:table') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_input: RtcLookup2DTableInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcLookup2DTableOutputComplexType = Field(..., alias="rtc:output") + rtc_table: RtcTable2DLookupTableComplexType = Field(..., alias="rtc:table") class RtcComponentComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _template: Optional[XsString] = Field(None, alias='@template') + _: Optional[str] = Field(None, alias="#") + _template: Optional[XsString] = Field(None, alias="@template") rtc_accumulation: Optional[RtcAccumulationComplexType] = Field( None, - alias='rtc:accumulation', - description='Accumulation of a time series over time', + alias="rtc:accumulation", + description="Accumulation of a time series over time", ) rtc_allocationTable: Optional[RtcAllocationTableComplexType] = Field( - None, alias='rtc:allocationTable' + None, alias="rtc:allocationTable" ) rtc_arma: Optional[RtcArmaComplexType] = Field( - None, alias='rtc:arma', description='Arma error correction model' + None, alias="rtc:arma", description="Arma error correction model" ) rtc_expression: Optional[RtcExpressionComplexType] = Field( - None, alias='rtc:expression', description='Mathematical expression' + None, alias="rtc:expression", description="Mathematical expression" ) rtc_gradient: Optional[RtcGradientComplexType] = Field( None, - alias='rtc:gradient', - description='Post processing for computing gradients of simulated values', + alias="rtc:gradient", + description="Post processing for computing gradients of simulated values", ) rtc_hbv: Optional[RtcHBVComplexType] = Field( None, - alias='rtc:hbv', - description='This is an implementation of the HBV-96 hydrological model. Note that the unit hydrograph is not included, but available separately.', + alias="rtc:hbv", + description="This is an implementation of the HBV-96 hydrological model. Note that the unit hydrograph is not included, but available separately.", ) rtc_hydraulicModel: Optional[RtcHydraulicModelComplexType] = Field( None, - alias='rtc:hydraulicModel', - description='Simplifications of the full dynamic, one-dimensional hydraulic model according to the kinematic wave, diffusive wave and inertial assumptions.', + alias="rtc:hydraulicModel", + description="Simplifications of the full dynamic, one-dimensional hydraulic model according to the kinematic wave, diffusive wave and inertial assumptions.", ) rtc_hydrologicalModel: Optional[RtcHydrologicalModelComplexType] = Field( None, - alias='rtc:hydrologicalModel', - description='Modular, conceptual hydrological model with implicit time stepping scheme.', + alias="rtc:hydrologicalModel", + description="Modular, conceptual hydrological model with implicit time stepping scheme.", ) rtc_lookup2DTable: Optional[RtcLookup2DTableComplexType] = Field( - None, alias='rtc:lookup2DTable' + None, alias="rtc:lookup2DTable" ) rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( - None, alias='rtc:lookupTable' + None, alias="rtc:lookupTable" ) rtc_lorentGevers: Optional[RtcLorentGeversComplexType] = Field( - None, alias='rtc:lorentGevers', description='Lorent/Gevers hydrological model' + None, alias="rtc:lorentGevers", description="Lorent/Gevers hydrological model" ) - rtc_merger: Optional[RtcMergerComplexType] = Field(None, alias='rtc:merger') + rtc_merger: Optional[RtcMergerComplexType] = Field(None, alias="rtc:merger") rtc_mergerSplitter: Optional[RtcMergerSplitterComplexType] = Field( - None, alias='rtc:mergerSplitter' + None, alias="rtc:mergerSplitter" ) rtc_neuralNetwork: Optional[RtcNeuralNetworkComplexType] = Field( - None, alias='rtc:neuralNetwork' + None, alias="rtc:neuralNetwork" ) rtc_reservoir: Optional[RtcReservoirComplexType] = Field( None, - alias='rtc:reservoir', - description='Reservoir with arbitrary number of inlets and outlets.', + alias="rtc:reservoir", + description="Reservoir with arbitrary number of inlets and outlets.", ) rtc_reservoirCompact: Optional[RtcReservoirCompactComplexType] = Field( None, - alias='rtc:reservoirCompact', - description='Test implementation of a compact reservoir class for simultaneous and sequential optimization mode', + alias="rtc:reservoirCompact", + description="Test implementation of a compact reservoir class for simultaneous and sequential optimization mode", ) rtc_routing: Optional[RtcRoutingComplexType] = Field( - None, alias='rtc:routing', description='not implemented yet' + None, alias="rtc:routing", description="not implemented yet" ) - rtc_srm: Optional[RtcSRMComplexType] = Field(None, alias='rtc:srm') + rtc_srm: Optional[RtcSRMComplexType] = Field(None, alias="rtc:srm") rtc_unitDelay: Optional[RtcUnitDelayComplexType] = Field( None, - alias='rtc:unitDelay', - description='Unit delay operator for delaying a value by n times the time step of the model.', + alias="rtc:unitDelay", + description="Unit delay operator for delaying a value by n times the time step of the model.", ) rtc_unitHydrograph: Optional[RtcUnitHydrographComplexType] = Field( - None, alias='rtc:unitHydrograph', description='Unit hydrograph' + None, alias="rtc:unitHydrograph", description="Unit hydrograph" ) @@ -8570,9 +8570,9 @@ class RtcComponentsComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_component: List[RtcComponentComplexType] = Field( - ..., alias='rtc:component', min_items=1 + ..., alias="rtc:component", min_items=1 ) @@ -8580,13 +8580,13 @@ class Model(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') + _: Optional[str] = Field(None, alias="#") + _xmlns_rtc: Optional[Any] = Field("http://www.wldelft.nl/fews", alias="@xmlns:rtc") _xmlns_xs: Optional[Any] = Field( - 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) rtc_rtcToolsConfig: Optional[_.RtcRtcToolsConfig] = Field( - None, alias='rtc:rtcToolsConfig' + None, alias="rtc:rtcToolsConfig" ) @@ -8594,21 +8594,21 @@ class RtcDeadBandTimeComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_discrete: RtcDeadBandTimeDiscreteComplexType = Field(..., alias='rtc:discrete') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_discrete: RtcDeadBandTimeDiscreteComplexType = Field(..., alias="rtc:discrete") rtc_false: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:false', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:false", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) - rtc_input: RtcDeadBandTimeInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcDeadBandTimeOutputComplexType = Field(..., alias='rtc:output') + rtc_input: RtcDeadBandTimeInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcDeadBandTimeOutputComplexType = Field(..., alias="rtc:output") rtc_true: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:true', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:true", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) @@ -8616,26 +8616,26 @@ class RtcDeadBandTriggerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_conditionOff: RtcRelationalConditionComplexType = Field( - ..., alias='rtc:conditionOff' + ..., alias="rtc:conditionOff" ) rtc_conditionOn: RtcRelationalConditionComplexType = Field( - ..., alias='rtc:conditionOn' + ..., alias="rtc:conditionOn" ) - rtc_default: Optional[RtcDefault] = Field(None, alias='rtc:default') + rtc_default: Optional[RtcDefault] = Field(None, alias="rtc:default") rtc_false: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:false', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:false", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) - rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') + rtc_output: RtcTriggerOutputComplexType = Field(..., alias="rtc:output") rtc_true: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:true', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:true", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) @@ -8643,22 +8643,22 @@ class RtcPolygonLookupComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_default: Optional[RtcDefault1] = Field(None, alias='rtc:default') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_default: Optional[RtcDefault1] = Field(None, alias="rtc:default") rtc_false: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:false', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:false", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) - rtc_input: RtcPolygonLookupInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcPolygonLookupOutputComplexType = Field(..., alias='rtc:output') - rtc_polygons: RtcPolygonsComplexType = Field(..., alias='rtc:polygons') + rtc_input: RtcPolygonLookupInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcPolygonLookupOutputComplexType = Field(..., alias="rtc:output") + rtc_polygons: RtcPolygonsComplexType = Field(..., alias="rtc:polygons") rtc_true: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:true', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:true", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) @@ -8666,26 +8666,26 @@ class RtcRtcToolsConfigComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_components: Optional[RtcComponentsComplexType] = Field( None, - alias='rtc:components', - description='The components section includes all simulation components.', + alias="rtc:components", + description="The components section includes all simulation components.", ) rtc_general: Optional[RtcGeneralModuleConfigComplexType] = Field( None, - alias='rtc:general', - description='OBSOLETE. Still here for backwards compatibility. Remove after next release.', + alias="rtc:general", + description="OBSOLETE. Still here for backwards compatibility. Remove after next release.", ) rtc_rules: Optional[RtcRulesComplexType] = Field( None, - alias='rtc:rules', - description='The rules section includes operating rules or controllers for defining the release of reservoir, structural settings of gates etc.', + alias="rtc:rules", + description="The rules section includes operating rules or controllers for defining the release of reservoir, structural settings of gates etc.", ) rtc_triggers: Optional[RtcTriggersComplexType] = Field( None, - alias='rtc:triggers', - description='Triggers may activate or deactivate rules defined in the section above.', + alias="rtc:triggers", + description="Triggers may activate or deactivate rules defined in the section above.", ) @@ -8693,69 +8693,69 @@ class RtcRuleComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_constant: Optional[RtcConstantRuleComplexType] = Field( - None, alias='rtc:constant', description='Simple rule with constant value' + None, alias="rtc:constant", description="Simple rule with constant value" ) rtc_dateLookupTable: Optional[RtcDateLookupTableComplexType] = Field( None, - alias='rtc:dateLookupTable', - description='Date lookup table, output y is a function of date and an input value x, the interpolation on the date / value axis can be BLOCK or LINEAR, the number of records should be constant for each date record', + alias="rtc:dateLookupTable", + description="Date lookup table, output y is a function of date and an input value x, the interpolation on the date / value axis can be BLOCK or LINEAR, the number of records should be constant for each date record", ) rtc_deadBandTime: Optional[RtcDeadBandTimeComplexType] = Field( - None, alias='rtc:deadBandTime' + None, alias="rtc:deadBandTime" ) rtc_deadBandValue: Optional[RtcDeadBandValueComplexType] = Field( None, - alias='rtc:deadBandValue', - description='Deadband threshold, yNew will become yOld, if the change yNew-yOld is smaller than the threshold value ', + alias="rtc:deadBandValue", + description="Deadband threshold, yNew will become yOld, if the change yNew-yOld is smaller than the threshold value ", ) rtc_dedicated_Aebi: Optional[RtcAebiRuleComplexType] = Field( None, - alias='rtc:dedicated-Aebi', - description='Dedicated rule for the control of Bielersee, Canton Bern, CH', + alias="rtc:dedicated-Aebi", + description="Dedicated rule for the control of Bielersee, Canton Bern, CH", ) rtc_dedicated_Thunersee: Optional[RtcThunerseeRuleComplexType] = Field( None, - alias='rtc:dedicated-Thunersee', - description='Dedicated rule for the control of Thunersee, Canton Bern, CH', + alias="rtc:dedicated-Thunersee", + description="Dedicated rule for the control of Thunersee, Canton Bern, CH", ) rtc_expression: Optional[RtcExpressionComplexType] = Field( - None, alias='rtc:expression', description='mathematical expression' + None, alias="rtc:expression", description="mathematical expression" ) rtc_guideband: Optional[RtcGuideBandRuleComplexType] = Field( None, - alias='rtc:guideband', - description='Guide band rule, output get 0 if input less equal xMin, 1 if input greater equal xMax, linear interpolation otherwise xMin and xMax can be a function of date, main application in combination with a relative release of a reservoir outlet', + alias="rtc:guideband", + description="Guide band rule, output get 0 if input less equal xMin, 1 if input greater equal xMax, linear interpolation otherwise xMin and xMax can be a function of date, main application in combination with a relative release of a reservoir outlet", ) - rtc_interval: Optional[RtcIntervalComplexType] = Field(None, alias='rtc:interval') + rtc_interval: Optional[RtcIntervalComplexType] = Field(None, alias="rtc:interval") rtc_limiter: Optional[RtcLimiterComplexType] = Field( None, - alias='rtc:limiter', - description='Limiter for limiting the change of a variable in a time step to a relative (PERCENTAGE) or absolute (ABSOLUTE) change', + alias="rtc:limiter", + description="Limiter for limiting the change of a variable in a time step to a relative (PERCENTAGE) or absolute (ABSOLUTE) change", ) rtc_lookup2DTable: Optional[RtcLookup2DTableComplexType] = Field( - None, alias='rtc:lookup2DTable' + None, alias="rtc:lookup2DTable" ) rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( - None, alias='rtc:lookupTable' + None, alias="rtc:lookupTable" ) rtc_merger: Optional[RtcMergerComplexType] = Field( None, - alias='rtc:merger', - description='Data hierarchy, highest input has highest priority', + alias="rtc:merger", + description="Data hierarchy, highest input has highest priority", ) - rtc_pid: Optional[RtcPidComplexType] = Field(None, alias='rtc:pid') + rtc_pid: Optional[RtcPidComplexType] = Field(None, alias="rtc:pid") rtc_timeAbsolute: Optional[RtcTimeAbsoluteComplexType] = Field( - None, alias='rtc:timeAbsolute', description='absolute time controller' + None, alias="rtc:timeAbsolute", description="absolute time controller" ) rtc_timeRelative: Optional[RtcTimeRelativeComplexType] = Field( - None, alias='rtc:timeRelative', description='relative time controller' + None, alias="rtc:timeRelative", description="relative time controller" ) rtc_unitDelay: Optional[RtcUnitDelayComplexType] = Field( None, - alias='rtc:unitDelay', - description='Unit delay operator for delaying a value by n times the time step of the model.', + alias="rtc:unitDelay", + description="Unit delay operator for delaying a value by n times the time step of the model.", ) @@ -8763,9 +8763,9 @@ class RtcRuleTriggerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_trigger: Optional[List[RtcTriggerComplexType]] = Field( - None, alias='rtc:trigger' + None, alias="rtc:trigger" ) @@ -8773,85 +8773,85 @@ class RtcRulesComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - rtc_rule: List[RtcRuleComplexType] = Field(..., alias='rtc:rule', min_items=1) + _: Optional[str] = Field(None, alias="#") + rtc_rule: List[RtcRuleComplexType] = Field(..., alias="rtc:rule", min_items=1) class RtcSetTriggerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_default: Optional[RtcDefault2] = Field(None, alias='rtc:default') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_default: Optional[RtcDefault2] = Field(None, alias="rtc:default") rtc_false: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:false', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:false", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) - rtc_logicalOperator: RtcLogicalOperator = Field(..., alias='rtc:logicalOperator') - rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') + rtc_logicalOperator: RtcLogicalOperator = Field(..., alias="rtc:logicalOperator") + rtc_output: RtcTriggerOutputComplexType = Field(..., alias="rtc:output") rtc_true: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:true', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:true", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field24] = Field( - None, alias='rtc:x1Series' + None, alias="rtc:x1Series" ) - rtc_x1Trigger: Optional[RtcTriggerComplexType] = Field(None, alias='rtc:x1Trigger') - rtc_x1Value: Optional[RtcX1Value2] = Field(None, alias='rtc:x1Value') + rtc_x1Trigger: Optional[RtcTriggerComplexType] = Field(None, alias="rtc:x1Trigger") + rtc_x1Value: Optional[RtcX1Value2] = Field(None, alias="rtc:x1Value") rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field25] = Field( - None, alias='rtc:x2Series' + None, alias="rtc:x2Series" ) - rtc_x2Trigger: Optional[RtcTriggerComplexType] = Field(None, alias='rtc:x2Trigger') - rtc_x2Value: Optional[RtcX2Value2] = Field(None, alias='rtc:x2Value') + rtc_x2Trigger: Optional[RtcTriggerComplexType] = Field(None, alias="rtc:x2Trigger") + rtc_x2Value: Optional[RtcX2Value2] = Field(None, alias="rtc:x2Value") class RtcSpreadsheetComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") rtc_defaultInputValue: Optional[RtcDefaultInputValue] = Field( None, - alias='rtc:defaultInputValue', - description='default input value, if input is NaN or infinity', + alias="rtc:defaultInputValue", + description="default input value, if input is NaN or infinity", ) rtc_defaultOutputValue: Optional[RtcDefaultOutputValue] = Field( None, - alias='rtc:defaultOutputValue', - description='default output, if no combination of the table applies', + alias="rtc:defaultOutputValue", + description="default output, if no combination of the table applies", ) rtc_false: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:false', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:false", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) - rtc_input: RtcSpreadsheetInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcSpreadsheetOutputComplexType = Field(..., alias='rtc:output') + rtc_input: RtcSpreadsheetInputComplexType = Field(..., alias="rtc:input") + rtc_output: RtcSpreadsheetOutputComplexType = Field(..., alias="rtc:output") rtc_tables: RtcSpreadsheetTablesComplexType = Field( ..., - alias='rtc:tables', - description='number of tables with input, output values, the initial state can be taken into account optionally', + alias="rtc:tables", + description="number of tables with input, output values, the initial state can be taken into account optionally", ) rtc_tolerance: RtcTolerance = Field( ..., - alias='rtc:tolerance', - description='tolerance for finding a match, keep in mind that the all variable are stored in doubles', + alias="rtc:tolerance", + description="tolerance for finding a match, keep in mind that the all variable are stored in doubles", ) rtc_true: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:true', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:true", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) rtc_validPeriods: Optional[RtcValidPeriodsComplexType] = Field( None, - alias='rtc:validPeriods', - description='optional period of the year for which the trigger is active', + alias="rtc:validPeriods", + description="optional period of the year for which the trigger is active", ) @@ -8859,21 +8859,21 @@ class RtcStandardTriggerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_condition: RtcRelationalConditionComplexType = Field(..., alias='rtc:condition') - rtc_default: Optional[RtcDefault3] = Field(None, alias='rtc:default') + _: Optional[str] = Field(None, alias="#") + _id: XsString = Field(..., alias="@id") + _name: Optional[XsString] = Field(None, alias="@name") + rtc_condition: RtcRelationalConditionComplexType = Field(..., alias="rtc:condition") + rtc_default: Optional[RtcDefault3] = Field(None, alias="rtc:default") rtc_false: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:false', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:false", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) - rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') + rtc_output: RtcTriggerOutputComplexType = Field(..., alias="rtc:output") rtc_true: Optional[RtcRuleTriggerComplexType] = Field( None, - alias='rtc:true', - description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + alias="rtc:true", + description="link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules", ) @@ -8881,40 +8881,40 @@ class RtcTriggerComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_deadBand: Optional[RtcDeadBandTriggerComplexType] = Field( - None, alias='rtc:deadBand', description='trigger with deadband' + None, alias="rtc:deadBand", description="trigger with deadband" ) rtc_deadBandTime: Optional[RtcDeadBandTimeComplexType] = Field( - None, alias='rtc:deadBandTime', description='trigger with time deadband' + None, alias="rtc:deadBandTime", description="trigger with time deadband" ) rtc_expression: Optional[RtcExpressionComplexType] = Field( - None, alias='rtc:expression', description='mathematical expression' + None, alias="rtc:expression", description="mathematical expression" ) rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( - None, alias='rtc:lookupTable' + None, alias="rtc:lookupTable" ) rtc_merger: Optional[RtcMergerComplexType] = Field( None, - alias='rtc:merger', - description='Data hierarchy, highest input has highest priority', + alias="rtc:merger", + description="Data hierarchy, highest input has highest priority", ) rtc_polygonLookup: Optional[RtcPolygonLookupComplexType] = Field( None, - alias='rtc:polygonLookup', - description='trigger with two-dimensional lookup table, trigger results are defined by polygons', + alias="rtc:polygonLookup", + description="trigger with two-dimensional lookup table, trigger results are defined by polygons", ) rtc_ruleReference: Optional[RtcRuleReference] = Field( - None, alias='rtc:ruleReference' + None, alias="rtc:ruleReference" ) rtc_set: Optional[RtcSetTriggerComplexType] = Field( - None, alias='rtc:set', description='set of triggers' + None, alias="rtc:set", description="set of triggers" ) rtc_spreadsheet: Optional[RtcSpreadsheetComplexType] = Field( - None, alias='rtc:spreadsheet', description='spread sheet trigger' + None, alias="rtc:spreadsheet", description="spread sheet trigger" ) rtc_standard: Optional[RtcStandardTriggerComplexType] = Field( - None, alias='rtc:standard', description='standard trigger' + None, alias="rtc:standard", description="standard trigger" ) @@ -8922,9 +8922,9 @@ class RtcTriggersComplexType(BaseModel): class Config: extra = Extra.forbid - _: Optional[str] = Field(None, alias='#') + _: Optional[str] = Field(None, alias="#") rtc_trigger: List[RtcTriggerComplexType] = Field( - ..., alias='rtc:trigger', min_items=1 + ..., alias="rtc:trigger", min_items=1 ) From fcc69ce589185877e10bdd218860c54887930631 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Fri, 23 Sep 2022 15:03:47 +0200 Subject: [PATCH 03/22] #226: Update generated models with missing root model. --- hydrolib/core/io/rtc/pi_state/models.py | 6 +++--- hydrolib/core/io/rtc/pi_timeseries/models.py | 6 +++--- hydrolib/core/io/rtc/rtcDataConfig/models.py | 6 +++--- hydrolib/core/io/rtc/rtcObjectiveConfig/models.py | 6 +++--- hydrolib/core/io/rtc/rtcRuntimeConfig/models.py | 6 +++--- hydrolib/core/io/rtc/rtcToolsConfig/models.py | 5 +++-- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/hydrolib/core/io/rtc/pi_state/models.py b/hydrolib/core/io/rtc/pi_state/models.py index c6a26d951..076d8b8d9 100644 --- a/hydrolib/core/io/rtc/pi_state/models.py +++ b/hydrolib/core/io/rtc/pi_state/models.py @@ -9,8 +9,6 @@ from pydantic import BaseModel, Extra, Field, conint, constr -from . import _ - class FewsGeoDatumEnumStringType(Enum): LOCAL = "LOCAL" @@ -839,6 +837,8 @@ class Config: description="the time zone of the pi input files is assumed when the time zone in a pi output file is missing", ) +class FewsState(BaseModel): + __root__: FewsStateComplexType class Model(BaseModel): class Config: @@ -851,4 +851,4 @@ class Config: _xmlns_xs: Optional[Any] = Field( "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) - fews_State: Optional[_.FewsState] = Field(None, alias="fews:State") + fews_State: Optional[FewsState] = Field(None, alias="fews:State") diff --git a/hydrolib/core/io/rtc/pi_timeseries/models.py b/hydrolib/core/io/rtc/pi_timeseries/models.py index 278f1e9e4..caf834cd8 100644 --- a/hydrolib/core/io/rtc/pi_timeseries/models.py +++ b/hydrolib/core/io/rtc/pi_timeseries/models.py @@ -9,8 +9,6 @@ from pydantic import BaseModel, Extra, Field, conint, constr -from . import _ - class FewsGeoDatumEnumStringType(Enum): LOCAL = "LOCAL" @@ -1109,6 +1107,8 @@ class Config: ) fews_timeZone: Optional[FewsTimeZone1] = Field(None, alias="fews:timeZone") +class FewsTimeSeries(BaseModel): + __root__: FewsTimeSeriesCollectionComplexType class Model(BaseModel): class Config: @@ -1121,4 +1121,4 @@ class Config: _xmlns_xs: Optional[Any] = Field( "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) - fews_TimeSeries: Optional[_.FewsTimeSeries] = Field(None, alias="fews:TimeSeries") + fews_TimeSeries: Optional[FewsTimeSeries] = Field(None, alias="fews:TimeSeries") diff --git a/hydrolib/core/io/rtc/rtcDataConfig/models.py b/hydrolib/core/io/rtc/rtcDataConfig/models.py index 2f4ad59c2..ad8e28945 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/models.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/models.py @@ -9,8 +9,6 @@ from pydantic import BaseModel, Extra, Field, conint, constr -from . import _ - class RtcAggregationTypeEnumStringType(Enum): BLOCK = "BLOCK" @@ -427,6 +425,8 @@ class Config: description="Import time series RTC-Tools imports from XML files or other interfaces", ) +class RtcRtcDataConfig(BaseModel): + __root__: RtcRTCDataConfigComplexType class Model(BaseModel): class Config: @@ -437,6 +437,6 @@ class Config: _xmlns_xs: Optional[Any] = Field( "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) - rtc_rtcDataConfig: Optional[_.RtcRtcDataConfig] = Field( + rtc_rtcDataConfig: Optional[RtcRtcDataConfig] = Field( None, alias="rtc:rtcDataConfig" ) diff --git a/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py b/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py index dd5c7a872..54895833c 100644 --- a/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py +++ b/hydrolib/core/io/rtc/rtcObjectiveConfig/models.py @@ -9,8 +9,6 @@ from pydantic import BaseModel, Extra, Field, conint, constr -from . import _ - class RtcAggregationTypeEnumStringType(Enum): BLOCK = "BLOCK" @@ -1687,6 +1685,8 @@ class Config: None, alias="rtc:variables" ) +class RtcRtcObjectiveConfig(BaseModel): + __root__: RtcRtcObjectiveConfigComplexType class Model(BaseModel): class Config: @@ -1697,6 +1697,6 @@ class Config: _xmlns_xs: Optional[Any] = Field( "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) - rtc_rtcObjectiveConfig: Optional[_.RtcRtcObjectiveConfig] = Field( + rtc_rtcObjectiveConfig: Optional[RtcRtcObjectiveConfig] = Field( None, alias="rtc:rtcObjectiveConfig" ) diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py b/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py index 43a9a2cbc..70083d999 100644 --- a/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/models.py @@ -9,8 +9,6 @@ from pydantic import BaseModel, Extra, Field, PositiveFloat, confloat, conint, constr -from . import _ - class RtcAggregationTypeEnumStringType(Enum): BLOCK = "BLOCK" @@ -3237,6 +3235,8 @@ class Config: description="Optional definition for saving periodic state files", ) +class RtcRtcRuntimeConfig(BaseModel): + __root__: RtcRtcRuntimeConfigComplexType class Model(BaseModel): class Config: @@ -3247,6 +3247,6 @@ class Config: _xmlns_xs: Optional[Any] = Field( "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) - rtc_rtcRuntimeConfig: Optional[_.RtcRtcRuntimeConfig] = Field( + rtc_rtcRuntimeConfig: Optional[RtcRtcRuntimeConfig] = Field( None, alias="rtc:rtcRuntimeConfig" ) diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/models.py b/hydrolib/core/io/rtc/rtcToolsConfig/models.py index a34a80292..051c7326b 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/models.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/models.py @@ -9,7 +9,6 @@ from pydantic import BaseModel, Extra, Field, conint, constr -from . import _ from ._._ import rtc_ExternalParameterSimpleType, rtc_TimeSeriesSimpleType, xs_string @@ -8575,6 +8574,8 @@ class Config: ..., alias="rtc:component", min_items=1 ) +class RtcRtcToolsConfig(BaseModel): + __root__: RtcRtcToolsConfigComplexType class Model(BaseModel): class Config: @@ -8585,7 +8586,7 @@ class Config: _xmlns_xs: Optional[Any] = Field( "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" ) - rtc_rtcToolsConfig: Optional[_.RtcRtcToolsConfig] = Field( + rtc_rtcToolsConfig: Optional[RtcRtcToolsConfig] = Field( None, alias="rtc:rtcToolsConfig" ) From 2f010ddf7e38060e0c1ab22db4bc87e36bf51d1c Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Fri, 23 Sep 2022 15:05:35 +0200 Subject: [PATCH 04/22] #226: Remove factory for now. --- hydrolib/core/io/rtc/factory.py | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 hydrolib/core/io/rtc/factory.py diff --git a/hydrolib/core/io/rtc/factory.py b/hydrolib/core/io/rtc/factory.py deleted file mode 100644 index f3b277cff..000000000 --- a/hydrolib/core/io/rtc/factory.py +++ /dev/null @@ -1,9 +0,0 @@ -from hydrolib.core.rtc.pi_state.models import RtcPeriod - - -class RtcTimeController: - pass - - -class RtcPIDController: - pass From 3c00fefc472fa656f62a24b30c10d3ab869cef9c Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Mon, 26 Sep 2022 12:29:13 +0200 Subject: [PATCH 05/22] #226: Update rtcDataConfig/models.py and add corresponding JSON. --- hydrolib/core/io/rtc/json/rtcDataConfig.json | 408 ++++++++++++++++ hydrolib/core/io/rtc/rtcDataConfig/models.py | 484 ++++++++----------- 2 files changed, 614 insertions(+), 278 deletions(-) create mode 100644 hydrolib/core/io/rtc/json/rtcDataConfig.json diff --git a/hydrolib/core/io/rtc/json/rtcDataConfig.json b/hydrolib/core/io/rtc/json/rtcDataConfig.json new file mode 100644 index 000000000..e0cad3ea3 --- /dev/null +++ b/hydrolib/core/io/rtc/json/rtcDataConfig.json @@ -0,0 +1,408 @@ +{ + "$schema": "http://json-schema.org/schema#", + "additionalProperties": false, + "definitions": { + ".rtcDataConfig": { + "$ref": "#/definitions/rtcDataConfigComplexType" + }, + "AggregationTypeEnumStringType": { + "enum": [ + "BLOCK", + "LINEAR" + ], + "type": "string" + }, + "CSVTimeSeriesFileComplexType": { + "additionalProperties": false, + "properties": { + "attr_adjointOutput": { + "$ref": "#/definitions/xs:boolean" + }, + "attr_decimalSeparator": { + "$ref": "#/definitions/SeparatorEnumStringType" + }, + "attr_delimiter": { + "$ref": "#/definitions/SeparatorEnumStringType" + } + }, + "type": "object" + }, + "DateTimeComplexType": { + "additionalProperties": false, + "properties": { + "attr_date": { + "$ref": "#/definitions/dateType" + }, + "attr_time": { + "$ref": "#/definitions/timeType" + } + }, + "required": [ + "attr_date", + "attr_time" + ], + "type": "object" + }, + "EnsembleModeEnumStringType": { + "enum": [ + "JOINT", + "TREE", + "INDEPENDENT" + ], + "type": "string" + }, + "ExternalBooleanSimpleType": { + "anyOf": [ + { + "type": "boolean" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "ExternalIntegerSimpleType": { + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "ExternalParameterSimpleType": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^([#-\\$][\\(-_a-z]+[#-\\$])$", + "type": "string" + } + ] + }, + "OpenMIExchangeItemComplexType": { + "additionalProperties": false, + "properties": { + "elementId": { + "$ref": "#/definitions/xs:string", + "description": "OpenMI element ID, corresponds to the locationId" + }, + "quantityId": { + "$ref": "#/definitions/xs:string", + "description": "OpenMI quantity ID, corresponds to the parameterId" + }, + "unit": { + "$ref": "#/definitions/UnitEnumStringType", + "description": "Selection of supported units" + } + }, + "required": [ + "elementId", + "quantityId", + "unit" + ], + "type": "object" + }, + "PIExtrapolationOptionEnumStringType": { + "enum": [ + "BLOCK", + "PERIODIC" + ], + "type": "string" + }, + "PIInterpolationOptionEnumStringType": { + "enum": [ + "BLOCK", + "LINEAR" + ], + "type": "string" + }, + "PITimeSeriesComplexType": { + "additionalProperties": false, + "description": "The header is used to specify the link to the location\n and the contents", + "properties": { + "extrapolationOption": { + "$ref": "#/definitions/PIExtrapolationOptionEnumStringType", + "description": "Extrapolation option in data import" + }, + "interpolationOption": { + "$ref": "#/definitions/PIInterpolationOptionEnumStringType", + "description": "Interpolation option in data import" + }, + "locationId": { + "$ref": "#/definitions/xs:string", + "description": "Location ID in Delft-FEWS PI-XML file" + }, + "parameterId": { + "$ref": "#/definitions/xs:string", + "description": "Parameter ID in Delft-FEWS PI-XML file" + }, + "qualifierId": { + "items": { + "$ref": "#/definitions/xs:string", + "description": "Optional qualifier ID in Delft-FEWS PI-XML file" + }, + "type": "array" + }, + "timeStep": { + "$ref": "#/definitions/TimeStepComplexType", + "description": "Equidistant time step of time series with optional multiplier of divider" + }, + "unit": { + "$ref": "#/definitions/xs:string", + "description": "Optional check for this unit during import, write this unit optionally when export the time series" + } + }, + "required": [ + "locationId", + "parameterId" + ], + "type": "object" + }, + "PITimeSeriesExportFileComplexType": { + "additionalProperties": false, + "properties": { + "adjointOutput": { + "$ref": "#/definitions/xs:boolean" + }, + "timeSeriesFile": { + "$ref": "#/definitions/xs:string", + "description": "Name of the file containing timeseries data. " + }, + "useBinFile": { + "$ref": "#/definitions/xs:boolean", + "description": "When true the events in the PI time series file are read from / written into a binairy file instead of the xml file.\nThe xml file only contains the time series headers and optionally a time zone.\nThe binairy file has the same name as the xml file only the extension is \"bin\" instead of \"xml\". The byte order in the bin file is always Intel x86.\n " + } + }, + "required": [ + "timeSeriesFile" + ], + "type": "object" + }, + "PITimeSeriesImportFileComplexType": { + "additionalProperties": false, + "properties": { + "timeSeriesFile": { + "$ref": "#/definitions/xs:string", + "description": "Name of the file containing timeseries data. " + }, + "useBinFile": { + "$ref": "#/definitions/xs:boolean", + "description": "OBSOLETE. Still here for backwards compatibility. Remove after next release." + } + }, + "required": [ + "timeSeriesFile" + ], + "type": "object" + }, + "rtcDataConfigComplexType": { + "additionalProperties": false, + "properties": { + "exportSeries": { + "$ref": "#/definitions/rtcSeriesExportComplexType", + "description": "Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces" + }, + "importSeries": { + "$ref": "#/definitions/rtcSeriesImportComplexType", + "description": "Import time series RTC-Tools imports from XML files or other interfaces" + } + }, + "required": [ + "exportSeries", + "importSeries" + ], + "type": "object" + }, + "rtcSeriesExportComplexType": { + "additionalProperties": false, + "properties": { + "CSVTimeSeriesFile": { + "$ref": "#/definitions/CSVTimeSeriesFileComplexType", + "description": "Comma-separated file for data exports. Note that this option is only used in the exportSeries element. If selected, all available time series will be exported." + }, + "PITimeSeriesFile": { + "$ref": "#/definitions/PITimeSeriesExportFileComplexType" + }, + "timeSeries": { + "items": { + "$ref": "#/definitions/rtcTimeSeriesComplexType", + "description": "Time series for importing and exporting optionally including the mapping from to Delft-FEWS or OpenMI " + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "timeSeries" + ], + "type": "object" + }, + "rtcSeriesImportComplexType": { + "additionalProperties": false, + "properties": { + "PITimeSeriesFile": { + "$ref": "#/definitions/PITimeSeriesImportFileComplexType" + }, + "timeSeries": { + "items": { + "$ref": "#/definitions/rtcTimeSeriesComplexType", + "description": "Time series for importing and exporting optionally including the mapping from to Delft-FEWS or OpenMI " + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "timeSeries" + ], + "type": "object" + }, + "rtcTimeSeriesComplexType": { + "additionalProperties": false, + "description": "The header is used to specify the link to the location\n and the contents", + "properties": { + "attr_id": { + "minLength": 1, + "type": "string" + }, + "attr_validation": { + "enum": [ + "NO", + "STATE", + "UPDATE", + "UPDATE_EXCEPT_STATE", + "FORECAST", + "FORECAST_EXCEPT_T0", + "ALL", + "ALL_EXCEPT_STATE" + ], + "type": "string" + }, + "attr_vectorLength": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer" + }, + "OpenMIExchangeItem": { + "$ref": "#/definitions/OpenMIExchangeItemComplexType", + "description": "Time series definition of the OpenMI format for the online coupling of models during runtime" + }, + "PITimeSeries": { + "$ref": "#/definitions/PITimeSeriesComplexType", + "description": "Time series definition of the PI XML time series format of Delft-FEWS" + } + }, + "required": [ + "attr_id" + ], + "type": "object" + }, + "SeparatorEnumStringType": { + "enum": [ + ".", + ",", + ";" + ], + "type": "string" + }, + "TimeSeriesSimpleType": { + "minLength": 1, + "type": "string" + }, + "TimeStepComplexType": { + "additionalProperties": false, + "description": "The timeunit element has three attributes, unit and devider and multiplier.\n the unit is second, minute, hour, week, month year.\n The divider attribute is optional (default = 1).", + "properties": { + "attr_divider": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_multiplier": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_unit": { + "$ref": "#/definitions/timeStepUnitEnumStringType" + } + }, + "required": [ + "attr_unit" + ], + "type": "object" + }, + "TimeZoneSimpleType": { + "description": "The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", + "type": "number" + }, + "UnitEnumStringType": { + "enum": [ + "m", + "m^2", + "m^3", + "m^3/s", + "s" + ], + "type": "string" + }, + "VariableTypeEnumStringType": { + "enum": [ + "CONTINUOUS", + "INTEGER", + "TIMEINSTANCE" + ], + "type": "string" + }, + "dateType": { + "pattern": "^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$", + "type": "string" + }, + "timeSeriesType": { + "description": "Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ", + "enum": [ + "accumulative", + "instantaneous" + ], + "type": "string" + }, + "timeStepUnitEnumStringType": { + "enum": [ + "second", + "minute", + "hour", + "day", + "week" + ], + "type": "string" + }, + "timeType": { + "pattern": "^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$", + "type": "string" + }, + "xs:boolean": { + "type": "boolean" + }, + "xs:positiveInteger": { + "minimum": 1, + "type": "integer" + }, + "xs:string": { + "type": "string" + } + }, + "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", + "properties": { + "attr_xmlns": { + "default": "http://www.wldelft.nl/fews" + }, + "attr_xmlns:xs": { + "default": "http://www.w3.org/2001/XMLSchema" + }, + "rtcDataConfig": { + "$ref": "#/definitions/.rtcDataConfig" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/hydrolib/core/io/rtc/rtcDataConfig/models.py b/hydrolib/core/io/rtc/rtcDataConfig/models.py index ad8e28945..aa80d7c97 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/models.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/models.py @@ -1,442 +1,370 @@ # generated by datamodel-codegen: # filename: rtcDataConfig.json -# timestamp: 2022-09-23T08:50:37+00:00 +# timestamp: 2022-09-26T09:53:40+00:00 from __future__ import annotations from enum import Enum from typing import Any, List, Optional, Union -from pydantic import BaseModel, Extra, Field, conint, constr +from pydantic import BaseModel, Extra, Field -class RtcAggregationTypeEnumStringType(Enum): - BLOCK = "BLOCK" - LINEAR = "LINEAR" +class AggregationTypeEnumStringType(str, Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' -class RtcEnsembleModeEnumStringType(Enum): - JOINT = "JOINT" - TREE = "TREE" - INDEPENDENT = "INDEPENDENT" +class EnsembleModeEnumStringType(str, Enum): + JOINT = 'JOINT' + TREE = 'TREE' + INDEPENDENT = 'INDEPENDENT' -class RtcExternalBooleanSimpleType(BaseModel): - __root__: Union[bool, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] - - -class RtcExternalIntegerSimpleType(BaseModel): - __root__: Union[int, constr(regex=r"^([\$][\(-_a-z]+[\$])$")] - - -class RtcExternalParameterSimpleType(BaseModel): - __root__: Union[float, constr(regex=r"^([#-\$][\(-_a-z]+[#-\$])$")] - - -class RtcPIExtrapolationOptionEnumStringType(Enum): - BLOCK = "BLOCK" - PERIODIC = "PERIODIC" - - -class RtcPIInterpolationOptionEnumStringType(Enum): - BLOCK = "BLOCK" - LINEAR = "LINEAR" - - -class RtcExtrapolationOption(BaseModel): +class ExternalBooleanSimpleTypeItem(BaseModel): class Config: - extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[RtcPIExtrapolationOptionEnumStringType] = Field(None, alias="$") + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') -class RtcInterpolationOption(BaseModel): +class ExternalBooleanSimpleType(BaseModel): class Config: - extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[RtcPIInterpolationOptionEnumStringType] = Field(None, alias="$") + __root__: Union[bool, ExternalBooleanSimpleTypeItem] -class _Validation(Enum): - NO = "NO" - STATE = "STATE" - UPDATE = "UPDATE" - UPDATE_EXCEPT_STATE = "UPDATE_EXCEPT_STATE" - FORECAST = "FORECAST" - FORECAST_EXCEPT_T0 = "FORECAST_EXCEPT_T0" - ALL = "ALL" - ALL_EXCEPT_STATE = "ALL_EXCEPT_STATE" - +class ExternalIntegerSimpleTypeItem(BaseModel): + class Config: + allow_population_by_field_name = True -class RtcSeparatorEnumStringType(Enum): - _ = "." - __1 = "," - __2 = ";" + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') -class RtcTimeSeriesSimpleType(BaseModel): - __root__: constr(min_length=1) +class ExternalIntegerSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + __root__: Union[int, ExternalIntegerSimpleTypeItem] -class RtcTimeZoneSimpleType(BaseModel): - __root__: float = Field( - ..., - description="The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", - ) +class ExternalParameterSimpleTypeItem(BaseModel): + class Config: + allow_population_by_field_name = True -class RtcUnitEnumStringType(Enum): - m = "m" - m_2 = "m^2" - m_3 = "m^3" - m_3_s = "m^3/s" - s = "s" - + __root__: str = Field(..., regex='^([#-\\$][\\(-_a-z]+[#-\\$])$') -class RtcVariableTypeEnumStringType(Enum): - CONTINUOUS = "CONTINUOUS" - INTEGER = "INTEGER" - TIMEINSTANCE = "TIMEINSTANCE" +class ExternalParameterSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True -class RtcDateType(BaseModel): - __root__: constr(regex=r"^([\d][\d][\d][\d]\-[\d][\d]\-[\d][\d])$") + __root__: Union[float, ExternalParameterSimpleTypeItem] -class RtcTimeSeriesType(Enum): - accumulative = "accumulative" - instantaneous = "instantaneous" +class PIExtrapolationOptionEnumStringType(str, Enum): + BLOCK = 'BLOCK' + PERIODIC = 'PERIODIC' -class RtcTimeStepUnitEnumStringType(Enum): - second = "second" - minute = "minute" - hour = "hour" - day = "day" - week = "week" +class PIInterpolationOptionEnumStringType(str, Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' -class RtcTimeType(BaseModel): - __root__: constr(regex=r"^([\d][\d]\:[\d][\d]\:[\d][\d])$") +class AttrValidation(str, Enum): + NO = 'NO' + STATE = 'STATE' + UPDATE = 'UPDATE' + UPDATE_EXCEPT_STATE = 'UPDATE_EXCEPT_STATE' + FORECAST = 'FORECAST' + FORECAST_EXCEPT_T0 = 'FORECAST_EXCEPT_T0' + ALL = 'ALL' + ALL_EXCEPT_STATE = 'ALL_EXCEPT_STATE' -class XsBoolean(BaseModel): - __root__: bool +class SeparatorEnumStringType(str, Enum): + _ = '.' + __1 = ',' + __2 = ';' -class XsPositiveInteger(BaseModel): - __root__: conint(ge=1) - +class TimeSeriesSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True -class XsString(BaseModel): - __root__: str + __root__: str = Field(..., min_length=1) -class RtcCSVTimeSeriesFileComplexType(BaseModel): +class TimeZoneSimpleType(BaseModel): class Config: - extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - _adjointOutput: Optional[XsBoolean] = Field(None, alias="@adjointOutput") - _decimalSeparator: Optional[RtcSeparatorEnumStringType] = Field( - None, alias="@decimalSeparator" + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', ) - _delimiter: Optional[RtcSeparatorEnumStringType] = Field(None, alias="@delimiter") - - -class RtcDateTimeComplexType(BaseModel): - class Config: - extra = Extra.forbid - _: Optional[str] = Field(None, alias="#") - _date: RtcDateType = Field(..., alias="@date") - _time: RtcTimeType = Field(..., alias="@time") +class UnitEnumStringType(str, Enum): + m = 'm' + m_2 = 'm^2' + m_3 = 'm^3' + m_3_s = 'm^3/s' + s = 's' -class RtcElementId(BaseModel): - class Config: - extra = Extra.forbid - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsString] = Field(None, alias="$") +class VariableTypeEnumStringType(str, Enum): + CONTINUOUS = 'CONTINUOUS' + INTEGER = 'INTEGER' + TIMEINSTANCE = 'TIMEINSTANCE' -class RtcQuantityId(BaseModel): +class DateType(BaseModel): class Config: - extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsString] = Field(None, alias="$") + __root__: str = Field( + ..., regex='^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$' + ) -class RtcUnit(BaseModel): - class Config: - extra = Extra.forbid +class TimeSeriesType(str, Enum): + """ + Type of data, either accumulative or instantaneous. + For accumulative data the time/date of the event is + the moment at which the data was gathered. + + """ - _: Optional[str] = Field(None, alias="#") - __1: Optional[RtcUnitEnumStringType] = Field(None, alias="$") + accumulative = 'accumulative' + instantaneous = 'instantaneous' -class RtcOpenMIExchangeItemComplexType(BaseModel): - class Config: - extra = Extra.forbid +class TimeStepUnitEnumStringType(str, Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' - _: Optional[str] = Field(None, alias="#") - rtc_elementId: RtcElementId = Field( - ..., - alias="rtc:elementId", - description="OpenMI element ID, corresponds to the locationId", - ) - rtc_quantityId: RtcQuantityId = Field( - ..., - alias="rtc:quantityId", - description="OpenMI quantity ID, corresponds to the parameterId", - ) - rtc_unit: RtcUnit = Field( - ..., alias="rtc:unit", description="Selection of supported units" - ) - -class RtcLocationId(BaseModel): +class TimeType(BaseModel): class Config: - extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsString] = Field(None, alias="$") + __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') -class RtcParameterId(BaseModel): +class XsBoolean(BaseModel): class Config: - extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsString] = Field(None, alias="$") + __root__: bool -class RtcQualifierIdItem(BaseModel): +class XsPositiveInteger(BaseModel): class Config: - extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsString] = Field(None, alias="$") + __root__: int = Field(..., ge=1) -class RtcUnit1(BaseModel): +class XsString(BaseModel): class Config: - extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsString] = Field(None, alias="$") + __root__: str -class RtcAdjointOutput(BaseModel): +class CSVTimeSeriesFileComplexType(BaseModel): class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsBoolean] = Field(None, alias="$") + attr_adjointOutput: Optional[XsBoolean] = None + attr_decimalSeparator: Optional[SeparatorEnumStringType] = None + attr_delimiter: Optional[SeparatorEnumStringType] = None -class RtcTimeSeriesFile(BaseModel): +class DateTimeComplexType(BaseModel): class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsString] = Field(None, alias="$") + attr_date: DateType + attr_time: TimeType -class RtcUseBinFile(BaseModel): +class OpenMIExchangeItemComplexType(BaseModel): class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsBoolean] = Field(None, alias="$") + elementId: XsString = Field( + ..., description='OpenMI element ID, corresponds to the locationId' + ) + quantityId: XsString = Field( + ..., description='OpenMI quantity ID, corresponds to the parameterId' + ) + unit: UnitEnumStringType = Field(..., description='Selection of supported units') -class RtcPITimeSeriesExportFileComplexType(BaseModel): +class PITimeSeriesExportFileComplexType(BaseModel): class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - rtc_adjointOutput: Optional[RtcAdjointOutput] = Field( - None, alias="rtc:adjointOutput" - ) - rtc_timeSeriesFile: RtcTimeSeriesFile = Field( - ..., - alias="rtc:timeSeriesFile", - description="Name of the file containing timeseries data. ", + adjointOutput: Optional[XsBoolean] = None + timeSeriesFile: XsString = Field( + ..., description='Name of the file containing timeseries data. ' ) - rtc_useBinFile: Optional[RtcUseBinFile] = Field( + useBinFile: Optional[XsBoolean] = Field( None, - alias="rtc:useBinFile", description='When true the events in the PI time series file are read from / written into a binairy file instead of the xml file.\nThe xml file only contains the time series headers and optionally a time zone.\nThe binairy file has the same name as the xml file only the extension is "bin" instead of "xml". The byte order in the bin file is always Intel x86.\n ', ) -class RtcTimeSeriesFile1(BaseModel): - class Config: - extra = Extra.forbid - - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsString] = Field(None, alias="$") - - -class RtcUseBinFile1(BaseModel): +class PITimeSeriesImportFileComplexType(BaseModel): class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - __1: Optional[XsBoolean] = Field(None, alias="$") - - -class RtcPITimeSeriesImportFileComplexType(BaseModel): - class Config: - extra = Extra.forbid - - _: Optional[str] = Field(None, alias="#") - rtc_timeSeriesFile: RtcTimeSeriesFile1 = Field( - ..., - alias="rtc:timeSeriesFile", - description="Name of the file containing timeseries data. ", + timeSeriesFile: XsString = Field( + ..., description='Name of the file containing timeseries data. ' ) - rtc_useBinFile: Optional[RtcUseBinFile1] = Field( + useBinFile: Optional[XsBoolean] = Field( None, - alias="rtc:useBinFile", - description="OBSOLETE. Still here for backwards compatibility. Remove after next release.", + description='OBSOLETE. Still here for backwards compatibility. Remove after next release.', ) -class RtcTimeStepComplexType(BaseModel): +class TimeStepComplexType(BaseModel): + """ + The timeunit element has three attributes, unit and devider and multiplier. + the unit is second, minute, hour, week, month year. + The divider attribute is optional (default = 1). + """ + class Config: extra = Extra.forbid + allow_population_by_field_name = True + + attr_divider: Optional[XsPositiveInteger] = None + attr_multiplier: Optional[XsPositiveInteger] = None + attr_unit: TimeStepUnitEnumStringType - _: Optional[str] = Field(None, alias="#") - _divider: Optional[XsPositiveInteger] = Field(None, alias="@divider") - _multiplier: Optional[XsPositiveInteger] = Field(None, alias="@multiplier") - _unit: RtcTimeStepUnitEnumStringType = Field(..., alias="@unit") +class PITimeSeriesComplexType(BaseModel): + """ + The header is used to specify the link to the location + and the contents + """ -class RtcPITimeSeriesComplexType(BaseModel): class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - rtc_extrapolationOption: Optional[RtcExtrapolationOption] = Field( - None, - alias="rtc:extrapolationOption", - description="Extrapolation option in data import", - ) - rtc_interpolationOption: Optional[RtcInterpolationOption] = Field( - None, - alias="rtc:interpolationOption", - description="Interpolation option in data import", + extrapolationOption: Optional[PIExtrapolationOptionEnumStringType] = Field( + None, description='Extrapolation option in data import' ) - rtc_locationId: RtcLocationId = Field( - ..., alias="rtc:locationId", description="Location ID in Delft-FEWS PI-XML file" + interpolationOption: Optional[PIInterpolationOptionEnumStringType] = Field( + None, description='Interpolation option in data import' ) - rtc_parameterId: RtcParameterId = Field( - ..., - alias="rtc:parameterId", - description="Parameter ID in Delft-FEWS PI-XML file", + locationId: XsString = Field( + ..., description='Location ID in Delft-FEWS PI-XML file' ) - rtc_qualifierId: Optional[List[RtcQualifierIdItem]] = Field( - None, alias="rtc:qualifierId" + parameterId: XsString = Field( + ..., description='Parameter ID in Delft-FEWS PI-XML file' ) - rtc_timeStep: Optional[RtcTimeStepComplexType] = Field( + qualifierId: Optional[List[XsString]] = None + timeStep: Optional[TimeStepComplexType] = Field( None, - alias="rtc:timeStep", - description="Equidistant time step of time series with optional multiplier of divider", + description='Equidistant time step of time series with optional multiplier of divider', ) - rtc_unit: Optional[RtcUnit1] = Field( + unit: Optional[XsString] = Field( None, - alias="rtc:unit", - description="Optional check for this unit during import, write this unit optionally when export the time series", + description='Optional check for this unit during import, write this unit optionally when export the time series', ) -class RtcRTCTimeSeriesComplexType(BaseModel): +class RtcTimeSeriesComplexType(BaseModel): + """ + The header is used to specify the link to the location + and the contents + """ + class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - _id: constr(min_length=1) = Field(..., alias="@id") - _validation: Optional[_Validation] = Field(None, alias="@validation") - _vectorLength: Optional[conint(ge=1, le=2147483647)] = Field( - None, alias="@vectorLength" - ) - rtc_OpenMIExchangeItem: Optional[RtcOpenMIExchangeItemComplexType] = Field( + attr_id: str = Field(..., min_length=1) + attr_validation: Optional[AttrValidation] = None + attr_vectorLength: Optional[int] = Field(None, ge=1, le=2147483647) + OpenMIExchangeItem: Optional[OpenMIExchangeItemComplexType] = Field( None, - alias="rtc:OpenMIExchangeItem", - description="Time series definition of the OpenMI format for the online coupling of models during runtime", + description='Time series definition of the OpenMI format for the online coupling of models during runtime', ) - rtc_PITimeSeries: Optional[RtcPITimeSeriesComplexType] = Field( + PITimeSeries: Optional[PITimeSeriesComplexType] = Field( None, - alias="rtc:PITimeSeries", - description="Time series definition of the PI XML time series format of Delft-FEWS", + description='Time series definition of the PI XML time series format of Delft-FEWS', ) -class RtcRTCSeriesExportComplexType(BaseModel): +class RtcSeriesExportComplexType(BaseModel): class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - rtc_CSVTimeSeriesFile: Optional[RtcCSVTimeSeriesFileComplexType] = Field( + CSVTimeSeriesFile: Optional[CSVTimeSeriesFileComplexType] = Field( None, - alias="rtc:CSVTimeSeriesFile", - description="Comma-separated file for data exports. Note that this option is only used in the exportSeries element. If selected, all available time series will be exported.", - ) - rtc_PITimeSeriesFile: Optional[RtcPITimeSeriesExportFileComplexType] = Field( - None, alias="rtc:PITimeSeriesFile" - ) - rtc_timeSeries: List[RtcRTCTimeSeriesComplexType] = Field( - ..., alias="rtc:timeSeries", min_items=1 + description='Comma-separated file for data exports. Note that this option is only used in the exportSeries element. If selected, all available time series will be exported.', ) + PITimeSeriesFile: Optional[PITimeSeriesExportFileComplexType] = None + timeSeries: List[RtcTimeSeriesComplexType] = Field(..., min_items=1) -class RtcRTCSeriesImportComplexType(BaseModel): +class RtcSeriesImportComplexType(BaseModel): class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - rtc_PITimeSeriesFile: Optional[RtcPITimeSeriesImportFileComplexType] = Field( - None, alias="rtc:PITimeSeriesFile" - ) - rtc_timeSeries: List[RtcRTCTimeSeriesComplexType] = Field( - ..., alias="rtc:timeSeries", min_items=1 - ) + PITimeSeriesFile: Optional[PITimeSeriesImportFileComplexType] = None + timeSeries: List[RtcTimeSeriesComplexType] = Field(..., min_items=1) -class RtcRTCDataConfigComplexType(BaseModel): +class RtcDataConfigComplexType(BaseModel): class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - rtc_exportSeries: RtcRTCSeriesExportComplexType = Field( + exportSeries: RtcSeriesExportComplexType = Field( ..., - alias="rtc:exportSeries", - description="Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces", + description='Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces', ) - rtc_importSeries: RtcRTCSeriesImportComplexType = Field( + importSeries: RtcSeriesImportComplexType = Field( ..., - alias="rtc:importSeries", - description="Import time series RTC-Tools imports from XML files or other interfaces", + description='Import time series RTC-Tools imports from XML files or other interfaces', ) -class RtcRtcDataConfig(BaseModel): - __root__: RtcRTCDataConfigComplexType +class RtcDataConfig(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: RtcDataConfigComplexType class Model(BaseModel): + """ + JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com) + """ + class Config: extra = Extra.forbid + allow_population_by_field_name = True - _: Optional[str] = Field(None, alias="#") - _xmlns_rtc: Optional[Any] = Field("http://www.wldelft.nl/fews", alias="@xmlns:rtc") - _xmlns_xs: Optional[Any] = Field( - "http://www.w3.org/2001/XMLSchema", alias="@xmlns:xs" - ) - rtc_rtcDataConfig: Optional[RtcRtcDataConfig] = Field( - None, alias="rtc:rtcDataConfig" + attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews' + attr_xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' ) + rtcDataConfig: Optional[RtcDataConfig] = None From 7c708348f2a5d99542701a57fbe9bb4dd269e93b Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Mon, 26 Sep 2022 16:37:09 +0200 Subject: [PATCH 06/22] #226: Add initial serializer for a rtcDataConfig file. Serializer should still be refactored to be usable for the other RTC files. --- .../core/io/rtc/rtcDataConfig/serializer.py | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 hydrolib/core/io/rtc/rtcDataConfig/serializer.py diff --git a/hydrolib/core/io/rtc/rtcDataConfig/serializer.py b/hydrolib/core/io/rtc/rtcDataConfig/serializer.py new file mode 100644 index 000000000..517892cfe --- /dev/null +++ b/hydrolib/core/io/rtc/rtcDataConfig/serializer.py @@ -0,0 +1,73 @@ +from datetime import datetime +from pathlib import Path +from typing import List +from xml.dom import minidom +from hydrolib.core.io.rtc.rtcDataConfig.models import Model as RtcDataConfigModel +from lxml import etree as e + + +class RtcDataConfigSerializer: + """A serializer for Real-Time Control files.""" + + @staticmethod + def serialize(path: Path, model: RtcDataConfigModel): + """ + Serializes the RTC data to the file at the specified path. + + Attributes: + path (Path): The path to the destination file. + data (Dict): The RTC data configuration model to be serialized. + """ + + path.parent.mkdir(parents=True, exist_ok=True) + + xmlns = model.attr_xmlns + xsi = model.attr_xmlns_xs + schema_location = "rtcDataConfig.xsd" + + attrib = {e.QName(xsi, "schemaLocation"): f"{xmlns} {schema_location}"} + namespaces = {None: xmlns, "xsi": xsi, "rtc": xmlns} + + root = e.Element( + "rtcDataConfig", + attrib=attrib, + nsmap=namespaces, + ) + + serialization_data = model.rtcDataConfig.dict(by_alias=True) + RtcDataConfigSerializer._build_tree(root, serialization_data) + + to_string = minidom.parseString(e.tostring(root)) + xml = to_string.toprettyxml(indent=4 * " ", encoding="utf-8") + + with path.open("wb") as file: + file.write(xml) + + @staticmethod + def _build_tree(root, data: dict): + for key, val in data.items(): + if val is None: + continue + + elif key.startswith('attr_'): + attribute_key = key.lstrip('attr_') + root.set(attribute_key, val) + + elif key == "__root__": + RtcDataConfigSerializer._build_tree(root, val) + + elif isinstance(val, dict): + c = e.Element(key) + root.append(c) + RtcDataConfigSerializer._build_tree(c, val) + + elif isinstance(val, List): + for item in val: + c = e.Element(key) + root.append(c) + RtcDataConfigSerializer._build_tree(c, item) + + else: + c = e.Element(key) + c.text = val + root.append(c) From 18ded4ce6e67957ffe3ad333be07cbe84bb542fc Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Mon, 26 Sep 2022 22:26:08 +0200 Subject: [PATCH 07/22] #226: Cast values to strings in Serializer --- hydrolib/core/io/rtc/rtcDataConfig/serializer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hydrolib/core/io/rtc/rtcDataConfig/serializer.py b/hydrolib/core/io/rtc/rtcDataConfig/serializer.py index 517892cfe..d997f3026 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/serializer.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/serializer.py @@ -34,7 +34,7 @@ def serialize(path: Path, model: RtcDataConfigModel): nsmap=namespaces, ) - serialization_data = model.rtcDataConfig.dict(by_alias=True) + serialization_data = model.rtcDataConfig.dict() RtcDataConfigSerializer._build_tree(root, serialization_data) to_string = minidom.parseString(e.tostring(root)) @@ -51,7 +51,7 @@ def _build_tree(root, data: dict): elif key.startswith('attr_'): attribute_key = key.lstrip('attr_') - root.set(attribute_key, val) + root.set(attribute_key, str(val)) elif key == "__root__": RtcDataConfigSerializer._build_tree(root, val) @@ -69,5 +69,5 @@ def _build_tree(root, data: dict): else: c = e.Element(key) - c.text = val + c.text = str(val) root.append(c) From 84c269d06adf1bd4245c47aab8e968eae0e6e1c4 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Mon, 26 Sep 2022 22:28:25 +0200 Subject: [PATCH 08/22] #226: Add initial parser for a rtcDataConfig file. Parser should still be refactored to be usable for the other RTC files. --- hydrolib/core/io/rtc/rtcDataConfig/parser.py | 64 ++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 hydrolib/core/io/rtc/rtcDataConfig/parser.py diff --git a/hydrolib/core/io/rtc/rtcDataConfig/parser.py b/hydrolib/core/io/rtc/rtcDataConfig/parser.py new file mode 100644 index 000000000..3dfcd766e --- /dev/null +++ b/hydrolib/core/io/rtc/rtcDataConfig/parser.py @@ -0,0 +1,64 @@ +from pathlib import Path +from warnings import warn + +from lxml import etree + +class RtcDataConfigParser: + """A parser for RTC xml files.""" + + @staticmethod + def parse(path: Path) -> dict: + """Parses an RTC file to a dictionary. + + Args: + path (Path): Path to the RTC file. + """ + if not path.is_file(): + warn(f"File: `{path}` not found, skipped parsing.") + return {} + + parser = etree.XMLParser( + remove_comments=True, resolve_entities=False, no_network=True + ) + root = etree.parse(str(path), parser=parser).getroot() + + return RtcDataConfigParser._node_to_dictionary(root, True) + + @staticmethod + def _node_to_dictionary(node: etree, ignore_attributes: bool = False): + """ + Convert an lxml.etree node tree recursively into a nested dictionary. + The node's attributes and child items will be added to it's dictionary. + + Args: + node (etree): The etree node + ignore_attributes (bool): Optional parameter; whether or not to + skip the node's attributes. Default is False. + """ + + result = {} + if not ignore_attributes: + for key, val in node.attrib.items(): + key = "attr_" + key + result[key] = val + + for child_node in node.iterchildren(): + + key = child_node.tag.split("}")[1] + + if child_node.text and child_node.text.strip(): + value = child_node.text + else: + value = RtcDataConfigParser._node_to_dictionary(child_node) + + if key in result: + + if type(result[key]) is list: + result[key].append(value) + else: + first_value = result[key].copy() + result[key] = [first_value, value] + else: + result[key] = value + + return result \ No newline at end of file From a760d118234a2a4e32567b0c1d9ae2cd1ebca667 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 13:50:14 +0200 Subject: [PATCH 09/22] #226: Create an RtcBaseModel to try to move validation outside of generated classes. --- hydrolib/core/io/rtc/basemodel.py | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 hydrolib/core/io/rtc/basemodel.py diff --git a/hydrolib/core/io/rtc/basemodel.py b/hydrolib/core/io/rtc/basemodel.py new file mode 100644 index 000000000..bcf49f8e3 --- /dev/null +++ b/hydrolib/core/io/rtc/basemodel.py @@ -0,0 +1,46 @@ +from pydantic.class_validators import root_validator +from hydrolib.core.basemodel import BaseModel +from typing import Any, get_origin +from hydrolib.core.utils import to_list + +class RtcBaseModel(BaseModel): + @root_validator(pre=True) + def validate(cls, data) -> dict: + data = cls._get_root_data(data) + data = cls._get_list_data(data) + + return data + + @classmethod + def _get_root_data(cls, data: dict) -> dict: + """Puts the provided dictionary `data` in a new dictionary with the key `__root__`. + This is only performed when this `cls` has a `__root__` attributes but is not delivered in the provided `data`. + Otherwise, the original data is returned. + + Args: + data (dict): The data to validate that is used to initialize the class. + + Returns: + dict: A dictionary with a `__root__` key if needed, otherwise the original data. + """ + + root_field_name = "__root__" + root_field = cls.__fields__.get(root_field_name) + + if root_field and root_field_name not in data: + return {root_field_name: data} + return data + + @classmethod + def _get_list_data(cls, data: dict) -> dict: + for key, value in data.items(): + + field = cls.__fields__.get(key) + field_type = field.outer_type_ # returns e.g. List[str] or Optional[List[str]] + non_generic_field_type = get_origin(field_type) or field_type.__origin__ # returns e.g. list + + if non_generic_field_type is list: + data[key] = to_list(value) + + return data + From 00852e0231a0afd52099397fe0a917a28ed175e2 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 14:47:42 +0200 Subject: [PATCH 10/22] #226: Refactor RtcBaseModel a little bit. --- hydrolib/core/io/rtc/basemodel.py | 38 +++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/hydrolib/core/io/rtc/basemodel.py b/hydrolib/core/io/rtc/basemodel.py index bcf49f8e3..e085b04b7 100644 --- a/hydrolib/core/io/rtc/basemodel.py +++ b/hydrolib/core/io/rtc/basemodel.py @@ -1,11 +1,15 @@ from pydantic.class_validators import root_validator from hydrolib.core.basemodel import BaseModel -from typing import Any, get_origin +from typing import get_origin from hydrolib.core.utils import to_list +from pydantic.fields import ModelField class RtcBaseModel(BaseModel): @root_validator(pre=True) def validate(cls, data) -> dict: + if not isinstance(data, dict): + return data + data = cls._get_root_data(data) data = cls._get_list_data(data) @@ -36,11 +40,37 @@ def _get_list_data(cls, data: dict) -> dict: for key, value in data.items(): field = cls.__fields__.get(key) - field_type = field.outer_type_ # returns e.g. List[str] or Optional[List[str]] - non_generic_field_type = get_origin(field_type) or field_type.__origin__ # returns e.g. list + if not field: + continue - if non_generic_field_type is list: + field_type = cls._get_field_type(field) + + if field_type is list: data[key] = to_list(value) return data + @classmethod + def _get_field_type(cls, field: ModelField): + """Gets the non-generic field type of a model field. + For example, if the model field type is `List[str]`, + the returned type will be `list`. + + Args: + field (ModelField): The model field. + + Returns: + The non-generic type of the model field for example `list`. + """ + # `outer_type_` returns e.g. List[str] + field_type = field.outer_type_ + + # `origin` returns e.g. list + origin = get_origin(field_type) + if origin: + return origin + + if hasattr(field_type, "__origin__"): + return field_type.__origin__ + + return None From 7205a375fc9fc374e8a4fb1ddd5b161b0161e58f Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 15:07:43 +0200 Subject: [PATCH 11/22] #226: Add rtcToolsConfig.json --- hydrolib/core/io/rtc/json/rtcToolsConfig.json | 7582 +++++++++++++++++ 1 file changed, 7582 insertions(+) create mode 100644 hydrolib/core/io/rtc/json/rtcToolsConfig.json diff --git a/hydrolib/core/io/rtc/json/rtcToolsConfig.json b/hydrolib/core/io/rtc/json/rtcToolsConfig.json new file mode 100644 index 000000000..41292e210 --- /dev/null +++ b/hydrolib/core/io/rtc/json/rtcToolsConfig.json @@ -0,0 +1,7582 @@ +{ + "$schema": "http://json-schema.org/schema#", + "additionalProperties": false, + "definitions": { + "..rtc:ExternalParameterSimpleType.1": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "@useAbsoluteAsSpillCap": { + "$ref": "#/definitions/xs:boolean" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.1": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@selectingColumnId": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "@id" + ], + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.10": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.11": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.12": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.13": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.14": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.15": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.16": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.17": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@factor": { + "$ref": "#/definitions/xs:double" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.18": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@nStepSeries": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@nStepSeriesStart": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.19": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@factor": { + "$ref": "#/definitions/xs:double" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.2": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.20": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.21": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.22": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.23": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.24": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.25": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.3": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.4": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.5": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.6": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@factor": { + "$ref": "#/definitions/xs:double" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.7": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@useAbsoluteAsSpillCap": { + "$ref": "#/definitions/xs:boolean" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.8": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@factor": { + "$ref": "#/definitions/xs:double" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..rtc:TimeSeriesSimpleType.9": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@ref": { + "$ref": "#/definitions/rtc:inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..xs:string.1": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/xs:string" + }, + "@weight": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + } + }, + "required": [ + "@weight" + ], + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..xs:string.2": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/xs:string" + }, + "@weight": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + } + }, + "required": [ + "@weight" + ], + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + ".rtc:rtcToolsConfig": { + "$ref": "#/definitions/rtc:RtcToolsConfigComplexType" + }, + "rtc:ATableComplexType": { + "additionalProperties": false, + "properties": { + "rtc:row": { + "items": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@id", + "@value" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:row" + ], + "type": "object" + }, + "rtc:AccumulationComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:AccumulationInputComplexType", + "description": "input variable" + }, + "rtc:multiplier": { + "$ref": "#/definitions/xs:double", + "description": "optional multiplier" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:AccumulationOutputComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:AccumulationInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:AccumulationOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:y" + ], + "type": "object" + }, + "rtc:AebiRuleComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:FactorRTG": { + "$ref": "#/definitions/xs:double" + }, + "rtc:LangeteFall": { + "$ref": "#/definitions/rtc:caseLangetenEnumStringType" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:AebiRuleInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:AebiRuleOutputComplexType" + } + }, + "required": [ + "rtc:FactorRTG", + "rtc:LangeteFall", + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:AebiRuleInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AareBruegg": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:AareBrueggMin2": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:AareMurg": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:AbflussReglementPort": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:Emenmatt": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:EmenmattMin4": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:Langeten": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:LangetenMin4": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:PegelBielersee": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:AareBruegg", + "rtc:AareBrueggMin2", + "rtc:AareMurg", + "rtc:AbflussReglementPort", + "rtc:Emenmatt", + "rtc:EmenmattMin4", + "rtc:Langeten", + "rtc:LangetenMin4", + "rtc:PegelBielersee" + ], + "type": "object" + }, + "rtc:AebiRuleOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AareMurg_oKWMin1": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:AbflussaenderungPort": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:MaxAbflussPort": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:ProvMaxAbflussPort": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:RTG": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:AareMurg_oKWMin1", + "rtc:AbflussaenderungPort", + "rtc:MaxAbflussPort", + "rtc:ProvMaxAbflussPort", + "rtc:RTG" + ], + "type": "object" + }, + "rtc:AggregationTypeEnumStringType": { + "enum": [ + "BLOCK", + "LINEAR" + ], + "type": "string" + }, + "rtc:AllocationTableComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputATableComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputATableComplexType" + }, + "rtc:table": { + "$ref": "#/definitions/rtc:ATableComplexType" + }, + "rtc:tableExternal": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:ArmaComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:arCoef": { + "$ref": "#/definitions/xs:double", + "description": "autoregression coefficient related to prior time step" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:ArmaInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:ArmaOutputComplexType" + } + }, + "required": [ + "rtc:arCoef", + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:ArmaInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:obs": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "observed data" + }, + "rtc:sim": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "simulated data" + } + }, + "required": [ + "rtc:obs", + "rtc:sim" + ], + "type": "object" + }, + "rtc:ArmaOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:arma": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "output-corrected data" + } + }, + "required": [ + "rtc:arma" + ], + "type": "object" + }, + "rtc:BranchComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "rtc:alpha1": { + "$ref": "#/definitions/xs:double", + "description": "the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw" + }, + "rtc:alpha2": { + "$ref": "#/definitions/xs:double", + "description": "the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw" + }, + "rtc:crossSection": { + "$ref": "#/definitions/rtc:CrossSectionComplexType", + "description": "Cross section in the center of the flow branch." + }, + "rtc:equationType": { + "$ref": "#/definitions/rtc:EquationEnumStringType" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:BranchInputComplexType" + }, + "rtc:length": { + "$ref": "#/definitions/xs:double", + "description": "Length of the flow branch" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:BranchOutputComplexType" + }, + "rtc:roughness": { + "$ref": "#/definitions/rtc:CrossSectionRoughnessComplexType", + "description": "Roughness (Chezy) as a function of elevation h" + }, + "rtc:slope": { + "$ref": "#/definitions/xs:double", + "description": "slope for optional kinematic wave branch" + }, + "rtc:spatialScheme": { + "$ref": "#/definitions/rtc:SpatialEnumStringType" + } + }, + "required": [ + "rtc:crossSection", + "rtc:input", + "rtc:length", + "rtc:output", + "rtc:roughness", + "@id" + ], + "type": "object" + }, + "rtc:BranchGradientComplexType": { + "additionalProperties": false, + "properties": { + "rtc:storageDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:storageUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:surfaceAreaDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:surfaceAreaUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:storageDown", + "rtc:storageUp", + "rtc:surfaceAreaDown", + "rtc:surfaceAreaUp" + ], + "type": "object" + }, + "rtc:BranchInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "ID of downstream node" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "ID of upstream node" + }, + "rtc:ux": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional wind velocity at an elevation of 10 m above the water surface (x-direction), implementation is for the inertial model only" + }, + "rtc:uy": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional wind velocity at an elevation of 10 m above the water surface (y-direction), implementation is for the inertial model only" + } + }, + "required": [ + "rtc:HDown", + "rtc:HUp" + ], + "type": "object" + }, + "rtc:BranchOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:Q" + ], + "type": "object" + }, + "rtc:BranchTypeEnumStringType": { + "enum": [ + "KINEMATIC", + "DIFFUSIVE", + "DIFFUSIVEPLUSLOCAL" + ], + "type": "string" + }, + "rtc:CapacityCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "@reference": { + "$ref": "#/definitions/rtc:CapacityReferenceEnumStringType" + }, + "rtc:capacityEquation": { + "$ref": "#/definitions/rtc:EquationsComplexType" + }, + "rtc:capacityTable": { + "$ref": "#/definitions/rtc:ElevationTableComplexType" + } + }, + "type": "object" + }, + "rtc:CapacityReferenceEnumStringType": { + "description": "reference for capacity", + "enum": [ + "UPSTREAMLEVEL", + "HEAD" + ], + "type": "string" + }, + "rtc:CapillaryFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputCapillaryFlowStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterCapillaryFlowStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:ColumnsComplexType": { + "additionalProperties": false, + "properties": { + "@head01": { + "$ref": "#/definitions/xs:double" + }, + "@head02": { + "$ref": "#/definitions/xs:double" + }, + "@head03": { + "$ref": "#/definitions/xs:double" + }, + "@head04": { + "$ref": "#/definitions/xs:double" + }, + "@head05": { + "$ref": "#/definitions/xs:double" + }, + "@head06": { + "$ref": "#/definitions/xs:double" + }, + "@head07": { + "$ref": "#/definitions/xs:double" + }, + "@head08": { + "$ref": "#/definitions/xs:double" + }, + "@head09": { + "$ref": "#/definitions/xs:double" + }, + "@head10": { + "$ref": "#/definitions/xs:double" + }, + "@head11": { + "$ref": "#/definitions/xs:double" + }, + "@head12": { + "$ref": "#/definitions/xs:double" + }, + "@head13": { + "$ref": "#/definitions/xs:double" + }, + "@head14": { + "$ref": "#/definitions/xs:double" + }, + "@head15": { + "$ref": "#/definitions/xs:double" + }, + "@head16": { + "$ref": "#/definitions/xs:double" + }, + "@head17": { + "$ref": "#/definitions/xs:double" + }, + "@head18": { + "$ref": "#/definitions/xs:double" + }, + "@head19": { + "$ref": "#/definitions/xs:double" + }, + "@head20": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@head01", + "@head02" + ], + "type": "object" + }, + "rtc:ComponentComplexType": { + "additionalProperties": false, + "properties": { + "@template": { + "$ref": "#/definitions/xs:string" + }, + "rtc:accumulation": { + "$ref": "#/definitions/rtc:AccumulationComplexType", + "description": "Accumulation of a time series over time" + }, + "rtc:allocationTable": { + "$ref": "#/definitions/rtc:AllocationTableComplexType" + }, + "rtc:arma": { + "$ref": "#/definitions/rtc:ArmaComplexType", + "description": "Arma error correction model" + }, + "rtc:expression": { + "$ref": "#/definitions/rtc:ExpressionComplexType", + "description": "Mathematical expression" + }, + "rtc:gradient": { + "$ref": "#/definitions/rtc:GradientComplexType", + "description": "Post processing for computing gradients of simulated values" + }, + "rtc:hbv": { + "$ref": "#/definitions/rtc:HBVComplexType", + "description": "This is an implementation of the HBV-96 hydrological model. Note that the unit hydrograph is not included, but available separately." + }, + "rtc:hydraulicModel": { + "$ref": "#/definitions/rtc:HydraulicModelComplexType", + "description": "Simplifications of the full dynamic, one-dimensional hydraulic model according to the kinematic wave, diffusive wave and inertial assumptions." + }, + "rtc:hydrologicalModel": { + "$ref": "#/definitions/rtc:HydrologicalModelComplexType", + "description": "Modular, conceptual hydrological model with implicit time stepping scheme." + }, + "rtc:lookup2DTable": { + "$ref": "#/definitions/rtc:Lookup2DTableComplexType" + }, + "rtc:lookupTable": { + "$ref": "#/definitions/rtc:LookupTableComplexType" + }, + "rtc:lorentGevers": { + "$ref": "#/definitions/rtc:LorentGeversComplexType", + "description": "Lorent/Gevers hydrological model" + }, + "rtc:merger": { + "$ref": "#/definitions/rtc:MergerComplexType" + }, + "rtc:mergerSplitter": { + "$ref": "#/definitions/rtc:MergerSplitterComplexType" + }, + "rtc:neuralNetwork": { + "$ref": "#/definitions/rtc:NeuralNetworkComplexType" + }, + "rtc:reservoir": { + "$ref": "#/definitions/rtc:ReservoirComplexType", + "description": "Reservoir with arbitrary number of inlets and outlets." + }, + "rtc:reservoirCompact": { + "$ref": "#/definitions/rtc:ReservoirCompactComplexType", + "description": "Test implementation of a compact reservoir class for simultaneous and sequential optimization mode" + }, + "rtc:routing": { + "$ref": "#/definitions/rtc:RoutingComplexType", + "description": "not implemented yet" + }, + "rtc:srm": { + "$ref": "#/definitions/rtc:SRMComplexType" + }, + "rtc:unitDelay": { + "$ref": "#/definitions/rtc:UnitDelayComplexType", + "description": "Unit delay operator for delaying a value by n times the time step of the model." + }, + "rtc:unitHydrograph": { + "$ref": "#/definitions/rtc:UnitHydrographComplexType", + "description": "Unit hydrograph" + } + }, + "type": "object" + }, + "rtc:ComponentsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:component": { + "items": { + "$ref": "#/definitions/rtc:ComponentComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:component" + ], + "type": "object" + }, + "rtc:ConditionComplexType": { + "additionalProperties": false, + "properties": { + "rtc:greaterThan": { + "$ref": "#/definitions/xs:double" + }, + "rtc:lessThan": { + "$ref": "#/definitions/xs:double" + } + }, + "type": "object" + }, + "rtc:ConnectionCoefficientsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:a": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:b": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:c": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:d": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + } + }, + "required": [ + "rtc:a", + "rtc:b", + "rtc:c", + "rtc:d" + ], + "type": "object" + }, + "rtc:ConnectionInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:discharge": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:downstreamLevel": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:upstreamLevel": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:discharge", + "rtc:downstreamLevel", + "rtc:upstreamLevel" + ], + "type": "object" + }, + "rtc:ConnectionOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:discharge": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:discharge" + ], + "type": "object" + }, + "rtc:ConstantRuleComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:constant": { + "$ref": "#/definitions/xs:double" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:ConstantRuleOutputComplexType" + } + }, + "required": [ + "rtc:constant", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:ConstantRuleOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:y" + ], + "type": "object" + }, + "rtc:ControlledOutletComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:capacityCharacteristics": { + "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType", + "description": "Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:OutletInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutletOutputComplexType" + }, + "rtc:turbineCharacteristics": { + "$ref": "#/definitions/rtc:TurbineCharacteristicsComplexType", + "description": "Characteristics of optional turbine" + } + }, + "required": [ + "rtc:capacityCharacteristics", + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:CrossSectionComplexType": { + "additionalProperties": false, + "properties": { + "rtc:crossSectionTable": { + "$ref": "#/definitions/rtc:ElevationTableComplexType", + "description": "Tabulated cross section, pairs of elevation h and width b " + } + }, + "required": [ + "rtc:crossSectionTable" + ], + "type": "object" + }, + "rtc:CrossSectionRoughnessComplexType": { + "additionalProperties": false, + "properties": { + "rtc:roughnessTable": { + "$ref": "#/definitions/rtc:ElevationTableComplexType", + "description": "Pairs of elevation h and roughness C (according to Chezy)" + } + }, + "required": [ + "rtc:roughnessTable" + ], + "type": "object" + }, + "rtc:DataTypicalProfileComplexType": { + "additionalProperties": false, + "properties": { + "@monthOfYear": { + "enum": [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + "type": "string" + }, + "@value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@monthOfYear", + "@value" + ], + "type": "object" + }, + "rtc:DateComplexType": { + "additionalProperties": false, + "properties": { + "@monthDay": { + "$ref": "#/definitions/xs:gMonthDay" + } + }, + "required": [ + "@monthDay" + ], + "type": "object" + }, + "rtc:DateLookupTableComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:dateRecord": { + "items": { + "$ref": "#/definitions/rtc:DateRecord2ComplexType", + "description": "Lookup table at a date location" + }, + "minItems": 1, + "type": "array" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:DateLookupTableInputComplexType" + }, + "rtc:interpolationOptions": { + "$ref": "#/definitions/rtc:InterpolationOptionsComplexType", + "description": "Interpolation option BLOCK / LINEAR for the two inputs date and value" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:DateLookupTableOutputComplexType" + } + }, + "required": [ + "rtc:dateRecord", + "rtc:input", + "rtc:interpolationOptions", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:DateLookupTableInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:DateLookupTableOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:active": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:y" + ], + "type": "object" + }, + "rtc:DateRecord2ComplexType": { + "additionalProperties": false, + "properties": { + "@monthDay": { + "$ref": "#/definitions/xs:gMonthDay" + }, + "rtc:record": { + "items": { + "$ref": "#/definitions/rtc:DateRecord2DataComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:record", + "@monthDay" + ], + "type": "object" + }, + "rtc:DateRecord2DataComplexType": { + "additionalProperties": false, + "properties": { + "@x": { + "$ref": "#/definitions/xs:double" + }, + "@y": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@x", + "@y" + ], + "type": "object" + }, + "rtc:DateRecordComplexType": { + "additionalProperties": false, + "description": "defined data input as per time series format date time (defined either by dateTime or time or\n month day) and value", + "properties": { + "@comment": { + "$ref": "#/definitions/xs:string" + }, + "@dateTime": { + "$ref": "#/definitions/xs:dateTime" + }, + "@monthDay": { + "$ref": "#/definitions/xs:gMonthDay" + }, + "@time": { + "$ref": "#/definitions/xs:time" + }, + "@value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@value" + ], + "type": "object" + }, + "rtc:DateTableComplexType": { + "additionalProperties": false, + "properties": { + "rtc:data": { + "items": { + "$ref": "#/definitions/rtc:DateRecordComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:data" + ], + "type": "object" + }, + "rtc:DateTimeComplexType": { + "additionalProperties": false, + "properties": { + "@date": { + "$ref": "#/definitions/rtc:dateType" + }, + "@time": { + "$ref": "#/definitions/rtc:timeType" + } + }, + "required": [ + "@date", + "@time" + ], + "type": "object" + }, + "rtc:DeadBandTimeComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:discrete": { + "$ref": "#/definitions/rtc:DeadBandTimeDiscreteComplexType" + }, + "rtc:false": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:DeadBandTimeInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:DeadBandTimeOutputComplexType" + }, + "rtc:true": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + } + }, + "required": [ + "rtc:discrete", + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:DeadBandTimeDiscreteComplexType": { + "additionalProperties": false, + "properties": { + "rtc:numberOfStepsDown": { + "$ref": "#/definitions/xs:int" + }, + "rtc:numberOfStepsUp": { + "$ref": "#/definitions/xs:int" + } + }, + "required": [ + "rtc:numberOfStepsDown", + "rtc:numberOfStepsUp" + ], + "type": "object" + }, + "rtc:DeadBandTimeInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.20" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:DeadBandTimeOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:status": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:stepsDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:stepsUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:timeFalse": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:timeTrue": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:status", + "rtc:stepsDown", + "rtc:stepsUp" + ], + "type": "object" + }, + "rtc:DeadBandTriggerComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:conditionOff": { + "$ref": "#/definitions/rtc:RelationalConditionComplexType" + }, + "rtc:conditionOn": { + "$ref": "#/definitions/rtc:RelationalConditionComplexType" + }, + "rtc:default": { + "$ref": "#/definitions/xs:boolean" + }, + "rtc:false": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TriggerOutputComplexType" + }, + "rtc:true": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + } + }, + "required": [ + "rtc:conditionOff", + "rtc:conditionOn", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:DeadBandValueComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:DeadBandValueInputComplexType" + }, + "rtc:threshold": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "rtc:input", + "rtc:threshold", + "@id" + ], + "type": "object" + }, + "rtc:DeadBandValueInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:EdgeComplexType": { + "additionalProperties": false, + "properties": { + "@x1": { + "$ref": "#/definitions/xs:double" + }, + "@x2": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@x1", + "@x2" + ], + "type": "object" + }, + "rtc:EdgesComplexType": { + "additionalProperties": false, + "properties": { + "rtc:edge": { + "items": { + "$ref": "#/definitions/rtc:EdgeComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:edge" + ], + "type": "object" + }, + "rtc:EifelRurRuleComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:a": { + "$ref": "#/definitions/xs:double" + }, + "rtc:b": { + "$ref": "#/definitions/xs:double" + }, + "rtc:minimumRelativeStorage": { + "$ref": "#/definitions/rtc:DateTableComplexType" + } + }, + "required": [ + "rtc:a", + "rtc:b", + "rtc:minimumRelativeStorage", + "@id" + ], + "type": "object" + }, + "rtc:ElevationRecordComplexType": { + "additionalProperties": false, + "properties": { + "@elevation": { + "$ref": "#/definitions/xs:double" + }, + "@value": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + } + }, + "required": [ + "@elevation", + "@value" + ], + "type": "object" + }, + "rtc:ElevationTableComplexType": { + "additionalProperties": false, + "description": "\n Table containing data for different elevations. Type of element 'value'\n depends on purpose for which table is used.\n ", + "properties": { + "rtc:elevationRecord": { + "items": { + "$ref": "#/definitions/rtc:ElevationRecordComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:elevationRecord" + ], + "type": "object" + }, + "rtc:EnsembleModeEnumStringType": { + "enum": [ + "JOINT", + "TREE", + "INDEPENDENT" + ], + "type": "string" + }, + "rtc:EquationComplexType": { + "additionalProperties": false, + "properties": { + "rtc:a": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:b": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:c": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:lowerLevel": { + "$ref": "#/definitions/xs:double" + }, + "rtc:upperLevel": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "rtc:a", + "rtc:b", + "rtc:c" + ], + "type": "object" + }, + "rtc:EquationEnumStringType": { + "enum": [ + "KINEMATIC", + "DIFFUSIVE", + "INERTIAL" + ], + "type": "string" + }, + "rtc:EquationsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:equation": { + "items": { + "$ref": "#/definitions/rtc:EquationComplexType", + "description": "Power equation for optional segments with lower and upper water level bounds, y = a*(x+b)^c" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:equation" + ], + "type": "object" + }, + "rtc:EvaporationPotentialComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputEvaporationPotentialComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputEvaporationPotentialComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterEvaporationPotentialComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:ExpressionComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:mathematicalOperator": { + "$ref": "#/definitions/rtc:MathematicalOperatorEnumStringType", + "description": "mathematical operator: + (summation), - (substraction), * (multiplication), / (division), min, max, ^ (power)" + }, + "rtc:x1Series": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.2", + "description": "reference to time series ID" + }, + "rtc:x1SeriesVector": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.3", + "description": "reference to time series ID vector" + }, + "rtc:x1Value": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "user-configured constant value" + }, + "rtc:x2Series": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.4" + }, + "rtc:x2SeriesVector": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.5" + }, + "rtc:x2Value": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "time series ID of resulting value" + }, + "rtc:yVector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "time series ID vector of resulting value" + } + }, + "required": [ + "rtc:mathematicalOperator", + "@id" + ], + "type": "object" + }, + "rtc:ExternalBooleanSimpleType": { + "anyOf": [ + { + "type": "boolean" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "rtc:ExternalIntegerSimpleType": { + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "rtc:ExternalParameterSimpleType": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^([#-\\$][\\(-_a-z]+[#-\\$])$", + "type": "string" + } + ] + }, + "rtc:GeneralModuleConfigComplexType": { + "additionalProperties": false, + "description": "DEPRICATED", + "properties": { + "rtc:description": { + "$ref": "#/definitions/xs:string", + "description": "DEPRICATED" + }, + "rtc:poolRoutingScheme": { + "$ref": "#/definitions/rtc:poolRoutingEnumStringType", + "description": "DEPRICATED" + }, + "rtc:theta": { + "$ref": "#/definitions/xs:double", + "description": "DEPRICATED" + } + }, + "required": [ + "rtc:poolRoutingScheme", + "rtc:theta" + ], + "type": "object" + }, + "rtc:GradientComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:GradientInputComplexType", + "description": "input variable" + }, + "rtc:multiplier": { + "$ref": "#/definitions/xs:double", + "description": "optional multiplier" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:GradientOutputComplexType", + "description": "gradient, dx = multiplier*(xNew-xOld)/dt" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:GradientInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:GradientOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:dx": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:dx" + ], + "type": "object" + }, + "rtc:GuideBandRuleComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:GuideBandRuleInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:GuideBandRuleOutputComplexType" + }, + "rtc:xMax": { + "$ref": "#/definitions/rtc:DateTableComplexType" + }, + "rtc:xMin": { + "$ref": "#/definitions/rtc:DateTableComplexType" + }, + "rtc:yMax": { + "$ref": "#/definitions/xs:double" + }, + "rtc:yMaxSeries": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:yMin": { + "$ref": "#/definitions/xs:double" + }, + "rtc:yMinSeries": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:xMax", + "rtc:xMin", + "@id" + ], + "type": "object" + }, + "rtc:GuideBandRuleInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:GuideBandRuleOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:y" + ], + "type": "object" + }, + "rtc:HBVComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:HBVInputComplexType" + }, + "rtc:link": { + "$ref": "#/definitions/rtc:HBVLinkComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:HBVOutputComplexType" + }, + "rtc:parameterInput": { + "$ref": "#/definitions/rtc:HBVParameterInputComplexType" + }, + "rtc:parameterInterception": { + "$ref": "#/definitions/rtc:HBVParameterInterceptionComplexType" + }, + "rtc:parameterResponse": { + "$ref": "#/definitions/rtc:HBVParameterResponseComplexType" + }, + "rtc:parameterSnow": { + "$ref": "#/definitions/rtc:HBVParameterSnowComplexType" + }, + "rtc:parameterSoil": { + "$ref": "#/definitions/rtc:HBVParameterSoilComplexType" + }, + "rtc:state": { + "$ref": "#/definitions/rtc:HBVStateComplexType" + }, + "rtc:stateUpdate": { + "$ref": "#/definitions/rtc:HBVStateUpdateComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameterInput", + "rtc:parameterInterception", + "rtc:parameterResponse", + "rtc:parameterSnow", + "rtc:parameterSoil", + "rtc:state", + "@id" + ], + "type": "object" + }, + "rtc:HBVInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:EP": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:P": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:T": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:TM": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:EP", + "rtc:P", + "rtc:T", + "rtc:TM" + ], + "type": "object" + }, + "rtc:HBVLinkComplexType": { + "additionalProperties": false, + "properties": { + "rtc:CF": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:EA": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:EI": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:EP": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:IN": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:INI": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:PERC": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:R": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:CF", + "rtc:EA", + "rtc:EI", + "rtc:EP", + "rtc:IN", + "rtc:INI", + "rtc:PERC", + "rtc:R" + ], + "type": "object" + }, + "rtc:HBVOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:SMPercentage": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:SWE": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:Q" + ], + "type": "object" + }, + "rtc:HBVParameterInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:ECORR": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "correction factor for EP" + }, + "rtc:RFCF": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "correction factor for rainfall" + }, + "rtc:SFCF": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "correction factor for snow" + }, + "rtc:TT": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "temperature limit for snow / rain [oC], normally close to 0 " + }, + "rtc:TTI": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "temperature interval with a mixture of snow / rain [oC]" + } + }, + "required": [ + "rtc:TT", + "rtc:TTI" + ], + "type": "object" + }, + "rtc:HBVParameterInterceptionComplexType": { + "additionalProperties": false, + "properties": { + "rtc:LIC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "maximum interception storage" + } + }, + "required": [ + "rtc:LIC" + ], + "type": "object" + }, + "rtc:HBVParameterResponseComplexType": { + "additionalProperties": false, + "properties": { + "rtc:ALPHA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "response box parameter [-], usually between 1.0 and 2.0" + }, + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "catchment area [km2]" + }, + "rtc:K": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "recession coefficient" + }, + "rtc:K1": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "recession coefficient [1/day]" + }, + "rtc:PERC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "percolation from upper to lower response box [mm/day], usually between 0 and 6" + } + }, + "required": [ + "rtc:ALPHA", + "rtc:AREA", + "rtc:K", + "rtc:K1", + "rtc:PERC" + ], + "type": "object" + }, + "rtc:HBVParameterSnowComplexType": { + "additionalProperties": false, + "properties": { + "rtc:CFMAX": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "degree day factor [mm/(oC*day)], varies normally between 1.5 and 4, 2 and 3.5 can be used in forested and open\nlandscape respectively" + }, + "rtc:CFR": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "refreezing factor [-], about 0.05" + }, + "rtc:CWH": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "water holding capacity [-], usually 0.1" + }, + "rtc:TTM": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "temperature limit for melting [oC]" + } + }, + "required": [ + "rtc:CFMAX", + "rtc:CFR", + "rtc:CWH", + "rtc:TTM" + ], + "type": "object" + }, + "rtc:HBVParameterSoilComplexType": { + "additionalProperties": false, + "properties": { + "rtc:BETA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "parameter in soil routine [-], usually between 1 and 6" + }, + "rtc:CFLUX": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "maximum value of CF" + }, + "rtc:ETF": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "temperature correction factor" + }, + "rtc:FC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "field capacity [mm], between 50 and 500" + }, + "rtc:LP": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "limit for potential evapotranspiration [-], in the range between 0.3 and 1" + } + }, + "required": [ + "rtc:BETA", + "rtc:CFLUX", + "rtc:ETF", + "rtc:FC", + "rtc:LP" + ], + "type": "object" + }, + "rtc:HBVStateComplexType": { + "additionalProperties": false, + "properties": { + "rtc:IC": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:LZ": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:SM": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:SP": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:UZ": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:WC": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:IC", + "rtc:LZ", + "rtc:SM", + "rtc:SP", + "rtc:UZ", + "rtc:WC" + ], + "type": "object" + }, + "rtc:HBVStateUpdateComplexType": { + "additionalProperties": false, + "properties": { + "rtc:IC": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:LZ": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "increment on lower zone storage [mm]" + }, + "rtc:SM": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "STILL NOT IMPLEMENTED" + }, + "rtc:SP": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "STILL NOT IMPLEMENTED" + }, + "rtc:UZ": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "STILL NOT IMPLEMENTED" + }, + "rtc:WC": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "STILL NOT IMPLEMENTED" + } + }, + "type": "object" + }, + "rtc:HydraulicModelComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:branch": { + "items": { + "$ref": "#/definitions/rtc:BranchComplexType", + "description": "Flow branches" + }, + "type": "array" + }, + "rtc:hydraulicStructure": { + "items": { + "$ref": "#/definitions/rtc:HydraulicStructureComplexType", + "description": "Hydraulic structures" + }, + "type": "array" + }, + "rtc:mode": { + "$ref": "#/definitions/rtc:HydraulicModelModeEnumStringType" + }, + "rtc:node": { + "items": { + "$ref": "#/definitions/rtc:NodeComplexType", + "description": "Storage nodes" + }, + "type": "array" + }, + "rtc:numericalTolerance": { + "$ref": "#/definitions/xs:double" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:HydraulicModelOutputComplexType" + }, + "rtc:sequentialImplicitSettings": { + "$ref": "#/definitions/rtc:HydraulicModelSequentialImplicitComplexType" + }, + "rtc:simultaneousSettings": { + "$ref": "#/definitions/rtc:HydraulicModelSimultaneousComplexType" + } + }, + "required": [ + "rtc:mode", + "rtc:numericalTolerance", + "@id" + ], + "type": "object" + }, + "rtc:HydraulicModelModeEnumStringType": { + "enum": [ + "SEQUENTIAL_EXPLICIT", + "SEQUENTIAL_IMPLICIT", + "SIMULTANEOUS" + ], + "type": "string" + }, + "rtc:HydraulicModelOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:nFun": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "number of function evaluations" + }, + "rtc:nJac": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "number of evaluations of the Jacobian" + }, + "rtc:res": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "residuum at last iteration step, 0.5*sum(SQR(ri))" + } + }, + "required": [ + "rtc:nFun", + "rtc:nJac", + "rtc:res" + ], + "type": "object" + }, + "rtc:HydraulicModelSequentialImplicitComplexType": { + "additionalProperties": false, + "properties": { + "rtc:convergenceThreshold": { + "$ref": "#/definitions/xs:double" + }, + "rtc:theta": { + "$ref": "#/definitions/xs:double" + }, + "rtc:treatNonConvergenceAsError": { + "$ref": "#/definitions/xs:boolean" + } + }, + "required": [ + "rtc:convergenceThreshold", + "rtc:theta", + "rtc:treatNonConvergenceAsError" + ], + "type": "object" + }, + "rtc:HydraulicModelSimultaneousComplexType": { + "additionalProperties": false, + "properties": { + "rtc:theta": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "rtc:theta" + ], + "type": "object" + }, + "rtc:HydraulicStructureComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "rtc:orifice": { + "$ref": "#/definitions/rtc:OrificeComplexType", + "description": "Orifice according to definition in SOBEK-Rural" + }, + "rtc:pump": { + "$ref": "#/definitions/rtc:PumpComplexType", + "description": "Pump" + }, + "rtc:weir": { + "$ref": "#/definitions/rtc:RiverWeirComplexType", + "description": "Weir according to definition in SOBEK-River" + } + }, + "required": [ + "@id" + ], + "type": "object" + }, + "rtc:HydrologicalModelComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:submodel": { + "items": { + "$ref": "#/definitions/rtc:SubmodelComplexType", + "description": "sub-models for the modular setup of the hydrological model, the storage system contains a set of storage nodes and links and is solved with an implicit time stepping scheme" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:submodel", + "@id" + ], + "type": "object" + }, + "rtc:InflowComplexType": { + "additionalProperties": false, + "properties": { + "@factor": { + "$ref": "#/definitions/xs:double" + } + }, + "type": "object" + }, + "rtc:InputATableComplexType": { + "additionalProperties": false, + "properties": { + "rtc:valueSelection": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:InputCapillaryFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "downstream node, typically UZ unsaturted zone" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream node, typically GW upper zone" + } + }, + "required": [ + "rtc:HDown", + "rtc:HUp" + ], + "type": "object" + }, + "rtc:InputEvaporationActualStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:EI": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:EP": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream node, typically SM (soil moisture)" + } + }, + "required": [ + "rtc:EP", + "rtc:HUp" + ], + "type": "object" + }, + "rtc:InputEvaporationInterceptionStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:EP": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "potential evaporation [mm]" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream node, typically IC (interception)" + } + }, + "required": [ + "rtc:EP", + "rtc:HUp" + ], + "type": "object" + }, + "rtc:InputEvaporationPotentialComplexType": { + "additionalProperties": false, + "properties": { + "rtc:EPM": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "monthly mean value of potential evaporation [mm/timestep]" + }, + "rtc:T": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "instantaneous temperature [oC]" + }, + "rtc:TM": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "monthly mean temperature [oC]" + } + }, + "required": [ + "rtc:EPM", + "rtc:T", + "rtc:TM" + ], + "type": "object" + }, + "rtc:InputGroundwaterFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "downstream node, can be GW groundwater or SW surface water" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream node, can be GW groundwater or SW surface water" + } + }, + "required": [ + "rtc:HDown", + "rtc:HUp" + ], + "type": "object" + }, + "rtc:InputNodeStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:discharge": { + "items": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "inflow as discharge [m3/s]" + }, + "type": "array" + }, + "rtc:state": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "unit volume [mm], replaces the computes state" + }, + "rtc:unitVolume": { + "items": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "inflow as unit Volume [mm/timestep]" + }, + "type": "array" + } + }, + "type": "object" + }, + "rtc:InputPercolationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "downstream node, typically LZ (lower zone storage)" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream node, typically UZ (upper zone storage)" + } + }, + "required": [ + "rtc:HUp" + ], + "type": "object" + }, + "rtc:InputPidComplexType": { + "additionalProperties": false, + "properties": { + "rtc:disturbance": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.8" + }, + "rtc:setpointSeries": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:setpointValue": { + "$ref": "#/definitions/xs:double" + }, + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "controllable variable" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:InputReleaseAboveThresholdStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "downstream node" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream node" + } + }, + "required": [ + "rtc:HUp" + ], + "type": "object" + }, + "rtc:InputReleaseTotalComplexType": { + "additionalProperties": false, + "properties": { + "rtc:discharge": { + "items": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "discharges from different storage nodes [m3/s]" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:discharge" + ], + "type": "object" + }, + "rtc:InputResponseStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream (release) node, typically UZ and/or LZ (upper/lower zone storages)" + } + }, + "required": [ + "rtc:HUp" + ], + "type": "object" + }, + "rtc:InputSnowRainJunctionComplexType": { + "additionalProperties": false, + "properties": { + "rtc:P": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "precipitation [mm/timestep]" + }, + "rtc:T": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "temperature [oC]" + } + }, + "required": [ + "rtc:P", + "rtc:T" + ], + "type": "object" + }, + "rtc:InputSoilRunoffStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional downstream node, typically uper saturated zones (UZ upper zone storage). Required if capillary flow is used and SM and UZ are present in one storage system" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream node, typically unsaturated zone (SM soil moisture)" + }, + "rtc:INF": { + "items": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "infiltation into the unsaturated zone (fluzex into SM [m3/s]) " + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:HUp", + "rtc:INF" + ], + "type": "object" + }, + "rtc:InputWaterDistributionConstantStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "downstream node collector of abstracted water. For instance drinking water treatment plant" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)" + } + }, + "required": [ + "rtc:HUp" + ], + "type": "object" + }, + "rtc:InputWaterDistributionVariableStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:D": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "series of industrial or domestic water demands/abstractions [m3/s]" + }, + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "downstream node collector of abstracted water. For instance drinking water treatment plant" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)" + } + }, + "required": [ + "rtc:D", + "rtc:HUp" + ], + "type": "object" + }, + "rtc:InterpolationOptionsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:date": { + "$ref": "#/definitions/rtc:interpolationOptionEnumStringType" + }, + "rtc:value": { + "$ref": "#/definitions/rtc:interpolationOptionEnumStringType" + } + }, + "required": [ + "rtc:date", + "rtc:value" + ], + "type": "object" + }, + "rtc:IntervalComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:deadbandSetpointAbsolute": { + "$ref": "#/definitions/xs:double" + }, + "rtc:deadbandSetpointRelative": { + "$ref": "#/definitions/xs:double" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:IntervalInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:IntervalOutputComplexType" + }, + "rtc:settingAbove": { + "$ref": "#/definitions/xs:double" + }, + "rtc:settingBelow": { + "$ref": "#/definitions/xs:double" + }, + "rtc:settingMaxSpeed": { + "$ref": "#/definitions/xs:double" + }, + "rtc:settingMaxStep": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:settingAbove", + "rtc:settingBelow", + "@id" + ], + "type": "object" + }, + "rtc:IntervalInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:setpoint": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:x": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.9", + "description": "reference to time series ID" + } + }, + "required": [ + "rtc:setpoint", + "rtc:x" + ], + "type": "object" + }, + "rtc:IntervalOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:status": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:status", + "rtc:y" + ], + "type": "object" + }, + "rtc:LayerComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/rtc:LayerIDSimpleType" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:neuron": { + "items": { + "$ref": "#/definitions/rtc:NeuronComplexType", + "description": "arbitrary number of neurons within one of the layers" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:neuron", + "@id" + ], + "type": "object" + }, + "rtc:LayerIDSimpleType": { + "pattern": "^([L][0-9]+)$", + "type": "string" + }, + "rtc:LevelStorageEquationComplexType": { + "additionalProperties": false, + "properties": { + "rtc:A0": { + "$ref": "#/definitions/xs:double" + }, + "rtc:A1": { + "$ref": "#/definitions/xs:double" + }, + "rtc:A2": { + "$ref": "#/definitions/xs:double" + }, + "rtc:A3": { + "$ref": "#/definitions/xs:double" + }, + "rtc:A4": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "rtc:A0", + "rtc:A1" + ], + "type": "object" + }, + "rtc:LimiterComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:LimiterInputComplexType" + }, + "rtc:mode": { + "$ref": "#/definitions/rtc:limiterOptionEnumStringType" + } + }, + "required": [ + "rtc:input", + "rtc:mode", + "@id" + ], + "type": "object" + }, + "rtc:LimiterInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:thresholdSeries": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.21" + }, + "rtc:thresholdValue": { + "$ref": "#/definitions/xs:double" + }, + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:LinkStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:capillaryFlow": { + "$ref": "#/definitions/rtc:CapillaryFlowStorageSystemComplexType", + "description": "capillary flow, typically from GW (saturated upper zone - ground water) to UZ (unsaturated zone)" + }, + "rtc:evaporationActual": { + "$ref": "#/definitions/rtc:evaporationActualStorageSystemComplexType", + "description": "actual evaporation from unsaturated zone storage node" + }, + "rtc:evaporationInterception": { + "$ref": "#/definitions/rtc:evaporationInterceptionStorageSystemComplexType", + "description": "evaporation from interception storage node, typically VEG/P/UP (vegeration/paved interception)" + }, + "rtc:groundwaterFlow": { + "$ref": "#/definitions/rtc:groundwaterFlowStorageSystemComplexType", + "description": "GW Groundwater interaction with SW Surface water" + }, + "rtc:irrigation": { + "$ref": "#/definitions/rtc:irrigationStorageSystemComplexType", + "description": "NOT REFACTORED. water consumption by domestic irrigation due to dry soil" + }, + "rtc:meltRefreezing": { + "$ref": "#/definitions/rtc:meltRefreezingStorageSystemComplexType", + "description": "NOT REFACTORED. melting and refreezing, typically used between SP (snow pack) and WC (water content) nodes" + }, + "rtc:percolation": { + "$ref": "#/definitions/rtc:PercolationStorageSystemComplexType", + "description": "percolation, typically from GW upper zone to GW lower zone), or from UP unpaved surface to UZ unsaturated zone" + }, + "rtc:releaseInterception": { + "$ref": "#/definitions/rtc:releaseAboveThresholdStorageSystemComplexType", + "description": "release above threshold from interception storage node, typically VEG/P/UP (uses relese above threshold link)" + }, + "rtc:releaseWaterContent": { + "$ref": "#/definitions/rtc:releaseWaterContentStorageSystemComplexType", + "description": "NOT REFACTORED. release from water content storage node (typically WC)" + }, + "rtc:response": { + "$ref": "#/definitions/rtc:ResponseStorageSystemComplexType", + "description": "response from storage node, typically GW upper and GW lower zone storage nodes" + }, + "rtc:sewerOverflow": { + "$ref": "#/definitions/rtc:releaseAboveThresholdStorageSystemComplexType", + "description": "sewer overflow (uses relese above threshold link)" + }, + "rtc:soilRunoff": { + "$ref": "#/definitions/rtc:SoilRunoffStorageSystemComplexType", + "description": "soil runoff from UZ unsaturated zone to GW upper zone storage node" + }, + "rtc:wasteWaterTreatmentPlant": { + "$ref": "#/definitions/rtc:waterDistributionConstantStorageSystemComplexType", + "description": "water treated via the WWTP, flows at a max rate of a constant max pump capacity. Uses water distribution constant link" + }, + "rtc:waterDistributionConstant": { + "$ref": "#/definitions/rtc:waterDistributionConstantStorageSystemComplexType", + "description": "water abstraction/distribution/consumption referenced to a constant demand (e.i. maxpump capacity). Uses water distribution constant link" + }, + "rtc:waterDistributionVariable": { + "$ref": "#/definitions/rtc:waterDistributionVariableStorageSystemComplexType", + "description": "water abstraction/distribution/consumption referenced to a variable demand (e.i. domestic or industrial water demands). Uses water distribution variable link)" + } + }, + "type": "object" + }, + "rtc:Lookup2DTableComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:Lookup2DTableInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:Lookup2DTableOutputComplexType" + }, + "rtc:table": { + "$ref": "#/definitions/rtc:Table2DLookupTableComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:table", + "@id" + ], + "type": "object" + }, + "rtc:Lookup2DTableInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:z": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x", + "rtc:y" + ], + "type": "object" + }, + "rtc:Lookup2DTableOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:z": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:z" + ], + "type": "object" + }, + "rtc:LookupTableComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:extrapolationOption": { + "$ref": "#/definitions/rtc:interpolationOptionEnumStringType", + "description": "table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:LookupTableInputComplexType" + }, + "rtc:interpolationOption": { + "$ref": "#/definitions/rtc:interpolationOptionEnumStringType", + "description": "table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:LookupTableOutputComplexType" + }, + "rtc:property": { + "items": { + "enum": [ + "MONOTON", + "POSITIVE" + ], + "type": "string" + }, + "type": "array" + }, + "rtc:table": { + "$ref": "#/definitions/rtc:TableLookupTableComplexType" + }, + "rtc:tableExternal": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:LookupTableInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.10", + "description": "reference to time series ID" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:LookupTableOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:y" + ], + "type": "object" + }, + "rtc:LorentGeversComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:LorentGeversInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:LorentGeversOutputComplexType" + }, + "rtc:parameterResponse": { + "$ref": "#/definitions/rtc:LorentGeversParameterResponseComplexType" + }, + "rtc:parameterSoil": { + "$ref": "#/definitions/rtc:LorentGeversParameterSoilComplexType" + }, + "rtc:state": { + "$ref": "#/definitions/rtc:LorentGeversStateComplexType" + }, + "rtc:stateUpdate": { + "$ref": "#/definitions/rtc:LorentGeversStateUpdateComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameterResponse", + "rtc:parameterSoil", + "rtc:state", + "@id" + ], + "type": "object" + }, + "rtc:LorentGeversInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:EP": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:P": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:EP", + "rtc:P" + ], + "type": "object" + }, + "rtc:LorentGeversOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:Q" + ], + "type": "object" + }, + "rtc:LorentGeversParameterResponseComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:KB": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:KS": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:TB1": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:TB2": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:TS1": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:TS2": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + } + }, + "required": [ + "rtc:AREA", + "rtc:KB", + "rtc:KS", + "rtc:TB1", + "rtc:TB2", + "rtc:TS1", + "rtc:TS2" + ], + "type": "object" + }, + "rtc:LorentGeversParameterSoilComplexType": { + "additionalProperties": false, + "properties": { + "rtc:BETA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:PMAX": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:SMAX": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + } + }, + "required": [ + "rtc:BETA", + "rtc:PMAX", + "rtc:SMAX" + ], + "type": "object" + }, + "rtc:LorentGeversStateComplexType": { + "additionalProperties": false, + "properties": { + "rtc:QB1": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:QB2": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:QS1": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:QS2": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:S": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:QB1", + "rtc:QB2", + "rtc:QS1", + "rtc:QS2", + "rtc:S" + ], + "type": "object" + }, + "rtc:LorentGeversStateUpdateComplexType": { + "additionalProperties": false, + "properties": { + "rtc:S": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:S" + ], + "type": "object" + }, + "rtc:MathematicalOperatorEnumStringType": { + "description": "mathematical operators", + "enum": [ + "+", + "-", + "*", + "/", + "min", + "max", + "^" + ], + "type": "string" + }, + "rtc:MaxFlowsComplexType": { + "additionalProperties": false, + "properties": { + "@maxFlow_head01": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head02": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head03": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head04": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head05": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head06": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head07": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head08": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head09": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head10": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head11": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head12": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head13": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head14": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head15": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head16": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head17": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head18": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head19": { + "$ref": "#/definitions/xs:double" + }, + "@maxFlow_head20": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@maxFlow_head01", + "@maxFlow_head02" + ], + "type": "object" + }, + "rtc:MergerComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:MergerInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:MergerOutputComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:MergerInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "items": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.11" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:MergerOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:ySum": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "type": "object" + }, + "rtc:MergerSplitterComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:MergerSplitterInputComplexType" + }, + "rtc:mode": { + "$ref": "#/definitions/rtc:MergerSplitterEnumStringType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:MergerSplitterOutputComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:mode", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:MergerSplitterEnumStringType": { + "enum": [ + "AVERAGE", + "DATAHIERARCHY", + "SUM" + ], + "type": "string" + }, + "rtc:MergerSplitterInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "items": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.17" + }, + "type": "array" + }, + "rtc:xVector": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.18" + } + }, + "type": "object" + }, + "rtc:MergerSplitterOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "items": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.19" + }, + "type": "array" + } + }, + "type": "object" + }, + "rtc:MinSimpleRuleComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:dateTable": { + "$ref": "#/definitions/rtc:DateTableComplexType" + }, + "rtc:zones": { + "$ref": "#/definitions/rtc:ZonesComplexType" + } + }, + "required": [ + "@id" + ], + "type": "object" + }, + "rtc:NeuralNetworkComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:layer": { + "items": { + "$ref": "#/definitions/rtc:LayerComplexType", + "description": "arbitrary number of layers" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:layer", + "@id" + ], + "type": "object" + }, + "rtc:NeuronComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/rtc:NeuronIDSimpleType" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:bias": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:NeuronInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:NeuronOutputComplexType" + }, + "rtc:transferFunction": { + "$ref": "#/definitions/rtc:transferFunctionEnumStringType", + "description": "transfer function: sigmoid, linear etc." + } + }, + "required": [ + "rtc:bias", + "rtc:input", + "rtc:output", + "rtc:transferFunction", + "@id" + ], + "type": "object" + }, + "rtc:NeuronIDSimpleType": { + "pattern": "^([L][0-9]+[N][0-9]+)$", + "type": "string" + }, + "rtc:NeuronInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:external": { + "items": { + "$ref": "#/definitions/..xs:string.1", + "description": "reference to time series ID" + }, + "type": "array" + }, + "rtc:internal": { + "items": { + "$ref": "#/definitions/..xs:string.2", + "description": "Supply neuron id! This can be any neuron in the network, also the neuron itself and neurons in the following layers. In this case, the output of the last time step is used -> recurrent network" + }, + "type": "array" + } + }, + "type": "object" + }, + "rtc:NeuronOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "result of the transfer function" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "result of the summation of weighted input (intermediate result)" + } + }, + "required": [ + "rtc:x", + "rtc:y" + ], + "type": "object" + }, + "rtc:NodeComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@x": { + "$ref": "#/definitions/xs:double" + }, + "@y": { + "$ref": "#/definitions/xs:double" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:NodeInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:NodeOutputComplexType" + }, + "rtc:storageCharacteristics": { + "$ref": "#/definitions/rtc:StorageCharacteristicsComplexType", + "description": "Storage characteristics of the node: The storage as a function of water level h. It can be provided as table or as a formula." + } + }, + "required": [ + "rtc:output", + "rtc:storageCharacteristics", + "@id" + ], + "type": "object" + }, + "rtc:NodeGradientComplexType": { + "additionalProperties": false, + "properties": { + "rtc:lambda": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:surfaceArea": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:lambda", + "rtc:surfaceArea" + ], + "type": "object" + }, + "rtc:NodeInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HBC": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Time series with the water level boundary condition, note that a value MUST be provided at all time steps, otherwise the model stops with an error message" + }, + "rtc:HUpdate": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Time series with an optional water level for model updating" + }, + "rtc:QBC": { + "items": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.6", + "description": "Time series with an inflow bounday condition, note that a value MUST be provided at all time steps" + }, + "type": "array" + } + }, + "type": "object" + }, + "rtc:NodeOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:H": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:R": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:S": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:H", + "rtc:S" + ], + "type": "object" + }, + "rtc:NodeStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "constant area [km2], default is 1.0" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputNodeStorageSystemComplexType" + }, + "rtc:residuum": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "residuum [mm]" + }, + "rtc:state": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "unit volume [mm]" + }, + "rtc:stateMax": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:stateMin": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + } + }, + "required": [ + "rtc:residuum", + "rtc:state", + "@id" + ], + "type": "object" + }, + "rtc:OrificeComplexType": { + "additionalProperties": false, + "properties": { + "rtc:contractionCoefficient": { + "$ref": "#/definitions/xs:double" + }, + "rtc:crestLevel": { + "$ref": "#/definitions/xs:double" + }, + "rtc:exponentGateFormula": { + "$ref": "#/definitions/xs:double" + }, + "rtc:exponentWeirFormula": { + "$ref": "#/definitions/xs:double" + }, + "rtc:flowDirection": { + "$ref": "#/definitions/rtc:flowDirectionEnumStringType" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:OrificeInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OrificeOutputComplexType" + }, + "rtc:width": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "rtc:contractionCoefficient", + "rtc:crestLevel", + "rtc:input", + "rtc:output", + "rtc:width" + ], + "type": "object" + }, + "rtc:OrificeInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:D": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "deprecated" + }, + "rtc:DConst": { + "$ref": "#/definitions/xs:double" + }, + "rtc:DSeries": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:DeltaHDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:DeltaHUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:HDown", + "rtc:HUp" + ], + "type": "object" + }, + "rtc:OrificeOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:D": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:flowType": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:D", + "rtc:Q" + ], + "type": "object" + }, + "rtc:OutletInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:relativeRelease": { + "items": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Reference to timeseries in data configuration containg the relative release (values inbetween 0 and 1). (ONLY FOR CONTROLLED OUTLET)" + }, + "type": "array" + }, + "rtc:release": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Reference to timeseries in data configuration containg an absolute release. (ONLY FOR CONTROLLED OUTLET)" + } + }, + "type": "object" + }, + "rtc:OutletOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:release": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:release" + ], + "type": "object" + }, + "rtc:OutputATableComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "items": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.1" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:y" + ], + "type": "object" + }, + "rtc:OutputEvaporationPotentialComplexType": { + "additionalProperties": false, + "properties": { + "rtc:EP": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "instantaneous potential evaporation [mm/timestep]" + } + }, + "required": [ + "rtc:EP" + ], + "type": "object" + }, + "rtc:OutputLinkStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:H": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Discharge as unit volume [mm/timestep]" + }, + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Discharge [m3/s]" + } + }, + "required": [ + "rtc:H", + "rtc:Q" + ], + "type": "object" + }, + "rtc:OutputPidComplexType": { + "additionalProperties": false, + "properties": { + "rtc:differentialPart": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "memory of differential part (in fact e of the last time step)" + }, + "rtc:integralPart": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "memory of integral part: integral(e)dt" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "setting of the actuator" + } + }, + "required": [ + "rtc:differentialPart", + "rtc:integralPart", + "rtc:y" + ], + "type": "object" + }, + "rtc:OutputSnowRainJunctionComplexType": { + "additionalProperties": false, + "properties": { + "rtc:RF": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "rainfall [mm/timestep]" + }, + "rtc:SF": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "snowfall [mm/timestep]" + } + }, + "required": [ + "rtc:RF", + "rtc:SF" + ], + "type": "object" + }, + "rtc:OutputStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:nFun": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "number of function evaluations" + }, + "rtc:nJac": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "number of evaluations of the Jacobian" + }, + "rtc:res": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "residuum at last iteration step" + } + }, + "required": [ + "rtc:nFun", + "rtc:nJac", + "rtc:res" + ], + "type": "object" + }, + "rtc:ParameterCapillaryFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + }, + "rtc:CFLUX": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "maximum value of capillary flow [mm/d]" + }, + "rtc:FC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "field capacity [mm]" + } + }, + "required": [ + "rtc:CFLUX", + "rtc:FC" + ], + "type": "object" + }, + "rtc:ParameterEvaporationActualStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [1000 m2], default = 1.0" + }, + "rtc:D": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "distance measure for smoothing the transitions [-]" + }, + "rtc:FC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "field capacity [mm]" + }, + "rtc:LP": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "limit for potential evaporation [-]" + } + }, + "required": [ + "rtc:FC", + "rtc:LP" + ], + "type": "object" + }, + "rtc:ParameterEvaporationInterceptionStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + } + }, + "type": "object" + }, + "rtc:ParameterEvaporationPotentialComplexType": { + "additionalProperties": false, + "properties": { + "rtc:ECORR": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "evaporation correction factor, default = 1.0" + }, + "rtc:ETF": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "temperature correction factor" + } + }, + "required": [ + "rtc:ETF" + ], + "type": "object" + }, + "rtc:ParameterIrrigationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2], default = 1.0" + }, + "rtc:IRR_CONST": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "costant irrigation flux [mm/d]" + }, + "rtc:IRR_THR": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "Threshold of the downstream node under which irrigation is needed [mm]" + }, + "rtc:M": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "smoothing factor" + } + }, + "required": [ + "rtc:IRR_THR" + ], + "type": "object" + }, + "rtc:ParameterMeltRefreezingStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + }, + "rtc:CFMAX": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "degree day factor [mm/day]" + }, + "rtc:CFR": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "refreezing factor [-]" + }, + "rtc:M": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "smoothing factor, default = 0.05, more smoothing for higher value and vice versa" + }, + "rtc:TTM": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "temperature limit for melting [oC]" + } + }, + "required": [ + "rtc:CFMAX", + "rtc:CFR", + "rtc:TTM" + ], + "type": "object" + }, + "rtc:ParameterPercolationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + }, + "rtc:PERC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "percolation [mm/d]" + } + }, + "required": [ + "rtc:PERC" + ], + "type": "object" + }, + "rtc:ParameterReleaseAboveThresholdStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2], default = 1.0" + }, + "rtc:FRAC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "percentage of the flow which flows towards the bucket of interest. The permitted range is between 0 and 100" + }, + "rtc:LIC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "upper limit of (interception) storage node [mm]" + }, + "rtc:M": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "smoothing factor" + } + }, + "required": [ + "rtc:LIC" + ], + "type": "object" + }, + "rtc:ParameterReleaseTotalComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + } + }, + "required": [ + "rtc:AREA" + ], + "type": "object" + }, + "rtc:ParameterReleaseWaterContentStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + }, + "rtc:M": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "smoothing coefficient" + }, + "rtc:WHC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "water holding capacity [-]" + } + }, + "required": [ + "rtc:WHC" + ], + "type": "object" + }, + "rtc:ParameterResponseStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:ALPHA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "response box parameter [-], default = 0.0" + }, + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + }, + "rtc:K": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "recession coefficient [1/d]" + } + }, + "required": [ + "rtc:K" + ], + "type": "object" + }, + "rtc:ParameterSnowRainJunctionComplexType": { + "additionalProperties": false, + "properties": { + "rtc:D": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "smoothing parameter for switching between a linear ramp (D=0.0) and a sigmoid function (D=1.0)" + }, + "rtc:RFCF": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "rainfall correction factor [-], default is 1.0" + }, + "rtc:SFCF": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "snowfall correction factor [-], default is 1.0" + }, + "rtc:TT": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "temperature limit for snow and rainfall [oC]" + }, + "rtc:TTI": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "temperature interval with a mixture of snow and rainfall [K]" + } + }, + "required": [ + "rtc:TT", + "rtc:TTI" + ], + "type": "object" + }, + "rtc:ParameterSoilRunoffStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + }, + "rtc:BETA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "parameter in soil routine [-]" + }, + "rtc:FC": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "field capacity [mm]" + } + }, + "required": [ + "rtc:BETA", + "rtc:FC" + ], + "type": "object" + }, + "rtc:ParameterWaterDistributionConstantStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2], default = 1.0" + }, + "rtc:D": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "capacity of demand/abstraction [m3/s]" + }, + "rtc:M": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "smoothing factor" + }, + "rtc:MIN_UP": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "minimum abstraction level upstream [mm]. Default 0, till empty." + } + }, + "required": [ + "rtc:D" + ], + "type": "object" + }, + "rtc:ParameterWaterDistributionVariableStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2], default = 1.0" + }, + "rtc:M": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "smoothing factor" + }, + "rtc:MIN_UP": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "minimum abstraction level upstream [mm]. Default 0, till empty." + } + }, + "type": "object" + }, + "rtc:ParametergroundwaterFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "rtc:ALPHA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "Ground water reaction coefficient" + }, + "rtc:AREA": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + }, + "rtc:K": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "Ground water Conductivity [1/d]" + }, + "rtc:MAX_GFLOW": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "Maximum groundwater flow [mm/d]" + } + }, + "required": [ + "rtc:ALPHA", + "rtc:K", + "rtc:MAX_GFLOW" + ], + "type": "object" + }, + "rtc:PercolationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputPercolationStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterPercolationStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:PidComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputPidComplexType" + }, + "rtc:kd": { + "$ref": "#/definitions/xs:double", + "description": "fatcor on differential part kd*de/dt" + }, + "rtc:ki": { + "$ref": "#/definitions/xs:double", + "description": "factor on the integral part ki*integral(e)dt" + }, + "rtc:kp": { + "$ref": "#/definitions/xs:double", + "description": "factor on the proportional part kp*e" + }, + "rtc:mode": { + "description": "pid mode, either \"NATIVE\" or \"SOBEK2\" or \"PIDPOS\" or PIDVEL\"", + "enum": [ + "NATIVE", + "SOBEK2", + "PIDPOS", + "PIDVEL" + ], + "type": "string" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputPidComplexType" + }, + "rtc:settingMax": { + "$ref": "#/definitions/xs:double", + "description": "maximum setting of the actuator" + }, + "rtc:settingMaxSpeed": { + "$ref": "#/definitions/xs:double", + "description": "maximum speed of the actuation in [unit/s]" + }, + "rtc:settingMin": { + "$ref": "#/definitions/xs:double", + "description": "minimum setting of the actuator" + } + }, + "required": [ + "rtc:input", + "rtc:kd", + "rtc:ki", + "rtc:kp", + "rtc:output", + "rtc:settingMax", + "rtc:settingMaxSpeed", + "rtc:settingMin", + "@id" + ], + "type": "object" + }, + "rtc:PolygonComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "rtc:edges": { + "$ref": "#/definitions/rtc:EdgesComplexType" + }, + "rtc:value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "rtc:edges" + ], + "type": "object" + }, + "rtc:PolygonLookupComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:default": { + "$ref": "#/definitions/xs:double" + }, + "rtc:false": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:PolygonLookupInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:PolygonLookupOutputComplexType" + }, + "rtc:polygons": { + "$ref": "#/definitions/rtc:PolygonsComplexType" + }, + "rtc:true": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:polygons", + "@id" + ], + "type": "object" + }, + "rtc:PolygonLookupInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x1": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.12" + }, + "rtc:x2": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.13" + } + }, + "required": [ + "rtc:x1", + "rtc:x2" + ], + "type": "object" + }, + "rtc:PolygonLookupOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:status": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:status" + ], + "type": "object" + }, + "rtc:PolygonsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:polygon": { + "items": { + "$ref": "#/definitions/rtc:PolygonComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:polygon" + ], + "type": "object" + }, + "rtc:PumpComplexType": { + "additionalProperties": false, + "properties": { + "rtc:input": { + "$ref": "#/definitions/rtc:PumpInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:PumpOutputComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output" + ], + "type": "object" + }, + "rtc:PumpGradientComplexType": { + "additionalProperties": false, + "properties": { + "rtc:storageDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:storageUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:storageDown", + "rtc:storageUp" + ], + "type": "object" + }, + "rtc:PumpInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:HDown", + "rtc:HUp", + "rtc:Q" + ], + "type": "object" + }, + "rtc:PumpOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:Q" + ], + "type": "object" + }, + "rtc:RelationalConditionComplexType": { + "additionalProperties": false, + "properties": { + "rtc:relationalOperator": { + "$ref": "#/definitions/rtc:relationalOperatorEnumStringType" + }, + "rtc:x1Series": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.22" + }, + "rtc:x1Value": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:x2Series": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.23" + }, + "rtc:x2Value": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + } + }, + "required": [ + "rtc:relationalOperator" + ], + "type": "object" + }, + "rtc:ReleaseTotalComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputReleaseTotalComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "total discharge [m3/s]" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:ReservoirCompactComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:ReservoirCompactInputComplexType", + "description": "input time series" + }, + "rtc:levelStorageEquation": { + "$ref": "#/definitions/rtc:LevelStorageEquationComplexType", + "description": "level storage equation according to S = A0 + A1*FB ( + A2*FB^2 + ...)" + }, + "rtc:levelStorageTable": { + "$ref": "#/definitions/rtc:ElevationTableComplexType", + "description": "level-storage relation of the reservoir, level in [m] or [ft], storage in [m3] or [KCFS-hrs]" + }, + "rtc:levelStorageTableExternal": { + "$ref": "#/definitions/xs:string", + "description": "externalizes the level storage table to a parameter file, requires the two columns \"level\" and \"storage\"" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:ReservoirCompactOutputComplexType", + "description": "output time series" + }, + "rtc:tailwaterConstant": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "constant value for tailwater elevation" + }, + "rtc:tailwaterEquation": { + "$ref": "#/definitions/rtc:TailwaterEquationComplexType", + "description": "tailwater equation according to TW = A + B*FB_downstream(t-1) + C*Q(t)^D, D is equal 1.0 by default if not provided" + }, + "rtc:tailwaterExternalTable": { + "$ref": "#/definitions/xs:string", + "description": "external tailwater table" + }, + "rtc:tailwaterExternalTimeSeries": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "external tailwater elevation from an external source or a previous calculation OUTSIDE of the reservoirCompact components" + }, + "rtc:tailwaterTable": { + "$ref": "#/definitions/rtc:ElevationTableComplexType", + "description": "tailwater as a function of the reservoir release only" + }, + "rtc:tailwaterTidalEquation": { + "$ref": "#/definitions/rtc:TailwaterTidalEquationComplexType", + "description": "tidal influenced tailwater equation (works only in hindcast mode, use tailwater external with appropiate forecast of the tailwater in operational forecasting), TW = TWObs + A*(Q-QObs)" + }, + "rtc:turbineEfficiencyConstant": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:turbineEfficiencyTable": { + "$ref": "#/definitions/rtc:ElevationTableComplexType", + "description": "old formulation, will be removed in the future" + }, + "rtc:turbineEfficiencyTable2D": { + "$ref": "#/definitions/rtc:TurbineEfficiencyTableComplexType", + "description": "new formulation, turbine effiency depends on head and turbine release, computation by 2D lookup" + }, + "rtc:turbineEfficiencyTable2DExternal": { + "$ref": "#/definitions/xs:string" + }, + "rtc:turbineEfficiencyTableExternal": { + "$ref": "#/definitions/xs:string" + }, + "rtc:units": { + "$ref": "#/definitions/rtc:UnitTypeEnumStringType", + "description": " \"SI\" or \"Imperial\" units" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:ReservoirCompactInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:FB": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "forebay elevation [m above reference level] or [ft above sea level]" + }, + "rtc:OF": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "optional time series with the unit outage factor [0-1], it reduces the (physical) constraints PXValue and QTXValue (NO impact on PX, QTX)" + }, + "rtc:PM": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "minimum generation constraint on aggregated turbine level [MW], primarly used as operational constraint" + }, + "rtc:PMValue": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "fixed minimum generation constraint on aggregated turbine level [MW], primarily used as physical constraint" + }, + "rtc:PX": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "maximum generation constraint on aggregated turbine level [MW], primarly used as operational constraint" + }, + "rtc:PXValue": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "fixed maximum generation constraint on aggregated turbine level [MW], primarly used as physical constraint" + }, + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "reservoir outflow [m3/s] or [KCFS], data is expected to be complete and valid" + }, + "rtc:QI": { + "items": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "single or multiple inflow time series into the reservoir [m3/s] or [KCFS], data is expected to be complete and valid if provided" + }, + "minItems": 1, + "type": "array" + }, + "rtc:QMISC": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional miscellaneous flow (uncontrolled), will be zero by default [m3/s] or [KCFS] if no time series is supplied or if the time series includes NaN values" + }, + "rtc:QS": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "absolute spill target [m3/s] or [KCFS]" + }, + "rtc:QSPercentage": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.7", + "description": "relative spill target as a percentage [0..100] of the total flow Q" + }, + "rtc:QSPercentageValue": { + "$ref": "#/definitions/..rtc:ExternalParameterSimpleType.1", + "description": "relative spill target as a percentage [0..100] of the total flow Q" + }, + "rtc:QSValue": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "absolute spill target [m3/s] or [KCFS]" + }, + "rtc:QTX": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as operational constraint" + }, + "rtc:QTXValue": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "fixed maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as physical constraint" + } + }, + "required": [ + "rtc:FB", + "rtc:Q", + "rtc:QI" + ], + "type": "object" + }, + "rtc:ReservoirCompactOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:DQ": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "deviation from spill target [m3/s] or [KCFS]" + }, + "rtc:FB": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "forebay elevation [m above reference level] or [ft above sea level]" + }, + "rtc:H": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "head [m] or [ft]" + }, + "rtc:P": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "power generation [MW]" + }, + "rtc:PX": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "maximum power generation [MW]" + }, + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "reservoir outflow [m3/s] or [KCFS]" + }, + "rtc:QI": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "reservoir inflow [m3/s] or [KCFS]" + }, + "rtc:QMISC": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "miscellaneous flow [m3/s] or [KCFS]" + }, + "rtc:QS": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "spillage [m3/s] or [KCFS]" + }, + "rtc:QSPercentage": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "relative spillage [0..100]" + }, + "rtc:QT": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "turbine flow [m3/s] or [KCFS]" + }, + "rtc:QTX": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "maximum turbine flow [m3/s] or [KCFS]" + }, + "rtc:R": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "residuum of mass balance (in simultaneous mode) [m3/s] or [KCFS]" + }, + "rtc:S": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "storage [m3] or [KCFS-hrs], this is the system state needed in the state file" + }, + "rtc:TW": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "tailwater elevation [m above reference level] or [ft above sea level]" + } + }, + "required": [ + "rtc:DQ", + "rtc:FB", + "rtc:H", + "rtc:P", + "rtc:Q", + "rtc:QI", + "rtc:QS", + "rtc:QT", + "rtc:R", + "rtc:S", + "rtc:TW" + ], + "type": "object" + }, + "rtc:ReservoirComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:controlledOutlet": { + "items": { + "$ref": "#/definitions/rtc:ControlledOutletComplexType", + "description": "Controlled outlet, release can be defined by external input or rule" + }, + "type": "array" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:ReservoirInputComplexType" + }, + "rtc:mode": { + "$ref": "#/definitions/rtc:poolRoutingEnumStringType", + "description": "Time integration scheme for the network components" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:ReservoirOutputComplexType" + }, + "rtc:storageCharacteristics": { + "$ref": "#/definitions/rtc:StorageCharacteristicsComplexType", + "description": "Storage characteristics of the reservoir: The storage S as a function of the water level h can be provided as a table or formula." + }, + "rtc:tailwater": { + "$ref": "#/definitions/rtc:TailwaterComplexType", + "description": "Tailwater rating curve\n " + }, + "rtc:theta": { + "$ref": "#/definitions/xs:double", + "description": "Time weighting coefficient for the semi-implicit theta schema: 0 is equal to a full weight on the old time step, 1 represents a full weight on new time step. The coefficient is not used in the fully explicit or implicit schemas. The permitted range is between 0.5 and 1.0." + }, + "rtc:uncontrolledOutlet": { + "items": { + "$ref": "#/definitions/rtc:UncontrolledOutletComplexType", + "description": "Uncontrolled outlet, the release is a function of the water level h in the reservoir" + }, + "type": "array" + } + }, + "required": [ + "rtc:input", + "rtc:mode", + "rtc:output", + "rtc:storageCharacteristics", + "rtc:theta", + "@id" + ], + "type": "object" + }, + "rtc:ReservoirGradientComplexType": { + "additionalProperties": false, + "properties": { + "rtc:lambda": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:lambdaDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:lambda" + ], + "type": "object" + }, + "rtc:ReservoirInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:evaporation": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Direct evaporation from the reservoir [mm/time step]" + }, + "rtc:inflow": { + "items": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Upstream inflows [m3/s] into the reservoir, can be more than one for aggregation the inflows from several upstream reservoirs or river reaches" + }, + "minItems": 1, + "type": "array" + }, + "rtc:level": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Optional level [m] for updating the simulated level by an observed water level (simple data assimilation), if provided the error output is equal to the mass balance correction " + }, + "rtc:precipitation": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "Direct precitation into the reservoir [mm/time step], the value will be multiplied by the current water surface area of the reservoir" + } + }, + "required": [ + "rtc:inflow" + ], + "type": "object" + }, + "rtc:ReservoirOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:error": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional error output [m3/s] which is non-zero if the simple data assimilation option for overruling the simulated water level is used " + }, + "rtc:inflow": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "aggregated inflows [m3/s]" + }, + "rtc:level": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "water level [m] in the reservoir" + }, + "rtc:relativeStorage": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "relative storage [-] typically between 0 and 1 depending on the definition of the maximum level above]" + }, + "rtc:release": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "aggregated release [m3/s]" + }, + "rtc:residuum": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional residuum of the implicit solution" + }, + "rtc:storage": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "storage [m3] (state variable)" + } + }, + "required": [ + "rtc:inflow", + "rtc:level", + "rtc:release", + "rtc:storage" + ], + "type": "object" + }, + "rtc:ReservoirRoutingComplexType": { + "additionalProperties": false, + "properties": { + "rtc:simpleReservoir": { + "items": { + "$ref": "#/definitions/rtc:SimpleReservoirComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:simpleReservoir" + ], + "type": "object" + }, + "rtc:ReservoirThunerseeRuleComplexType": { + "additionalProperties": false, + "properties": { + "rtc:storageCharacteristics": { + "$ref": "#/definitions/rtc:StorageCharacteristicsComplexType" + } + }, + "required": [ + "rtc:storageCharacteristics" + ], + "type": "object" + }, + "rtc:ResponseStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputResponseStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterResponseStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:ResultComplexType": { + "additionalProperties": false, + "properties": { + "rtc:output": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:value": { + "$ref": "#/definitions/xs:integer" + } + }, + "required": [ + "rtc:output", + "rtc:value" + ], + "type": "object" + }, + "rtc:RiverWeirComplexType": { + "additionalProperties": false, + "properties": { + "rtc:exponentWeirFormula": { + "$ref": "#/definitions/xs:double" + }, + "rtc:flowDirection": { + "$ref": "#/definitions/rtc:flowDirectionEnumStringType" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:RiverWeirInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:RiverWeirOutputComplexType" + }, + "rtc:submergedFlowFactor": { + "$ref": "#/definitions/xs:double" + }, + "rtc:submergedFlowRatio": { + "$ref": "#/definitions/xs:double" + }, + "rtc:width": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:width" + ], + "type": "object" + }, + "rtc:RiverWeirInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:CConst": { + "$ref": "#/definitions/xs:double" + }, + "rtc:CSeries": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:DeltaHDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:DeltaHUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:HDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:HUp": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:HDown", + "rtc:HUp" + ], + "type": "object" + }, + "rtc:RiverWeirOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:C": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:flowType": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:C", + "rtc:Q" + ], + "type": "object" + }, + "rtc:RoutingComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:dischargeRef": { + "$ref": "#/definitions/xs:string", + "description": "Reference to timeseries in data configuration" + }, + "rtc:inflow": { + "items": { + "$ref": "#/definitions/rtc:InflowComplexType" + }, + "type": "array" + }, + "rtc:outputReferences": { + "$ref": "#/definitions/rtc:RoutingOutputComplexType", + "description": "Contains references to the output timeseries in the data configuration" + }, + "rtc:reservoirRouting": { + "$ref": "#/definitions/rtc:ReservoirRoutingComplexType" + } + }, + "required": [ + "rtc:outputReferences", + "@id" + ], + "type": "object" + }, + "rtc:RoutingOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:discharge": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:error": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "type": "object" + }, + "rtc:RowComplexType": { + "additionalProperties": false, + "properties": { + "@eta_head01": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head02": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head03": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head04": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head05": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head06": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head07": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head08": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head09": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head10": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head11": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head12": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head13": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head14": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head15": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head16": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head17": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head18": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head19": { + "$ref": "#/definitions/xs:double" + }, + "@eta_head20": { + "$ref": "#/definitions/xs:double" + }, + "@flow": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@eta_head02", + "@flow", + "@eta_head01" + ], + "type": "object" + }, + "rtc:RtcToolsConfigComplexType": { + "additionalProperties": false, + "properties": { + "rtc:components": { + "$ref": "#/definitions/rtc:ComponentsComplexType", + "description": "The components section includes all simulation components." + }, + "rtc:general": { + "$ref": "#/definitions/rtc:GeneralModuleConfigComplexType", + "description": "OBSOLETE. Still here for backwards compatibility. Remove after next release." + }, + "rtc:rules": { + "$ref": "#/definitions/rtc:RulesComplexType", + "description": "The rules section includes operating rules or controllers for defining the release of reservoir, structural settings of gates etc." + }, + "rtc:triggers": { + "$ref": "#/definitions/rtc:TriggersComplexType", + "description": "Triggers may activate or deactivate rules defined in the section above." + } + }, + "type": "object" + }, + "rtc:RuleComplexType": { + "additionalProperties": false, + "properties": { + "rtc:constant": { + "$ref": "#/definitions/rtc:ConstantRuleComplexType", + "description": "Simple rule with constant value" + }, + "rtc:dateLookupTable": { + "$ref": "#/definitions/rtc:DateLookupTableComplexType", + "description": "Date lookup table, output y is a function of date and an input value x, the interpolation on the date / value axis can be BLOCK or LINEAR, the number of records should be constant for each date record" + }, + "rtc:deadBandTime": { + "$ref": "#/definitions/rtc:DeadBandTimeComplexType" + }, + "rtc:deadBandValue": { + "$ref": "#/definitions/rtc:DeadBandValueComplexType", + "description": "Deadband threshold, yNew will become yOld, if the change yNew-yOld is smaller than the threshold value " + }, + "rtc:dedicated-Aebi": { + "$ref": "#/definitions/rtc:AebiRuleComplexType", + "description": "Dedicated rule for the control of Bielersee, Canton Bern, CH" + }, + "rtc:dedicated-Thunersee": { + "$ref": "#/definitions/rtc:ThunerseeRuleComplexType", + "description": "Dedicated rule for the control of Thunersee, Canton Bern, CH" + }, + "rtc:expression": { + "$ref": "#/definitions/rtc:ExpressionComplexType", + "description": "mathematical expression" + }, + "rtc:guideband": { + "$ref": "#/definitions/rtc:GuideBandRuleComplexType", + "description": "Guide band rule, output get 0 if input less equal xMin, 1 if input greater equal xMax, linear interpolation otherwise xMin and xMax can be a function of date, main application in combination with a relative release of a reservoir outlet" + }, + "rtc:interval": { + "$ref": "#/definitions/rtc:IntervalComplexType" + }, + "rtc:limiter": { + "$ref": "#/definitions/rtc:LimiterComplexType", + "description": "Limiter for limiting the change of a variable in a time step to a relative (PERCENTAGE) or absolute (ABSOLUTE) change" + }, + "rtc:lookup2DTable": { + "$ref": "#/definitions/rtc:Lookup2DTableComplexType" + }, + "rtc:lookupTable": { + "$ref": "#/definitions/rtc:LookupTableComplexType" + }, + "rtc:merger": { + "$ref": "#/definitions/rtc:MergerComplexType", + "description": "Data hierarchy, highest input has highest priority" + }, + "rtc:pid": { + "$ref": "#/definitions/rtc:PidComplexType" + }, + "rtc:timeAbsolute": { + "$ref": "#/definitions/rtc:TimeAbsoluteComplexType", + "description": "absolute time controller" + }, + "rtc:timeRelative": { + "$ref": "#/definitions/rtc:TimeRelativeComplexType", + "description": "relative time controller" + }, + "rtc:unitDelay": { + "$ref": "#/definitions/rtc:UnitDelayComplexType", + "description": "Unit delay operator for delaying a value by n times the time step of the model." + } + }, + "type": "object" + }, + "rtc:RuleStateTriggerComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:ruleId": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "rtc:ruleId", + "@id" + ], + "type": "object" + }, + "rtc:RuleTriggerComplexType": { + "additionalProperties": false, + "properties": { + "rtc:trigger": { + "items": { + "$ref": "#/definitions/rtc:TriggerComplexType" + }, + "type": "array" + } + }, + "type": "object" + }, + "rtc:RulesComplexType": { + "additionalProperties": false, + "properties": { + "rtc:rule": { + "items": { + "$ref": "#/definitions/rtc:RuleComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:rule" + ], + "type": "object" + }, + "rtc:SRMComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:SRMInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:SRMOutputComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:SRMParameterComplexType" + }, + "rtc:parameterZone": { + "items": { + "$ref": "#/definitions/rtc:SRMParameterZoneComplexType" + }, + "minItems": 1, + "type": "array" + }, + "rtc:state": { + "$ref": "#/definitions/rtc:SRMStateComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "rtc:parameterZone", + "rtc:state", + "@id" + ], + "type": "object" + }, + "rtc:SRMInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:P": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:P-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:RCA": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:RCA-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:SCA": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:SCA-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:T": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:T-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:cr": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:cr-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:cs": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:cs-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "type": "object" + }, + "rtc:SRMOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:QRain-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:QSnow-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:QStorage-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:QRain-Vector", + "rtc:QSnow-Vector", + "rtc:QStorage-Vector" + ], + "type": "object" + }, + "rtc:SRMParameterComplexType": { + "additionalProperties": false, + "properties": { + "rtc:Pt": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "precipitation threshold [mm]" + }, + "rtc:TLag": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "Time lag of input data [h]" + }, + "rtc:x": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "recession coefficient 1" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "recession coefficient 2" + } + }, + "required": [ + "rtc:Pt", + "rtc:TLag", + "rtc:x", + "rtc:y" + ], + "type": "object" + }, + "rtc:SRMParameterZoneComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "rtc:Tcr1": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "critical temperature (???) [oC]" + }, + "rtc:Tcr2": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "critical temperature (???) [oC]" + }, + "rtc:a": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "degree day factor [mm/(oC*day)]" + }, + "rtc:area": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "area [km2]" + } + }, + "required": [ + "rtc:Tcr1", + "rtc:Tcr2", + "rtc:a", + "rtc:area" + ], + "type": "object" + }, + "rtc:SRMStateComplexType": { + "additionalProperties": false, + "properties": { + "rtc:PStorage-Vector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "snow storage of non-snow-covered areas [mm]" + }, + "rtc:Q": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "discharge [m3/s]" + } + }, + "required": [ + "rtc:PStorage-Vector", + "rtc:Q" + ], + "type": "object" + }, + "rtc:SetTriggerComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:default": { + "$ref": "#/definitions/xs:boolean" + }, + "rtc:false": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "rtc:logicalOperator": { + "$ref": "#/definitions/rtc:logicalOperatorEnumStringType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TriggerOutputComplexType" + }, + "rtc:true": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "rtc:x1Series": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.24" + }, + "rtc:x1Trigger": { + "$ref": "#/definitions/rtc:TriggerComplexType" + }, + "rtc:x1Value": { + "$ref": "#/definitions/xs:boolean" + }, + "rtc:x2Series": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.25" + }, + "rtc:x2Trigger": { + "$ref": "#/definitions/rtc:TriggerComplexType" + }, + "rtc:x2Value": { + "$ref": "#/definitions/xs:boolean" + } + }, + "required": [ + "rtc:logicalOperator", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:SimpleReservoirComplexType": { + "additionalProperties": false, + "properties": { + "@multiplier": { + "minimum": 1, + "type": "integer" + }, + "rtc:capacityCharacteristics": { + "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType" + }, + "rtc:storageCharacteristics": { + "$ref": "#/definitions/rtc:StorageCharacteristicsComplexType" + } + }, + "required": [ + "rtc:capacityCharacteristics", + "rtc:storageCharacteristics" + ], + "type": "object" + }, + "rtc:SnowRainJunctionComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputSnowRainJunctionComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputSnowRainJunctionComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterSnowRainJunctionComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:SoilRunoffStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputSoilRunoffStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterSoilRunoffStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:SpatialEnumStringType": { + "description": "options for spatial schetization", + "enum": [ + "CENTRAL", + "UPWIND" + ], + "type": "string" + }, + "rtc:SpreadsheetComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:defaultInputValue": { + "$ref": "#/definitions/xs:double", + "description": "default input value, if input is NaN or infinity" + }, + "rtc:defaultOutputValue": { + "$ref": "#/definitions/xs:double", + "description": "default output, if no combination of the table applies" + }, + "rtc:false": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:SpreadsheetInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:SpreadsheetOutputComplexType" + }, + "rtc:tables": { + "$ref": "#/definitions/rtc:SpreadsheetTablesComplexType", + "description": "number of tables with input, output values, the initial state can be taken into account optionally" + }, + "rtc:tolerance": { + "$ref": "#/definitions/xs:double", + "description": "tolerance for finding a match, keep in mind that the all variable are stored in doubles" + }, + "rtc:true": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "rtc:validPeriods": { + "$ref": "#/definitions/rtc:ValidPeriodsComplexType", + "description": "optional period of the year for which the trigger is active" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:tables", + "rtc:tolerance", + "@id" + ], + "type": "object" + }, + "rtc:SpreadsheetInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x1": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.14" + }, + "rtc:x2": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.15" + }, + "rtc:x3": { + "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.16" + } + }, + "required": [ + "rtc:x1", + "rtc:x2" + ], + "type": "object" + }, + "rtc:SpreadsheetOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:status": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:status" + ], + "type": "object" + }, + "rtc:SpreadsheetRecordComplexType": { + "additionalProperties": false, + "properties": { + "@x1": { + "$ref": "#/definitions/xs:double" + }, + "@x2": { + "$ref": "#/definitions/xs:double" + }, + "@x3": { + "$ref": "#/definitions/xs:double" + }, + "@y": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@x1", + "@x2", + "@y" + ], + "type": "object" + }, + "rtc:SpreadsheetTableComplexType": { + "additionalProperties": false, + "properties": { + "@initialState": { + "$ref": "#/definitions/xs:double" + }, + "rtc:record": { + "items": { + "$ref": "#/definitions/rtc:SpreadsheetRecordComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:record" + ], + "type": "object" + }, + "rtc:SpreadsheetTablesComplexType": { + "additionalProperties": false, + "properties": { + "rtc:table": { + "items": { + "$ref": "#/definitions/rtc:SpreadsheetTableComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:table" + ], + "type": "object" + }, + "rtc:StandardTriggerComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:condition": { + "$ref": "#/definitions/rtc:RelationalConditionComplexType" + }, + "rtc:default": { + "$ref": "#/definitions/xs:boolean" + }, + "rtc:false": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TriggerOutputComplexType" + }, + "rtc:true": { + "$ref": "#/definitions/rtc:RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + } + }, + "required": [ + "rtc:condition", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:StorageCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:maximumLevel": { + "$ref": "#/definitions/xs:double", + "description": "Maximum water level h in the reservoir: this optional value does not limit the water level, it is used however to compute the relative filling percentage of the reservoir according to s = S/S(maximumLevel), where S is the absolute storage volume" + }, + "rtc:storageEquation": { + "$ref": "#/definitions/rtc:EquationsComplexType", + "description": "Storage equation, storage S = f(water level h)" + }, + "rtc:storageTable": { + "$ref": "#/definitions/rtc:ElevationTableComplexType", + "description": "Storage table with pairs of elevation h and storage S" + } + }, + "type": "object" + }, + "rtc:StorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:link": { + "items": { + "$ref": "#/definitions/rtc:LinkStorageSystemComplexType" + }, + "minItems": 1, + "type": "array" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputStorageSystemComplexType" + }, + "rtc:settings": { + "$ref": "#/definitions/rtc:StorageSystemSettingsComplexType" + }, + "rtc:storageNode": { + "items": { + "$ref": "#/definitions/rtc:NodeStorageSystemComplexType", + "description": "storage node" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:link", + "rtc:storageNode", + "@id" + ], + "type": "object" + }, + "rtc:StorageSystemSettingsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:acceptableConvergenceThreshold": { + "$ref": "#/definitions/xs:double", + "description": "optional threshold after reaching the maximum number of iterations, writes a warning if reached, writes error otherwise" + }, + "rtc:convergenceThreshold": { + "$ref": "#/definitions/xs:double", + "description": "iteration stops after reaching this threshold" + }, + "rtc:treatNonConvergenceAsError": { + "$ref": "#/definitions/xs:boolean", + "description": "treat non-convergence related to the thresholds as error or not" + } + }, + "required": [ + "rtc:convergenceThreshold", + "rtc:treatNonConvergenceAsError" + ], + "type": "object" + }, + "rtc:SubmodelComplexType": { + "additionalProperties": false, + "properties": { + "rtc:evaporationPotential": { + "$ref": "#/definitions/rtc:EvaporationPotentialComplexType", + "description": "potential evaporation" + }, + "rtc:snowRainJunction": { + "$ref": "#/definitions/rtc:SnowRainJunctionComplexType", + "description": "separates precipitation into snow and rainfall" + }, + "rtc:storageSystem": { + "$ref": "#/definitions/rtc:StorageSystemComplexType", + "description": "storage systems with storage nodes and links for setting up bucket models" + }, + "rtc:typicalProfile": { + "$ref": "#/definitions/rtc:TypicalProfileComplexType" + } + }, + "type": "object" + }, + "rtc:Table2DLookupTableComplexType": { + "additionalProperties": false, + "properties": { + "rtc:matrix": { + "$ref": "#/definitions/rtc:XDimComplexType" + }, + "rtc:x": { + "$ref": "#/definitions/rtc:ValueArrayComplexType" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:ValueArrayComplexType" + } + }, + "required": [ + "rtc:matrix", + "rtc:x", + "rtc:y" + ], + "type": "object" + }, + "rtc:TableLookupTableComplexType": { + "additionalProperties": false, + "properties": { + "rtc:record": { + "items": { + "$ref": "#/definitions/rtc:DateRecord2DataComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:record" + ], + "type": "object" + }, + "rtc:TailwaterComplexType": { + "additionalProperties": false, + "description": "\n Table containing data for different elevations. Type of element 'value'\n depends on purpose for which table is used.\n ", + "properties": { + "rtc:constant": { + "$ref": "#/definitions/xs:double", + "description": "Constant tailwater level [m]" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TailwaterOutputComplexType" + }, + "rtc:ratingCurve": { + "$ref": "#/definitions/rtc:ElevationTableComplexType", + "description": "Tailwater depending on discharge computed by a rating curve" + } + }, + "required": [ + "rtc:output" + ], + "type": "object" + }, + "rtc:TailwaterEquationComplexType": { + "additionalProperties": false, + "properties": { + "rtc:A": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:B": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:C": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:D": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:FBDown": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "time series reference to forebay elevation of the downstream project, only required if B is non-zero" + } + }, + "required": [ + "rtc:A", + "rtc:B", + "rtc:C" + ], + "type": "object" + }, + "rtc:TailwaterOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:head": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "head [m]" + }, + "rtc:level": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "tailwater level [m]" + } + }, + "required": [ + "rtc:head", + "rtc:level" + ], + "type": "object" + }, + "rtc:TailwaterTidalEquationComplexType": { + "additionalProperties": false, + "properties": { + "rtc:A": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType" + }, + "rtc:QObs": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:TWObs": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:A", + "rtc:QObs", + "rtc:TWObs" + ], + "type": "object" + }, + "rtc:ThunerseeRuleComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:ThunerseeRuleInputComplexType" + }, + "rtc:levelSetpoint": { + "$ref": "#/definitions/xs:double" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:ThunerseeRuleOutputComplexType" + }, + "rtc:releaseLimiterPercentage": { + "$ref": "#/definitions/xs:double" + }, + "rtc:reservoir": { + "$ref": "#/definitions/rtc:ReservoirThunerseeRuleComplexType" + }, + "rtc:tunnel": { + "$ref": "#/definitions/rtc:TunnelThunerseeRuleComplexType" + }, + "rtc:weir": { + "$ref": "#/definitions/rtc:WeirThunerseeRuleComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:levelSetpoint", + "rtc:output", + "rtc:releaseLimiterPercentage", + "rtc:reservoir", + "rtc:tunnel", + "rtc:weir", + "@id" + ], + "type": "object" + }, + "rtc:ThunerseeRuleInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:catchment": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:inflow": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:level": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:catchment", + "rtc:inflow", + "rtc:level" + ], + "type": "object" + }, + "rtc:ThunerseeRuleOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:active": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:releaseTotal": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:releaseTunnel": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:releaseWeir": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:releaseTotal", + "rtc:releaseTunnel", + "rtc:releaseWeir" + ], + "type": "object" + }, + "rtc:TimeAbsoluteComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:TimeAbsoluteInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TimeAbsoluteOutputComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:TimeAbsoluteInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:TimeAbsoluteOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:y" + ], + "type": "object" + }, + "rtc:TimeRelativeComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:controlTable": { + "$ref": "#/definitions/rtc:TimeRelativeControlTableComplexType", + "description": "table with time [s] / value records" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:TimeRelativeInputComplexType" + }, + "rtc:interpolationOption": { + "$ref": "#/definitions/rtc:interpolationOptionEnumStringType", + "description": "table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR" + }, + "rtc:maximumPeriod": { + "$ref": "#/definitions/xs:double" + }, + "rtc:mode": { + "description": "timeRelative mode, either \"NATIVE\" or \"RETAINVALUEWHENINACTIVE\"", + "enum": [ + "NATIVE", + "RETAINVALUEWHENINACTIVE" + ], + "type": "string" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TimeRelativeOutputComplexType" + }, + "rtc:valueOption": { + "$ref": "#/definitions/rtc:timeRelativeEnumStringType", + "description": "setting if the control table provides the absolute value or the relative value " + } + }, + "required": [ + "rtc:controlTable", + "rtc:output", + "rtc:valueOption", + "@id" + ], + "type": "object" + }, + "rtc:TimeRelativeControlTableComplexType": { + "additionalProperties": false, + "properties": { + "rtc:record": { + "items": { + "$ref": "#/definitions/rtc:TimeRelativeControlTableRecordComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:record" + ], + "type": "object" + }, + "rtc:TimeRelativeControlTableRecordComplexType": { + "additionalProperties": false, + "properties": { + "@time": { + "$ref": "#/definitions/xs:double" + }, + "@value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "@time", + "@value" + ], + "type": "object" + }, + "rtc:TimeRelativeInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional input for deriving the timeActive in case of the relative from Value option" + } + }, + "required": [ + "rtc:y" + ], + "type": "object" + }, + "rtc:TimeRelativeOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:timeActive": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:timeActive", + "rtc:y" + ], + "type": "object" + }, + "rtc:TimeSeriesSimpleType": { + "minLength": 1, + "type": "string" + }, + "rtc:TimeStepComplexType": { + "additionalProperties": false, + "description": "The timeunit element has three attributes, unit and devider and multiplier.\n the unit is second, minute, hour, week, month year.\n The divider attribute is optional (default = 1).", + "properties": { + "@divider": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "@multiplier": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "@unit": { + "$ref": "#/definitions/rtc:timeStepUnitEnumStringType" + } + }, + "required": [ + "@unit" + ], + "type": "object" + }, + "rtc:TimeZoneSimpleType": { + "description": "The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", + "type": "number" + }, + "rtc:TriggerComplexType": { + "additionalProperties": false, + "properties": { + "rtc:deadBand": { + "$ref": "#/definitions/rtc:DeadBandTriggerComplexType", + "description": "trigger with deadband" + }, + "rtc:deadBandTime": { + "$ref": "#/definitions/rtc:DeadBandTimeComplexType", + "description": "trigger with time deadband" + }, + "rtc:expression": { + "$ref": "#/definitions/rtc:ExpressionComplexType", + "description": "mathematical expression" + }, + "rtc:lookupTable": { + "$ref": "#/definitions/rtc:LookupTableComplexType" + }, + "rtc:merger": { + "$ref": "#/definitions/rtc:MergerComplexType", + "description": "Data hierarchy, highest input has highest priority" + }, + "rtc:polygonLookup": { + "$ref": "#/definitions/rtc:PolygonLookupComplexType", + "description": "trigger with two-dimensional lookup table, trigger results are defined by polygons" + }, + "rtc:ruleReference": { + "$ref": "#/definitions/xs:string" + }, + "rtc:set": { + "$ref": "#/definitions/rtc:SetTriggerComplexType", + "description": "set of triggers" + }, + "rtc:spreadsheet": { + "$ref": "#/definitions/rtc:SpreadsheetComplexType", + "description": "spread sheet trigger" + }, + "rtc:standard": { + "$ref": "#/definitions/rtc:StandardTriggerComplexType", + "description": "standard trigger" + } + }, + "type": "object" + }, + "rtc:TriggerControllerComplexType": { + "additionalProperties": false, + "properties": { + "rtc:input": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:value": { + "$ref": "#/definitions/xs:integer" + } + }, + "required": [ + "rtc:input", + "rtc:value" + ], + "type": "object" + }, + "rtc:TriggerInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:status": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:status" + ], + "type": "object" + }, + "rtc:TriggerOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:status": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:timeFalse": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:timeTrue": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:status" + ], + "type": "object" + }, + "rtc:TriggersComplexType": { + "additionalProperties": false, + "properties": { + "rtc:trigger": { + "items": { + "$ref": "#/definitions/rtc:TriggerComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:trigger" + ], + "type": "object" + }, + "rtc:TunnelThunerseeRuleComplexType": { + "additionalProperties": false, + "properties": { + "rtc:capacityCharacteristics": { + "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType" + }, + "rtc:levelThreshold": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "rtc:capacityCharacteristics", + "rtc:levelThreshold" + ], + "type": "object" + }, + "rtc:TurbineCapacityCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:capacityEquation": { + "$ref": "#/definitions/rtc:EquationsComplexType", + "description": "capacity equation of hydropower turbine as a function of the water head" + }, + "rtc:capacityTable": { + "$ref": "#/definitions/rtc:ElevationTableComplexType", + "description": "capacity table of hydropower turbine as a function of the water head" + } + }, + "type": "object" + }, + "rtc:TurbineCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:efficiencyTable": { + "$ref": "#/definitions/rtc:ElevationTableComplexType", + "description": "efficiency table unit power output [MW / m3/s] as function of head [m] " + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TurbineOutputCharacteristicsComplexType" + } + }, + "required": [ + "rtc:efficiencyTable", + "rtc:output" + ], + "type": "object" + }, + "rtc:TurbineComplexType": { + "additionalProperties": false, + "properties": { + "rtc:capacityCharacteristics": { + "$ref": "#/definitions/rtc:TurbineCapacityCharacteristicsComplexType" + }, + "rtc:efficiencyCharacteristics": { + "$ref": "#/definitions/rtc:TurbineEfficiencyCharacteristicsComplexType" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:TurbineInputComplexType" + }, + "rtc:nodeDown": { + "$ref": "#/definitions/xs:string" + }, + "rtc:nodeUp": { + "$ref": "#/definitions/xs:string" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TurbineOutputComplexType" + } + }, + "required": [ + "rtc:capacityCharacteristics", + "rtc:efficiencyCharacteristics", + "rtc:input", + "rtc:nodeDown", + "rtc:nodeUp", + "rtc:output" + ], + "type": "object" + }, + "rtc:TurbineEfficiencyCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:efficiencyConstant": { + "$ref": "#/definitions/xs:double", + "description": "constant efficiency over all discharges, typical range is [0.80, 0.90]" + } + }, + "type": "object" + }, + "rtc:TurbineEfficiencyTableComplexType": { + "additionalProperties": false, + "properties": { + "rtc:columns": { + "$ref": "#/definitions/rtc:ColumnsComplexType", + "description": "column Ids refering to the head [m] of each column" + }, + "rtc:maxFlows": { + "$ref": "#/definitions/rtc:MaxFlowsComplexType", + "description": "maximum flow for a given head (provided above)" + }, + "rtc:row": { + "items": { + "$ref": "#/definitions/rtc:RowComplexType", + "description": "rows with turbine efficiency (related to the head coloumn) for a given flow" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:columns", + "rtc:maxFlows", + "rtc:row" + ], + "type": "object" + }, + "rtc:TurbineInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:relativeRelease": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "provision of relative turbine release, 1 = maximum capacity" + }, + "rtc:release": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "provision of absolute turbine release" + } + }, + "type": "object" + }, + "rtc:TurbineOutputCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:power": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "power output [MW]" + } + }, + "required": [ + "rtc:power" + ], + "type": "object" + }, + "rtc:TurbineOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:discharge": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "discharge in m3/s" + }, + "rtc:powerProduction": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "power production in MW" + } + }, + "required": [ + "rtc:discharge", + "rtc:powerProduction" + ], + "type": "object" + }, + "rtc:TypicalProfileComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:data": { + "items": { + "$ref": "#/definitions/rtc:DataTypicalProfileComplexType" + }, + "minItems": 1, + "type": "array" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:data", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:UOutletInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:release": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:release" + ], + "type": "object" + }, + "rtc:UncontrolledOutletComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:capacityCharacteristics": { + "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType", + "description": "Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:UOutletInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutletOutputComplexType" + } + }, + "required": [ + "rtc:capacityCharacteristics", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:UnitDelayComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:UnitDelayInputComplexType" + }, + "rtc:nStep": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "nStep optionally provides a delay with an arbitrary numer of time steps or sub time step, i.e. 1.5 time steps, if being used also specify the yFinal tag in the output options" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:UnitDelayOutputComplexType", + "description": "The configuration of a multiple unit delay requires the configuration of a time series for each delay time step" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "@id" + ], + "type": "object" + }, + "rtc:UnitDelayInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:UnitDelayOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:y": { + "items": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "type": "array" + }, + "rtc:yFinal": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional result of the delay operator, identical to yVector[end] if the delay is a multiple of the time step, required in case of sub time steps" + }, + "rtc:yMax": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:yMean": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional mean of input and outputs" + }, + "rtc:yMin": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:ySum": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "optional sum of input and outputs" + }, + "rtc:yVector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "type": "object" + }, + "rtc:UnitHydrographComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:UnitHydrographInputComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:UnitHydrographOutputComplexType" + }, + "rtc:weights": { + "$ref": "#/definitions/rtc:UnitHydrographWeightComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:weights", + "@id" + ], + "type": "object" + }, + "rtc:UnitHydrographInputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:x": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + } + }, + "required": [ + "rtc:x" + ], + "type": "object" + }, + "rtc:UnitHydrographOutputComplexType": { + "additionalProperties": false, + "properties": { + "rtc:xDelay": { + "items": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "definition of individual time series for vector with delays, configure one element less than weights defined above" + }, + "type": "array" + }, + "rtc:xDelayVector": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "definition of delay vector, configure one element less than weights defined above" + }, + "rtc:y": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "result of unit hydrograph" + } + }, + "required": [ + "rtc:y" + ], + "type": "object" + }, + "rtc:UnitHydrographWeightComplexType": { + "additionalProperties": false, + "properties": { + "rtc:custom": { + "$ref": "#/definitions/rtc:UnitHydrographWeightCustomComplexType", + "description": "user-defined weights" + }, + "rtc:triangular": { + "$ref": "#/definitions/rtc:UnitHydrographWeightTriangularComplexType", + "description": "weights with triangular shape" + } + }, + "type": "object" + }, + "rtc:UnitHydrographWeightCustomComplexType": { + "additionalProperties": false, + "properties": { + "rtc:weight": { + "items": { + "$ref": "#/definitions/xs:double", + "description": "user defined weights" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:weight" + ], + "type": "object" + }, + "rtc:UnitHydrographWeightTriangularComplexType": { + "additionalProperties": false, + "properties": { + "rtc:factor": { + "$ref": "#/definitions/xs:double", + "description": "sum of all weight, if not equal to 1.0" + }, + "rtc:nSteps": { + "$ref": "#/definitions/rtc:ExternalParameterSimpleType", + "description": "number of time steps" + } + }, + "required": [ + "rtc:nSteps" + ], + "type": "object" + }, + "rtc:UnitTypeEnumStringType": { + "enum": [ + "SI", + "Imperial" + ], + "type": "string" + }, + "rtc:ValidPeriodComplexType": { + "additionalProperties": false, + "properties": { + "rtc:endDate": { + "$ref": "#/definitions/rtc:DateComplexType" + }, + "rtc:startDate": { + "$ref": "#/definitions/rtc:DateComplexType" + } + }, + "required": [ + "rtc:endDate", + "rtc:startDate" + ], + "type": "object" + }, + "rtc:ValidPeriodsComplexType": { + "additionalProperties": false, + "properties": { + "rtc:validPeriod": { + "items": { + "$ref": "#/definitions/rtc:ValidPeriodComplexType" + }, + "type": "array" + } + }, + "type": "object" + }, + "rtc:ValueArrayComplexType": { + "additionalProperties": false, + "properties": { + "rtc:value": { + "items": { + "$ref": "#/definitions/xs:float" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:value" + ], + "type": "object" + }, + "rtc:VariableTypeEnumStringType": { + "enum": [ + "CONTINUOUS", + "INTEGER", + "TIMEINSTANCE" + ], + "type": "string" + }, + "rtc:WeirThunerseeRuleComplexType": { + "additionalProperties": false, + "properties": { + "rtc:capacityCharacteristics": { + "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType" + } + }, + "required": [ + "rtc:capacityCharacteristics" + ], + "type": "object" + }, + "rtc:XDimComplexType": { + "additionalProperties": false, + "properties": { + "rtc:xDim": { + "items": { + "$ref": "#/definitions/rtc:YDimComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:xDim" + ], + "type": "object" + }, + "rtc:YDimComplexType": { + "additionalProperties": false, + "properties": { + "rtc:yDim": { + "items": { + "$ref": "#/definitions/xs:float" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:yDim" + ], + "type": "object" + }, + "rtc:ZoneComplexType": { + "additionalProperties": false, + "properties": { + "@max": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "@min": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType" + }, + "rtc:dateTable": { + "$ref": "#/definitions/rtc:DateTableComplexType" + } + }, + "required": [ + "rtc:dateTable" + ], + "type": "object" + }, + "rtc:ZonesComplexType": { + "additionalProperties": false, + "properties": { + "rtc:zone": { + "items": { + "$ref": "#/definitions/rtc:ZoneComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rtc:zone" + ], + "type": "object" + }, + "rtc:caseLangetenEnumStringType": { + "enum": [ + 1, + 2 + ], + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "rtc:dateType": { + "pattern": "^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$", + "type": "string" + }, + "rtc:evaporationActualStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputEvaporationActualStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterEvaporationActualStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:evaporationInterceptionStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputEvaporationInterceptionStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterEvaporationInterceptionStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:flowDirectionEnumStringType": { + "anyOf": [ + { + "enum": [ + "POSITIVE", + "NEGATIVE", + "BOTH" + ], + "type": "string" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ], + "description": "flow direction" + }, + "rtc:groundwaterFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputGroundwaterFlowStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParametergroundwaterFlowStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:inputReferenceEnumStringType": { + "enum": [ + "EXPLICIT", + "IMPLICIT" + ], + "type": "string" + }, + "rtc:interpolationOptionEnumStringType": { + "description": "Type of interpolation", + "enum": [ + "BLOCK", + "LINEAR" + ], + "type": "string" + }, + "rtc:irrigationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:nodeD": { + "$ref": "#/definitions/xs:string", + "description": "downstream node which recieves the irrigation water" + }, + "rtc:nodeU": { + "$ref": "#/definitions/xs:string", + "description": "upstream node, source of water usually the drinking water treatment plant" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterIrrigationStorageSystemComplexType" + } + }, + "required": [ + "rtc:nodeD", + "rtc:nodeU", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:limiterOptionEnumStringType": { + "description": "Type of limiting", + "enum": [ + "PERCENTAGE", + "ABSOLUTE" + ], + "type": "string" + }, + "rtc:logicalOperatorEnumStringType": { + "description": "logical operator", + "enum": [ + "AND", + "OR", + "XOR" + ], + "type": "string" + }, + "rtc:meltRefreezingStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:TimeSeriesSimpleType", + "description": "instanteneous temperature [oC]" + }, + "rtc:nodeD": { + "$ref": "#/definitions/xs:string", + "description": "downstream node, typically WC (water content)" + }, + "rtc:nodeU": { + "$ref": "#/definitions/xs:string", + "description": "upstream node, typically SP (snow pack)" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterMeltRefreezingStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:nodeD", + "rtc:nodeU", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:poolRoutingEnumStringType": { + "description": "Type of pool routing.", + "enum": [ + "ForwardEuler", + "BackwardEuler", + "Theta" + ], + "type": "string" + }, + "rtc:relationalOperatorEnumStringType": { + "description": "relational operator", + "enum": [ + "Less", + "LessEqual", + "Equal", + "Unequal", + "GreaterEqual", + "Greater" + ], + "type": "string" + }, + "rtc:releaseAboveThresholdStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputReleaseAboveThresholdStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterReleaseAboveThresholdStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:releaseWaterContentStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:nodeA": { + "$ref": "#/definitions/xs:string", + "description": "auxiliary node with snow pack, typically SP (snow pack)" + }, + "rtc:nodeU": { + "$ref": "#/definitions/xs:string", + "description": "upstream node, typically WC (water content)" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterReleaseWaterContentStorageSystemComplexType" + } + }, + "required": [ + "rtc:nodeA", + "rtc:nodeU", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:timeRelativeEnumStringType": { + "description": "Value option", + "enum": [ + "ABSOLUTE", + "RELATIVE" + ], + "type": "string" + }, + "rtc:timeSeriesType": { + "description": "Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ", + "enum": [ + "accumulative", + "instantaneous" + ], + "type": "string" + }, + "rtc:timeStepUnitEnumStringType": { + "enum": [ + "second", + "minute", + "hour", + "day", + "week" + ], + "type": "string" + }, + "rtc:timeType": { + "pattern": "^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$", + "type": "string" + }, + "rtc:transferFunctionEnumStringType": { + "description": "Type of transfer function.", + "enum": [ + "Linear", + "SigmoidLogistic", + "Tansig" + ], + "type": "string" + }, + "rtc:waterDistributionConstantStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputWaterDistributionConstantStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterWaterDistributionConstantStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "rtc:waterDistributionVariableStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "@id": { + "$ref": "#/definitions/xs:string" + }, + "@name": { + "$ref": "#/definitions/xs:string" + }, + "rtc:input": { + "$ref": "#/definitions/rtc:InputWaterDistributionVariableStorageSystemComplexType" + }, + "rtc:output": { + "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" + }, + "rtc:parameter": { + "$ref": "#/definitions/rtc:ParameterWaterDistributionVariableStorageSystemComplexType" + } + }, + "required": [ + "rtc:input", + "rtc:output", + "rtc:parameter", + "@id" + ], + "type": "object" + }, + "xs:boolean": { + "type": "boolean" + }, + "xs:dateTime": { + "type": "string" + }, + "xs:double": { + "type": "number" + }, + "xs:float": { + "type": "number" + }, + "xs:gMonthDay": { + "type": "string" + }, + "xs:int": { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "xs:integer": { + "type": "integer" + }, + "xs:positiveInteger": { + "minimum": 1, + "type": "integer" + }, + "xs:string": { + "type": "string" + }, + "xs:time": { + "type": "string" + } + }, + "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", + "properties": { + "@xmlns:rtc": { + "default": "http://www.wldelft.nl/fews" + }, + "@xmlns:xs": { + "default": "http://www.w3.org/2001/XMLSchema" + }, + "rtc:rtcToolsConfig": { + "$ref": "#/definitions/.rtc:rtcToolsConfig" + } + }, + "type": "object" +} \ No newline at end of file From 9e71187ef07e64d0e8f7f30331edc82a5b3cb2bb Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 15:15:50 +0200 Subject: [PATCH 12/22] #226: Move files around --- hydrolib/core/io/rtc/json/rtcToolsConfig.json | 7582 ----------------- .../core/io/rtc/rtcDataConfig/generated/_.py | 16 + .../rtc/rtcDataConfig/generated/__init__.py | 367 + .../generated}/rtcDataConfig.json | 0 .../core/io/rtc/rtcToolsConfig/generated/_.py | 19 + .../rtcToolsConfig/generated/_/_/__init__.py | 3 + .../_/_/rtc_ExternalParameterSimpleType.py | 22 + .../generated/_/_/rtc_TimeSeriesSimpleType.py | 250 + .../rtcToolsConfig/generated/_/_/xs_string.py | 29 + .../rtc/rtcToolsConfig/generated/__init__.py | 4969 +++++++++++ .../generated/rtcToolsConfig.json | 7582 +++++++++++++++++ 11 files changed, 13257 insertions(+), 7582 deletions(-) delete mode 100644 hydrolib/core/io/rtc/json/rtcToolsConfig.json create mode 100644 hydrolib/core/io/rtc/rtcDataConfig/generated/_.py create mode 100644 hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py rename hydrolib/core/io/rtc/{json => rtcDataConfig/generated}/rtcDataConfig.json (100%) create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_ExternalParameterSimpleType.py create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_TimeSeriesSimpleType.py create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/rtcToolsConfig.json diff --git a/hydrolib/core/io/rtc/json/rtcToolsConfig.json b/hydrolib/core/io/rtc/json/rtcToolsConfig.json deleted file mode 100644 index 41292e210..000000000 --- a/hydrolib/core/io/rtc/json/rtcToolsConfig.json +++ /dev/null @@ -1,7582 +0,0 @@ -{ - "$schema": "http://json-schema.org/schema#", - "additionalProperties": false, - "definitions": { - "..rtc:ExternalParameterSimpleType.1": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "@useAbsoluteAsSpillCap": { - "$ref": "#/definitions/xs:boolean" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.1": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@selectingColumnId": { - "$ref": "#/definitions/xs:string" - } - }, - "required": [ - "@id" - ], - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.10": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.11": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.12": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.13": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.14": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.15": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.16": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.17": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@factor": { - "$ref": "#/definitions/xs:double" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.18": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@nStepSeries": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@nStepSeriesStart": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.19": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@factor": { - "$ref": "#/definitions/xs:double" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.2": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.20": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.21": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.22": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.23": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.24": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.25": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.3": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.4": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.5": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.6": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@factor": { - "$ref": "#/definitions/xs:double" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.7": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@useAbsoluteAsSpillCap": { - "$ref": "#/definitions/xs:boolean" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.8": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@factor": { - "$ref": "#/definitions/xs:double" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..rtc:TimeSeriesSimpleType.9": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@ref": { - "$ref": "#/definitions/rtc:inputReferenceEnumStringType" - } - }, - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..xs:string.1": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/xs:string" - }, - "@weight": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - } - }, - "required": [ - "@weight" - ], - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - "..xs:string.2": { - "additionalProperties": false, - "properties": { - "$": { - "$ref": "#/definitions/xs:string" - }, - "@weight": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - } - }, - "required": [ - "@weight" - ], - "type": [ - "object", - "string", - "number", - "boolean" - ] - }, - ".rtc:rtcToolsConfig": { - "$ref": "#/definitions/rtc:RtcToolsConfigComplexType" - }, - "rtc:ATableComplexType": { - "additionalProperties": false, - "properties": { - "rtc:row": { - "items": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@value": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@id", - "@value" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:row" - ], - "type": "object" - }, - "rtc:AccumulationComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:AccumulationInputComplexType", - "description": "input variable" - }, - "rtc:multiplier": { - "$ref": "#/definitions/xs:double", - "description": "optional multiplier" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:AccumulationOutputComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:AccumulationInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:AccumulationOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:y" - ], - "type": "object" - }, - "rtc:AebiRuleComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:FactorRTG": { - "$ref": "#/definitions/xs:double" - }, - "rtc:LangeteFall": { - "$ref": "#/definitions/rtc:caseLangetenEnumStringType" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:AebiRuleInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:AebiRuleOutputComplexType" - } - }, - "required": [ - "rtc:FactorRTG", - "rtc:LangeteFall", - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:AebiRuleInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AareBruegg": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:AareBrueggMin2": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:AareMurg": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:AbflussReglementPort": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:Emenmatt": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:EmenmattMin4": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:Langeten": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:LangetenMin4": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:PegelBielersee": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:AareBruegg", - "rtc:AareBrueggMin2", - "rtc:AareMurg", - "rtc:AbflussReglementPort", - "rtc:Emenmatt", - "rtc:EmenmattMin4", - "rtc:Langeten", - "rtc:LangetenMin4", - "rtc:PegelBielersee" - ], - "type": "object" - }, - "rtc:AebiRuleOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AareMurg_oKWMin1": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:AbflussaenderungPort": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:MaxAbflussPort": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:ProvMaxAbflussPort": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:RTG": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:AareMurg_oKWMin1", - "rtc:AbflussaenderungPort", - "rtc:MaxAbflussPort", - "rtc:ProvMaxAbflussPort", - "rtc:RTG" - ], - "type": "object" - }, - "rtc:AggregationTypeEnumStringType": { - "enum": [ - "BLOCK", - "LINEAR" - ], - "type": "string" - }, - "rtc:AllocationTableComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputATableComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputATableComplexType" - }, - "rtc:table": { - "$ref": "#/definitions/rtc:ATableComplexType" - }, - "rtc:tableExternal": { - "$ref": "#/definitions/xs:string" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:ArmaComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:arCoef": { - "$ref": "#/definitions/xs:double", - "description": "autoregression coefficient related to prior time step" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:ArmaInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:ArmaOutputComplexType" - } - }, - "required": [ - "rtc:arCoef", - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:ArmaInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:obs": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "observed data" - }, - "rtc:sim": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "simulated data" - } - }, - "required": [ - "rtc:obs", - "rtc:sim" - ], - "type": "object" - }, - "rtc:ArmaOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:arma": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "output-corrected data" - } - }, - "required": [ - "rtc:arma" - ], - "type": "object" - }, - "rtc:BranchComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "rtc:alpha1": { - "$ref": "#/definitions/xs:double", - "description": "the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw" - }, - "rtc:alpha2": { - "$ref": "#/definitions/xs:double", - "description": "the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw" - }, - "rtc:crossSection": { - "$ref": "#/definitions/rtc:CrossSectionComplexType", - "description": "Cross section in the center of the flow branch." - }, - "rtc:equationType": { - "$ref": "#/definitions/rtc:EquationEnumStringType" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:BranchInputComplexType" - }, - "rtc:length": { - "$ref": "#/definitions/xs:double", - "description": "Length of the flow branch" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:BranchOutputComplexType" - }, - "rtc:roughness": { - "$ref": "#/definitions/rtc:CrossSectionRoughnessComplexType", - "description": "Roughness (Chezy) as a function of elevation h" - }, - "rtc:slope": { - "$ref": "#/definitions/xs:double", - "description": "slope for optional kinematic wave branch" - }, - "rtc:spatialScheme": { - "$ref": "#/definitions/rtc:SpatialEnumStringType" - } - }, - "required": [ - "rtc:crossSection", - "rtc:input", - "rtc:length", - "rtc:output", - "rtc:roughness", - "@id" - ], - "type": "object" - }, - "rtc:BranchGradientComplexType": { - "additionalProperties": false, - "properties": { - "rtc:storageDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:storageUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:surfaceAreaDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:surfaceAreaUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:storageDown", - "rtc:storageUp", - "rtc:surfaceAreaDown", - "rtc:surfaceAreaUp" - ], - "type": "object" - }, - "rtc:BranchInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "ID of downstream node" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "ID of upstream node" - }, - "rtc:ux": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional wind velocity at an elevation of 10 m above the water surface (x-direction), implementation is for the inertial model only" - }, - "rtc:uy": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional wind velocity at an elevation of 10 m above the water surface (y-direction), implementation is for the inertial model only" - } - }, - "required": [ - "rtc:HDown", - "rtc:HUp" - ], - "type": "object" - }, - "rtc:BranchOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:Q" - ], - "type": "object" - }, - "rtc:BranchTypeEnumStringType": { - "enum": [ - "KINEMATIC", - "DIFFUSIVE", - "DIFFUSIVEPLUSLOCAL" - ], - "type": "string" - }, - "rtc:CapacityCharacteristicsComplexType": { - "additionalProperties": false, - "properties": { - "@reference": { - "$ref": "#/definitions/rtc:CapacityReferenceEnumStringType" - }, - "rtc:capacityEquation": { - "$ref": "#/definitions/rtc:EquationsComplexType" - }, - "rtc:capacityTable": { - "$ref": "#/definitions/rtc:ElevationTableComplexType" - } - }, - "type": "object" - }, - "rtc:CapacityReferenceEnumStringType": { - "description": "reference for capacity", - "enum": [ - "UPSTREAMLEVEL", - "HEAD" - ], - "type": "string" - }, - "rtc:CapillaryFlowStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputCapillaryFlowStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterCapillaryFlowStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:ColumnsComplexType": { - "additionalProperties": false, - "properties": { - "@head01": { - "$ref": "#/definitions/xs:double" - }, - "@head02": { - "$ref": "#/definitions/xs:double" - }, - "@head03": { - "$ref": "#/definitions/xs:double" - }, - "@head04": { - "$ref": "#/definitions/xs:double" - }, - "@head05": { - "$ref": "#/definitions/xs:double" - }, - "@head06": { - "$ref": "#/definitions/xs:double" - }, - "@head07": { - "$ref": "#/definitions/xs:double" - }, - "@head08": { - "$ref": "#/definitions/xs:double" - }, - "@head09": { - "$ref": "#/definitions/xs:double" - }, - "@head10": { - "$ref": "#/definitions/xs:double" - }, - "@head11": { - "$ref": "#/definitions/xs:double" - }, - "@head12": { - "$ref": "#/definitions/xs:double" - }, - "@head13": { - "$ref": "#/definitions/xs:double" - }, - "@head14": { - "$ref": "#/definitions/xs:double" - }, - "@head15": { - "$ref": "#/definitions/xs:double" - }, - "@head16": { - "$ref": "#/definitions/xs:double" - }, - "@head17": { - "$ref": "#/definitions/xs:double" - }, - "@head18": { - "$ref": "#/definitions/xs:double" - }, - "@head19": { - "$ref": "#/definitions/xs:double" - }, - "@head20": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@head01", - "@head02" - ], - "type": "object" - }, - "rtc:ComponentComplexType": { - "additionalProperties": false, - "properties": { - "@template": { - "$ref": "#/definitions/xs:string" - }, - "rtc:accumulation": { - "$ref": "#/definitions/rtc:AccumulationComplexType", - "description": "Accumulation of a time series over time" - }, - "rtc:allocationTable": { - "$ref": "#/definitions/rtc:AllocationTableComplexType" - }, - "rtc:arma": { - "$ref": "#/definitions/rtc:ArmaComplexType", - "description": "Arma error correction model" - }, - "rtc:expression": { - "$ref": "#/definitions/rtc:ExpressionComplexType", - "description": "Mathematical expression" - }, - "rtc:gradient": { - "$ref": "#/definitions/rtc:GradientComplexType", - "description": "Post processing for computing gradients of simulated values" - }, - "rtc:hbv": { - "$ref": "#/definitions/rtc:HBVComplexType", - "description": "This is an implementation of the HBV-96 hydrological model. Note that the unit hydrograph is not included, but available separately." - }, - "rtc:hydraulicModel": { - "$ref": "#/definitions/rtc:HydraulicModelComplexType", - "description": "Simplifications of the full dynamic, one-dimensional hydraulic model according to the kinematic wave, diffusive wave and inertial assumptions." - }, - "rtc:hydrologicalModel": { - "$ref": "#/definitions/rtc:HydrologicalModelComplexType", - "description": "Modular, conceptual hydrological model with implicit time stepping scheme." - }, - "rtc:lookup2DTable": { - "$ref": "#/definitions/rtc:Lookup2DTableComplexType" - }, - "rtc:lookupTable": { - "$ref": "#/definitions/rtc:LookupTableComplexType" - }, - "rtc:lorentGevers": { - "$ref": "#/definitions/rtc:LorentGeversComplexType", - "description": "Lorent/Gevers hydrological model" - }, - "rtc:merger": { - "$ref": "#/definitions/rtc:MergerComplexType" - }, - "rtc:mergerSplitter": { - "$ref": "#/definitions/rtc:MergerSplitterComplexType" - }, - "rtc:neuralNetwork": { - "$ref": "#/definitions/rtc:NeuralNetworkComplexType" - }, - "rtc:reservoir": { - "$ref": "#/definitions/rtc:ReservoirComplexType", - "description": "Reservoir with arbitrary number of inlets and outlets." - }, - "rtc:reservoirCompact": { - "$ref": "#/definitions/rtc:ReservoirCompactComplexType", - "description": "Test implementation of a compact reservoir class for simultaneous and sequential optimization mode" - }, - "rtc:routing": { - "$ref": "#/definitions/rtc:RoutingComplexType", - "description": "not implemented yet" - }, - "rtc:srm": { - "$ref": "#/definitions/rtc:SRMComplexType" - }, - "rtc:unitDelay": { - "$ref": "#/definitions/rtc:UnitDelayComplexType", - "description": "Unit delay operator for delaying a value by n times the time step of the model." - }, - "rtc:unitHydrograph": { - "$ref": "#/definitions/rtc:UnitHydrographComplexType", - "description": "Unit hydrograph" - } - }, - "type": "object" - }, - "rtc:ComponentsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:component": { - "items": { - "$ref": "#/definitions/rtc:ComponentComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:component" - ], - "type": "object" - }, - "rtc:ConditionComplexType": { - "additionalProperties": false, - "properties": { - "rtc:greaterThan": { - "$ref": "#/definitions/xs:double" - }, - "rtc:lessThan": { - "$ref": "#/definitions/xs:double" - } - }, - "type": "object" - }, - "rtc:ConnectionCoefficientsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:a": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:b": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:c": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:d": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - } - }, - "required": [ - "rtc:a", - "rtc:b", - "rtc:c", - "rtc:d" - ], - "type": "object" - }, - "rtc:ConnectionInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:discharge": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:downstreamLevel": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:upstreamLevel": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:discharge", - "rtc:downstreamLevel", - "rtc:upstreamLevel" - ], - "type": "object" - }, - "rtc:ConnectionOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:discharge": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:discharge" - ], - "type": "object" - }, - "rtc:ConstantRuleComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:constant": { - "$ref": "#/definitions/xs:double" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:ConstantRuleOutputComplexType" - } - }, - "required": [ - "rtc:constant", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:ConstantRuleOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:y" - ], - "type": "object" - }, - "rtc:ControlledOutletComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:capacityCharacteristics": { - "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType", - "description": "Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:OutletInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutletOutputComplexType" - }, - "rtc:turbineCharacteristics": { - "$ref": "#/definitions/rtc:TurbineCharacteristicsComplexType", - "description": "Characteristics of optional turbine" - } - }, - "required": [ - "rtc:capacityCharacteristics", - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:CrossSectionComplexType": { - "additionalProperties": false, - "properties": { - "rtc:crossSectionTable": { - "$ref": "#/definitions/rtc:ElevationTableComplexType", - "description": "Tabulated cross section, pairs of elevation h and width b " - } - }, - "required": [ - "rtc:crossSectionTable" - ], - "type": "object" - }, - "rtc:CrossSectionRoughnessComplexType": { - "additionalProperties": false, - "properties": { - "rtc:roughnessTable": { - "$ref": "#/definitions/rtc:ElevationTableComplexType", - "description": "Pairs of elevation h and roughness C (according to Chezy)" - } - }, - "required": [ - "rtc:roughnessTable" - ], - "type": "object" - }, - "rtc:DataTypicalProfileComplexType": { - "additionalProperties": false, - "properties": { - "@monthOfYear": { - "enum": [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - ], - "type": "string" - }, - "@value": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@monthOfYear", - "@value" - ], - "type": "object" - }, - "rtc:DateComplexType": { - "additionalProperties": false, - "properties": { - "@monthDay": { - "$ref": "#/definitions/xs:gMonthDay" - } - }, - "required": [ - "@monthDay" - ], - "type": "object" - }, - "rtc:DateLookupTableComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:dateRecord": { - "items": { - "$ref": "#/definitions/rtc:DateRecord2ComplexType", - "description": "Lookup table at a date location" - }, - "minItems": 1, - "type": "array" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:DateLookupTableInputComplexType" - }, - "rtc:interpolationOptions": { - "$ref": "#/definitions/rtc:InterpolationOptionsComplexType", - "description": "Interpolation option BLOCK / LINEAR for the two inputs date and value" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:DateLookupTableOutputComplexType" - } - }, - "required": [ - "rtc:dateRecord", - "rtc:input", - "rtc:interpolationOptions", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:DateLookupTableInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:DateLookupTableOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:active": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:y" - ], - "type": "object" - }, - "rtc:DateRecord2ComplexType": { - "additionalProperties": false, - "properties": { - "@monthDay": { - "$ref": "#/definitions/xs:gMonthDay" - }, - "rtc:record": { - "items": { - "$ref": "#/definitions/rtc:DateRecord2DataComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:record", - "@monthDay" - ], - "type": "object" - }, - "rtc:DateRecord2DataComplexType": { - "additionalProperties": false, - "properties": { - "@x": { - "$ref": "#/definitions/xs:double" - }, - "@y": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@x", - "@y" - ], - "type": "object" - }, - "rtc:DateRecordComplexType": { - "additionalProperties": false, - "description": "defined data input as per time series format date time (defined either by dateTime or time or\n month day) and value", - "properties": { - "@comment": { - "$ref": "#/definitions/xs:string" - }, - "@dateTime": { - "$ref": "#/definitions/xs:dateTime" - }, - "@monthDay": { - "$ref": "#/definitions/xs:gMonthDay" - }, - "@time": { - "$ref": "#/definitions/xs:time" - }, - "@value": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@value" - ], - "type": "object" - }, - "rtc:DateTableComplexType": { - "additionalProperties": false, - "properties": { - "rtc:data": { - "items": { - "$ref": "#/definitions/rtc:DateRecordComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:data" - ], - "type": "object" - }, - "rtc:DateTimeComplexType": { - "additionalProperties": false, - "properties": { - "@date": { - "$ref": "#/definitions/rtc:dateType" - }, - "@time": { - "$ref": "#/definitions/rtc:timeType" - } - }, - "required": [ - "@date", - "@time" - ], - "type": "object" - }, - "rtc:DeadBandTimeComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:discrete": { - "$ref": "#/definitions/rtc:DeadBandTimeDiscreteComplexType" - }, - "rtc:false": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:DeadBandTimeInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:DeadBandTimeOutputComplexType" - }, - "rtc:true": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - } - }, - "required": [ - "rtc:discrete", - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:DeadBandTimeDiscreteComplexType": { - "additionalProperties": false, - "properties": { - "rtc:numberOfStepsDown": { - "$ref": "#/definitions/xs:int" - }, - "rtc:numberOfStepsUp": { - "$ref": "#/definitions/xs:int" - } - }, - "required": [ - "rtc:numberOfStepsDown", - "rtc:numberOfStepsUp" - ], - "type": "object" - }, - "rtc:DeadBandTimeInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.20" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:DeadBandTimeOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:status": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:stepsDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:stepsUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:timeFalse": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:timeTrue": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:status", - "rtc:stepsDown", - "rtc:stepsUp" - ], - "type": "object" - }, - "rtc:DeadBandTriggerComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:conditionOff": { - "$ref": "#/definitions/rtc:RelationalConditionComplexType" - }, - "rtc:conditionOn": { - "$ref": "#/definitions/rtc:RelationalConditionComplexType" - }, - "rtc:default": { - "$ref": "#/definitions/xs:boolean" - }, - "rtc:false": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TriggerOutputComplexType" - }, - "rtc:true": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - } - }, - "required": [ - "rtc:conditionOff", - "rtc:conditionOn", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:DeadBandValueComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:DeadBandValueInputComplexType" - }, - "rtc:threshold": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "rtc:input", - "rtc:threshold", - "@id" - ], - "type": "object" - }, - "rtc:DeadBandValueInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:EdgeComplexType": { - "additionalProperties": false, - "properties": { - "@x1": { - "$ref": "#/definitions/xs:double" - }, - "@x2": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@x1", - "@x2" - ], - "type": "object" - }, - "rtc:EdgesComplexType": { - "additionalProperties": false, - "properties": { - "rtc:edge": { - "items": { - "$ref": "#/definitions/rtc:EdgeComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:edge" - ], - "type": "object" - }, - "rtc:EifelRurRuleComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:a": { - "$ref": "#/definitions/xs:double" - }, - "rtc:b": { - "$ref": "#/definitions/xs:double" - }, - "rtc:minimumRelativeStorage": { - "$ref": "#/definitions/rtc:DateTableComplexType" - } - }, - "required": [ - "rtc:a", - "rtc:b", - "rtc:minimumRelativeStorage", - "@id" - ], - "type": "object" - }, - "rtc:ElevationRecordComplexType": { - "additionalProperties": false, - "properties": { - "@elevation": { - "$ref": "#/definitions/xs:double" - }, - "@value": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - } - }, - "required": [ - "@elevation", - "@value" - ], - "type": "object" - }, - "rtc:ElevationTableComplexType": { - "additionalProperties": false, - "description": "\n Table containing data for different elevations. Type of element 'value'\n depends on purpose for which table is used.\n ", - "properties": { - "rtc:elevationRecord": { - "items": { - "$ref": "#/definitions/rtc:ElevationRecordComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:elevationRecord" - ], - "type": "object" - }, - "rtc:EnsembleModeEnumStringType": { - "enum": [ - "JOINT", - "TREE", - "INDEPENDENT" - ], - "type": "string" - }, - "rtc:EquationComplexType": { - "additionalProperties": false, - "properties": { - "rtc:a": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:b": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:c": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:lowerLevel": { - "$ref": "#/definitions/xs:double" - }, - "rtc:upperLevel": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "rtc:a", - "rtc:b", - "rtc:c" - ], - "type": "object" - }, - "rtc:EquationEnumStringType": { - "enum": [ - "KINEMATIC", - "DIFFUSIVE", - "INERTIAL" - ], - "type": "string" - }, - "rtc:EquationsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:equation": { - "items": { - "$ref": "#/definitions/rtc:EquationComplexType", - "description": "Power equation for optional segments with lower and upper water level bounds, y = a*(x+b)^c" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:equation" - ], - "type": "object" - }, - "rtc:EvaporationPotentialComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputEvaporationPotentialComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputEvaporationPotentialComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterEvaporationPotentialComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:ExpressionComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:mathematicalOperator": { - "$ref": "#/definitions/rtc:MathematicalOperatorEnumStringType", - "description": "mathematical operator: + (summation), - (substraction), * (multiplication), / (division), min, max, ^ (power)" - }, - "rtc:x1Series": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.2", - "description": "reference to time series ID" - }, - "rtc:x1SeriesVector": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.3", - "description": "reference to time series ID vector" - }, - "rtc:x1Value": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "user-configured constant value" - }, - "rtc:x2Series": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.4" - }, - "rtc:x2SeriesVector": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.5" - }, - "rtc:x2Value": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "time series ID of resulting value" - }, - "rtc:yVector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "time series ID vector of resulting value" - } - }, - "required": [ - "rtc:mathematicalOperator", - "@id" - ], - "type": "object" - }, - "rtc:ExternalBooleanSimpleType": { - "anyOf": [ - { - "type": "boolean" - }, - { - "pattern": "^([\\$][\\(-_a-z]+[\\$])$", - "type": "string" - } - ] - }, - "rtc:ExternalIntegerSimpleType": { - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^([\\$][\\(-_a-z]+[\\$])$", - "type": "string" - } - ] - }, - "rtc:ExternalParameterSimpleType": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^([#-\\$][\\(-_a-z]+[#-\\$])$", - "type": "string" - } - ] - }, - "rtc:GeneralModuleConfigComplexType": { - "additionalProperties": false, - "description": "DEPRICATED", - "properties": { - "rtc:description": { - "$ref": "#/definitions/xs:string", - "description": "DEPRICATED" - }, - "rtc:poolRoutingScheme": { - "$ref": "#/definitions/rtc:poolRoutingEnumStringType", - "description": "DEPRICATED" - }, - "rtc:theta": { - "$ref": "#/definitions/xs:double", - "description": "DEPRICATED" - } - }, - "required": [ - "rtc:poolRoutingScheme", - "rtc:theta" - ], - "type": "object" - }, - "rtc:GradientComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:GradientInputComplexType", - "description": "input variable" - }, - "rtc:multiplier": { - "$ref": "#/definitions/xs:double", - "description": "optional multiplier" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:GradientOutputComplexType", - "description": "gradient, dx = multiplier*(xNew-xOld)/dt" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:GradientInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:GradientOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:dx": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:dx" - ], - "type": "object" - }, - "rtc:GuideBandRuleComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:GuideBandRuleInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:GuideBandRuleOutputComplexType" - }, - "rtc:xMax": { - "$ref": "#/definitions/rtc:DateTableComplexType" - }, - "rtc:xMin": { - "$ref": "#/definitions/rtc:DateTableComplexType" - }, - "rtc:yMax": { - "$ref": "#/definitions/xs:double" - }, - "rtc:yMaxSeries": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:yMin": { - "$ref": "#/definitions/xs:double" - }, - "rtc:yMinSeries": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:xMax", - "rtc:xMin", - "@id" - ], - "type": "object" - }, - "rtc:GuideBandRuleInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:GuideBandRuleOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:y" - ], - "type": "object" - }, - "rtc:HBVComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:HBVInputComplexType" - }, - "rtc:link": { - "$ref": "#/definitions/rtc:HBVLinkComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:HBVOutputComplexType" - }, - "rtc:parameterInput": { - "$ref": "#/definitions/rtc:HBVParameterInputComplexType" - }, - "rtc:parameterInterception": { - "$ref": "#/definitions/rtc:HBVParameterInterceptionComplexType" - }, - "rtc:parameterResponse": { - "$ref": "#/definitions/rtc:HBVParameterResponseComplexType" - }, - "rtc:parameterSnow": { - "$ref": "#/definitions/rtc:HBVParameterSnowComplexType" - }, - "rtc:parameterSoil": { - "$ref": "#/definitions/rtc:HBVParameterSoilComplexType" - }, - "rtc:state": { - "$ref": "#/definitions/rtc:HBVStateComplexType" - }, - "rtc:stateUpdate": { - "$ref": "#/definitions/rtc:HBVStateUpdateComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameterInput", - "rtc:parameterInterception", - "rtc:parameterResponse", - "rtc:parameterSnow", - "rtc:parameterSoil", - "rtc:state", - "@id" - ], - "type": "object" - }, - "rtc:HBVInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:EP": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:P": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:T": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:TM": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:EP", - "rtc:P", - "rtc:T", - "rtc:TM" - ], - "type": "object" - }, - "rtc:HBVLinkComplexType": { - "additionalProperties": false, - "properties": { - "rtc:CF": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:EA": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:EI": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:EP": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:IN": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:INI": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:PERC": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:R": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:CF", - "rtc:EA", - "rtc:EI", - "rtc:EP", - "rtc:IN", - "rtc:INI", - "rtc:PERC", - "rtc:R" - ], - "type": "object" - }, - "rtc:HBVOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:SMPercentage": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:SWE": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:Q" - ], - "type": "object" - }, - "rtc:HBVParameterInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:ECORR": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "correction factor for EP" - }, - "rtc:RFCF": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "correction factor for rainfall" - }, - "rtc:SFCF": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "correction factor for snow" - }, - "rtc:TT": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "temperature limit for snow / rain [oC], normally close to 0 " - }, - "rtc:TTI": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "temperature interval with a mixture of snow / rain [oC]" - } - }, - "required": [ - "rtc:TT", - "rtc:TTI" - ], - "type": "object" - }, - "rtc:HBVParameterInterceptionComplexType": { - "additionalProperties": false, - "properties": { - "rtc:LIC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "maximum interception storage" - } - }, - "required": [ - "rtc:LIC" - ], - "type": "object" - }, - "rtc:HBVParameterResponseComplexType": { - "additionalProperties": false, - "properties": { - "rtc:ALPHA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "response box parameter [-], usually between 1.0 and 2.0" - }, - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "catchment area [km2]" - }, - "rtc:K": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "recession coefficient" - }, - "rtc:K1": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "recession coefficient [1/day]" - }, - "rtc:PERC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "percolation from upper to lower response box [mm/day], usually between 0 and 6" - } - }, - "required": [ - "rtc:ALPHA", - "rtc:AREA", - "rtc:K", - "rtc:K1", - "rtc:PERC" - ], - "type": "object" - }, - "rtc:HBVParameterSnowComplexType": { - "additionalProperties": false, - "properties": { - "rtc:CFMAX": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "degree day factor [mm/(oC*day)], varies normally between 1.5 and 4, 2 and 3.5 can be used in forested and open\nlandscape respectively" - }, - "rtc:CFR": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "refreezing factor [-], about 0.05" - }, - "rtc:CWH": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "water holding capacity [-], usually 0.1" - }, - "rtc:TTM": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "temperature limit for melting [oC]" - } - }, - "required": [ - "rtc:CFMAX", - "rtc:CFR", - "rtc:CWH", - "rtc:TTM" - ], - "type": "object" - }, - "rtc:HBVParameterSoilComplexType": { - "additionalProperties": false, - "properties": { - "rtc:BETA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "parameter in soil routine [-], usually between 1 and 6" - }, - "rtc:CFLUX": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "maximum value of CF" - }, - "rtc:ETF": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "temperature correction factor" - }, - "rtc:FC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "field capacity [mm], between 50 and 500" - }, - "rtc:LP": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "limit for potential evapotranspiration [-], in the range between 0.3 and 1" - } - }, - "required": [ - "rtc:BETA", - "rtc:CFLUX", - "rtc:ETF", - "rtc:FC", - "rtc:LP" - ], - "type": "object" - }, - "rtc:HBVStateComplexType": { - "additionalProperties": false, - "properties": { - "rtc:IC": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:LZ": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:SM": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:SP": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:UZ": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:WC": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:IC", - "rtc:LZ", - "rtc:SM", - "rtc:SP", - "rtc:UZ", - "rtc:WC" - ], - "type": "object" - }, - "rtc:HBVStateUpdateComplexType": { - "additionalProperties": false, - "properties": { - "rtc:IC": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:LZ": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "increment on lower zone storage [mm]" - }, - "rtc:SM": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "STILL NOT IMPLEMENTED" - }, - "rtc:SP": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "STILL NOT IMPLEMENTED" - }, - "rtc:UZ": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "STILL NOT IMPLEMENTED" - }, - "rtc:WC": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "STILL NOT IMPLEMENTED" - } - }, - "type": "object" - }, - "rtc:HydraulicModelComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:branch": { - "items": { - "$ref": "#/definitions/rtc:BranchComplexType", - "description": "Flow branches" - }, - "type": "array" - }, - "rtc:hydraulicStructure": { - "items": { - "$ref": "#/definitions/rtc:HydraulicStructureComplexType", - "description": "Hydraulic structures" - }, - "type": "array" - }, - "rtc:mode": { - "$ref": "#/definitions/rtc:HydraulicModelModeEnumStringType" - }, - "rtc:node": { - "items": { - "$ref": "#/definitions/rtc:NodeComplexType", - "description": "Storage nodes" - }, - "type": "array" - }, - "rtc:numericalTolerance": { - "$ref": "#/definitions/xs:double" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:HydraulicModelOutputComplexType" - }, - "rtc:sequentialImplicitSettings": { - "$ref": "#/definitions/rtc:HydraulicModelSequentialImplicitComplexType" - }, - "rtc:simultaneousSettings": { - "$ref": "#/definitions/rtc:HydraulicModelSimultaneousComplexType" - } - }, - "required": [ - "rtc:mode", - "rtc:numericalTolerance", - "@id" - ], - "type": "object" - }, - "rtc:HydraulicModelModeEnumStringType": { - "enum": [ - "SEQUENTIAL_EXPLICIT", - "SEQUENTIAL_IMPLICIT", - "SIMULTANEOUS" - ], - "type": "string" - }, - "rtc:HydraulicModelOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:nFun": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "number of function evaluations" - }, - "rtc:nJac": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "number of evaluations of the Jacobian" - }, - "rtc:res": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "residuum at last iteration step, 0.5*sum(SQR(ri))" - } - }, - "required": [ - "rtc:nFun", - "rtc:nJac", - "rtc:res" - ], - "type": "object" - }, - "rtc:HydraulicModelSequentialImplicitComplexType": { - "additionalProperties": false, - "properties": { - "rtc:convergenceThreshold": { - "$ref": "#/definitions/xs:double" - }, - "rtc:theta": { - "$ref": "#/definitions/xs:double" - }, - "rtc:treatNonConvergenceAsError": { - "$ref": "#/definitions/xs:boolean" - } - }, - "required": [ - "rtc:convergenceThreshold", - "rtc:theta", - "rtc:treatNonConvergenceAsError" - ], - "type": "object" - }, - "rtc:HydraulicModelSimultaneousComplexType": { - "additionalProperties": false, - "properties": { - "rtc:theta": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "rtc:theta" - ], - "type": "object" - }, - "rtc:HydraulicStructureComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "rtc:orifice": { - "$ref": "#/definitions/rtc:OrificeComplexType", - "description": "Orifice according to definition in SOBEK-Rural" - }, - "rtc:pump": { - "$ref": "#/definitions/rtc:PumpComplexType", - "description": "Pump" - }, - "rtc:weir": { - "$ref": "#/definitions/rtc:RiverWeirComplexType", - "description": "Weir according to definition in SOBEK-River" - } - }, - "required": [ - "@id" - ], - "type": "object" - }, - "rtc:HydrologicalModelComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:submodel": { - "items": { - "$ref": "#/definitions/rtc:SubmodelComplexType", - "description": "sub-models for the modular setup of the hydrological model, the storage system contains a set of storage nodes and links and is solved with an implicit time stepping scheme" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:submodel", - "@id" - ], - "type": "object" - }, - "rtc:InflowComplexType": { - "additionalProperties": false, - "properties": { - "@factor": { - "$ref": "#/definitions/xs:double" - } - }, - "type": "object" - }, - "rtc:InputATableComplexType": { - "additionalProperties": false, - "properties": { - "rtc:valueSelection": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:InputCapillaryFlowStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "downstream node, typically UZ unsaturted zone" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream node, typically GW upper zone" - } - }, - "required": [ - "rtc:HDown", - "rtc:HUp" - ], - "type": "object" - }, - "rtc:InputEvaporationActualStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:EI": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:EP": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream node, typically SM (soil moisture)" - } - }, - "required": [ - "rtc:EP", - "rtc:HUp" - ], - "type": "object" - }, - "rtc:InputEvaporationInterceptionStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:EP": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "potential evaporation [mm]" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream node, typically IC (interception)" - } - }, - "required": [ - "rtc:EP", - "rtc:HUp" - ], - "type": "object" - }, - "rtc:InputEvaporationPotentialComplexType": { - "additionalProperties": false, - "properties": { - "rtc:EPM": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "monthly mean value of potential evaporation [mm/timestep]" - }, - "rtc:T": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "instantaneous temperature [oC]" - }, - "rtc:TM": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "monthly mean temperature [oC]" - } - }, - "required": [ - "rtc:EPM", - "rtc:T", - "rtc:TM" - ], - "type": "object" - }, - "rtc:InputGroundwaterFlowStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "downstream node, can be GW groundwater or SW surface water" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream node, can be GW groundwater or SW surface water" - } - }, - "required": [ - "rtc:HDown", - "rtc:HUp" - ], - "type": "object" - }, - "rtc:InputNodeStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:discharge": { - "items": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "inflow as discharge [m3/s]" - }, - "type": "array" - }, - "rtc:state": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "unit volume [mm], replaces the computes state" - }, - "rtc:unitVolume": { - "items": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "inflow as unit Volume [mm/timestep]" - }, - "type": "array" - } - }, - "type": "object" - }, - "rtc:InputPercolationStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "downstream node, typically LZ (lower zone storage)" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream node, typically UZ (upper zone storage)" - } - }, - "required": [ - "rtc:HUp" - ], - "type": "object" - }, - "rtc:InputPidComplexType": { - "additionalProperties": false, - "properties": { - "rtc:disturbance": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.8" - }, - "rtc:setpointSeries": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:setpointValue": { - "$ref": "#/definitions/xs:double" - }, - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "controllable variable" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:InputReleaseAboveThresholdStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "downstream node" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream node" - } - }, - "required": [ - "rtc:HUp" - ], - "type": "object" - }, - "rtc:InputReleaseTotalComplexType": { - "additionalProperties": false, - "properties": { - "rtc:discharge": { - "items": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "discharges from different storage nodes [m3/s]" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:discharge" - ], - "type": "object" - }, - "rtc:InputResponseStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream (release) node, typically UZ and/or LZ (upper/lower zone storages)" - } - }, - "required": [ - "rtc:HUp" - ], - "type": "object" - }, - "rtc:InputSnowRainJunctionComplexType": { - "additionalProperties": false, - "properties": { - "rtc:P": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "precipitation [mm/timestep]" - }, - "rtc:T": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "temperature [oC]" - } - }, - "required": [ - "rtc:P", - "rtc:T" - ], - "type": "object" - }, - "rtc:InputSoilRunoffStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional downstream node, typically uper saturated zones (UZ upper zone storage). Required if capillary flow is used and SM and UZ are present in one storage system" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream node, typically unsaturated zone (SM soil moisture)" - }, - "rtc:INF": { - "items": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "infiltation into the unsaturated zone (fluzex into SM [m3/s]) " - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:HUp", - "rtc:INF" - ], - "type": "object" - }, - "rtc:InputWaterDistributionConstantStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "downstream node collector of abstracted water. For instance drinking water treatment plant" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)" - } - }, - "required": [ - "rtc:HUp" - ], - "type": "object" - }, - "rtc:InputWaterDistributionVariableStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:D": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "series of industrial or domestic water demands/abstractions [m3/s]" - }, - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "downstream node collector of abstracted water. For instance drinking water treatment plant" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)" - } - }, - "required": [ - "rtc:D", - "rtc:HUp" - ], - "type": "object" - }, - "rtc:InterpolationOptionsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:date": { - "$ref": "#/definitions/rtc:interpolationOptionEnumStringType" - }, - "rtc:value": { - "$ref": "#/definitions/rtc:interpolationOptionEnumStringType" - } - }, - "required": [ - "rtc:date", - "rtc:value" - ], - "type": "object" - }, - "rtc:IntervalComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:deadbandSetpointAbsolute": { - "$ref": "#/definitions/xs:double" - }, - "rtc:deadbandSetpointRelative": { - "$ref": "#/definitions/xs:double" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:IntervalInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:IntervalOutputComplexType" - }, - "rtc:settingAbove": { - "$ref": "#/definitions/xs:double" - }, - "rtc:settingBelow": { - "$ref": "#/definitions/xs:double" - }, - "rtc:settingMaxSpeed": { - "$ref": "#/definitions/xs:double" - }, - "rtc:settingMaxStep": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:settingAbove", - "rtc:settingBelow", - "@id" - ], - "type": "object" - }, - "rtc:IntervalInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:setpoint": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:x": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.9", - "description": "reference to time series ID" - } - }, - "required": [ - "rtc:setpoint", - "rtc:x" - ], - "type": "object" - }, - "rtc:IntervalOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:status": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:status", - "rtc:y" - ], - "type": "object" - }, - "rtc:LayerComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/rtc:LayerIDSimpleType" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:neuron": { - "items": { - "$ref": "#/definitions/rtc:NeuronComplexType", - "description": "arbitrary number of neurons within one of the layers" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:neuron", - "@id" - ], - "type": "object" - }, - "rtc:LayerIDSimpleType": { - "pattern": "^([L][0-9]+)$", - "type": "string" - }, - "rtc:LevelStorageEquationComplexType": { - "additionalProperties": false, - "properties": { - "rtc:A0": { - "$ref": "#/definitions/xs:double" - }, - "rtc:A1": { - "$ref": "#/definitions/xs:double" - }, - "rtc:A2": { - "$ref": "#/definitions/xs:double" - }, - "rtc:A3": { - "$ref": "#/definitions/xs:double" - }, - "rtc:A4": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "rtc:A0", - "rtc:A1" - ], - "type": "object" - }, - "rtc:LimiterComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:LimiterInputComplexType" - }, - "rtc:mode": { - "$ref": "#/definitions/rtc:limiterOptionEnumStringType" - } - }, - "required": [ - "rtc:input", - "rtc:mode", - "@id" - ], - "type": "object" - }, - "rtc:LimiterInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:thresholdSeries": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.21" - }, - "rtc:thresholdValue": { - "$ref": "#/definitions/xs:double" - }, - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:LinkStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:capillaryFlow": { - "$ref": "#/definitions/rtc:CapillaryFlowStorageSystemComplexType", - "description": "capillary flow, typically from GW (saturated upper zone - ground water) to UZ (unsaturated zone)" - }, - "rtc:evaporationActual": { - "$ref": "#/definitions/rtc:evaporationActualStorageSystemComplexType", - "description": "actual evaporation from unsaturated zone storage node" - }, - "rtc:evaporationInterception": { - "$ref": "#/definitions/rtc:evaporationInterceptionStorageSystemComplexType", - "description": "evaporation from interception storage node, typically VEG/P/UP (vegeration/paved interception)" - }, - "rtc:groundwaterFlow": { - "$ref": "#/definitions/rtc:groundwaterFlowStorageSystemComplexType", - "description": "GW Groundwater interaction with SW Surface water" - }, - "rtc:irrigation": { - "$ref": "#/definitions/rtc:irrigationStorageSystemComplexType", - "description": "NOT REFACTORED. water consumption by domestic irrigation due to dry soil" - }, - "rtc:meltRefreezing": { - "$ref": "#/definitions/rtc:meltRefreezingStorageSystemComplexType", - "description": "NOT REFACTORED. melting and refreezing, typically used between SP (snow pack) and WC (water content) nodes" - }, - "rtc:percolation": { - "$ref": "#/definitions/rtc:PercolationStorageSystemComplexType", - "description": "percolation, typically from GW upper zone to GW lower zone), or from UP unpaved surface to UZ unsaturated zone" - }, - "rtc:releaseInterception": { - "$ref": "#/definitions/rtc:releaseAboveThresholdStorageSystemComplexType", - "description": "release above threshold from interception storage node, typically VEG/P/UP (uses relese above threshold link)" - }, - "rtc:releaseWaterContent": { - "$ref": "#/definitions/rtc:releaseWaterContentStorageSystemComplexType", - "description": "NOT REFACTORED. release from water content storage node (typically WC)" - }, - "rtc:response": { - "$ref": "#/definitions/rtc:ResponseStorageSystemComplexType", - "description": "response from storage node, typically GW upper and GW lower zone storage nodes" - }, - "rtc:sewerOverflow": { - "$ref": "#/definitions/rtc:releaseAboveThresholdStorageSystemComplexType", - "description": "sewer overflow (uses relese above threshold link)" - }, - "rtc:soilRunoff": { - "$ref": "#/definitions/rtc:SoilRunoffStorageSystemComplexType", - "description": "soil runoff from UZ unsaturated zone to GW upper zone storage node" - }, - "rtc:wasteWaterTreatmentPlant": { - "$ref": "#/definitions/rtc:waterDistributionConstantStorageSystemComplexType", - "description": "water treated via the WWTP, flows at a max rate of a constant max pump capacity. Uses water distribution constant link" - }, - "rtc:waterDistributionConstant": { - "$ref": "#/definitions/rtc:waterDistributionConstantStorageSystemComplexType", - "description": "water abstraction/distribution/consumption referenced to a constant demand (e.i. maxpump capacity). Uses water distribution constant link" - }, - "rtc:waterDistributionVariable": { - "$ref": "#/definitions/rtc:waterDistributionVariableStorageSystemComplexType", - "description": "water abstraction/distribution/consumption referenced to a variable demand (e.i. domestic or industrial water demands). Uses water distribution variable link)" - } - }, - "type": "object" - }, - "rtc:Lookup2DTableComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:Lookup2DTableInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:Lookup2DTableOutputComplexType" - }, - "rtc:table": { - "$ref": "#/definitions/rtc:Table2DLookupTableComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:table", - "@id" - ], - "type": "object" - }, - "rtc:Lookup2DTableInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:z": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x", - "rtc:y" - ], - "type": "object" - }, - "rtc:Lookup2DTableOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:z": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:z" - ], - "type": "object" - }, - "rtc:LookupTableComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:extrapolationOption": { - "$ref": "#/definitions/rtc:interpolationOptionEnumStringType", - "description": "table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:LookupTableInputComplexType" - }, - "rtc:interpolationOption": { - "$ref": "#/definitions/rtc:interpolationOptionEnumStringType", - "description": "table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:LookupTableOutputComplexType" - }, - "rtc:property": { - "items": { - "enum": [ - "MONOTON", - "POSITIVE" - ], - "type": "string" - }, - "type": "array" - }, - "rtc:table": { - "$ref": "#/definitions/rtc:TableLookupTableComplexType" - }, - "rtc:tableExternal": { - "$ref": "#/definitions/xs:string" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:LookupTableInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.10", - "description": "reference to time series ID" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:LookupTableOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:y" - ], - "type": "object" - }, - "rtc:LorentGeversComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:LorentGeversInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:LorentGeversOutputComplexType" - }, - "rtc:parameterResponse": { - "$ref": "#/definitions/rtc:LorentGeversParameterResponseComplexType" - }, - "rtc:parameterSoil": { - "$ref": "#/definitions/rtc:LorentGeversParameterSoilComplexType" - }, - "rtc:state": { - "$ref": "#/definitions/rtc:LorentGeversStateComplexType" - }, - "rtc:stateUpdate": { - "$ref": "#/definitions/rtc:LorentGeversStateUpdateComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameterResponse", - "rtc:parameterSoil", - "rtc:state", - "@id" - ], - "type": "object" - }, - "rtc:LorentGeversInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:EP": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:P": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:EP", - "rtc:P" - ], - "type": "object" - }, - "rtc:LorentGeversOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:Q" - ], - "type": "object" - }, - "rtc:LorentGeversParameterResponseComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:KB": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:KS": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:TB1": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:TB2": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:TS1": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:TS2": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - } - }, - "required": [ - "rtc:AREA", - "rtc:KB", - "rtc:KS", - "rtc:TB1", - "rtc:TB2", - "rtc:TS1", - "rtc:TS2" - ], - "type": "object" - }, - "rtc:LorentGeversParameterSoilComplexType": { - "additionalProperties": false, - "properties": { - "rtc:BETA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:PMAX": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:SMAX": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - } - }, - "required": [ - "rtc:BETA", - "rtc:PMAX", - "rtc:SMAX" - ], - "type": "object" - }, - "rtc:LorentGeversStateComplexType": { - "additionalProperties": false, - "properties": { - "rtc:QB1": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:QB2": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:QS1": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:QS2": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:S": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:QB1", - "rtc:QB2", - "rtc:QS1", - "rtc:QS2", - "rtc:S" - ], - "type": "object" - }, - "rtc:LorentGeversStateUpdateComplexType": { - "additionalProperties": false, - "properties": { - "rtc:S": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:S" - ], - "type": "object" - }, - "rtc:MathematicalOperatorEnumStringType": { - "description": "mathematical operators", - "enum": [ - "+", - "-", - "*", - "/", - "min", - "max", - "^" - ], - "type": "string" - }, - "rtc:MaxFlowsComplexType": { - "additionalProperties": false, - "properties": { - "@maxFlow_head01": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head02": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head03": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head04": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head05": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head06": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head07": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head08": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head09": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head10": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head11": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head12": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head13": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head14": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head15": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head16": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head17": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head18": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head19": { - "$ref": "#/definitions/xs:double" - }, - "@maxFlow_head20": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@maxFlow_head01", - "@maxFlow_head02" - ], - "type": "object" - }, - "rtc:MergerComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:MergerInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:MergerOutputComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:MergerInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "items": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.11" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:MergerOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:ySum": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "type": "object" - }, - "rtc:MergerSplitterComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:MergerSplitterInputComplexType" - }, - "rtc:mode": { - "$ref": "#/definitions/rtc:MergerSplitterEnumStringType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:MergerSplitterOutputComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:mode", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:MergerSplitterEnumStringType": { - "enum": [ - "AVERAGE", - "DATAHIERARCHY", - "SUM" - ], - "type": "string" - }, - "rtc:MergerSplitterInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "items": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.17" - }, - "type": "array" - }, - "rtc:xVector": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.18" - } - }, - "type": "object" - }, - "rtc:MergerSplitterOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "items": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.19" - }, - "type": "array" - } - }, - "type": "object" - }, - "rtc:MinSimpleRuleComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:dateTable": { - "$ref": "#/definitions/rtc:DateTableComplexType" - }, - "rtc:zones": { - "$ref": "#/definitions/rtc:ZonesComplexType" - } - }, - "required": [ - "@id" - ], - "type": "object" - }, - "rtc:NeuralNetworkComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:layer": { - "items": { - "$ref": "#/definitions/rtc:LayerComplexType", - "description": "arbitrary number of layers" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:layer", - "@id" - ], - "type": "object" - }, - "rtc:NeuronComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/rtc:NeuronIDSimpleType" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:bias": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:NeuronInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:NeuronOutputComplexType" - }, - "rtc:transferFunction": { - "$ref": "#/definitions/rtc:transferFunctionEnumStringType", - "description": "transfer function: sigmoid, linear etc." - } - }, - "required": [ - "rtc:bias", - "rtc:input", - "rtc:output", - "rtc:transferFunction", - "@id" - ], - "type": "object" - }, - "rtc:NeuronIDSimpleType": { - "pattern": "^([L][0-9]+[N][0-9]+)$", - "type": "string" - }, - "rtc:NeuronInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:external": { - "items": { - "$ref": "#/definitions/..xs:string.1", - "description": "reference to time series ID" - }, - "type": "array" - }, - "rtc:internal": { - "items": { - "$ref": "#/definitions/..xs:string.2", - "description": "Supply neuron id! This can be any neuron in the network, also the neuron itself and neurons in the following layers. In this case, the output of the last time step is used -> recurrent network" - }, - "type": "array" - } - }, - "type": "object" - }, - "rtc:NeuronOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "result of the transfer function" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "result of the summation of weighted input (intermediate result)" - } - }, - "required": [ - "rtc:x", - "rtc:y" - ], - "type": "object" - }, - "rtc:NodeComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@x": { - "$ref": "#/definitions/xs:double" - }, - "@y": { - "$ref": "#/definitions/xs:double" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:NodeInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:NodeOutputComplexType" - }, - "rtc:storageCharacteristics": { - "$ref": "#/definitions/rtc:StorageCharacteristicsComplexType", - "description": "Storage characteristics of the node: The storage as a function of water level h. It can be provided as table or as a formula." - } - }, - "required": [ - "rtc:output", - "rtc:storageCharacteristics", - "@id" - ], - "type": "object" - }, - "rtc:NodeGradientComplexType": { - "additionalProperties": false, - "properties": { - "rtc:lambda": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:surfaceArea": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:lambda", - "rtc:surfaceArea" - ], - "type": "object" - }, - "rtc:NodeInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HBC": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Time series with the water level boundary condition, note that a value MUST be provided at all time steps, otherwise the model stops with an error message" - }, - "rtc:HUpdate": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Time series with an optional water level for model updating" - }, - "rtc:QBC": { - "items": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.6", - "description": "Time series with an inflow bounday condition, note that a value MUST be provided at all time steps" - }, - "type": "array" - } - }, - "type": "object" - }, - "rtc:NodeOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:H": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:R": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:S": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:H", - "rtc:S" - ], - "type": "object" - }, - "rtc:NodeStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "constant area [km2], default is 1.0" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputNodeStorageSystemComplexType" - }, - "rtc:residuum": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "residuum [mm]" - }, - "rtc:state": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "unit volume [mm]" - }, - "rtc:stateMax": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:stateMin": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - } - }, - "required": [ - "rtc:residuum", - "rtc:state", - "@id" - ], - "type": "object" - }, - "rtc:OrificeComplexType": { - "additionalProperties": false, - "properties": { - "rtc:contractionCoefficient": { - "$ref": "#/definitions/xs:double" - }, - "rtc:crestLevel": { - "$ref": "#/definitions/xs:double" - }, - "rtc:exponentGateFormula": { - "$ref": "#/definitions/xs:double" - }, - "rtc:exponentWeirFormula": { - "$ref": "#/definitions/xs:double" - }, - "rtc:flowDirection": { - "$ref": "#/definitions/rtc:flowDirectionEnumStringType" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:OrificeInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OrificeOutputComplexType" - }, - "rtc:width": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "rtc:contractionCoefficient", - "rtc:crestLevel", - "rtc:input", - "rtc:output", - "rtc:width" - ], - "type": "object" - }, - "rtc:OrificeInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:D": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "deprecated" - }, - "rtc:DConst": { - "$ref": "#/definitions/xs:double" - }, - "rtc:DSeries": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:DeltaHDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:DeltaHUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:HDown", - "rtc:HUp" - ], - "type": "object" - }, - "rtc:OrificeOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:D": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:flowType": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:D", - "rtc:Q" - ], - "type": "object" - }, - "rtc:OutletInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:relativeRelease": { - "items": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Reference to timeseries in data configuration containg the relative release (values inbetween 0 and 1). (ONLY FOR CONTROLLED OUTLET)" - }, - "type": "array" - }, - "rtc:release": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Reference to timeseries in data configuration containg an absolute release. (ONLY FOR CONTROLLED OUTLET)" - } - }, - "type": "object" - }, - "rtc:OutletOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:release": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:release" - ], - "type": "object" - }, - "rtc:OutputATableComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "items": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.1" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:y" - ], - "type": "object" - }, - "rtc:OutputEvaporationPotentialComplexType": { - "additionalProperties": false, - "properties": { - "rtc:EP": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "instantaneous potential evaporation [mm/timestep]" - } - }, - "required": [ - "rtc:EP" - ], - "type": "object" - }, - "rtc:OutputLinkStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:H": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Discharge as unit volume [mm/timestep]" - }, - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Discharge [m3/s]" - } - }, - "required": [ - "rtc:H", - "rtc:Q" - ], - "type": "object" - }, - "rtc:OutputPidComplexType": { - "additionalProperties": false, - "properties": { - "rtc:differentialPart": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "memory of differential part (in fact e of the last time step)" - }, - "rtc:integralPart": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "memory of integral part: integral(e)dt" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "setting of the actuator" - } - }, - "required": [ - "rtc:differentialPart", - "rtc:integralPart", - "rtc:y" - ], - "type": "object" - }, - "rtc:OutputSnowRainJunctionComplexType": { - "additionalProperties": false, - "properties": { - "rtc:RF": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "rainfall [mm/timestep]" - }, - "rtc:SF": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "snowfall [mm/timestep]" - } - }, - "required": [ - "rtc:RF", - "rtc:SF" - ], - "type": "object" - }, - "rtc:OutputStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:nFun": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "number of function evaluations" - }, - "rtc:nJac": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "number of evaluations of the Jacobian" - }, - "rtc:res": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "residuum at last iteration step" - } - }, - "required": [ - "rtc:nFun", - "rtc:nJac", - "rtc:res" - ], - "type": "object" - }, - "rtc:ParameterCapillaryFlowStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - }, - "rtc:CFLUX": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "maximum value of capillary flow [mm/d]" - }, - "rtc:FC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "field capacity [mm]" - } - }, - "required": [ - "rtc:CFLUX", - "rtc:FC" - ], - "type": "object" - }, - "rtc:ParameterEvaporationActualStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [1000 m2], default = 1.0" - }, - "rtc:D": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "distance measure for smoothing the transitions [-]" - }, - "rtc:FC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "field capacity [mm]" - }, - "rtc:LP": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "limit for potential evaporation [-]" - } - }, - "required": [ - "rtc:FC", - "rtc:LP" - ], - "type": "object" - }, - "rtc:ParameterEvaporationInterceptionStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - } - }, - "type": "object" - }, - "rtc:ParameterEvaporationPotentialComplexType": { - "additionalProperties": false, - "properties": { - "rtc:ECORR": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "evaporation correction factor, default = 1.0" - }, - "rtc:ETF": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "temperature correction factor" - } - }, - "required": [ - "rtc:ETF" - ], - "type": "object" - }, - "rtc:ParameterIrrigationStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2], default = 1.0" - }, - "rtc:IRR_CONST": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "costant irrigation flux [mm/d]" - }, - "rtc:IRR_THR": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "Threshold of the downstream node under which irrigation is needed [mm]" - }, - "rtc:M": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "smoothing factor" - } - }, - "required": [ - "rtc:IRR_THR" - ], - "type": "object" - }, - "rtc:ParameterMeltRefreezingStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - }, - "rtc:CFMAX": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "degree day factor [mm/day]" - }, - "rtc:CFR": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "refreezing factor [-]" - }, - "rtc:M": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "smoothing factor, default = 0.05, more smoothing for higher value and vice versa" - }, - "rtc:TTM": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "temperature limit for melting [oC]" - } - }, - "required": [ - "rtc:CFMAX", - "rtc:CFR", - "rtc:TTM" - ], - "type": "object" - }, - "rtc:ParameterPercolationStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - }, - "rtc:PERC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "percolation [mm/d]" - } - }, - "required": [ - "rtc:PERC" - ], - "type": "object" - }, - "rtc:ParameterReleaseAboveThresholdStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2], default = 1.0" - }, - "rtc:FRAC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "percentage of the flow which flows towards the bucket of interest. The permitted range is between 0 and 100" - }, - "rtc:LIC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "upper limit of (interception) storage node [mm]" - }, - "rtc:M": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "smoothing factor" - } - }, - "required": [ - "rtc:LIC" - ], - "type": "object" - }, - "rtc:ParameterReleaseTotalComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - } - }, - "required": [ - "rtc:AREA" - ], - "type": "object" - }, - "rtc:ParameterReleaseWaterContentStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - }, - "rtc:M": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "smoothing coefficient" - }, - "rtc:WHC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "water holding capacity [-]" - } - }, - "required": [ - "rtc:WHC" - ], - "type": "object" - }, - "rtc:ParameterResponseStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:ALPHA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "response box parameter [-], default = 0.0" - }, - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - }, - "rtc:K": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "recession coefficient [1/d]" - } - }, - "required": [ - "rtc:K" - ], - "type": "object" - }, - "rtc:ParameterSnowRainJunctionComplexType": { - "additionalProperties": false, - "properties": { - "rtc:D": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "smoothing parameter for switching between a linear ramp (D=0.0) and a sigmoid function (D=1.0)" - }, - "rtc:RFCF": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "rainfall correction factor [-], default is 1.0" - }, - "rtc:SFCF": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "snowfall correction factor [-], default is 1.0" - }, - "rtc:TT": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "temperature limit for snow and rainfall [oC]" - }, - "rtc:TTI": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "temperature interval with a mixture of snow and rainfall [K]" - } - }, - "required": [ - "rtc:TT", - "rtc:TTI" - ], - "type": "object" - }, - "rtc:ParameterSoilRunoffStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - }, - "rtc:BETA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "parameter in soil routine [-]" - }, - "rtc:FC": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "field capacity [mm]" - } - }, - "required": [ - "rtc:BETA", - "rtc:FC" - ], - "type": "object" - }, - "rtc:ParameterWaterDistributionConstantStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2], default = 1.0" - }, - "rtc:D": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "capacity of demand/abstraction [m3/s]" - }, - "rtc:M": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "smoothing factor" - }, - "rtc:MIN_UP": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "minimum abstraction level upstream [mm]. Default 0, till empty." - } - }, - "required": [ - "rtc:D" - ], - "type": "object" - }, - "rtc:ParameterWaterDistributionVariableStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2], default = 1.0" - }, - "rtc:M": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "smoothing factor" - }, - "rtc:MIN_UP": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "minimum abstraction level upstream [mm]. Default 0, till empty." - } - }, - "type": "object" - }, - "rtc:ParametergroundwaterFlowStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "rtc:ALPHA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "Ground water reaction coefficient" - }, - "rtc:AREA": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - }, - "rtc:K": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "Ground water Conductivity [1/d]" - }, - "rtc:MAX_GFLOW": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "Maximum groundwater flow [mm/d]" - } - }, - "required": [ - "rtc:ALPHA", - "rtc:K", - "rtc:MAX_GFLOW" - ], - "type": "object" - }, - "rtc:PercolationStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputPercolationStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterPercolationStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:PidComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputPidComplexType" - }, - "rtc:kd": { - "$ref": "#/definitions/xs:double", - "description": "fatcor on differential part kd*de/dt" - }, - "rtc:ki": { - "$ref": "#/definitions/xs:double", - "description": "factor on the integral part ki*integral(e)dt" - }, - "rtc:kp": { - "$ref": "#/definitions/xs:double", - "description": "factor on the proportional part kp*e" - }, - "rtc:mode": { - "description": "pid mode, either \"NATIVE\" or \"SOBEK2\" or \"PIDPOS\" or PIDVEL\"", - "enum": [ - "NATIVE", - "SOBEK2", - "PIDPOS", - "PIDVEL" - ], - "type": "string" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputPidComplexType" - }, - "rtc:settingMax": { - "$ref": "#/definitions/xs:double", - "description": "maximum setting of the actuator" - }, - "rtc:settingMaxSpeed": { - "$ref": "#/definitions/xs:double", - "description": "maximum speed of the actuation in [unit/s]" - }, - "rtc:settingMin": { - "$ref": "#/definitions/xs:double", - "description": "minimum setting of the actuator" - } - }, - "required": [ - "rtc:input", - "rtc:kd", - "rtc:ki", - "rtc:kp", - "rtc:output", - "rtc:settingMax", - "rtc:settingMaxSpeed", - "rtc:settingMin", - "@id" - ], - "type": "object" - }, - "rtc:PolygonComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "rtc:edges": { - "$ref": "#/definitions/rtc:EdgesComplexType" - }, - "rtc:value": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "rtc:edges" - ], - "type": "object" - }, - "rtc:PolygonLookupComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:default": { - "$ref": "#/definitions/xs:double" - }, - "rtc:false": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:PolygonLookupInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:PolygonLookupOutputComplexType" - }, - "rtc:polygons": { - "$ref": "#/definitions/rtc:PolygonsComplexType" - }, - "rtc:true": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:polygons", - "@id" - ], - "type": "object" - }, - "rtc:PolygonLookupInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x1": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.12" - }, - "rtc:x2": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.13" - } - }, - "required": [ - "rtc:x1", - "rtc:x2" - ], - "type": "object" - }, - "rtc:PolygonLookupOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:status": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:status" - ], - "type": "object" - }, - "rtc:PolygonsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:polygon": { - "items": { - "$ref": "#/definitions/rtc:PolygonComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:polygon" - ], - "type": "object" - }, - "rtc:PumpComplexType": { - "additionalProperties": false, - "properties": { - "rtc:input": { - "$ref": "#/definitions/rtc:PumpInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:PumpOutputComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output" - ], - "type": "object" - }, - "rtc:PumpGradientComplexType": { - "additionalProperties": false, - "properties": { - "rtc:storageDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:storageUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:storageDown", - "rtc:storageUp" - ], - "type": "object" - }, - "rtc:PumpInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:HDown", - "rtc:HUp", - "rtc:Q" - ], - "type": "object" - }, - "rtc:PumpOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:Q" - ], - "type": "object" - }, - "rtc:RelationalConditionComplexType": { - "additionalProperties": false, - "properties": { - "rtc:relationalOperator": { - "$ref": "#/definitions/rtc:relationalOperatorEnumStringType" - }, - "rtc:x1Series": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.22" - }, - "rtc:x1Value": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:x2Series": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.23" - }, - "rtc:x2Value": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - } - }, - "required": [ - "rtc:relationalOperator" - ], - "type": "object" - }, - "rtc:ReleaseTotalComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputReleaseTotalComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "total discharge [m3/s]" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:ReservoirCompactComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:ReservoirCompactInputComplexType", - "description": "input time series" - }, - "rtc:levelStorageEquation": { - "$ref": "#/definitions/rtc:LevelStorageEquationComplexType", - "description": "level storage equation according to S = A0 + A1*FB ( + A2*FB^2 + ...)" - }, - "rtc:levelStorageTable": { - "$ref": "#/definitions/rtc:ElevationTableComplexType", - "description": "level-storage relation of the reservoir, level in [m] or [ft], storage in [m3] or [KCFS-hrs]" - }, - "rtc:levelStorageTableExternal": { - "$ref": "#/definitions/xs:string", - "description": "externalizes the level storage table to a parameter file, requires the two columns \"level\" and \"storage\"" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:ReservoirCompactOutputComplexType", - "description": "output time series" - }, - "rtc:tailwaterConstant": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "constant value for tailwater elevation" - }, - "rtc:tailwaterEquation": { - "$ref": "#/definitions/rtc:TailwaterEquationComplexType", - "description": "tailwater equation according to TW = A + B*FB_downstream(t-1) + C*Q(t)^D, D is equal 1.0 by default if not provided" - }, - "rtc:tailwaterExternalTable": { - "$ref": "#/definitions/xs:string", - "description": "external tailwater table" - }, - "rtc:tailwaterExternalTimeSeries": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "external tailwater elevation from an external source or a previous calculation OUTSIDE of the reservoirCompact components" - }, - "rtc:tailwaterTable": { - "$ref": "#/definitions/rtc:ElevationTableComplexType", - "description": "tailwater as a function of the reservoir release only" - }, - "rtc:tailwaterTidalEquation": { - "$ref": "#/definitions/rtc:TailwaterTidalEquationComplexType", - "description": "tidal influenced tailwater equation (works only in hindcast mode, use tailwater external with appropiate forecast of the tailwater in operational forecasting), TW = TWObs + A*(Q-QObs)" - }, - "rtc:turbineEfficiencyConstant": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:turbineEfficiencyTable": { - "$ref": "#/definitions/rtc:ElevationTableComplexType", - "description": "old formulation, will be removed in the future" - }, - "rtc:turbineEfficiencyTable2D": { - "$ref": "#/definitions/rtc:TurbineEfficiencyTableComplexType", - "description": "new formulation, turbine effiency depends on head and turbine release, computation by 2D lookup" - }, - "rtc:turbineEfficiencyTable2DExternal": { - "$ref": "#/definitions/xs:string" - }, - "rtc:turbineEfficiencyTableExternal": { - "$ref": "#/definitions/xs:string" - }, - "rtc:units": { - "$ref": "#/definitions/rtc:UnitTypeEnumStringType", - "description": " \"SI\" or \"Imperial\" units" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:ReservoirCompactInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:FB": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "forebay elevation [m above reference level] or [ft above sea level]" - }, - "rtc:OF": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "optional time series with the unit outage factor [0-1], it reduces the (physical) constraints PXValue and QTXValue (NO impact on PX, QTX)" - }, - "rtc:PM": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "minimum generation constraint on aggregated turbine level [MW], primarly used as operational constraint" - }, - "rtc:PMValue": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "fixed minimum generation constraint on aggregated turbine level [MW], primarily used as physical constraint" - }, - "rtc:PX": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "maximum generation constraint on aggregated turbine level [MW], primarly used as operational constraint" - }, - "rtc:PXValue": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "fixed maximum generation constraint on aggregated turbine level [MW], primarly used as physical constraint" - }, - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "reservoir outflow [m3/s] or [KCFS], data is expected to be complete and valid" - }, - "rtc:QI": { - "items": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "single or multiple inflow time series into the reservoir [m3/s] or [KCFS], data is expected to be complete and valid if provided" - }, - "minItems": 1, - "type": "array" - }, - "rtc:QMISC": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional miscellaneous flow (uncontrolled), will be zero by default [m3/s] or [KCFS] if no time series is supplied or if the time series includes NaN values" - }, - "rtc:QS": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "absolute spill target [m3/s] or [KCFS]" - }, - "rtc:QSPercentage": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.7", - "description": "relative spill target as a percentage [0..100] of the total flow Q" - }, - "rtc:QSPercentageValue": { - "$ref": "#/definitions/..rtc:ExternalParameterSimpleType.1", - "description": "relative spill target as a percentage [0..100] of the total flow Q" - }, - "rtc:QSValue": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "absolute spill target [m3/s] or [KCFS]" - }, - "rtc:QTX": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as operational constraint" - }, - "rtc:QTXValue": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "fixed maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as physical constraint" - } - }, - "required": [ - "rtc:FB", - "rtc:Q", - "rtc:QI" - ], - "type": "object" - }, - "rtc:ReservoirCompactOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:DQ": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "deviation from spill target [m3/s] or [KCFS]" - }, - "rtc:FB": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "forebay elevation [m above reference level] or [ft above sea level]" - }, - "rtc:H": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "head [m] or [ft]" - }, - "rtc:P": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "power generation [MW]" - }, - "rtc:PX": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "maximum power generation [MW]" - }, - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "reservoir outflow [m3/s] or [KCFS]" - }, - "rtc:QI": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "reservoir inflow [m3/s] or [KCFS]" - }, - "rtc:QMISC": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "miscellaneous flow [m3/s] or [KCFS]" - }, - "rtc:QS": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "spillage [m3/s] or [KCFS]" - }, - "rtc:QSPercentage": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "relative spillage [0..100]" - }, - "rtc:QT": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "turbine flow [m3/s] or [KCFS]" - }, - "rtc:QTX": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "maximum turbine flow [m3/s] or [KCFS]" - }, - "rtc:R": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "residuum of mass balance (in simultaneous mode) [m3/s] or [KCFS]" - }, - "rtc:S": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "storage [m3] or [KCFS-hrs], this is the system state needed in the state file" - }, - "rtc:TW": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "tailwater elevation [m above reference level] or [ft above sea level]" - } - }, - "required": [ - "rtc:DQ", - "rtc:FB", - "rtc:H", - "rtc:P", - "rtc:Q", - "rtc:QI", - "rtc:QS", - "rtc:QT", - "rtc:R", - "rtc:S", - "rtc:TW" - ], - "type": "object" - }, - "rtc:ReservoirComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:controlledOutlet": { - "items": { - "$ref": "#/definitions/rtc:ControlledOutletComplexType", - "description": "Controlled outlet, release can be defined by external input or rule" - }, - "type": "array" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:ReservoirInputComplexType" - }, - "rtc:mode": { - "$ref": "#/definitions/rtc:poolRoutingEnumStringType", - "description": "Time integration scheme for the network components" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:ReservoirOutputComplexType" - }, - "rtc:storageCharacteristics": { - "$ref": "#/definitions/rtc:StorageCharacteristicsComplexType", - "description": "Storage characteristics of the reservoir: The storage S as a function of the water level h can be provided as a table or formula." - }, - "rtc:tailwater": { - "$ref": "#/definitions/rtc:TailwaterComplexType", - "description": "Tailwater rating curve\n " - }, - "rtc:theta": { - "$ref": "#/definitions/xs:double", - "description": "Time weighting coefficient for the semi-implicit theta schema: 0 is equal to a full weight on the old time step, 1 represents a full weight on new time step. The coefficient is not used in the fully explicit or implicit schemas. The permitted range is between 0.5 and 1.0." - }, - "rtc:uncontrolledOutlet": { - "items": { - "$ref": "#/definitions/rtc:UncontrolledOutletComplexType", - "description": "Uncontrolled outlet, the release is a function of the water level h in the reservoir" - }, - "type": "array" - } - }, - "required": [ - "rtc:input", - "rtc:mode", - "rtc:output", - "rtc:storageCharacteristics", - "rtc:theta", - "@id" - ], - "type": "object" - }, - "rtc:ReservoirGradientComplexType": { - "additionalProperties": false, - "properties": { - "rtc:lambda": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:lambdaDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:lambda" - ], - "type": "object" - }, - "rtc:ReservoirInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:evaporation": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Direct evaporation from the reservoir [mm/time step]" - }, - "rtc:inflow": { - "items": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Upstream inflows [m3/s] into the reservoir, can be more than one for aggregation the inflows from several upstream reservoirs or river reaches" - }, - "minItems": 1, - "type": "array" - }, - "rtc:level": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Optional level [m] for updating the simulated level by an observed water level (simple data assimilation), if provided the error output is equal to the mass balance correction " - }, - "rtc:precipitation": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "Direct precitation into the reservoir [mm/time step], the value will be multiplied by the current water surface area of the reservoir" - } - }, - "required": [ - "rtc:inflow" - ], - "type": "object" - }, - "rtc:ReservoirOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:error": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional error output [m3/s] which is non-zero if the simple data assimilation option for overruling the simulated water level is used " - }, - "rtc:inflow": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "aggregated inflows [m3/s]" - }, - "rtc:level": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "water level [m] in the reservoir" - }, - "rtc:relativeStorage": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "relative storage [-] typically between 0 and 1 depending on the definition of the maximum level above]" - }, - "rtc:release": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "aggregated release [m3/s]" - }, - "rtc:residuum": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional residuum of the implicit solution" - }, - "rtc:storage": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "storage [m3] (state variable)" - } - }, - "required": [ - "rtc:inflow", - "rtc:level", - "rtc:release", - "rtc:storage" - ], - "type": "object" - }, - "rtc:ReservoirRoutingComplexType": { - "additionalProperties": false, - "properties": { - "rtc:simpleReservoir": { - "items": { - "$ref": "#/definitions/rtc:SimpleReservoirComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:simpleReservoir" - ], - "type": "object" - }, - "rtc:ReservoirThunerseeRuleComplexType": { - "additionalProperties": false, - "properties": { - "rtc:storageCharacteristics": { - "$ref": "#/definitions/rtc:StorageCharacteristicsComplexType" - } - }, - "required": [ - "rtc:storageCharacteristics" - ], - "type": "object" - }, - "rtc:ResponseStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputResponseStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterResponseStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:ResultComplexType": { - "additionalProperties": false, - "properties": { - "rtc:output": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:value": { - "$ref": "#/definitions/xs:integer" - } - }, - "required": [ - "rtc:output", - "rtc:value" - ], - "type": "object" - }, - "rtc:RiverWeirComplexType": { - "additionalProperties": false, - "properties": { - "rtc:exponentWeirFormula": { - "$ref": "#/definitions/xs:double" - }, - "rtc:flowDirection": { - "$ref": "#/definitions/rtc:flowDirectionEnumStringType" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:RiverWeirInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:RiverWeirOutputComplexType" - }, - "rtc:submergedFlowFactor": { - "$ref": "#/definitions/xs:double" - }, - "rtc:submergedFlowRatio": { - "$ref": "#/definitions/xs:double" - }, - "rtc:width": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:width" - ], - "type": "object" - }, - "rtc:RiverWeirInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:CConst": { - "$ref": "#/definitions/xs:double" - }, - "rtc:CSeries": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:DeltaHDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:DeltaHUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:HDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:HUp": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:HDown", - "rtc:HUp" - ], - "type": "object" - }, - "rtc:RiverWeirOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:C": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:flowType": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:C", - "rtc:Q" - ], - "type": "object" - }, - "rtc:RoutingComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:dischargeRef": { - "$ref": "#/definitions/xs:string", - "description": "Reference to timeseries in data configuration" - }, - "rtc:inflow": { - "items": { - "$ref": "#/definitions/rtc:InflowComplexType" - }, - "type": "array" - }, - "rtc:outputReferences": { - "$ref": "#/definitions/rtc:RoutingOutputComplexType", - "description": "Contains references to the output timeseries in the data configuration" - }, - "rtc:reservoirRouting": { - "$ref": "#/definitions/rtc:ReservoirRoutingComplexType" - } - }, - "required": [ - "rtc:outputReferences", - "@id" - ], - "type": "object" - }, - "rtc:RoutingOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:discharge": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:error": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "type": "object" - }, - "rtc:RowComplexType": { - "additionalProperties": false, - "properties": { - "@eta_head01": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head02": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head03": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head04": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head05": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head06": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head07": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head08": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head09": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head10": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head11": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head12": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head13": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head14": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head15": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head16": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head17": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head18": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head19": { - "$ref": "#/definitions/xs:double" - }, - "@eta_head20": { - "$ref": "#/definitions/xs:double" - }, - "@flow": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@eta_head02", - "@flow", - "@eta_head01" - ], - "type": "object" - }, - "rtc:RtcToolsConfigComplexType": { - "additionalProperties": false, - "properties": { - "rtc:components": { - "$ref": "#/definitions/rtc:ComponentsComplexType", - "description": "The components section includes all simulation components." - }, - "rtc:general": { - "$ref": "#/definitions/rtc:GeneralModuleConfigComplexType", - "description": "OBSOLETE. Still here for backwards compatibility. Remove after next release." - }, - "rtc:rules": { - "$ref": "#/definitions/rtc:RulesComplexType", - "description": "The rules section includes operating rules or controllers for defining the release of reservoir, structural settings of gates etc." - }, - "rtc:triggers": { - "$ref": "#/definitions/rtc:TriggersComplexType", - "description": "Triggers may activate or deactivate rules defined in the section above." - } - }, - "type": "object" - }, - "rtc:RuleComplexType": { - "additionalProperties": false, - "properties": { - "rtc:constant": { - "$ref": "#/definitions/rtc:ConstantRuleComplexType", - "description": "Simple rule with constant value" - }, - "rtc:dateLookupTable": { - "$ref": "#/definitions/rtc:DateLookupTableComplexType", - "description": "Date lookup table, output y is a function of date and an input value x, the interpolation on the date / value axis can be BLOCK or LINEAR, the number of records should be constant for each date record" - }, - "rtc:deadBandTime": { - "$ref": "#/definitions/rtc:DeadBandTimeComplexType" - }, - "rtc:deadBandValue": { - "$ref": "#/definitions/rtc:DeadBandValueComplexType", - "description": "Deadband threshold, yNew will become yOld, if the change yNew-yOld is smaller than the threshold value " - }, - "rtc:dedicated-Aebi": { - "$ref": "#/definitions/rtc:AebiRuleComplexType", - "description": "Dedicated rule for the control of Bielersee, Canton Bern, CH" - }, - "rtc:dedicated-Thunersee": { - "$ref": "#/definitions/rtc:ThunerseeRuleComplexType", - "description": "Dedicated rule for the control of Thunersee, Canton Bern, CH" - }, - "rtc:expression": { - "$ref": "#/definitions/rtc:ExpressionComplexType", - "description": "mathematical expression" - }, - "rtc:guideband": { - "$ref": "#/definitions/rtc:GuideBandRuleComplexType", - "description": "Guide band rule, output get 0 if input less equal xMin, 1 if input greater equal xMax, linear interpolation otherwise xMin and xMax can be a function of date, main application in combination with a relative release of a reservoir outlet" - }, - "rtc:interval": { - "$ref": "#/definitions/rtc:IntervalComplexType" - }, - "rtc:limiter": { - "$ref": "#/definitions/rtc:LimiterComplexType", - "description": "Limiter for limiting the change of a variable in a time step to a relative (PERCENTAGE) or absolute (ABSOLUTE) change" - }, - "rtc:lookup2DTable": { - "$ref": "#/definitions/rtc:Lookup2DTableComplexType" - }, - "rtc:lookupTable": { - "$ref": "#/definitions/rtc:LookupTableComplexType" - }, - "rtc:merger": { - "$ref": "#/definitions/rtc:MergerComplexType", - "description": "Data hierarchy, highest input has highest priority" - }, - "rtc:pid": { - "$ref": "#/definitions/rtc:PidComplexType" - }, - "rtc:timeAbsolute": { - "$ref": "#/definitions/rtc:TimeAbsoluteComplexType", - "description": "absolute time controller" - }, - "rtc:timeRelative": { - "$ref": "#/definitions/rtc:TimeRelativeComplexType", - "description": "relative time controller" - }, - "rtc:unitDelay": { - "$ref": "#/definitions/rtc:UnitDelayComplexType", - "description": "Unit delay operator for delaying a value by n times the time step of the model." - } - }, - "type": "object" - }, - "rtc:RuleStateTriggerComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:ruleId": { - "$ref": "#/definitions/xs:string" - } - }, - "required": [ - "rtc:ruleId", - "@id" - ], - "type": "object" - }, - "rtc:RuleTriggerComplexType": { - "additionalProperties": false, - "properties": { - "rtc:trigger": { - "items": { - "$ref": "#/definitions/rtc:TriggerComplexType" - }, - "type": "array" - } - }, - "type": "object" - }, - "rtc:RulesComplexType": { - "additionalProperties": false, - "properties": { - "rtc:rule": { - "items": { - "$ref": "#/definitions/rtc:RuleComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:rule" - ], - "type": "object" - }, - "rtc:SRMComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:SRMInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:SRMOutputComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:SRMParameterComplexType" - }, - "rtc:parameterZone": { - "items": { - "$ref": "#/definitions/rtc:SRMParameterZoneComplexType" - }, - "minItems": 1, - "type": "array" - }, - "rtc:state": { - "$ref": "#/definitions/rtc:SRMStateComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "rtc:parameterZone", - "rtc:state", - "@id" - ], - "type": "object" - }, - "rtc:SRMInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:P": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:P-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:RCA": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:RCA-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:SCA": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:SCA-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:T": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:T-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:cr": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:cr-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:cs": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:cs-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "type": "object" - }, - "rtc:SRMOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:QRain-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:QSnow-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:QStorage-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:QRain-Vector", - "rtc:QSnow-Vector", - "rtc:QStorage-Vector" - ], - "type": "object" - }, - "rtc:SRMParameterComplexType": { - "additionalProperties": false, - "properties": { - "rtc:Pt": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "precipitation threshold [mm]" - }, - "rtc:TLag": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "Time lag of input data [h]" - }, - "rtc:x": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "recession coefficient 1" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "recession coefficient 2" - } - }, - "required": [ - "rtc:Pt", - "rtc:TLag", - "rtc:x", - "rtc:y" - ], - "type": "object" - }, - "rtc:SRMParameterZoneComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "rtc:Tcr1": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "critical temperature (???) [oC]" - }, - "rtc:Tcr2": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "critical temperature (???) [oC]" - }, - "rtc:a": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "degree day factor [mm/(oC*day)]" - }, - "rtc:area": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "area [km2]" - } - }, - "required": [ - "rtc:Tcr1", - "rtc:Tcr2", - "rtc:a", - "rtc:area" - ], - "type": "object" - }, - "rtc:SRMStateComplexType": { - "additionalProperties": false, - "properties": { - "rtc:PStorage-Vector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "snow storage of non-snow-covered areas [mm]" - }, - "rtc:Q": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "discharge [m3/s]" - } - }, - "required": [ - "rtc:PStorage-Vector", - "rtc:Q" - ], - "type": "object" - }, - "rtc:SetTriggerComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:default": { - "$ref": "#/definitions/xs:boolean" - }, - "rtc:false": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - }, - "rtc:logicalOperator": { - "$ref": "#/definitions/rtc:logicalOperatorEnumStringType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TriggerOutputComplexType" - }, - "rtc:true": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - }, - "rtc:x1Series": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.24" - }, - "rtc:x1Trigger": { - "$ref": "#/definitions/rtc:TriggerComplexType" - }, - "rtc:x1Value": { - "$ref": "#/definitions/xs:boolean" - }, - "rtc:x2Series": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.25" - }, - "rtc:x2Trigger": { - "$ref": "#/definitions/rtc:TriggerComplexType" - }, - "rtc:x2Value": { - "$ref": "#/definitions/xs:boolean" - } - }, - "required": [ - "rtc:logicalOperator", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:SimpleReservoirComplexType": { - "additionalProperties": false, - "properties": { - "@multiplier": { - "minimum": 1, - "type": "integer" - }, - "rtc:capacityCharacteristics": { - "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType" - }, - "rtc:storageCharacteristics": { - "$ref": "#/definitions/rtc:StorageCharacteristicsComplexType" - } - }, - "required": [ - "rtc:capacityCharacteristics", - "rtc:storageCharacteristics" - ], - "type": "object" - }, - "rtc:SnowRainJunctionComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputSnowRainJunctionComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputSnowRainJunctionComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterSnowRainJunctionComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:SoilRunoffStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputSoilRunoffStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterSoilRunoffStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:SpatialEnumStringType": { - "description": "options for spatial schetization", - "enum": [ - "CENTRAL", - "UPWIND" - ], - "type": "string" - }, - "rtc:SpreadsheetComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:defaultInputValue": { - "$ref": "#/definitions/xs:double", - "description": "default input value, if input is NaN or infinity" - }, - "rtc:defaultOutputValue": { - "$ref": "#/definitions/xs:double", - "description": "default output, if no combination of the table applies" - }, - "rtc:false": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:SpreadsheetInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:SpreadsheetOutputComplexType" - }, - "rtc:tables": { - "$ref": "#/definitions/rtc:SpreadsheetTablesComplexType", - "description": "number of tables with input, output values, the initial state can be taken into account optionally" - }, - "rtc:tolerance": { - "$ref": "#/definitions/xs:double", - "description": "tolerance for finding a match, keep in mind that the all variable are stored in doubles" - }, - "rtc:true": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - }, - "rtc:validPeriods": { - "$ref": "#/definitions/rtc:ValidPeriodsComplexType", - "description": "optional period of the year for which the trigger is active" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:tables", - "rtc:tolerance", - "@id" - ], - "type": "object" - }, - "rtc:SpreadsheetInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x1": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.14" - }, - "rtc:x2": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.15" - }, - "rtc:x3": { - "$ref": "#/definitions/..rtc:TimeSeriesSimpleType.16" - } - }, - "required": [ - "rtc:x1", - "rtc:x2" - ], - "type": "object" - }, - "rtc:SpreadsheetOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:status": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:status" - ], - "type": "object" - }, - "rtc:SpreadsheetRecordComplexType": { - "additionalProperties": false, - "properties": { - "@x1": { - "$ref": "#/definitions/xs:double" - }, - "@x2": { - "$ref": "#/definitions/xs:double" - }, - "@x3": { - "$ref": "#/definitions/xs:double" - }, - "@y": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@x1", - "@x2", - "@y" - ], - "type": "object" - }, - "rtc:SpreadsheetTableComplexType": { - "additionalProperties": false, - "properties": { - "@initialState": { - "$ref": "#/definitions/xs:double" - }, - "rtc:record": { - "items": { - "$ref": "#/definitions/rtc:SpreadsheetRecordComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:record" - ], - "type": "object" - }, - "rtc:SpreadsheetTablesComplexType": { - "additionalProperties": false, - "properties": { - "rtc:table": { - "items": { - "$ref": "#/definitions/rtc:SpreadsheetTableComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:table" - ], - "type": "object" - }, - "rtc:StandardTriggerComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:condition": { - "$ref": "#/definitions/rtc:RelationalConditionComplexType" - }, - "rtc:default": { - "$ref": "#/definitions/xs:boolean" - }, - "rtc:false": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TriggerOutputComplexType" - }, - "rtc:true": { - "$ref": "#/definitions/rtc:RuleTriggerComplexType", - "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" - } - }, - "required": [ - "rtc:condition", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:StorageCharacteristicsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:maximumLevel": { - "$ref": "#/definitions/xs:double", - "description": "Maximum water level h in the reservoir: this optional value does not limit the water level, it is used however to compute the relative filling percentage of the reservoir according to s = S/S(maximumLevel), where S is the absolute storage volume" - }, - "rtc:storageEquation": { - "$ref": "#/definitions/rtc:EquationsComplexType", - "description": "Storage equation, storage S = f(water level h)" - }, - "rtc:storageTable": { - "$ref": "#/definitions/rtc:ElevationTableComplexType", - "description": "Storage table with pairs of elevation h and storage S" - } - }, - "type": "object" - }, - "rtc:StorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:link": { - "items": { - "$ref": "#/definitions/rtc:LinkStorageSystemComplexType" - }, - "minItems": 1, - "type": "array" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputStorageSystemComplexType" - }, - "rtc:settings": { - "$ref": "#/definitions/rtc:StorageSystemSettingsComplexType" - }, - "rtc:storageNode": { - "items": { - "$ref": "#/definitions/rtc:NodeStorageSystemComplexType", - "description": "storage node" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:link", - "rtc:storageNode", - "@id" - ], - "type": "object" - }, - "rtc:StorageSystemSettingsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:acceptableConvergenceThreshold": { - "$ref": "#/definitions/xs:double", - "description": "optional threshold after reaching the maximum number of iterations, writes a warning if reached, writes error otherwise" - }, - "rtc:convergenceThreshold": { - "$ref": "#/definitions/xs:double", - "description": "iteration stops after reaching this threshold" - }, - "rtc:treatNonConvergenceAsError": { - "$ref": "#/definitions/xs:boolean", - "description": "treat non-convergence related to the thresholds as error or not" - } - }, - "required": [ - "rtc:convergenceThreshold", - "rtc:treatNonConvergenceAsError" - ], - "type": "object" - }, - "rtc:SubmodelComplexType": { - "additionalProperties": false, - "properties": { - "rtc:evaporationPotential": { - "$ref": "#/definitions/rtc:EvaporationPotentialComplexType", - "description": "potential evaporation" - }, - "rtc:snowRainJunction": { - "$ref": "#/definitions/rtc:SnowRainJunctionComplexType", - "description": "separates precipitation into snow and rainfall" - }, - "rtc:storageSystem": { - "$ref": "#/definitions/rtc:StorageSystemComplexType", - "description": "storage systems with storage nodes and links for setting up bucket models" - }, - "rtc:typicalProfile": { - "$ref": "#/definitions/rtc:TypicalProfileComplexType" - } - }, - "type": "object" - }, - "rtc:Table2DLookupTableComplexType": { - "additionalProperties": false, - "properties": { - "rtc:matrix": { - "$ref": "#/definitions/rtc:XDimComplexType" - }, - "rtc:x": { - "$ref": "#/definitions/rtc:ValueArrayComplexType" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:ValueArrayComplexType" - } - }, - "required": [ - "rtc:matrix", - "rtc:x", - "rtc:y" - ], - "type": "object" - }, - "rtc:TableLookupTableComplexType": { - "additionalProperties": false, - "properties": { - "rtc:record": { - "items": { - "$ref": "#/definitions/rtc:DateRecord2DataComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:record" - ], - "type": "object" - }, - "rtc:TailwaterComplexType": { - "additionalProperties": false, - "description": "\n Table containing data for different elevations. Type of element 'value'\n depends on purpose for which table is used.\n ", - "properties": { - "rtc:constant": { - "$ref": "#/definitions/xs:double", - "description": "Constant tailwater level [m]" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TailwaterOutputComplexType" - }, - "rtc:ratingCurve": { - "$ref": "#/definitions/rtc:ElevationTableComplexType", - "description": "Tailwater depending on discharge computed by a rating curve" - } - }, - "required": [ - "rtc:output" - ], - "type": "object" - }, - "rtc:TailwaterEquationComplexType": { - "additionalProperties": false, - "properties": { - "rtc:A": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:B": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:C": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:D": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:FBDown": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "time series reference to forebay elevation of the downstream project, only required if B is non-zero" - } - }, - "required": [ - "rtc:A", - "rtc:B", - "rtc:C" - ], - "type": "object" - }, - "rtc:TailwaterOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:head": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "head [m]" - }, - "rtc:level": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "tailwater level [m]" - } - }, - "required": [ - "rtc:head", - "rtc:level" - ], - "type": "object" - }, - "rtc:TailwaterTidalEquationComplexType": { - "additionalProperties": false, - "properties": { - "rtc:A": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType" - }, - "rtc:QObs": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:TWObs": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:A", - "rtc:QObs", - "rtc:TWObs" - ], - "type": "object" - }, - "rtc:ThunerseeRuleComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:ThunerseeRuleInputComplexType" - }, - "rtc:levelSetpoint": { - "$ref": "#/definitions/xs:double" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:ThunerseeRuleOutputComplexType" - }, - "rtc:releaseLimiterPercentage": { - "$ref": "#/definitions/xs:double" - }, - "rtc:reservoir": { - "$ref": "#/definitions/rtc:ReservoirThunerseeRuleComplexType" - }, - "rtc:tunnel": { - "$ref": "#/definitions/rtc:TunnelThunerseeRuleComplexType" - }, - "rtc:weir": { - "$ref": "#/definitions/rtc:WeirThunerseeRuleComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:levelSetpoint", - "rtc:output", - "rtc:releaseLimiterPercentage", - "rtc:reservoir", - "rtc:tunnel", - "rtc:weir", - "@id" - ], - "type": "object" - }, - "rtc:ThunerseeRuleInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:catchment": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:inflow": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:level": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:catchment", - "rtc:inflow", - "rtc:level" - ], - "type": "object" - }, - "rtc:ThunerseeRuleOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:active": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:releaseTotal": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:releaseTunnel": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:releaseWeir": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:releaseTotal", - "rtc:releaseTunnel", - "rtc:releaseWeir" - ], - "type": "object" - }, - "rtc:TimeAbsoluteComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:TimeAbsoluteInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TimeAbsoluteOutputComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:TimeAbsoluteInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:TimeAbsoluteOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:y" - ], - "type": "object" - }, - "rtc:TimeRelativeComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:controlTable": { - "$ref": "#/definitions/rtc:TimeRelativeControlTableComplexType", - "description": "table with time [s] / value records" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:TimeRelativeInputComplexType" - }, - "rtc:interpolationOption": { - "$ref": "#/definitions/rtc:interpolationOptionEnumStringType", - "description": "table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR" - }, - "rtc:maximumPeriod": { - "$ref": "#/definitions/xs:double" - }, - "rtc:mode": { - "description": "timeRelative mode, either \"NATIVE\" or \"RETAINVALUEWHENINACTIVE\"", - "enum": [ - "NATIVE", - "RETAINVALUEWHENINACTIVE" - ], - "type": "string" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TimeRelativeOutputComplexType" - }, - "rtc:valueOption": { - "$ref": "#/definitions/rtc:timeRelativeEnumStringType", - "description": "setting if the control table provides the absolute value or the relative value " - } - }, - "required": [ - "rtc:controlTable", - "rtc:output", - "rtc:valueOption", - "@id" - ], - "type": "object" - }, - "rtc:TimeRelativeControlTableComplexType": { - "additionalProperties": false, - "properties": { - "rtc:record": { - "items": { - "$ref": "#/definitions/rtc:TimeRelativeControlTableRecordComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:record" - ], - "type": "object" - }, - "rtc:TimeRelativeControlTableRecordComplexType": { - "additionalProperties": false, - "properties": { - "@time": { - "$ref": "#/definitions/xs:double" - }, - "@value": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "@time", - "@value" - ], - "type": "object" - }, - "rtc:TimeRelativeInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional input for deriving the timeActive in case of the relative from Value option" - } - }, - "required": [ - "rtc:y" - ], - "type": "object" - }, - "rtc:TimeRelativeOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:timeActive": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:timeActive", - "rtc:y" - ], - "type": "object" - }, - "rtc:TimeSeriesSimpleType": { - "minLength": 1, - "type": "string" - }, - "rtc:TimeStepComplexType": { - "additionalProperties": false, - "description": "The timeunit element has three attributes, unit and devider and multiplier.\n the unit is second, minute, hour, week, month year.\n The divider attribute is optional (default = 1).", - "properties": { - "@divider": { - "$ref": "#/definitions/xs:positiveInteger" - }, - "@multiplier": { - "$ref": "#/definitions/xs:positiveInteger" - }, - "@unit": { - "$ref": "#/definitions/rtc:timeStepUnitEnumStringType" - } - }, - "required": [ - "@unit" - ], - "type": "object" - }, - "rtc:TimeZoneSimpleType": { - "description": "The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", - "type": "number" - }, - "rtc:TriggerComplexType": { - "additionalProperties": false, - "properties": { - "rtc:deadBand": { - "$ref": "#/definitions/rtc:DeadBandTriggerComplexType", - "description": "trigger with deadband" - }, - "rtc:deadBandTime": { - "$ref": "#/definitions/rtc:DeadBandTimeComplexType", - "description": "trigger with time deadband" - }, - "rtc:expression": { - "$ref": "#/definitions/rtc:ExpressionComplexType", - "description": "mathematical expression" - }, - "rtc:lookupTable": { - "$ref": "#/definitions/rtc:LookupTableComplexType" - }, - "rtc:merger": { - "$ref": "#/definitions/rtc:MergerComplexType", - "description": "Data hierarchy, highest input has highest priority" - }, - "rtc:polygonLookup": { - "$ref": "#/definitions/rtc:PolygonLookupComplexType", - "description": "trigger with two-dimensional lookup table, trigger results are defined by polygons" - }, - "rtc:ruleReference": { - "$ref": "#/definitions/xs:string" - }, - "rtc:set": { - "$ref": "#/definitions/rtc:SetTriggerComplexType", - "description": "set of triggers" - }, - "rtc:spreadsheet": { - "$ref": "#/definitions/rtc:SpreadsheetComplexType", - "description": "spread sheet trigger" - }, - "rtc:standard": { - "$ref": "#/definitions/rtc:StandardTriggerComplexType", - "description": "standard trigger" - } - }, - "type": "object" - }, - "rtc:TriggerControllerComplexType": { - "additionalProperties": false, - "properties": { - "rtc:input": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:value": { - "$ref": "#/definitions/xs:integer" - } - }, - "required": [ - "rtc:input", - "rtc:value" - ], - "type": "object" - }, - "rtc:TriggerInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:status": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:status" - ], - "type": "object" - }, - "rtc:TriggerOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:status": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:timeFalse": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:timeTrue": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:status" - ], - "type": "object" - }, - "rtc:TriggersComplexType": { - "additionalProperties": false, - "properties": { - "rtc:trigger": { - "items": { - "$ref": "#/definitions/rtc:TriggerComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:trigger" - ], - "type": "object" - }, - "rtc:TunnelThunerseeRuleComplexType": { - "additionalProperties": false, - "properties": { - "rtc:capacityCharacteristics": { - "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType" - }, - "rtc:levelThreshold": { - "$ref": "#/definitions/xs:double" - } - }, - "required": [ - "rtc:capacityCharacteristics", - "rtc:levelThreshold" - ], - "type": "object" - }, - "rtc:TurbineCapacityCharacteristicsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:capacityEquation": { - "$ref": "#/definitions/rtc:EquationsComplexType", - "description": "capacity equation of hydropower turbine as a function of the water head" - }, - "rtc:capacityTable": { - "$ref": "#/definitions/rtc:ElevationTableComplexType", - "description": "capacity table of hydropower turbine as a function of the water head" - } - }, - "type": "object" - }, - "rtc:TurbineCharacteristicsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:efficiencyTable": { - "$ref": "#/definitions/rtc:ElevationTableComplexType", - "description": "efficiency table unit power output [MW / m3/s] as function of head [m] " - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TurbineOutputCharacteristicsComplexType" - } - }, - "required": [ - "rtc:efficiencyTable", - "rtc:output" - ], - "type": "object" - }, - "rtc:TurbineComplexType": { - "additionalProperties": false, - "properties": { - "rtc:capacityCharacteristics": { - "$ref": "#/definitions/rtc:TurbineCapacityCharacteristicsComplexType" - }, - "rtc:efficiencyCharacteristics": { - "$ref": "#/definitions/rtc:TurbineEfficiencyCharacteristicsComplexType" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:TurbineInputComplexType" - }, - "rtc:nodeDown": { - "$ref": "#/definitions/xs:string" - }, - "rtc:nodeUp": { - "$ref": "#/definitions/xs:string" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TurbineOutputComplexType" - } - }, - "required": [ - "rtc:capacityCharacteristics", - "rtc:efficiencyCharacteristics", - "rtc:input", - "rtc:nodeDown", - "rtc:nodeUp", - "rtc:output" - ], - "type": "object" - }, - "rtc:TurbineEfficiencyCharacteristicsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:efficiencyConstant": { - "$ref": "#/definitions/xs:double", - "description": "constant efficiency over all discharges, typical range is [0.80, 0.90]" - } - }, - "type": "object" - }, - "rtc:TurbineEfficiencyTableComplexType": { - "additionalProperties": false, - "properties": { - "rtc:columns": { - "$ref": "#/definitions/rtc:ColumnsComplexType", - "description": "column Ids refering to the head [m] of each column" - }, - "rtc:maxFlows": { - "$ref": "#/definitions/rtc:MaxFlowsComplexType", - "description": "maximum flow for a given head (provided above)" - }, - "rtc:row": { - "items": { - "$ref": "#/definitions/rtc:RowComplexType", - "description": "rows with turbine efficiency (related to the head coloumn) for a given flow" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:columns", - "rtc:maxFlows", - "rtc:row" - ], - "type": "object" - }, - "rtc:TurbineInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:relativeRelease": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "provision of relative turbine release, 1 = maximum capacity" - }, - "rtc:release": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "provision of absolute turbine release" - } - }, - "type": "object" - }, - "rtc:TurbineOutputCharacteristicsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:power": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "power output [MW]" - } - }, - "required": [ - "rtc:power" - ], - "type": "object" - }, - "rtc:TurbineOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:discharge": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "discharge in m3/s" - }, - "rtc:powerProduction": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "power production in MW" - } - }, - "required": [ - "rtc:discharge", - "rtc:powerProduction" - ], - "type": "object" - }, - "rtc:TypicalProfileComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:data": { - "items": { - "$ref": "#/definitions/rtc:DataTypicalProfileComplexType" - }, - "minItems": 1, - "type": "array" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:data", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:UOutletInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:release": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:release" - ], - "type": "object" - }, - "rtc:UncontrolledOutletComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:capacityCharacteristics": { - "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType", - "description": "Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:UOutletInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutletOutputComplexType" - } - }, - "required": [ - "rtc:capacityCharacteristics", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:UnitDelayComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:UnitDelayInputComplexType" - }, - "rtc:nStep": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "nStep optionally provides a delay with an arbitrary numer of time steps or sub time step, i.e. 1.5 time steps, if being used also specify the yFinal tag in the output options" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:UnitDelayOutputComplexType", - "description": "The configuration of a multiple unit delay requires the configuration of a time series for each delay time step" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "@id" - ], - "type": "object" - }, - "rtc:UnitDelayInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:UnitDelayOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:y": { - "items": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "type": "array" - }, - "rtc:yFinal": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional result of the delay operator, identical to yVector[end] if the delay is a multiple of the time step, required in case of sub time steps" - }, - "rtc:yMax": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:yMean": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional mean of input and outputs" - }, - "rtc:yMin": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:ySum": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "optional sum of input and outputs" - }, - "rtc:yVector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "type": "object" - }, - "rtc:UnitHydrographComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:UnitHydrographInputComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:UnitHydrographOutputComplexType" - }, - "rtc:weights": { - "$ref": "#/definitions/rtc:UnitHydrographWeightComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:weights", - "@id" - ], - "type": "object" - }, - "rtc:UnitHydrographInputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:x": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - } - }, - "required": [ - "rtc:x" - ], - "type": "object" - }, - "rtc:UnitHydrographOutputComplexType": { - "additionalProperties": false, - "properties": { - "rtc:xDelay": { - "items": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "definition of individual time series for vector with delays, configure one element less than weights defined above" - }, - "type": "array" - }, - "rtc:xDelayVector": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "definition of delay vector, configure one element less than weights defined above" - }, - "rtc:y": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "result of unit hydrograph" - } - }, - "required": [ - "rtc:y" - ], - "type": "object" - }, - "rtc:UnitHydrographWeightComplexType": { - "additionalProperties": false, - "properties": { - "rtc:custom": { - "$ref": "#/definitions/rtc:UnitHydrographWeightCustomComplexType", - "description": "user-defined weights" - }, - "rtc:triangular": { - "$ref": "#/definitions/rtc:UnitHydrographWeightTriangularComplexType", - "description": "weights with triangular shape" - } - }, - "type": "object" - }, - "rtc:UnitHydrographWeightCustomComplexType": { - "additionalProperties": false, - "properties": { - "rtc:weight": { - "items": { - "$ref": "#/definitions/xs:double", - "description": "user defined weights" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:weight" - ], - "type": "object" - }, - "rtc:UnitHydrographWeightTriangularComplexType": { - "additionalProperties": false, - "properties": { - "rtc:factor": { - "$ref": "#/definitions/xs:double", - "description": "sum of all weight, if not equal to 1.0" - }, - "rtc:nSteps": { - "$ref": "#/definitions/rtc:ExternalParameterSimpleType", - "description": "number of time steps" - } - }, - "required": [ - "rtc:nSteps" - ], - "type": "object" - }, - "rtc:UnitTypeEnumStringType": { - "enum": [ - "SI", - "Imperial" - ], - "type": "string" - }, - "rtc:ValidPeriodComplexType": { - "additionalProperties": false, - "properties": { - "rtc:endDate": { - "$ref": "#/definitions/rtc:DateComplexType" - }, - "rtc:startDate": { - "$ref": "#/definitions/rtc:DateComplexType" - } - }, - "required": [ - "rtc:endDate", - "rtc:startDate" - ], - "type": "object" - }, - "rtc:ValidPeriodsComplexType": { - "additionalProperties": false, - "properties": { - "rtc:validPeriod": { - "items": { - "$ref": "#/definitions/rtc:ValidPeriodComplexType" - }, - "type": "array" - } - }, - "type": "object" - }, - "rtc:ValueArrayComplexType": { - "additionalProperties": false, - "properties": { - "rtc:value": { - "items": { - "$ref": "#/definitions/xs:float" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:value" - ], - "type": "object" - }, - "rtc:VariableTypeEnumStringType": { - "enum": [ - "CONTINUOUS", - "INTEGER", - "TIMEINSTANCE" - ], - "type": "string" - }, - "rtc:WeirThunerseeRuleComplexType": { - "additionalProperties": false, - "properties": { - "rtc:capacityCharacteristics": { - "$ref": "#/definitions/rtc:CapacityCharacteristicsComplexType" - } - }, - "required": [ - "rtc:capacityCharacteristics" - ], - "type": "object" - }, - "rtc:XDimComplexType": { - "additionalProperties": false, - "properties": { - "rtc:xDim": { - "items": { - "$ref": "#/definitions/rtc:YDimComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:xDim" - ], - "type": "object" - }, - "rtc:YDimComplexType": { - "additionalProperties": false, - "properties": { - "rtc:yDim": { - "items": { - "$ref": "#/definitions/xs:float" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:yDim" - ], - "type": "object" - }, - "rtc:ZoneComplexType": { - "additionalProperties": false, - "properties": { - "@max": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "@min": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType" - }, - "rtc:dateTable": { - "$ref": "#/definitions/rtc:DateTableComplexType" - } - }, - "required": [ - "rtc:dateTable" - ], - "type": "object" - }, - "rtc:ZonesComplexType": { - "additionalProperties": false, - "properties": { - "rtc:zone": { - "items": { - "$ref": "#/definitions/rtc:ZoneComplexType" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "rtc:zone" - ], - "type": "object" - }, - "rtc:caseLangetenEnumStringType": { - "enum": [ - 1, - 2 - ], - "maximum": 2147483647, - "minimum": -2147483648, - "type": "integer" - }, - "rtc:dateType": { - "pattern": "^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$", - "type": "string" - }, - "rtc:evaporationActualStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputEvaporationActualStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterEvaporationActualStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:evaporationInterceptionStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputEvaporationInterceptionStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterEvaporationInterceptionStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:flowDirectionEnumStringType": { - "anyOf": [ - { - "enum": [ - "POSITIVE", - "NEGATIVE", - "BOTH" - ], - "type": "string" - }, - { - "pattern": "^([\\$][\\(-_a-z]+[\\$])$", - "type": "string" - } - ], - "description": "flow direction" - }, - "rtc:groundwaterFlowStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputGroundwaterFlowStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParametergroundwaterFlowStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:inputReferenceEnumStringType": { - "enum": [ - "EXPLICIT", - "IMPLICIT" - ], - "type": "string" - }, - "rtc:interpolationOptionEnumStringType": { - "description": "Type of interpolation", - "enum": [ - "BLOCK", - "LINEAR" - ], - "type": "string" - }, - "rtc:irrigationStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:nodeD": { - "$ref": "#/definitions/xs:string", - "description": "downstream node which recieves the irrigation water" - }, - "rtc:nodeU": { - "$ref": "#/definitions/xs:string", - "description": "upstream node, source of water usually the drinking water treatment plant" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterIrrigationStorageSystemComplexType" - } - }, - "required": [ - "rtc:nodeD", - "rtc:nodeU", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:limiterOptionEnumStringType": { - "description": "Type of limiting", - "enum": [ - "PERCENTAGE", - "ABSOLUTE" - ], - "type": "string" - }, - "rtc:logicalOperatorEnumStringType": { - "description": "logical operator", - "enum": [ - "AND", - "OR", - "XOR" - ], - "type": "string" - }, - "rtc:meltRefreezingStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:TimeSeriesSimpleType", - "description": "instanteneous temperature [oC]" - }, - "rtc:nodeD": { - "$ref": "#/definitions/xs:string", - "description": "downstream node, typically WC (water content)" - }, - "rtc:nodeU": { - "$ref": "#/definitions/xs:string", - "description": "upstream node, typically SP (snow pack)" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterMeltRefreezingStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:nodeD", - "rtc:nodeU", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:poolRoutingEnumStringType": { - "description": "Type of pool routing.", - "enum": [ - "ForwardEuler", - "BackwardEuler", - "Theta" - ], - "type": "string" - }, - "rtc:relationalOperatorEnumStringType": { - "description": "relational operator", - "enum": [ - "Less", - "LessEqual", - "Equal", - "Unequal", - "GreaterEqual", - "Greater" - ], - "type": "string" - }, - "rtc:releaseAboveThresholdStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputReleaseAboveThresholdStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterReleaseAboveThresholdStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:releaseWaterContentStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:nodeA": { - "$ref": "#/definitions/xs:string", - "description": "auxiliary node with snow pack, typically SP (snow pack)" - }, - "rtc:nodeU": { - "$ref": "#/definitions/xs:string", - "description": "upstream node, typically WC (water content)" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterReleaseWaterContentStorageSystemComplexType" - } - }, - "required": [ - "rtc:nodeA", - "rtc:nodeU", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:timeRelativeEnumStringType": { - "description": "Value option", - "enum": [ - "ABSOLUTE", - "RELATIVE" - ], - "type": "string" - }, - "rtc:timeSeriesType": { - "description": "Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ", - "enum": [ - "accumulative", - "instantaneous" - ], - "type": "string" - }, - "rtc:timeStepUnitEnumStringType": { - "enum": [ - "second", - "minute", - "hour", - "day", - "week" - ], - "type": "string" - }, - "rtc:timeType": { - "pattern": "^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$", - "type": "string" - }, - "rtc:transferFunctionEnumStringType": { - "description": "Type of transfer function.", - "enum": [ - "Linear", - "SigmoidLogistic", - "Tansig" - ], - "type": "string" - }, - "rtc:waterDistributionConstantStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputWaterDistributionConstantStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterWaterDistributionConstantStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "rtc:waterDistributionVariableStorageSystemComplexType": { - "additionalProperties": false, - "properties": { - "@id": { - "$ref": "#/definitions/xs:string" - }, - "@name": { - "$ref": "#/definitions/xs:string" - }, - "rtc:input": { - "$ref": "#/definitions/rtc:InputWaterDistributionVariableStorageSystemComplexType" - }, - "rtc:output": { - "$ref": "#/definitions/rtc:OutputLinkStorageSystemComplexType" - }, - "rtc:parameter": { - "$ref": "#/definitions/rtc:ParameterWaterDistributionVariableStorageSystemComplexType" - } - }, - "required": [ - "rtc:input", - "rtc:output", - "rtc:parameter", - "@id" - ], - "type": "object" - }, - "xs:boolean": { - "type": "boolean" - }, - "xs:dateTime": { - "type": "string" - }, - "xs:double": { - "type": "number" - }, - "xs:float": { - "type": "number" - }, - "xs:gMonthDay": { - "type": "string" - }, - "xs:int": { - "maximum": 2147483647, - "minimum": -2147483648, - "type": "integer" - }, - "xs:integer": { - "type": "integer" - }, - "xs:positiveInteger": { - "minimum": 1, - "type": "integer" - }, - "xs:string": { - "type": "string" - }, - "xs:time": { - "type": "string" - } - }, - "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", - "properties": { - "@xmlns:rtc": { - "default": "http://www.wldelft.nl/fews" - }, - "@xmlns:xs": { - "default": "http://www.w3.org/2001/XMLSchema" - }, - "rtc:rtcToolsConfig": { - "$ref": "#/definitions/.rtc:rtcToolsConfig" - } - }, - "type": "object" -} \ No newline at end of file diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py new file mode 100644 index 000000000..034a8cc6d --- /dev/null +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: rtcDataConfig.json +# timestamp: 2022-09-27T13:10:33+00:00 + +from __future__ import annotations + +from pydantic import BaseModel + +from . import RtcDataConfigComplexType + + +class RtcDataConfig(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: RtcDataConfigComplexType diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py new file mode 100644 index 000000000..2404e622d --- /dev/null +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py @@ -0,0 +1,367 @@ +# generated by datamodel-codegen: +# filename: rtcDataConfig.json +# timestamp: 2022-09-27T13:10:33+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, Extra, Field + +from . import _ + + +class AggregationTypeEnumStringType(str, Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class EnsembleModeEnumStringType(str, Enum): + JOINT = 'JOINT' + TREE = 'TREE' + INDEPENDENT = 'INDEPENDENT' + + +class ExternalBooleanSimpleTypeItem(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') + + +class ExternalBooleanSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: Union[bool, ExternalBooleanSimpleTypeItem] + + +class ExternalIntegerSimpleTypeItem(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') + + +class ExternalIntegerSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: Union[int, ExternalIntegerSimpleTypeItem] + + +class ExternalParameterSimpleTypeItem(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([#-\\$][\\(-_a-z]+[#-\\$])$') + + +class ExternalParameterSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: Union[float, ExternalParameterSimpleTypeItem] + + +class PIExtrapolationOptionEnumStringType(str, Enum): + BLOCK = 'BLOCK' + PERIODIC = 'PERIODIC' + + +class PIInterpolationOptionEnumStringType(str, Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class AttrValidation(str, Enum): + NO = 'NO' + STATE = 'STATE' + UPDATE = 'UPDATE' + UPDATE_EXCEPT_STATE = 'UPDATE_EXCEPT_STATE' + FORECAST = 'FORECAST' + FORECAST_EXCEPT_T0 = 'FORECAST_EXCEPT_T0' + ALL = 'ALL' + ALL_EXCEPT_STATE = 'ALL_EXCEPT_STATE' + + +class SeparatorEnumStringType(str, Enum): + _ = '.' + __1 = ',' + __2 = ';' + + +class TimeSeriesSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., min_length=1) + + +class TimeZoneSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + ) + + +class UnitEnumStringType(str, Enum): + m = 'm' + m_2 = 'm^2' + m_3 = 'm^3' + m_3_s = 'm^3/s' + s = 's' + + +class VariableTypeEnumStringType(str, Enum): + CONTINUOUS = 'CONTINUOUS' + INTEGER = 'INTEGER' + TIMEINSTANCE = 'TIMEINSTANCE' + + +class DateType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field( + ..., regex='^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$' + ) + + +class TimeSeriesType(str, Enum): + """ + Type of data, either accumulative or instantaneous. + For accumulative data the time/date of the event is + the moment at which the data was gathered. + + """ + + accumulative = 'accumulative' + instantaneous = 'instantaneous' + + +class TimeStepUnitEnumStringType(str, Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + + +class TimeType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') + + +class XsBoolean(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: bool + + +class XsPositiveInteger(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: int = Field(..., ge=1) + + +class XsString(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str + + +class CSVTimeSeriesFileComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + attr_adjointOutput: Optional[XsBoolean] = None + attr_decimalSeparator: Optional[SeparatorEnumStringType] = None + attr_delimiter: Optional[SeparatorEnumStringType] = None + + +class DateTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + attr_date: DateType + attr_time: TimeType + + +class OpenMIExchangeItemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + elementId: XsString = Field( + ..., description='OpenMI element ID, corresponds to the locationId' + ) + quantityId: XsString = Field( + ..., description='OpenMI quantity ID, corresponds to the parameterId' + ) + unit: UnitEnumStringType = Field(..., description='Selection of supported units') + + +class PITimeSeriesExportFileComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + adjointOutput: Optional[XsBoolean] = None + timeSeriesFile: XsString = Field( + ..., description='Name of the file containing timeseries data. ' + ) + useBinFile: Optional[XsBoolean] = Field( + None, + description='When true the events in the PI time series file are read from / written into a binairy file instead of the xml file.\nThe xml file only contains the time series headers and optionally a time zone.\nThe binairy file has the same name as the xml file only the extension is "bin" instead of "xml". The byte order in the bin file is always Intel x86.\n ', + ) + + +class PITimeSeriesImportFileComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + timeSeriesFile: XsString = Field( + ..., description='Name of the file containing timeseries data. ' + ) + useBinFile: Optional[XsBoolean] = Field( + None, + description='OBSOLETE. Still here for backwards compatibility. Remove after next release.', + ) + + +class TimeStepComplexType(BaseModel): + """ + The timeunit element has three attributes, unit and devider and multiplier. + the unit is second, minute, hour, week, month year. + The divider attribute is optional (default = 1). + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + attr_divider: Optional[XsPositiveInteger] = None + attr_multiplier: Optional[XsPositiveInteger] = None + attr_unit: TimeStepUnitEnumStringType + + +class PITimeSeriesComplexType(BaseModel): + """ + The header is used to specify the link to the location + and the contents + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + locationId: XsString = Field( + ..., description='Location ID in Delft-FEWS PI-XML file' + ) + parameterId: XsString = Field( + ..., description='Parameter ID in Delft-FEWS PI-XML file' + ) + interpolationOption: Optional[PIInterpolationOptionEnumStringType] = Field( + None, description='Interpolation option in data import' + ) + extrapolationOption: Optional[PIExtrapolationOptionEnumStringType] = Field( + None, description='Extrapolation option in data import' + ) + qualifierId: Optional[List[XsString]] = None + timeStep: Optional[TimeStepComplexType] = Field( + None, + description='Equidistant time step of time series with optional multiplier of divider', + ) + unit: Optional[XsString] = Field( + None, + description='Optional check for this unit during import, write this unit optionally when export the time series', + ) + + +class RtcTimeSeriesComplexType(BaseModel): + """ + The header is used to specify the link to the location + and the contents + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + attr_id: str = Field(..., min_length=1) + attr_validation: Optional[AttrValidation] = None + attr_vectorLength: Optional[int] = Field(None, ge=1, le=2147483647) + OpenMIExchangeItem: Optional[OpenMIExchangeItemComplexType] = Field( + None, + description='Time series definition of the OpenMI format for the online coupling of models during runtime', + ) + PITimeSeries: Optional[PITimeSeriesComplexType] = Field( + None, + description='Time series definition of the PI XML time series format of Delft-FEWS', + ) + + +class RtcSeriesExportComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + CSVTimeSeriesFile: Optional[CSVTimeSeriesFileComplexType] = Field( + None, + description='Comma-separated file for data exports. Note that this option is only used in the exportSeries element. If selected, all available time series will be exported.', + ) + PITimeSeriesFile: Optional[PITimeSeriesExportFileComplexType] = None + timeSeries: List[RtcTimeSeriesComplexType] = Field(..., min_items=1) + + +class RtcSeriesImportComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + PITimeSeriesFile: Optional[PITimeSeriesImportFileComplexType] = None + timeSeries: List[RtcTimeSeriesComplexType] = Field(..., min_items=1) + + +class RtcDataConfigComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + importSeries: RtcSeriesImportComplexType = Field( + ..., + description='Import time series RTC-Tools imports from XML files or other interfaces', + ) + exportSeries: RtcSeriesExportComplexType = Field( + ..., + description='Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces', + ) + + +class Model(BaseModel): + """ + JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com) + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews' + attr_xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' + ) + rtcDataConfig: Optional[_.RtcDataConfig] = None diff --git a/hydrolib/core/io/rtc/json/rtcDataConfig.json b/hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json similarity index 100% rename from hydrolib/core/io/rtc/json/rtcDataConfig.json rename to hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py new file mode 100644 index 000000000..bf086dd39 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py @@ -0,0 +1,19 @@ +# generated by datamodel-codegen: +# filename: rtcToolsConfig.json +# timestamp: 2022-09-27T13:06:58+00:00 + +from __future__ import annotations + +from pydantic import BaseModel + +from . import RtcRtcToolsConfigComplexType + + +class RtcRtcToolsConfig(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: RtcRtcToolsConfigComplexType + + +RtcRtcToolsConfig.update_forward_refs() diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py new file mode 100644 index 000000000..572842aa2 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: rtcToolsConfig.json +# timestamp: 2022-09-27T13:06:58+00:00 diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_ExternalParameterSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_ExternalParameterSimpleType.py new file mode 100644 index 000000000..34a93bcac --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_ExternalParameterSimpleType.py @@ -0,0 +1,22 @@ +# generated by datamodel-codegen: +# filename: rtcToolsConfig.json +# timestamp: 2022-09-27T13:06:58+00:00 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Extra, Field + +from ... import RtcExternalParameterSimpleType, XsBoolean + + +class Field1(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') + _useAbsoluteAsSpillCap: Optional[XsBoolean] = Field( + None, alias='@useAbsoluteAsSpillCap' + ) diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_TimeSeriesSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_TimeSeriesSimpleType.py new file mode 100644 index 000000000..e3b4a3e4a --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_TimeSeriesSimpleType.py @@ -0,0 +1,250 @@ +# generated by datamodel-codegen: +# filename: rtcToolsConfig.json +# timestamp: 2022-09-27T13:06:58+00:00 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Extra, Field + +from ... import ( + RtcInputReferenceEnumStringType, + RtcTimeSeriesSimpleType, + XsBoolean, + XsDouble, + XsString, +) + + +class Field1(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _id: XsString = Field(..., alias='@id') + _selectingColumnId: Optional[XsString] = Field(None, alias='@selectingColumnId') + + +class Field10(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field11(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field12(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field13(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field14(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field15(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field16(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field17(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _factor: Optional[XsDouble] = Field(None, alias='@factor') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field18(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _nStepSeries: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@nStepSeries') + _nStepSeriesStart: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='@nStepSeriesStart' + ) + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field19(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _factor: Optional[XsDouble] = Field(None, alias='@factor') + + +class Field2(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field20(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field21(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field22(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field23(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field24(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field25(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field3(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field4(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field5(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') + + +class Field6(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _factor: Optional[XsDouble] = Field(None, alias='@factor') + + +class Field7(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _useAbsoluteAsSpillCap: Optional[XsBoolean] = Field( + None, alias='@useAbsoluteAsSpillCap' + ) + + +class Field8(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _factor: Optional[XsDouble] = Field(None, alias='@factor') + + +class Field9(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') + _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py new file mode 100644 index 000000000..59f10b3e8 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: rtcToolsConfig.json +# timestamp: 2022-09-27T13:06:58+00:00 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Extra, Field + +from ... import RtcExternalParameterSimpleType, XsString + + +class Field1(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[XsString] = Field(None, alias='$') + _weight: RtcExternalParameterSimpleType = Field(..., alias='@weight') + + +class Field2(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[XsString] = Field(None, alias='$') + _weight: RtcExternalParameterSimpleType = Field(..., alias='@weight') diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py new file mode 100644 index 000000000..5d9c82a69 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py @@ -0,0 +1,4969 @@ +# generated by datamodel-codegen: +# filename: rtcToolsConfig.json +# timestamp: 2022-09-27T13:06:58+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, Extra, Field + +from . import _ +from ._._ import rtc_ExternalParameterSimpleType, rtc_TimeSeriesSimpleType, xs_string + + +class RtcAggregationTypeEnumStringType(str, Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class RtcBranchTypeEnumStringType(str, Enum): + KINEMATIC = 'KINEMATIC' + DIFFUSIVE = 'DIFFUSIVE' + DIFFUSIVEPLUSLOCAL = 'DIFFUSIVEPLUSLOCAL' + + +class RtcCapacityReferenceEnumStringType(str, Enum): + """ + reference for capacity + """ + + UPSTREAMLEVEL = 'UPSTREAMLEVEL' + HEAD = 'HEAD' + + +class _MonthOfYear(str, Enum): + January = 'January' + February = 'February' + March = 'March' + April = 'April' + May = 'May' + June = 'June' + July = 'July' + August = 'August' + September = 'September' + October = 'October' + November = 'November' + December = 'December' + + +class RtcEnsembleModeEnumStringType(str, Enum): + JOINT = 'JOINT' + TREE = 'TREE' + INDEPENDENT = 'INDEPENDENT' + + +class RtcEquationEnumStringType(str, Enum): + KINEMATIC = 'KINEMATIC' + DIFFUSIVE = 'DIFFUSIVE' + INERTIAL = 'INERTIAL' + + +class RtcExternalBooleanSimpleTypeItem(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') + + +class RtcExternalBooleanSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: Union[bool, RtcExternalBooleanSimpleTypeItem] + + +class RtcExternalIntegerSimpleTypeItem(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') + + +class RtcExternalIntegerSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: Union[int, RtcExternalIntegerSimpleTypeItem] + + +class RtcExternalParameterSimpleTypeItem(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([#-\\$][\\(-_a-z]+[#-\\$])$') + + +class RtcExternalParameterSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: Union[float, RtcExternalParameterSimpleTypeItem] + + +class RtcHBVParameterInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_ECORR: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:ECORR', description='correction factor for EP' + ) + rtc_RFCF: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:RFCF', description='correction factor for rainfall' + ) + rtc_SFCF: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:SFCF', description='correction factor for snow' + ) + rtc_TT: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:TT', + description='temperature limit for snow / rain [oC], normally close to 0 ', + ) + rtc_TTI: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:TTI', + description='temperature interval with a mixture of snow / rain [oC]', + ) + + +class RtcHBVParameterInterceptionComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_LIC: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:LIC', description='maximum interception storage' + ) + + +class RtcHBVParameterResponseComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_ALPHA: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:ALPHA', + description='response box parameter [-], usually between 1.0 and 2.0', + ) + rtc_AREA: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:AREA', description='catchment area [km2]' + ) + rtc_K: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:K', description='recession coefficient' + ) + rtc_K1: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:K1', description='recession coefficient [1/day]' + ) + rtc_PERC: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:PERC', + description='percolation from upper to lower response box [mm/day], usually between 0 and 6', + ) + + +class RtcHBVParameterSnowComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_CFMAX: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:CFMAX', + description='degree day factor [mm/(oC*day)], varies normally between 1.5 and 4, 2 and 3.5 can be used in forested and open\nlandscape respectively', + ) + rtc_CFR: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:CFR', description='refreezing factor [-], about 0.05' + ) + rtc_CWH: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:CWH', description='water holding capacity [-], usually 0.1' + ) + rtc_TTM: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:TTM', description='temperature limit for melting [oC]' + ) + + +class RtcHBVParameterSoilComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_BETA: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:BETA', + description='parameter in soil routine [-], usually between 1 and 6', + ) + rtc_CFLUX: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:CFLUX', description='maximum value of CF' + ) + rtc_ETF: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:ETF', description='temperature correction factor' + ) + rtc_FC: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:FC', description='field capacity [mm], between 50 and 500' + ) + rtc_LP: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:LP', + description='limit for potential evapotranspiration [-], in the range between 0.3 and 1', + ) + + +class RtcHydraulicModelModeEnumStringType(str, Enum): + SEQUENTIAL_EXPLICIT = 'SEQUENTIAL_EXPLICIT' + SEQUENTIAL_IMPLICIT = 'SEQUENTIAL_IMPLICIT' + SIMULTANEOUS = 'SIMULTANEOUS' + + +class RtcLayerIDSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([L][0-9]+)$') + + +class RtcPropertyEnum(str, Enum): + MONOTON = 'MONOTON' + POSITIVE = 'POSITIVE' + + +class RtcLorentGeversParameterResponseComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: RtcExternalParameterSimpleType = Field(..., alias='rtc:AREA') + rtc_KB: RtcExternalParameterSimpleType = Field(..., alias='rtc:KB') + rtc_KS: RtcExternalParameterSimpleType = Field(..., alias='rtc:KS') + rtc_TB1: RtcExternalParameterSimpleType = Field(..., alias='rtc:TB1') + rtc_TB2: RtcExternalParameterSimpleType = Field(..., alias='rtc:TB2') + rtc_TS1: RtcExternalParameterSimpleType = Field(..., alias='rtc:TS1') + rtc_TS2: RtcExternalParameterSimpleType = Field(..., alias='rtc:TS2') + + +class RtcLorentGeversParameterSoilComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_BETA: RtcExternalParameterSimpleType = Field(..., alias='rtc:BETA') + rtc_PMAX: RtcExternalParameterSimpleType = Field(..., alias='rtc:PMAX') + rtc_SMAX: RtcExternalParameterSimpleType = Field(..., alias='rtc:SMAX') + + +class RtcMathematicalOperatorEnumStringType(str, Enum): + """ + mathematical operators + """ + + _ = '+' + __1 = '-' + __2 = '*' + __3 = '/' + min = 'min' + max = 'max' + __4 = '^' + + +class RtcMergerSplitterEnumStringType(str, Enum): + AVERAGE = 'AVERAGE' + DATAHIERARCHY = 'DATAHIERARCHY' + SUM = 'SUM' + + +class RtcNeuronIDSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([L][0-9]+[N][0-9]+)$') + + +class RtcParameterCapillaryFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_CFLUX: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:CFLUX', description='maximum value of capillary flow [mm/d]' + ) + rtc_FC: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:FC', description='field capacity [mm]' + ) + + +class RtcParameterEvaporationActualStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [1000 m2], default = 1.0' + ) + rtc_D: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:D', + description='distance measure for smoothing the transitions [-]', + ) + rtc_FC: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:FC', description='field capacity [mm]' + ) + rtc_LP: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:LP', description='limit for potential evaporation [-]' + ) + + +class RtcParameterEvaporationInterceptionStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + + +class RtcParameterEvaporationPotentialComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_ECORR: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:ECORR', + description='evaporation correction factor, default = 1.0', + ) + rtc_ETF: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:ETF', description='temperature correction factor' + ) + + +class RtcParameterIrrigationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2], default = 1.0' + ) + rtc_IRR_CONST: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:IRR_CONST', description='costant irrigation flux [mm/d]' + ) + rtc_IRR_THR: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:IRR_THR', + description='Threshold of the downstream node under which irrigation is needed [mm]', + ) + rtc_M: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:M', description='smoothing factor' + ) + + +class RtcParameterMeltRefreezingStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_CFMAX: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:CFMAX', description='degree day factor [mm/day]' + ) + rtc_CFR: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:CFR', description='refreezing factor [-]' + ) + rtc_M: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:M', + description='smoothing factor, default = 0.05, more smoothing for higher value and vice versa', + ) + rtc_TTM: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:TTM', description='temperature limit for melting [oC]' + ) + + +class RtcParameterPercolationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_PERC: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:PERC', description='percolation [mm/d]' + ) + + +class RtcParameterReleaseAboveThresholdStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2], default = 1.0' + ) + rtc_FRAC: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:FRAC', + description='percentage of the flow which flows towards the bucket of interest. The permitted range is between 0 and 100', + ) + rtc_LIC: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:LIC', + description='upper limit of (interception) storage node [mm]', + ) + rtc_M: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:M', description='smoothing factor' + ) + + +class RtcParameterReleaseTotalComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:AREA', description='area [km2]' + ) + + +class RtcParameterReleaseWaterContentStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_M: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:M', description='smoothing coefficient' + ) + rtc_WHC: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:WHC', description='water holding capacity [-]' + ) + + +class RtcParameterResponseStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_ALPHA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:ALPHA', description='response box parameter [-], default = 0.0' + ) + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_K: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:K', description='recession coefficient [1/d]' + ) + + +class RtcParameterSnowRainJunctionComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_D: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:D', + description='smoothing parameter for switching between a linear ramp (D=0.0) and a sigmoid function (D=1.0)', + ) + rtc_RFCF: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:RFCF', + description='rainfall correction factor [-], default is 1.0', + ) + rtc_SFCF: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:SFCF', + description='snowfall correction factor [-], default is 1.0', + ) + rtc_TT: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:TT', description='temperature limit for snow and rainfall [oC]' + ) + rtc_TTI: RtcExternalParameterSimpleType = Field( + ..., + alias='rtc:TTI', + description='temperature interval with a mixture of snow and rainfall [K]', + ) + + +class RtcParameterSoilRunoffStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_BETA: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:BETA', description='parameter in soil routine [-]' + ) + rtc_FC: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:FC', description='field capacity [mm]' + ) + + +class RtcParameterWaterDistributionConstantStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2], default = 1.0' + ) + rtc_D: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:D', description='capacity of demand/abstraction [m3/s]' + ) + rtc_M: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:M', description='smoothing factor' + ) + rtc_MIN_UP: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:MIN_UP', + description='minimum abstraction level upstream [mm]. Default 0, till empty.', + ) + + +class RtcParameterWaterDistributionVariableStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2], default = 1.0' + ) + rtc_M: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:M', description='smoothing factor' + ) + rtc_MIN_UP: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:MIN_UP', + description='minimum abstraction level upstream [mm]. Default 0, till empty.', + ) + + +class RtcParametergroundwaterFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_ALPHA: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:ALPHA', description='Ground water reaction coefficient' + ) + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='area [km2]' + ) + rtc_K: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:K', description='Ground water Conductivity [1/d]' + ) + rtc_MAX_GFLOW: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:MAX_GFLOW', description='Maximum groundwater flow [mm/d]' + ) + + +class RtcMode(str, Enum): + """ + pid mode, either "NATIVE" or "SOBEK2" or "PIDPOS" or PIDVEL" + """ + + NATIVE = 'NATIVE' + SOBEK2 = 'SOBEK2' + PIDPOS = 'PIDPOS' + PIDVEL = 'PIDVEL' + + +class RtcSRMParameterComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_Pt: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:Pt', description='precipitation threshold [mm]' + ) + rtc_TLag: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:TLag', description='Time lag of input data [h]' + ) + rtc_x: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:x', description='recession coefficient 1' + ) + rtc_y: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:y', description='recession coefficient 2' + ) + + +class RtcSpatialEnumStringType(str, Enum): + """ + options for spatial schetization + """ + + CENTRAL = 'CENTRAL' + UPWIND = 'UPWIND' + + +class RtcMode1(str, Enum): + """ + timeRelative mode, either "NATIVE" or "RETAINVALUEWHENINACTIVE" + """ + + NATIVE = 'NATIVE' + RETAINVALUEWHENINACTIVE = 'RETAINVALUEWHENINACTIVE' + + +class RtcTimeSeriesSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., min_length=1) + + +class RtcTimeZoneSimpleType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + ) + + +class RtcTriggerInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') + + +class RtcTriggerOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') + rtc_timeFalse: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:timeFalse' + ) + rtc_timeTrue: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:timeTrue') + + +class RtcTurbineInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_relativeRelease: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:relativeRelease', + description='provision of relative turbine release, 1 = maximum capacity', + ) + rtc_release: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:release', description='provision of absolute turbine release' + ) + + +class RtcTurbineOutputCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_power: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:power', description='power output [MW]' + ) + + +class RtcTurbineOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_discharge: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:discharge', description='discharge in m3/s' + ) + rtc_powerProduction: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:powerProduction', description='power production in MW' + ) + + +class RtcUOutletInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_release: RtcTimeSeriesSimpleType = Field(..., alias='rtc:release') + + +class RtcUnitDelayInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + + +class RtcUnitDelayOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: Optional[List[RtcTimeSeriesSimpleType]] = Field(None, alias='rtc:y') + rtc_yFinal: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:yFinal', + description='optional result of the delay operator, identical to yVector[end] if the delay is a multiple of the time step, required in case of sub time steps', + ) + rtc_yMax: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:yMax') + rtc_yMean: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:yMean', description='optional mean of input and outputs' + ) + rtc_yMin: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:yMin') + rtc_ySum: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:ySum', description='optional sum of input and outputs' + ) + rtc_yVector: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:yVector') + + +class RtcUnitHydrographInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + + +class RtcUnitHydrographOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_xDelay: Optional[List[RtcTimeSeriesSimpleType]] = Field( + None, alias='rtc:xDelay' + ) + rtc_xDelayVector: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:xDelayVector', + description='definition of delay vector, configure one element less than weights defined above', + ) + rtc_y: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:y', description='result of unit hydrograph' + ) + + +class RtcUnitTypeEnumStringType(str, Enum): + SI = 'SI' + Imperial = 'Imperial' + + +class RtcVariableTypeEnumStringType(str, Enum): + CONTINUOUS = 'CONTINUOUS' + INTEGER = 'INTEGER' + TIMEINSTANCE = 'TIMEINSTANCE' + + +class RtcCaseLangetenEnumStringType(int, Enum): + integer_1 = 1 + integer_2 = 2 + + +class RtcDateType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field( + ..., regex='^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$' + ) + + +class RtcFlowDirectionEnumStringTypeEnum(str, Enum): + POSITIVE = 'POSITIVE' + NEGATIVE = 'NEGATIVE' + BOTH = 'BOTH' + + +class RtcFlowDirectionEnumStringTypeItem(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') + + +class RtcFlowDirectionEnumStringType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: Union[ + RtcFlowDirectionEnumStringTypeEnum, RtcFlowDirectionEnumStringTypeItem + ] = Field(..., description='flow direction') + + +class RtcInputReferenceEnumStringType(str, Enum): + EXPLICIT = 'EXPLICIT' + IMPLICIT = 'IMPLICIT' + + +class RtcInterpolationOptionEnumStringType(str, Enum): + """ + Type of interpolation + """ + + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class RtcLimiterOptionEnumStringType(str, Enum): + """ + Type of limiting + """ + + PERCENTAGE = 'PERCENTAGE' + ABSOLUTE = 'ABSOLUTE' + + +class RtcLogicalOperatorEnumStringType(str, Enum): + """ + logical operator + """ + + AND = 'AND' + OR = 'OR' + XOR = 'XOR' + + +class RtcPoolRoutingEnumStringType(str, Enum): + """ + Type of pool routing. + """ + + ForwardEuler = 'ForwardEuler' + BackwardEuler = 'BackwardEuler' + Theta = 'Theta' + + +class RtcRelationalOperatorEnumStringType(str, Enum): + """ + relational operator + """ + + Less = 'Less' + LessEqual = 'LessEqual' + Equal = 'Equal' + Unequal = 'Unequal' + GreaterEqual = 'GreaterEqual' + Greater = 'Greater' + + +class RtcTimeRelativeEnumStringType(str, Enum): + """ + Value option + """ + + ABSOLUTE = 'ABSOLUTE' + RELATIVE = 'RELATIVE' + + +class RtcTimeSeriesType(str, Enum): + """ + Type of data, either accumulative or instantaneous. + For accumulative data the time/date of the event is + the moment at which the data was gathered. + + """ + + accumulative = 'accumulative' + instantaneous = 'instantaneous' + + +class RtcTimeStepUnitEnumStringType(str, Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + + +class RtcTimeType(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') + + +class RtcTransferFunctionEnumStringType(str, Enum): + """ + Type of transfer function. + """ + + Linear = 'Linear' + SigmoidLogistic = 'SigmoidLogistic' + Tansig = 'Tansig' + + +class XsBoolean(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: bool + + +class XsDateTime(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str + + +class XsDouble(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: float + + +class XsFloat(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: float + + +class XsGMonthDay(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str + + +class XsInt(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: int = Field(..., ge=-2147483648, le=2147483647) + + +class XsInteger(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: int + + +class XsPositiveInteger(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: int = Field(..., ge=1) + + +class XsString(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str + + +class XsTime(BaseModel): + class Config: + allow_population_by_field_name = True + + __root__: str + + +class RtcRowItem(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _value: XsDouble = Field(..., alias='@value') + + +class RtcATableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_row: List[RtcRowItem] = Field(..., alias='rtc:row', min_items=1) + + +class RtcAccumulationInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + + +class RtcAccumulationOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + + +class RtcAebiRuleInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AareBruegg: RtcTimeSeriesSimpleType = Field(..., alias='rtc:AareBruegg') + rtc_AareBrueggMin2: RtcTimeSeriesSimpleType = Field(..., alias='rtc:AareBrueggMin2') + rtc_AareMurg: RtcTimeSeriesSimpleType = Field(..., alias='rtc:AareMurg') + rtc_AbflussReglementPort: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:AbflussReglementPort' + ) + rtc_Emenmatt: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Emenmatt') + rtc_EmenmattMin4: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EmenmattMin4') + rtc_Langeten: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Langeten') + rtc_LangetenMin4: RtcTimeSeriesSimpleType = Field(..., alias='rtc:LangetenMin4') + rtc_PegelBielersee: RtcTimeSeriesSimpleType = Field(..., alias='rtc:PegelBielersee') + + +class RtcAebiRuleOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_AareMurg_oKWMin1: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:AareMurg_oKWMin1' + ) + rtc_AbflussaenderungPort: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:AbflussaenderungPort' + ) + rtc_MaxAbflussPort: RtcTimeSeriesSimpleType = Field(..., alias='rtc:MaxAbflussPort') + rtc_ProvMaxAbflussPort: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:ProvMaxAbflussPort' + ) + rtc_RTG: RtcTimeSeriesSimpleType = Field(..., alias='rtc:RTG') + + +class RtcArmaInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_obs: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:obs', description='observed data' + ) + rtc_sim: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:sim', description='simulated data' + ) + + +class RtcArmaOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_arma: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:arma', description='output-corrected data' + ) + + +class RtcBranchGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_storageDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:storageDown') + rtc_storageUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:storageUp') + rtc_surfaceAreaDown: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:surfaceAreaDown' + ) + rtc_surfaceAreaUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:surfaceAreaUp') + + +class RtcBranchInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HDown: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:HDown', description='ID of downstream node' + ) + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:HUp', description='ID of upstream node' + ) + rtc_ux: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:ux', + description='optional wind velocity at an elevation of 10 m above the water surface (x-direction), implementation is for the inertial model only', + ) + rtc_uy: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:uy', + description='optional wind velocity at an elevation of 10 m above the water surface (y-direction), implementation is for the inertial model only', + ) + + +class RtcBranchOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + + +class RtcColumnsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _head01: XsDouble = Field(..., alias='@head01') + _head02: XsDouble = Field(..., alias='@head02') + _head03: Optional[XsDouble] = Field(None, alias='@head03') + _head04: Optional[XsDouble] = Field(None, alias='@head04') + _head05: Optional[XsDouble] = Field(None, alias='@head05') + _head06: Optional[XsDouble] = Field(None, alias='@head06') + _head07: Optional[XsDouble] = Field(None, alias='@head07') + _head08: Optional[XsDouble] = Field(None, alias='@head08') + _head09: Optional[XsDouble] = Field(None, alias='@head09') + _head10: Optional[XsDouble] = Field(None, alias='@head10') + _head11: Optional[XsDouble] = Field(None, alias='@head11') + _head12: Optional[XsDouble] = Field(None, alias='@head12') + _head13: Optional[XsDouble] = Field(None, alias='@head13') + _head14: Optional[XsDouble] = Field(None, alias='@head14') + _head15: Optional[XsDouble] = Field(None, alias='@head15') + _head16: Optional[XsDouble] = Field(None, alias='@head16') + _head17: Optional[XsDouble] = Field(None, alias='@head17') + _head18: Optional[XsDouble] = Field(None, alias='@head18') + _head19: Optional[XsDouble] = Field(None, alias='@head19') + _head20: Optional[XsDouble] = Field(None, alias='@head20') + + +class RtcConditionComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_greaterThan: Optional[XsDouble] = Field(None, alias='rtc:greaterThan') + rtc_lessThan: Optional[XsDouble] = Field(None, alias='rtc:lessThan') + + +class RtcConnectionCoefficientsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_a: RtcExternalParameterSimpleType = Field(..., alias='rtc:a') + rtc_b: RtcExternalParameterSimpleType = Field(..., alias='rtc:b') + rtc_c: RtcExternalParameterSimpleType = Field(..., alias='rtc:c') + rtc_d: RtcExternalParameterSimpleType = Field(..., alias='rtc:d') + + +class RtcConnectionInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_discharge: RtcTimeSeriesSimpleType = Field(..., alias='rtc:discharge') + rtc_downstreamLevel: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:downstreamLevel' + ) + rtc_upstreamLevel: RtcTimeSeriesSimpleType = Field(..., alias='rtc:upstreamLevel') + + +class RtcConnectionOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_discharge: RtcTimeSeriesSimpleType = Field(..., alias='rtc:discharge') + + +class RtcConstantRuleOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + + +class RtcDataTypicalProfileComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _monthOfYear: _MonthOfYear = Field(..., alias='@monthOfYear') + _value: XsDouble = Field(..., alias='@value') + + +class RtcDateComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _monthDay: XsGMonthDay = Field(..., alias='@monthDay') + + +class RtcDateLookupTableInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + rtc_y: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:y') + + +class RtcDateLookupTableOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_active: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:active') + rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + + +class RtcDateRecord2DataComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _x: XsDouble = Field(..., alias='@x') + _y: XsDouble = Field(..., alias='@y') + + +class RtcDateRecordComplexType(BaseModel): + """ + defined data input as per time series format date time (defined either by dateTime or time or + month day) and value + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _comment: Optional[XsString] = Field(None, alias='@comment') + _dateTime: Optional[XsDateTime] = Field(None, alias='@dateTime') + _monthDay: Optional[XsGMonthDay] = Field(None, alias='@monthDay') + _time: Optional[XsTime] = Field(None, alias='@time') + _value: XsDouble = Field(..., alias='@value') + + +class RtcDateTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_data: List[RtcDateRecordComplexType] = Field(..., alias='rtc:data', min_items=1) + + +class RtcDateTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _date: RtcDateType = Field(..., alias='@date') + _time: RtcTimeType = Field(..., alias='@time') + + +class RtcDeadBandTimeDiscreteComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_numberOfStepsDown: XsInt = Field(..., alias='rtc:numberOfStepsDown') + rtc_numberOfStepsUp: XsInt = Field(..., alias='rtc:numberOfStepsUp') + + +class RtcDeadBandTimeInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: rtc_TimeSeriesSimpleType.Field20 = Field(..., alias='rtc:x') + + +class RtcDeadBandTimeOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') + rtc_stepsDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:stepsDown') + rtc_stepsUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:stepsUp') + rtc_timeFalse: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:timeFalse' + ) + rtc_timeTrue: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:timeTrue') + + +class RtcDeadBandValueInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + + +class RtcEdgeComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _x1: XsDouble = Field(..., alias='@x1') + _x2: XsDouble = Field(..., alias='@x2') + + +class RtcEdgesComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_edge: List[RtcEdgeComplexType] = Field(..., alias='rtc:edge', min_items=1) + + +class RtcEifelRurRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_a: XsDouble = Field(..., alias='rtc:a') + rtc_b: XsDouble = Field(..., alias='rtc:b') + rtc_minimumRelativeStorage: RtcDateTableComplexType = Field( + ..., alias='rtc:minimumRelativeStorage' + ) + + +class RtcElevationRecordComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _elevation: XsDouble = Field(..., alias='@elevation') + _value: RtcExternalParameterSimpleType = Field(..., alias='@value') + + +class RtcElevationTableComplexType(BaseModel): + """ + + Table containing data for different elevations. Type of element 'value' + depends on purpose for which table is used. + + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_elevationRecord: List[RtcElevationRecordComplexType] = Field( + ..., alias='rtc:elevationRecord', min_items=1 + ) + + +class RtcEquationComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_a: RtcExternalParameterSimpleType = Field(..., alias='rtc:a') + rtc_b: RtcExternalParameterSimpleType = Field(..., alias='rtc:b') + rtc_c: RtcExternalParameterSimpleType = Field(..., alias='rtc:c') + rtc_lowerLevel: Optional[XsDouble] = Field(None, alias='rtc:lowerLevel') + rtc_upperLevel: Optional[XsDouble] = Field(None, alias='rtc:upperLevel') + + +class RtcEquationsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_equation: List[RtcEquationComplexType] = Field( + ..., alias='rtc:equation', min_items=1 + ) + + +class RtcExpressionComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_mathematicalOperator: RtcMathematicalOperatorEnumStringType = Field( + ..., + alias='rtc:mathematicalOperator', + description='mathematical operator: + (summation), - (substraction), * (multiplication), / (division), min, max, ^ (power)', + ) + rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field2] = Field( + None, alias='rtc:x1Series', description='reference to time series ID' + ) + rtc_x1SeriesVector: Optional[rtc_TimeSeriesSimpleType.Field3] = Field( + None, + alias='rtc:x1SeriesVector', + description='reference to time series ID vector', + ) + rtc_x1Value: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:x1Value', description='user-configured constant value' + ) + rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field4] = Field( + None, alias='rtc:x2Series' + ) + rtc_x2SeriesVector: Optional[rtc_TimeSeriesSimpleType.Field5] = Field( + None, alias='rtc:x2SeriesVector' + ) + rtc_x2Value: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:x2Value' + ) + rtc_y: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:y', description='time series ID of resulting value' + ) + rtc_yVector: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:yVector', + description='time series ID vector of resulting value', + ) + + +class RtcGeneralModuleConfigComplexType(BaseModel): + """ + DEPRICATED + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_description: Optional[XsString] = Field( + None, alias='rtc:description', description='DEPRICATED' + ) + rtc_poolRoutingScheme: RtcPoolRoutingEnumStringType = Field( + ..., alias='rtc:poolRoutingScheme', description='DEPRICATED' + ) + rtc_theta: XsDouble = Field(..., alias='rtc:theta', description='DEPRICATED') + + +class RtcGradientInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + + +class RtcGradientOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_dx: RtcTimeSeriesSimpleType = Field(..., alias='rtc:dx') + + +class RtcGuideBandRuleInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + rtc_y: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:y') + + +class RtcGuideBandRuleOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + + +class RtcHBVInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_EP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EP') + rtc_P: RtcTimeSeriesSimpleType = Field(..., alias='rtc:P') + rtc_T: RtcTimeSeriesSimpleType = Field(..., alias='rtc:T') + rtc_TM: RtcTimeSeriesSimpleType = Field(..., alias='rtc:TM') + + +class RtcHBVLinkComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_CF: RtcTimeSeriesSimpleType = Field(..., alias='rtc:CF') + rtc_EA: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EA') + rtc_EI: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EI') + rtc_EP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EP') + rtc_IN: RtcTimeSeriesSimpleType = Field(..., alias='rtc:IN') + rtc_INI: RtcTimeSeriesSimpleType = Field(..., alias='rtc:INI') + rtc_PERC: RtcTimeSeriesSimpleType = Field(..., alias='rtc:PERC') + rtc_R: RtcTimeSeriesSimpleType = Field(..., alias='rtc:R') + + +class RtcHBVOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + rtc_SMPercentage: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:SMPercentage' + ) + rtc_SWE: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:SWE') + + +class RtcHBVStateComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_IC: RtcTimeSeriesSimpleType = Field(..., alias='rtc:IC') + rtc_LZ: RtcTimeSeriesSimpleType = Field(..., alias='rtc:LZ') + rtc_SM: RtcTimeSeriesSimpleType = Field(..., alias='rtc:SM') + rtc_SP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:SP') + rtc_UZ: RtcTimeSeriesSimpleType = Field(..., alias='rtc:UZ') + rtc_WC: RtcTimeSeriesSimpleType = Field(..., alias='rtc:WC') + + +class RtcHBVStateUpdateComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_IC: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:IC') + rtc_LZ: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:LZ', description='increment on lower zone storage [mm]' + ) + rtc_SM: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:SM', description='STILL NOT IMPLEMENTED' + ) + rtc_SP: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:SP', description='STILL NOT IMPLEMENTED' + ) + rtc_UZ: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:UZ', description='STILL NOT IMPLEMENTED' + ) + rtc_WC: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:WC', description='STILL NOT IMPLEMENTED' + ) + + +class RtcHydraulicModelOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_nFun: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:nFun', description='number of function evaluations' + ) + rtc_nJac: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:nJac', description='number of evaluations of the Jacobian' + ) + rtc_res: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:res', + description='residuum at last iteration step, 0.5*sum(SQR(ri))', + ) + + +class RtcHydraulicModelSequentialImplicitComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_convergenceThreshold: XsDouble = Field(..., alias='rtc:convergenceThreshold') + rtc_theta: XsDouble = Field(..., alias='rtc:theta') + rtc_treatNonConvergenceAsError: XsBoolean = Field( + ..., alias='rtc:treatNonConvergenceAsError' + ) + + +class RtcHydraulicModelSimultaneousComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_theta: XsDouble = Field(..., alias='rtc:theta') + + +class RtcInflowComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _factor: Optional[XsDouble] = Field(None, alias='@factor') + + +class RtcInputATableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_valueSelection: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:valueSelection' + ) + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + + +class RtcInputCapillaryFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HDown: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:HDown', + description='downstream node, typically UZ unsaturted zone', + ) + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:HUp', description='upstream node, typically GW upper zone' + ) + + +class RtcInputEvaporationActualStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_EI: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:EI') + rtc_EP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EP') + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:HUp', description='upstream node, typically SM (soil moisture)' + ) + + +class RtcInputEvaporationInterceptionStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_EP: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:EP', description='potential evaporation [mm]' + ) + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:HUp', description='upstream node, typically IC (interception)' + ) + + +class RtcInputEvaporationPotentialComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_EPM: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:EPM', + description='monthly mean value of potential evaporation [mm/timestep]', + ) + rtc_T: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:T', description='instantaneous temperature [oC]' + ) + rtc_TM: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:TM', description='monthly mean temperature [oC]' + ) + + +class RtcInputGroundwaterFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HDown: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:HDown', + description='downstream node, can be GW groundwater or SW surface water', + ) + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:HUp', + description='upstream node, can be GW groundwater or SW surface water', + ) + + +class RtcInputNodeStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_discharge: Optional[List[RtcTimeSeriesSimpleType]] = Field( + None, alias='rtc:discharge' + ) + rtc_state: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:state', + description='unit volume [mm], replaces the computes state', + ) + rtc_unitVolume: Optional[List[RtcTimeSeriesSimpleType]] = Field( + None, alias='rtc:unitVolume' + ) + + +class RtcInputPercolationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:HDown', + description='downstream node, typically LZ (lower zone storage)', + ) + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:HUp', + description='upstream node, typically UZ (upper zone storage)', + ) + + +class RtcInputPidComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_disturbance: Optional[rtc_TimeSeriesSimpleType.Field8] = Field( + None, alias='rtc:disturbance' + ) + rtc_setpointSeries: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:setpointSeries' + ) + rtc_setpointValue: Optional[XsDouble] = Field(None, alias='rtc:setpointValue') + rtc_x: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:x', description='controllable variable' + ) + + +class RtcInputReleaseAboveThresholdStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:HDown', description='downstream node' + ) + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:HUp', description='upstream node' + ) + + +class RtcInputReleaseTotalComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_discharge: List[RtcTimeSeriesSimpleType] = Field( + ..., alias='rtc:discharge', min_items=1 + ) + + +class RtcInputResponseStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:HUp', + description='upstream (release) node, typically UZ and/or LZ (upper/lower zone storages)', + ) + + +class RtcInputSnowRainJunctionComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_P: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:P', description='precipitation [mm/timestep]' + ) + rtc_T: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:T', description='temperature [oC]' + ) + + +class RtcInputSoilRunoffStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:HDown', + description='optional downstream node, typically uper saturated zones (UZ upper zone storage). Required if capillary flow is used and SM and UZ are present in one storage system', + ) + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:HUp', + description='upstream node, typically unsaturated zone (SM soil moisture)', + ) + rtc_INF: List[RtcTimeSeriesSimpleType] = Field(..., alias='rtc:INF', min_items=1) + + +class RtcInputWaterDistributionConstantStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:HDown', + description='downstream node collector of abstracted water. For instance drinking water treatment plant', + ) + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:HUp', + description='upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)', + ) + + +class RtcInputWaterDistributionVariableStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_D: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:D', + description='series of industrial or domestic water demands/abstractions [m3/s]', + ) + rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:HDown', + description='downstream node collector of abstracted water. For instance drinking water treatment plant', + ) + rtc_HUp: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:HUp', + description='upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)', + ) + + +class RtcInterpolationOptionsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_date: RtcInterpolationOptionEnumStringType = Field(..., alias='rtc:date') + rtc_value: RtcInterpolationOptionEnumStringType = Field(..., alias='rtc:value') + + +class RtcIntervalInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_setpoint: RtcTimeSeriesSimpleType = Field(..., alias='rtc:setpoint') + rtc_x: rtc_TimeSeriesSimpleType.Field9 = Field( + ..., alias='rtc:x', description='reference to time series ID' + ) + + +class RtcIntervalOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') + rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + + +class RtcLevelStorageEquationComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_A0: XsDouble = Field(..., alias='rtc:A0') + rtc_A1: XsDouble = Field(..., alias='rtc:A1') + rtc_A2: Optional[XsDouble] = Field(None, alias='rtc:A2') + rtc_A3: Optional[XsDouble] = Field(None, alias='rtc:A3') + rtc_A4: Optional[XsDouble] = Field(None, alias='rtc:A4') + + +class RtcLimiterInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_thresholdSeries: Optional[rtc_TimeSeriesSimpleType.Field21] = Field( + None, alias='rtc:thresholdSeries' + ) + rtc_thresholdValue: Optional[XsDouble] = Field(None, alias='rtc:thresholdValue') + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + + +class RtcLookup2DTableInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + rtc_z: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:z') + + +class RtcLookup2DTableOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_z: RtcTimeSeriesSimpleType = Field(..., alias='rtc:z') + + +class RtcLookupTableInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: rtc_TimeSeriesSimpleType.Field10 = Field( + ..., alias='rtc:x', description='reference to time series ID' + ) + rtc_y: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:y') + + +class RtcLookupTableOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + + +class RtcLorentGeversInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_EP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EP') + rtc_P: RtcTimeSeriesSimpleType = Field(..., alias='rtc:P') + + +class RtcLorentGeversOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + + +class RtcLorentGeversStateComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_QB1: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QB1') + rtc_QB2: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QB2') + rtc_QS1: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QS1') + rtc_QS2: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QS2') + rtc_S: RtcTimeSeriesSimpleType = Field(..., alias='rtc:S') + + +class RtcLorentGeversStateUpdateComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_S: RtcTimeSeriesSimpleType = Field(..., alias='rtc:S') + + +class RtcMaxFlowsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _maxFlow_head01: XsDouble = Field(..., alias='@maxFlow_head01') + _maxFlow_head02: XsDouble = Field(..., alias='@maxFlow_head02') + _maxFlow_head03: Optional[XsDouble] = Field(None, alias='@maxFlow_head03') + _maxFlow_head04: Optional[XsDouble] = Field(None, alias='@maxFlow_head04') + _maxFlow_head05: Optional[XsDouble] = Field(None, alias='@maxFlow_head05') + _maxFlow_head06: Optional[XsDouble] = Field(None, alias='@maxFlow_head06') + _maxFlow_head07: Optional[XsDouble] = Field(None, alias='@maxFlow_head07') + _maxFlow_head08: Optional[XsDouble] = Field(None, alias='@maxFlow_head08') + _maxFlow_head09: Optional[XsDouble] = Field(None, alias='@maxFlow_head09') + _maxFlow_head10: Optional[XsDouble] = Field(None, alias='@maxFlow_head10') + _maxFlow_head11: Optional[XsDouble] = Field(None, alias='@maxFlow_head11') + _maxFlow_head12: Optional[XsDouble] = Field(None, alias='@maxFlow_head12') + _maxFlow_head13: Optional[XsDouble] = Field(None, alias='@maxFlow_head13') + _maxFlow_head14: Optional[XsDouble] = Field(None, alias='@maxFlow_head14') + _maxFlow_head15: Optional[XsDouble] = Field(None, alias='@maxFlow_head15') + _maxFlow_head16: Optional[XsDouble] = Field(None, alias='@maxFlow_head16') + _maxFlow_head17: Optional[XsDouble] = Field(None, alias='@maxFlow_head17') + _maxFlow_head18: Optional[XsDouble] = Field(None, alias='@maxFlow_head18') + _maxFlow_head19: Optional[XsDouble] = Field(None, alias='@maxFlow_head19') + _maxFlow_head20: Optional[XsDouble] = Field(None, alias='@maxFlow_head20') + + +class RtcMergerInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: List[rtc_TimeSeriesSimpleType.Field11] = Field( + ..., alias='rtc:x', min_items=1 + ) + + +class RtcMergerOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:y') + rtc_ySum: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:ySum') + + +class RtcMergerSplitterInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: Optional[List[rtc_TimeSeriesSimpleType.Field17]] = Field(None, alias='rtc:x') + rtc_xVector: Optional[rtc_TimeSeriesSimpleType.Field18] = Field( + None, alias='rtc:xVector' + ) + + +class RtcMergerSplitterOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: Optional[List[rtc_TimeSeriesSimpleType.Field19]] = Field(None, alias='rtc:y') + + +class RtcNeuronInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_external: Optional[List[xs_string.Field1]] = Field(None, alias='rtc:external') + rtc_internal: Optional[List[xs_string.Field2]] = Field(None, alias='rtc:internal') + + +class RtcNeuronOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:x', description='result of the transfer function' + ) + rtc_y: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:y', + description='result of the summation of weighted input (intermediate result)', + ) + + +class RtcNodeGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_lambda: RtcTimeSeriesSimpleType = Field(..., alias='rtc:lambda') + rtc_surfaceArea: RtcTimeSeriesSimpleType = Field(..., alias='rtc:surfaceArea') + + +class RtcNodeInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HBC: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:HBC', + description='Time series with the water level boundary condition, note that a value MUST be provided at all time steps, otherwise the model stops with an error message', + ) + rtc_HUpdate: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:HUpdate', + description='Time series with an optional water level for model updating', + ) + rtc_QBC: Optional[List[rtc_TimeSeriesSimpleType.Field6]] = Field( + None, alias='rtc:QBC' + ) + + +class RtcNodeOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_H: RtcTimeSeriesSimpleType = Field(..., alias='rtc:H') + rtc_R: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:R') + rtc_S: RtcTimeSeriesSimpleType = Field(..., alias='rtc:S') + + +class RtcNodeStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:AREA', description='constant area [km2], default is 1.0' + ) + rtc_input: Optional[RtcInputNodeStorageSystemComplexType] = Field( + None, alias='rtc:input' + ) + rtc_residuum: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:residuum', description='residuum [mm]' + ) + rtc_state: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:state', description='unit volume [mm]' + ) + rtc_stateMax: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:stateMax' + ) + rtc_stateMin: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:stateMin' + ) + + +class RtcOrificeInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_D: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:D', description='deprecated' + ) + rtc_DConst: Optional[XsDouble] = Field(None, alias='rtc:DConst') + rtc_DSeries: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:DSeries') + rtc_DeltaHDown: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:DeltaHDown' + ) + rtc_DeltaHUp: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:DeltaHUp') + rtc_HDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HDown') + rtc_HUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HUp') + + +class RtcOrificeOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_D: RtcTimeSeriesSimpleType = Field(..., alias='rtc:D') + rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + rtc_flowType: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:flowType') + + +class RtcOutletInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_relativeRelease: Optional[List[RtcTimeSeriesSimpleType]] = Field( + None, alias='rtc:relativeRelease' + ) + rtc_release: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:release', + description='Reference to timeseries in data configuration containg an absolute release. (ONLY FOR CONTROLLED OUTLET)', + ) + + +class RtcOutletOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_release: RtcTimeSeriesSimpleType = Field(..., alias='rtc:release') + + +class RtcOutputATableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: List[rtc_TimeSeriesSimpleType.Field1] = Field( + ..., alias='rtc:y', min_items=1 + ) + + +class RtcOutputEvaporationPotentialComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_EP: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:EP', + description='instantaneous potential evaporation [mm/timestep]', + ) + + +class RtcOutputLinkStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_H: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:H', description='Discharge as unit volume [mm/timestep]' + ) + rtc_Q: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:Q', description='Discharge [m3/s]' + ) + + +class RtcOutputPidComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_differentialPart: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:differentialPart', + description='memory of differential part (in fact e of the last time step)', + ) + rtc_integralPart: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:integralPart', + description='memory of integral part: integral(e)dt', + ) + rtc_y: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:y', description='setting of the actuator' + ) + + +class RtcOutputSnowRainJunctionComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_RF: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:RF', description='rainfall [mm/timestep]' + ) + rtc_SF: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:SF', description='snowfall [mm/timestep]' + ) + + +class RtcOutputStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_nFun: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:nFun', description='number of function evaluations' + ) + rtc_nJac: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:nJac', description='number of evaluations of the Jacobian' + ) + rtc_res: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:res', description='residuum at last iteration step' + ) + + +class RtcPercolationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputPercolationStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterPercolationStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcPidComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputPidComplexType = Field(..., alias='rtc:input') + rtc_kd: XsDouble = Field( + ..., alias='rtc:kd', description='fatcor on differential part kd*de/dt' + ) + rtc_ki: XsDouble = Field( + ..., alias='rtc:ki', description='factor on the integral part ki*integral(e)dt' + ) + rtc_kp: XsDouble = Field( + ..., alias='rtc:kp', description='factor on the proportional part kp*e' + ) + rtc_mode: Optional[RtcMode] = Field( + None, + alias='rtc:mode', + description='pid mode, either "NATIVE" or "SOBEK2" or "PIDPOS" or PIDVEL"', + ) + rtc_output: RtcOutputPidComplexType = Field(..., alias='rtc:output') + rtc_settingMax: XsDouble = Field( + ..., alias='rtc:settingMax', description='maximum setting of the actuator' + ) + rtc_settingMaxSpeed: XsDouble = Field( + ..., + alias='rtc:settingMaxSpeed', + description='maximum speed of the actuation in [unit/s]', + ) + rtc_settingMin: XsDouble = Field( + ..., alias='rtc:settingMin', description='minimum setting of the actuator' + ) + + +class RtcPolygonComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: Optional[XsString] = Field(None, alias='@id') + rtc_edges: RtcEdgesComplexType = Field(..., alias='rtc:edges') + rtc_value: Optional[XsDouble] = Field(None, alias='rtc:value') + + +class RtcPolygonLookupInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x1: rtc_TimeSeriesSimpleType.Field12 = Field(..., alias='rtc:x1') + rtc_x2: rtc_TimeSeriesSimpleType.Field13 = Field(..., alias='rtc:x2') + + +class RtcPolygonLookupOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') + + +class RtcPolygonsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_polygon: List[RtcPolygonComplexType] = Field( + ..., alias='rtc:polygon', min_items=1 + ) + + +class RtcPumpGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_storageDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:storageDown') + rtc_storageUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:storageUp') + + +class RtcPumpInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_HDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HDown') + rtc_HUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HUp') + rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + + +class RtcPumpOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + + +class RtcRelationalConditionComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_relationalOperator: RtcRelationalOperatorEnumStringType = Field( + ..., alias='rtc:relationalOperator' + ) + rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field22] = Field( + None, alias='rtc:x1Series' + ) + rtc_x1Value: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:x1Value' + ) + rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field23] = Field( + None, alias='rtc:x2Series' + ) + rtc_x2Value: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:x2Value' + ) + + +class RtcReleaseTotalComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputReleaseTotalComplexType = Field(..., alias='rtc:input') + rtc_output: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:output', description='total discharge [m3/s]' + ) + + +class RtcReservoirCompactInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_FB: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:FB', + description='forebay elevation [m above reference level] or [ft above sea level]', + ) + rtc_OF: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:OF', + description='optional time series with the unit outage factor [0-1], it reduces the (physical) constraints PXValue and QTXValue (NO impact on PX, QTX)', + ) + rtc_PM: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:PM', + description='minimum generation constraint on aggregated turbine level [MW], primarly used as operational constraint', + ) + rtc_PMValue: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:PMValue', + description='fixed minimum generation constraint on aggregated turbine level [MW], primarily used as physical constraint', + ) + rtc_PX: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:PX', + description='maximum generation constraint on aggregated turbine level [MW], primarly used as operational constraint', + ) + rtc_PXValue: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:PXValue', + description='fixed maximum generation constraint on aggregated turbine level [MW], primarly used as physical constraint', + ) + rtc_Q: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:Q', + description='reservoir outflow [m3/s] or [KCFS], data is expected to be complete and valid', + ) + rtc_QI: List[RtcTimeSeriesSimpleType] = Field(..., alias='rtc:QI', min_items=1) + rtc_QMISC: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:QMISC', + description='optional miscellaneous flow (uncontrolled), will be zero by default [m3/s] or [KCFS] if no time series is supplied or if the time series includes NaN values', + ) + rtc_QS: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:QS', description='absolute spill target [m3/s] or [KCFS]' + ) + rtc_QSPercentage: Optional[rtc_TimeSeriesSimpleType.Field7] = Field( + None, + alias='rtc:QSPercentage', + description='relative spill target as a percentage [0..100] of the total flow Q', + ) + rtc_QSPercentageValue: Optional[rtc_ExternalParameterSimpleType.Field1] = Field( + None, + alias='rtc:QSPercentageValue', + description='relative spill target as a percentage [0..100] of the total flow Q', + ) + rtc_QSValue: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:QSValue', description='absolute spill target [m3/s] or [KCFS]' + ) + rtc_QTX: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:QTX', + description='maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as operational constraint', + ) + rtc_QTXValue: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:QTXValue', + description='fixed maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as physical constraint', + ) + + +class RtcReservoirCompactOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_DQ: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:DQ', description='deviation from spill target [m3/s] or [KCFS]' + ) + rtc_FB: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:FB', + description='forebay elevation [m above reference level] or [ft above sea level]', + ) + rtc_H: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:H', description='head [m] or [ft]' + ) + rtc_P: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:P', description='power generation [MW]' + ) + rtc_PX: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:PX', description='maximum power generation [MW]' + ) + rtc_Q: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:Q', description='reservoir outflow [m3/s] or [KCFS]' + ) + rtc_QI: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:QI', description='reservoir inflow [m3/s] or [KCFS]' + ) + rtc_QMISC: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:QMISC', description='miscellaneous flow [m3/s] or [KCFS]' + ) + rtc_QS: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:QS', description='spillage [m3/s] or [KCFS]' + ) + rtc_QSPercentage: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:QSPercentage', description='relative spillage [0..100]' + ) + rtc_QT: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:QT', description='turbine flow [m3/s] or [KCFS]' + ) + rtc_QTX: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:QTX', description='maximum turbine flow [m3/s] or [KCFS]' + ) + rtc_R: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:R', + description='residuum of mass balance (in simultaneous mode) [m3/s] or [KCFS]', + ) + rtc_S: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:S', + description='storage [m3] or [KCFS-hrs], this is the system state needed in the state file', + ) + rtc_TW: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:TW', + description='tailwater elevation [m above reference level] or [ft above sea level]', + ) + + +class RtcReservoirGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_lambda: RtcTimeSeriesSimpleType = Field(..., alias='rtc:lambda') + rtc_lambdaDown: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:lambdaDown' + ) + + +class RtcReservoirInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_evaporation: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:evaporation', + description='Direct evaporation from the reservoir [mm/time step]', + ) + rtc_inflow: List[RtcTimeSeriesSimpleType] = Field( + ..., alias='rtc:inflow', min_items=1 + ) + rtc_level: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:level', + description='Optional level [m] for updating the simulated level by an observed water level (simple data assimilation), if provided the error output is equal to the mass balance correction ', + ) + rtc_precipitation: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:precipitation', + description='Direct precitation into the reservoir [mm/time step], the value will be multiplied by the current water surface area of the reservoir', + ) + + +class RtcReservoirOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_error: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:error', + description='optional error output [m3/s] which is non-zero if the simple data assimilation option for overruling the simulated water level is used ', + ) + rtc_inflow: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:inflow', description='aggregated inflows [m3/s]' + ) + rtc_level: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:level', description='water level [m] in the reservoir' + ) + rtc_relativeStorage: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:relativeStorage', + description='relative storage [-] typically between 0 and 1 depending on the definition of the maximum level above]', + ) + rtc_release: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:release', description='aggregated release [m3/s]' + ) + rtc_residuum: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:residuum', + description='optional residuum of the implicit solution', + ) + rtc_storage: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:storage', description='storage [m3] (state variable)' + ) + + +class RtcResponseStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputResponseStorageSystemComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterResponseStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcResultComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_output: RtcTimeSeriesSimpleType = Field(..., alias='rtc:output') + rtc_value: XsInteger = Field(..., alias='rtc:value') + + +class RtcRiverWeirInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_CConst: Optional[XsDouble] = Field(None, alias='rtc:CConst') + rtc_CSeries: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:CSeries') + rtc_DeltaHDown: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:DeltaHDown' + ) + rtc_DeltaHUp: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:DeltaHUp') + rtc_HDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HDown') + rtc_HUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HUp') + + +class RtcRiverWeirOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_C: RtcTimeSeriesSimpleType = Field(..., alias='rtc:C') + rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + rtc_flowType: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:flowType') + + +class RtcRoutingOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_discharge: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:discharge' + ) + rtc_error: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:error') + + +class RtcRowComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _eta_head01: XsDouble = Field(..., alias='@eta_head01') + _eta_head02: XsDouble = Field(..., alias='@eta_head02') + _eta_head03: Optional[XsDouble] = Field(None, alias='@eta_head03') + _eta_head04: Optional[XsDouble] = Field(None, alias='@eta_head04') + _eta_head05: Optional[XsDouble] = Field(None, alias='@eta_head05') + _eta_head06: Optional[XsDouble] = Field(None, alias='@eta_head06') + _eta_head07: Optional[XsDouble] = Field(None, alias='@eta_head07') + _eta_head08: Optional[XsDouble] = Field(None, alias='@eta_head08') + _eta_head09: Optional[XsDouble] = Field(None, alias='@eta_head09') + _eta_head10: Optional[XsDouble] = Field(None, alias='@eta_head10') + _eta_head11: Optional[XsDouble] = Field(None, alias='@eta_head11') + _eta_head12: Optional[XsDouble] = Field(None, alias='@eta_head12') + _eta_head13: Optional[XsDouble] = Field(None, alias='@eta_head13') + _eta_head14: Optional[XsDouble] = Field(None, alias='@eta_head14') + _eta_head15: Optional[XsDouble] = Field(None, alias='@eta_head15') + _eta_head16: Optional[XsDouble] = Field(None, alias='@eta_head16') + _eta_head17: Optional[XsDouble] = Field(None, alias='@eta_head17') + _eta_head18: Optional[XsDouble] = Field(None, alias='@eta_head18') + _eta_head19: Optional[XsDouble] = Field(None, alias='@eta_head19') + _eta_head20: Optional[XsDouble] = Field(None, alias='@eta_head20') + _flow: XsDouble = Field(..., alias='@flow') + + +class RtcRuleStateTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_ruleId: XsString = Field(..., alias='rtc:ruleId') + + +class RtcSRMInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_P: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:P') + rtc_P_Vector: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:P-Vector') + rtc_RCA: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:RCA') + rtc_RCA_Vector: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:RCA-Vector' + ) + rtc_SCA: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:SCA') + rtc_SCA_Vector: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:SCA-Vector' + ) + rtc_T: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:T') + rtc_T_Vector: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:T-Vector') + rtc_cr: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:cr') + rtc_cr_Vector: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:cr-Vector' + ) + rtc_cs: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:cs') + rtc_cs_Vector: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:cs-Vector' + ) + + +class RtcSRMOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_QRain_Vector: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QRain-Vector') + rtc_QSnow_Vector: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QSnow-Vector') + rtc_QStorage_Vector: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:QStorage-Vector' + ) + + +class RtcSRMParameterZoneComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: Optional[XsString] = Field(None, alias='@id') + rtc_Tcr1: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:Tcr1', description='critical temperature (???) [oC]' + ) + rtc_Tcr2: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:Tcr2', description='critical temperature (???) [oC]' + ) + rtc_a: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:a', description='degree day factor [mm/(oC*day)]' + ) + rtc_area: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:area', description='area [km2]' + ) + + +class RtcSRMStateComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_PStorage_Vector: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:PStorage-Vector', + description='snow storage of non-snow-covered areas [mm]', + ) + rtc_Q: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:Q', description='discharge [m3/s]' + ) + + +class RtcSnowRainJunctionComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputSnowRainJunctionComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutputSnowRainJunctionComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterSnowRainJunctionComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcSoilRunoffStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputSoilRunoffStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterSoilRunoffStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcSpreadsheetInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x1: rtc_TimeSeriesSimpleType.Field14 = Field(..., alias='rtc:x1') + rtc_x2: rtc_TimeSeriesSimpleType.Field15 = Field(..., alias='rtc:x2') + rtc_x3: Optional[rtc_TimeSeriesSimpleType.Field16] = Field(None, alias='rtc:x3') + + +class RtcSpreadsheetOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') + + +class RtcSpreadsheetRecordComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _x1: XsDouble = Field(..., alias='@x1') + _x2: XsDouble = Field(..., alias='@x2') + _x3: Optional[XsDouble] = Field(None, alias='@x3') + _y: XsDouble = Field(..., alias='@y') + + +class RtcSpreadsheetTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _initialState: Optional[XsDouble] = Field(None, alias='@initialState') + rtc_record: List[RtcSpreadsheetRecordComplexType] = Field( + ..., alias='rtc:record', min_items=1 + ) + + +class RtcSpreadsheetTablesComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_table: List[RtcSpreadsheetTableComplexType] = Field( + ..., alias='rtc:table', min_items=1 + ) + + +class RtcStorageCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_maximumLevel: Optional[XsDouble] = Field( + None, + alias='rtc:maximumLevel', + description='Maximum water level h in the reservoir: this optional value does not limit the water level, it is used however to compute the relative filling percentage of the reservoir according to s = S/S(maximumLevel), where S is the absolute storage volume', + ) + rtc_storageEquation: Optional[RtcEquationsComplexType] = Field( + None, + alias='rtc:storageEquation', + description='Storage equation, storage S = f(water level h)', + ) + rtc_storageTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:storageTable', + description='Storage table with pairs of elevation h and storage S', + ) + + +class RtcStorageSystemSettingsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_acceptableConvergenceThreshold: Optional[XsDouble] = Field( + None, + alias='rtc:acceptableConvergenceThreshold', + description='optional threshold after reaching the maximum number of iterations, writes a warning if reached, writes error otherwise', + ) + rtc_convergenceThreshold: XsDouble = Field( + ..., + alias='rtc:convergenceThreshold', + description='iteration stops after reaching this threshold', + ) + rtc_treatNonConvergenceAsError: XsBoolean = Field( + ..., + alias='rtc:treatNonConvergenceAsError', + description='treat non-convergence related to the thresholds as error or not', + ) + + +class RtcTableLookupTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_record: List[RtcDateRecord2DataComplexType] = Field( + ..., alias='rtc:record', min_items=1 + ) + + +class RtcTailwaterEquationComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_A: RtcExternalParameterSimpleType = Field(..., alias='rtc:A') + rtc_B: RtcExternalParameterSimpleType = Field(..., alias='rtc:B') + rtc_C: RtcExternalParameterSimpleType = Field(..., alias='rtc:C') + rtc_D: Optional[RtcExternalParameterSimpleType] = Field(None, alias='rtc:D') + rtc_FBDown: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:FBDown', + description='time series reference to forebay elevation of the downstream project, only required if B is non-zero', + ) + + +class RtcTailwaterOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_head: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:head', description='head [m]' + ) + rtc_level: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:level', description='tailwater level [m]' + ) + + +class RtcTailwaterTidalEquationComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_A: RtcExternalParameterSimpleType = Field(..., alias='rtc:A') + rtc_QObs: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QObs') + rtc_TWObs: RtcTimeSeriesSimpleType = Field(..., alias='rtc:TWObs') + + +class RtcThunerseeRuleInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_catchment: RtcTimeSeriesSimpleType = Field(..., alias='rtc:catchment') + rtc_inflow: RtcTimeSeriesSimpleType = Field(..., alias='rtc:inflow') + rtc_level: RtcTimeSeriesSimpleType = Field(..., alias='rtc:level') + + +class RtcThunerseeRuleOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_active: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:active') + rtc_releaseTotal: RtcTimeSeriesSimpleType = Field(..., alias='rtc:releaseTotal') + rtc_releaseTunnel: RtcTimeSeriesSimpleType = Field(..., alias='rtc:releaseTunnel') + rtc_releaseWeir: RtcTimeSeriesSimpleType = Field(..., alias='rtc:releaseWeir') + + +class RtcTimeAbsoluteInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + + +class RtcTimeAbsoluteOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + + +class RtcTimeRelativeControlTableRecordComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _time: XsDouble = Field(..., alias='@time') + _value: XsDouble = Field(..., alias='@value') + + +class RtcTimeRelativeInputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_y: RtcTimeSeriesSimpleType = Field( + ..., + alias='rtc:y', + description='optional input for deriving the timeActive in case of the relative from Value option', + ) + + +class RtcTimeRelativeOutputComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_timeActive: RtcTimeSeriesSimpleType = Field(..., alias='rtc:timeActive') + rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + + +class RtcTimeStepComplexType(BaseModel): + """ + The timeunit element has three attributes, unit and devider and multiplier. + the unit is second, minute, hour, week, month year. + The divider attribute is optional (default = 1). + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') + _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') + _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + + +class RtcTriggerControllerComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_input: RtcTimeSeriesSimpleType = Field(..., alias='rtc:input') + rtc_value: XsInteger = Field(..., alias='rtc:value') + + +class RtcTurbineCapacityCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_capacityEquation: Optional[RtcEquationsComplexType] = Field( + None, + alias='rtc:capacityEquation', + description='capacity equation of hydropower turbine as a function of the water head', + ) + rtc_capacityTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:capacityTable', + description='capacity table of hydropower turbine as a function of the water head', + ) + + +class RtcTurbineCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_efficiencyTable: RtcElevationTableComplexType = Field( + ..., + alias='rtc:efficiencyTable', + description='efficiency table unit power output [MW / m3/s] as function of head [m] ', + ) + rtc_output: RtcTurbineOutputCharacteristicsComplexType = Field( + ..., alias='rtc:output' + ) + + +class RtcTurbineEfficiencyCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_efficiencyConstant: Optional[XsDouble] = Field( + None, + alias='rtc:efficiencyConstant', + description='constant efficiency over all discharges, typical range is [0.80, 0.90]', + ) + + +class RtcTurbineEfficiencyTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_columns: RtcColumnsComplexType = Field( + ..., + alias='rtc:columns', + description='column Ids refering to the head [m] of each column', + ) + rtc_maxFlows: RtcMaxFlowsComplexType = Field( + ..., + alias='rtc:maxFlows', + description='maximum flow for a given head (provided above)', + ) + rtc_row: List[RtcRowComplexType] = Field(..., alias='rtc:row', min_items=1) + + +class RtcTypicalProfileComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_data: List[RtcDataTypicalProfileComplexType] = Field( + ..., alias='rtc:data', min_items=1 + ) + rtc_output: RtcTimeSeriesSimpleType = Field(..., alias='rtc:output') + + +class RtcUnitDelayComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcUnitDelayInputComplexType = Field(..., alias='rtc:input') + rtc_nStep: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:nStep', + description='nStep optionally provides a delay with an arbitrary numer of time steps or sub time step, i.e. 1.5 time steps, if being used also specify the yFinal tag in the output options', + ) + rtc_output: RtcUnitDelayOutputComplexType = Field( + ..., + alias='rtc:output', + description='The configuration of a multiple unit delay requires the configuration of a time series for each delay time step', + ) + + +class RtcUnitHydrographWeightCustomComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_weight: List[XsDouble] = Field(..., alias='rtc:weight', min_items=1) + + +class RtcUnitHydrographWeightTriangularComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_factor: Optional[XsDouble] = Field( + None, alias='rtc:factor', description='sum of all weight, if not equal to 1.0' + ) + rtc_nSteps: RtcExternalParameterSimpleType = Field( + ..., alias='rtc:nSteps', description='number of time steps' + ) + + +class RtcValidPeriodComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_endDate: RtcDateComplexType = Field(..., alias='rtc:endDate') + rtc_startDate: RtcDateComplexType = Field(..., alias='rtc:startDate') + + +class RtcValidPeriodsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_validPeriod: Optional[List[RtcValidPeriodComplexType]] = Field( + None, alias='rtc:validPeriod' + ) + + +class RtcValueArrayComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_value: List[XsFloat] = Field(..., alias='rtc:value', min_items=1) + + +class RtcYDimComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_yDim: List[XsFloat] = Field(..., alias='rtc:yDim', min_items=1) + + +class RtcZoneComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _max: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@max') + _min: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@min') + rtc_dateTable: RtcDateTableComplexType = Field(..., alias='rtc:dateTable') + + +class RtcZonesComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_zone: List[RtcZoneComplexType] = Field(..., alias='rtc:zone', min_items=1) + + +class RtcEvaporationActualStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputEvaporationActualStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterEvaporationActualStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcEvaporationInterceptionStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputEvaporationInterceptionStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterEvaporationInterceptionStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcGroundwaterFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputGroundwaterFlowStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParametergroundwaterFlowStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcIrrigationStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_nodeD: XsString = Field( + ..., + alias='rtc:nodeD', + description='downstream node which recieves the irrigation water', + ) + rtc_nodeU: XsString = Field( + ..., + alias='rtc:nodeU', + description='upstream node, source of water usually the drinking water treatment plant', + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterIrrigationStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcMeltRefreezingStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcTimeSeriesSimpleType = Field( + ..., alias='rtc:input', description='instanteneous temperature [oC]' + ) + rtc_nodeD: XsString = Field( + ..., + alias='rtc:nodeD', + description='downstream node, typically WC (water content)', + ) + rtc_nodeU: XsString = Field( + ..., alias='rtc:nodeU', description='upstream node, typically SP (snow pack)' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterMeltRefreezingStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcReleaseAboveThresholdStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputReleaseAboveThresholdStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterReleaseAboveThresholdStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcReleaseWaterContentStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_nodeA: XsString = Field( + ..., + alias='rtc:nodeA', + description='auxiliary node with snow pack, typically SP (snow pack)', + ) + rtc_nodeU: XsString = Field( + ..., + alias='rtc:nodeU', + description='upstream node, typically WC (water content)', + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterReleaseWaterContentStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcWaterDistributionConstantStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputWaterDistributionConstantStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterWaterDistributionConstantStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcWaterDistributionVariableStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputWaterDistributionVariableStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterWaterDistributionVariableStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcAccumulationComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcAccumulationInputComplexType = Field( + ..., alias='rtc:input', description='input variable' + ) + rtc_multiplier: Optional[XsDouble] = Field( + None, alias='rtc:multiplier', description='optional multiplier' + ) + rtc_output: RtcAccumulationOutputComplexType = Field(..., alias='rtc:output') + + +class RtcAebiRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_FactorRTG: XsDouble = Field(..., alias='rtc:FactorRTG') + rtc_LangeteFall: RtcCaseLangetenEnumStringType = Field(..., alias='rtc:LangeteFall') + rtc_input: RtcAebiRuleInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcAebiRuleOutputComplexType = Field(..., alias='rtc:output') + + +class RtcAllocationTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputATableComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutputATableComplexType = Field(..., alias='rtc:output') + rtc_table: Optional[RtcATableComplexType] = Field(None, alias='rtc:table') + rtc_tableExternal: Optional[XsString] = Field(None, alias='rtc:tableExternal') + + +class RtcArmaComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_arCoef: XsDouble = Field( + ..., + alias='rtc:arCoef', + description='autoregression coefficient related to prior time step', + ) + rtc_input: RtcArmaInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcArmaOutputComplexType = Field(..., alias='rtc:output') + + +class RtcCapacityCharacteristicsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _reference: Optional[RtcCapacityReferenceEnumStringType] = Field( + None, alias='@reference' + ) + rtc_capacityEquation: Optional[RtcEquationsComplexType] = Field( + None, alias='rtc:capacityEquation' + ) + rtc_capacityTable: Optional[RtcElevationTableComplexType] = Field( + None, alias='rtc:capacityTable' + ) + + +class RtcCapillaryFlowStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputCapillaryFlowStorageSystemComplexType = Field( + ..., alias='rtc:input' + ) + rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcParameterCapillaryFlowStorageSystemComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcConstantRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_constant: XsDouble = Field(..., alias='rtc:constant') + rtc_output: RtcConstantRuleOutputComplexType = Field(..., alias='rtc:output') + + +class RtcControlledOutletComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., + alias='rtc:capacityCharacteristics', + description='Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero', + ) + rtc_input: RtcOutletInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutletOutputComplexType = Field(..., alias='rtc:output') + rtc_turbineCharacteristics: Optional[RtcTurbineCharacteristicsComplexType] = Field( + None, + alias='rtc:turbineCharacteristics', + description='Characteristics of optional turbine', + ) + + +class RtcCrossSectionComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_crossSectionTable: RtcElevationTableComplexType = Field( + ..., + alias='rtc:crossSectionTable', + description='Tabulated cross section, pairs of elevation h and width b ', + ) + + +class RtcCrossSectionRoughnessComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_roughnessTable: RtcElevationTableComplexType = Field( + ..., + alias='rtc:roughnessTable', + description='Pairs of elevation h and roughness C (according to Chezy)', + ) + + +class RtcDateRecord2ComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _monthDay: XsGMonthDay = Field(..., alias='@monthDay') + rtc_record: List[RtcDateRecord2DataComplexType] = Field( + ..., alias='rtc:record', min_items=1 + ) + + +class RtcDeadBandValueComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcDeadBandValueInputComplexType = Field(..., alias='rtc:input') + rtc_threshold: XsDouble = Field(..., alias='rtc:threshold') + + +class RtcEvaporationPotentialComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcInputEvaporationPotentialComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOutputEvaporationPotentialComplexType = Field( + ..., alias='rtc:output' + ) + rtc_parameter: RtcParameterEvaporationPotentialComplexType = Field( + ..., alias='rtc:parameter' + ) + + +class RtcGradientComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcGradientInputComplexType = Field( + ..., alias='rtc:input', description='input variable' + ) + rtc_multiplier: Optional[XsDouble] = Field( + None, alias='rtc:multiplier', description='optional multiplier' + ) + rtc_output: RtcGradientOutputComplexType = Field( + ..., alias='rtc:output', description='gradient, dx = multiplier*(xNew-xOld)/dt' + ) + + +class RtcGuideBandRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcGuideBandRuleInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcGuideBandRuleOutputComplexType = Field(..., alias='rtc:output') + rtc_xMax: RtcDateTableComplexType = Field(..., alias='rtc:xMax') + rtc_xMin: RtcDateTableComplexType = Field(..., alias='rtc:xMin') + rtc_yMax: Optional[XsDouble] = Field(None, alias='rtc:yMax') + rtc_yMaxSeries: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:yMaxSeries' + ) + rtc_yMin: Optional[XsDouble] = Field(None, alias='rtc:yMin') + rtc_yMinSeries: Optional[RtcTimeSeriesSimpleType] = Field( + None, alias='rtc:yMinSeries' + ) + + +class RtcHBVComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcHBVInputComplexType = Field(..., alias='rtc:input') + rtc_link: Optional[RtcHBVLinkComplexType] = Field(None, alias='rtc:link') + rtc_output: RtcHBVOutputComplexType = Field(..., alias='rtc:output') + rtc_parameterInput: RtcHBVParameterInputComplexType = Field( + ..., alias='rtc:parameterInput' + ) + rtc_parameterInterception: RtcHBVParameterInterceptionComplexType = Field( + ..., alias='rtc:parameterInterception' + ) + rtc_parameterResponse: RtcHBVParameterResponseComplexType = Field( + ..., alias='rtc:parameterResponse' + ) + rtc_parameterSnow: RtcHBVParameterSnowComplexType = Field( + ..., alias='rtc:parameterSnow' + ) + rtc_parameterSoil: RtcHBVParameterSoilComplexType = Field( + ..., alias='rtc:parameterSoil' + ) + rtc_state: RtcHBVStateComplexType = Field(..., alias='rtc:state') + rtc_stateUpdate: Optional[RtcHBVStateUpdateComplexType] = Field( + None, alias='rtc:stateUpdate' + ) + + +class RtcIntervalComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_deadbandSetpointAbsolute: Optional[XsDouble] = Field( + None, alias='rtc:deadbandSetpointAbsolute' + ) + rtc_deadbandSetpointRelative: Optional[XsDouble] = Field( + None, alias='rtc:deadbandSetpointRelative' + ) + rtc_input: RtcIntervalInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcIntervalOutputComplexType = Field(..., alias='rtc:output') + rtc_settingAbove: XsDouble = Field(..., alias='rtc:settingAbove') + rtc_settingBelow: XsDouble = Field(..., alias='rtc:settingBelow') + rtc_settingMaxSpeed: Optional[XsDouble] = Field(None, alias='rtc:settingMaxSpeed') + rtc_settingMaxStep: Optional[XsDouble] = Field(None, alias='rtc:settingMaxStep') + + +class RtcLimiterComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcLimiterInputComplexType = Field(..., alias='rtc:input') + rtc_mode: RtcLimiterOptionEnumStringType = Field(..., alias='rtc:mode') + + +class RtcLinkStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_capillaryFlow: Optional[RtcCapillaryFlowStorageSystemComplexType] = Field( + None, + alias='rtc:capillaryFlow', + description='capillary flow, typically from GW (saturated upper zone - ground water) to UZ (unsaturated zone)', + ) + rtc_evaporationActual: Optional[ + RtcEvaporationActualStorageSystemComplexType + ] = Field( + None, + alias='rtc:evaporationActual', + description='actual evaporation from unsaturated zone storage node', + ) + rtc_evaporationInterception: Optional[ + RtcEvaporationInterceptionStorageSystemComplexType + ] = Field( + None, + alias='rtc:evaporationInterception', + description='evaporation from interception storage node, typically VEG/P/UP (vegeration/paved interception)', + ) + rtc_groundwaterFlow: Optional[RtcGroundwaterFlowStorageSystemComplexType] = Field( + None, + alias='rtc:groundwaterFlow', + description='GW Groundwater interaction with SW Surface water', + ) + rtc_irrigation: Optional[RtcIrrigationStorageSystemComplexType] = Field( + None, + alias='rtc:irrigation', + description='NOT REFACTORED. water consumption by domestic irrigation due to dry soil', + ) + rtc_meltRefreezing: Optional[RtcMeltRefreezingStorageSystemComplexType] = Field( + None, + alias='rtc:meltRefreezing', + description='NOT REFACTORED. melting and refreezing, typically used between SP (snow pack) and WC (water content) nodes', + ) + rtc_percolation: Optional[RtcPercolationStorageSystemComplexType] = Field( + None, + alias='rtc:percolation', + description='percolation, typically from GW upper zone to GW lower zone), or from UP unpaved surface to UZ unsaturated zone', + ) + rtc_releaseInterception: Optional[ + RtcReleaseAboveThresholdStorageSystemComplexType + ] = Field( + None, + alias='rtc:releaseInterception', + description='release above threshold from interception storage node, typically VEG/P/UP (uses relese above threshold link)', + ) + rtc_releaseWaterContent: Optional[ + RtcReleaseWaterContentStorageSystemComplexType + ] = Field( + None, + alias='rtc:releaseWaterContent', + description='NOT REFACTORED. release from water content storage node (typically WC)', + ) + rtc_response: Optional[RtcResponseStorageSystemComplexType] = Field( + None, + alias='rtc:response', + description='response from storage node, typically GW upper and GW lower zone storage nodes', + ) + rtc_sewerOverflow: Optional[ + RtcReleaseAboveThresholdStorageSystemComplexType + ] = Field( + None, + alias='rtc:sewerOverflow', + description='sewer overflow (uses relese above threshold link)', + ) + rtc_soilRunoff: Optional[RtcSoilRunoffStorageSystemComplexType] = Field( + None, + alias='rtc:soilRunoff', + description='soil runoff from UZ unsaturated zone to GW upper zone storage node', + ) + rtc_wasteWaterTreatmentPlant: Optional[ + RtcWaterDistributionConstantStorageSystemComplexType + ] = Field( + None, + alias='rtc:wasteWaterTreatmentPlant', + description='water treated via the WWTP, flows at a max rate of a constant max pump capacity. Uses water distribution constant link', + ) + rtc_waterDistributionConstant: Optional[ + RtcWaterDistributionConstantStorageSystemComplexType + ] = Field( + None, + alias='rtc:waterDistributionConstant', + description='water abstraction/distribution/consumption referenced to a constant demand (e.i. maxpump capacity). Uses water distribution constant link', + ) + rtc_waterDistributionVariable: Optional[ + RtcWaterDistributionVariableStorageSystemComplexType + ] = Field( + None, + alias='rtc:waterDistributionVariable', + description='water abstraction/distribution/consumption referenced to a variable demand (e.i. domestic or industrial water demands). Uses water distribution variable link)', + ) + + +class RtcLookupTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_extrapolationOption: Optional[RtcInterpolationOptionEnumStringType] = Field( + None, + alias='rtc:extrapolationOption', + description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', + ) + rtc_input: RtcLookupTableInputComplexType = Field(..., alias='rtc:input') + rtc_interpolationOption: Optional[RtcInterpolationOptionEnumStringType] = Field( + None, + alias='rtc:interpolationOption', + description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', + ) + rtc_output: RtcLookupTableOutputComplexType = Field(..., alias='rtc:output') + rtc_property: Optional[List[RtcPropertyEnum]] = Field(None, alias='rtc:property') + rtc_table: Optional[RtcTableLookupTableComplexType] = Field(None, alias='rtc:table') + rtc_tableExternal: Optional[XsString] = Field(None, alias='rtc:tableExternal') + + +class RtcLorentGeversComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcLorentGeversInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcLorentGeversOutputComplexType = Field(..., alias='rtc:output') + rtc_parameterResponse: RtcLorentGeversParameterResponseComplexType = Field( + ..., alias='rtc:parameterResponse' + ) + rtc_parameterSoil: RtcLorentGeversParameterSoilComplexType = Field( + ..., alias='rtc:parameterSoil' + ) + rtc_state: RtcLorentGeversStateComplexType = Field(..., alias='rtc:state') + rtc_stateUpdate: Optional[RtcLorentGeversStateUpdateComplexType] = Field( + None, alias='rtc:stateUpdate' + ) + + +class RtcMergerComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcMergerInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcMergerOutputComplexType = Field(..., alias='rtc:output') + + +class RtcMergerSplitterComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcMergerSplitterInputComplexType = Field(..., alias='rtc:input') + rtc_mode: RtcMergerSplitterEnumStringType = Field(..., alias='rtc:mode') + rtc_output: RtcMergerSplitterOutputComplexType = Field(..., alias='rtc:output') + + +class RtcMinSimpleRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_dateTable: Optional[RtcDateTableComplexType] = Field( + None, alias='rtc:dateTable' + ) + rtc_zones: Optional[RtcZonesComplexType] = Field(None, alias='rtc:zones') + + +class RtcNeuronComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: RtcNeuronIDSimpleType = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_bias: RtcExternalParameterSimpleType = Field(..., alias='rtc:bias') + rtc_input: RtcNeuronInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcNeuronOutputComplexType = Field(..., alias='rtc:output') + rtc_transferFunction: RtcTransferFunctionEnumStringType = Field( + ..., + alias='rtc:transferFunction', + description='transfer function: sigmoid, linear etc.', + ) + + +class RtcNodeComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _x: Optional[XsDouble] = Field(None, alias='@x') + _y: Optional[XsDouble] = Field(None, alias='@y') + rtc_input: Optional[RtcNodeInputComplexType] = Field(None, alias='rtc:input') + rtc_output: RtcNodeOutputComplexType = Field(..., alias='rtc:output') + rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + ..., + alias='rtc:storageCharacteristics', + description='Storage characteristics of the node: The storage as a function of water level h. It can be provided as table or as a formula.', + ) + + +class RtcOrificeComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_contractionCoefficient: XsDouble = Field( + ..., alias='rtc:contractionCoefficient' + ) + rtc_crestLevel: XsDouble = Field(..., alias='rtc:crestLevel') + rtc_exponentGateFormula: Optional[XsDouble] = Field( + None, alias='rtc:exponentGateFormula' + ) + rtc_exponentWeirFormula: Optional[XsDouble] = Field( + None, alias='rtc:exponentWeirFormula' + ) + rtc_flowDirection: Optional[RtcFlowDirectionEnumStringType] = Field( + None, alias='rtc:flowDirection' + ) + rtc_input: RtcOrificeInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcOrificeOutputComplexType = Field(..., alias='rtc:output') + rtc_width: XsDouble = Field(..., alias='rtc:width') + + +class RtcPumpComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_input: RtcPumpInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcPumpOutputComplexType = Field(..., alias='rtc:output') + + +class RtcReservoirCompactComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcReservoirCompactInputComplexType = Field( + ..., alias='rtc:input', description='input time series' + ) + rtc_levelStorageEquation: Optional[RtcLevelStorageEquationComplexType] = Field( + None, + alias='rtc:levelStorageEquation', + description='level storage equation according to S = A0 + A1*FB ( + A2*FB^2 + ...)', + ) + rtc_levelStorageTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:levelStorageTable', + description='level-storage relation of the reservoir, level in [m] or [ft], storage in [m3] or [KCFS-hrs]', + ) + rtc_levelStorageTableExternal: Optional[XsString] = Field( + None, + alias='rtc:levelStorageTableExternal', + description='externalizes the level storage table to a parameter file, requires the two columns "level" and "storage"', + ) + rtc_output: RtcReservoirCompactOutputComplexType = Field( + ..., alias='rtc:output', description='output time series' + ) + rtc_tailwaterConstant: Optional[RtcExternalParameterSimpleType] = Field( + None, + alias='rtc:tailwaterConstant', + description='constant value for tailwater elevation', + ) + rtc_tailwaterEquation: Optional[RtcTailwaterEquationComplexType] = Field( + None, + alias='rtc:tailwaterEquation', + description='tailwater equation according to TW = A + B*FB_downstream(t-1) + C*Q(t)^D, D is equal 1.0 by default if not provided', + ) + rtc_tailwaterExternalTable: Optional[XsString] = Field( + None, alias='rtc:tailwaterExternalTable', description='external tailwater table' + ) + rtc_tailwaterExternalTimeSeries: Optional[RtcTimeSeriesSimpleType] = Field( + None, + alias='rtc:tailwaterExternalTimeSeries', + description='external tailwater elevation from an external source or a previous calculation OUTSIDE of the reservoirCompact components', + ) + rtc_tailwaterTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:tailwaterTable', + description='tailwater as a function of the reservoir release only', + ) + rtc_tailwaterTidalEquation: Optional[RtcTailwaterTidalEquationComplexType] = Field( + None, + alias='rtc:tailwaterTidalEquation', + description='tidal influenced tailwater equation (works only in hindcast mode, use tailwater external with appropiate forecast of the tailwater in operational forecasting), TW = TWObs + A*(Q-QObs)', + ) + rtc_turbineEfficiencyConstant: Optional[RtcExternalParameterSimpleType] = Field( + None, alias='rtc:turbineEfficiencyConstant' + ) + rtc_turbineEfficiencyTable: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:turbineEfficiencyTable', + description='old formulation, will be removed in the future', + ) + rtc_turbineEfficiencyTable2D: Optional[ + RtcTurbineEfficiencyTableComplexType + ] = Field( + None, + alias='rtc:turbineEfficiencyTable2D', + description='new formulation, turbine effiency depends on head and turbine release, computation by 2D lookup', + ) + rtc_turbineEfficiencyTable2DExternal: Optional[XsString] = Field( + None, alias='rtc:turbineEfficiencyTable2DExternal' + ) + rtc_turbineEfficiencyTableExternal: Optional[XsString] = Field( + None, alias='rtc:turbineEfficiencyTableExternal' + ) + rtc_units: Optional[RtcUnitTypeEnumStringType] = Field( + None, alias='rtc:units', description=' "SI" or "Imperial" units' + ) + + +class RtcReservoirThunerseeRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + ..., alias='rtc:storageCharacteristics' + ) + + +class RtcRiverWeirComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_exponentWeirFormula: Optional[XsDouble] = Field( + None, alias='rtc:exponentWeirFormula' + ) + rtc_flowDirection: Optional[RtcFlowDirectionEnumStringType] = Field( + None, alias='rtc:flowDirection' + ) + rtc_input: RtcRiverWeirInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcRiverWeirOutputComplexType = Field(..., alias='rtc:output') + rtc_submergedFlowFactor: Optional[XsDouble] = Field( + None, alias='rtc:submergedFlowFactor' + ) + rtc_submergedFlowRatio: Optional[XsDouble] = Field( + None, alias='rtc:submergedFlowRatio' + ) + rtc_width: XsDouble = Field(..., alias='rtc:width') + + +class RtcSRMComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcSRMInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcSRMOutputComplexType = Field(..., alias='rtc:output') + rtc_parameter: RtcSRMParameterComplexType = Field(..., alias='rtc:parameter') + rtc_parameterZone: List[RtcSRMParameterZoneComplexType] = Field( + ..., alias='rtc:parameterZone', min_items=1 + ) + rtc_state: RtcSRMStateComplexType = Field(..., alias='rtc:state') + + +class RtcSimpleReservoirComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _multiplier: Optional[int] = Field(None, alias='@multiplier', ge=1) + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., alias='rtc:capacityCharacteristics' + ) + rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + ..., alias='rtc:storageCharacteristics' + ) + + +class RtcStorageSystemComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_link: List[RtcLinkStorageSystemComplexType] = Field( + ..., alias='rtc:link', min_items=1 + ) + rtc_output: Optional[RtcOutputStorageSystemComplexType] = Field( + None, alias='rtc:output' + ) + rtc_settings: Optional[RtcStorageSystemSettingsComplexType] = Field( + None, alias='rtc:settings' + ) + rtc_storageNode: List[RtcNodeStorageSystemComplexType] = Field( + ..., alias='rtc:storageNode', min_items=1 + ) + + +class RtcSubmodelComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_evaporationPotential: Optional[RtcEvaporationPotentialComplexType] = Field( + None, alias='rtc:evaporationPotential', description='potential evaporation' + ) + rtc_snowRainJunction: Optional[RtcSnowRainJunctionComplexType] = Field( + None, + alias='rtc:snowRainJunction', + description='separates precipitation into snow and rainfall', + ) + rtc_storageSystem: Optional[RtcStorageSystemComplexType] = Field( + None, + alias='rtc:storageSystem', + description='storage systems with storage nodes and links for setting up bucket models', + ) + rtc_typicalProfile: Optional[RtcTypicalProfileComplexType] = Field( + None, alias='rtc:typicalProfile' + ) + + +class RtcTailwaterComplexType(BaseModel): + """ + + Table containing data for different elevations. Type of element 'value' + depends on purpose for which table is used. + + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_constant: Optional[XsDouble] = Field( + None, alias='rtc:constant', description='Constant tailwater level [m]' + ) + rtc_output: RtcTailwaterOutputComplexType = Field(..., alias='rtc:output') + rtc_ratingCurve: Optional[RtcElevationTableComplexType] = Field( + None, + alias='rtc:ratingCurve', + description='Tailwater depending on discharge computed by a rating curve', + ) + + +class RtcTimeAbsoluteComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcTimeAbsoluteInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcTimeAbsoluteOutputComplexType = Field(..., alias='rtc:output') + + +class RtcTimeRelativeControlTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_record: List[RtcTimeRelativeControlTableRecordComplexType] = Field( + ..., alias='rtc:record', min_items=1 + ) + + +class RtcTunnelThunerseeRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., alias='rtc:capacityCharacteristics' + ) + rtc_levelThreshold: XsDouble = Field(..., alias='rtc:levelThreshold') + + +class RtcTurbineComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_capacityCharacteristics: RtcTurbineCapacityCharacteristicsComplexType = Field( + ..., alias='rtc:capacityCharacteristics' + ) + rtc_efficiencyCharacteristics: RtcTurbineEfficiencyCharacteristicsComplexType = Field( + ..., alias='rtc:efficiencyCharacteristics' + ) + rtc_input: RtcTurbineInputComplexType = Field(..., alias='rtc:input') + rtc_nodeDown: XsString = Field(..., alias='rtc:nodeDown') + rtc_nodeUp: XsString = Field(..., alias='rtc:nodeUp') + rtc_output: RtcTurbineOutputComplexType = Field(..., alias='rtc:output') + + +class RtcUncontrolledOutletComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., + alias='rtc:capacityCharacteristics', + description='Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero', + ) + rtc_input: Optional[RtcUOutletInputComplexType] = Field(None, alias='rtc:input') + rtc_output: RtcOutletOutputComplexType = Field(..., alias='rtc:output') + + +class RtcUnitHydrographWeightComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_custom: Optional[RtcUnitHydrographWeightCustomComplexType] = Field( + None, alias='rtc:custom', description='user-defined weights' + ) + rtc_triangular: Optional[RtcUnitHydrographWeightTriangularComplexType] = Field( + None, alias='rtc:triangular', description='weights with triangular shape' + ) + + +class RtcWeirThunerseeRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + ..., alias='rtc:capacityCharacteristics' + ) + + +class RtcXDimComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_xDim: List[RtcYDimComplexType] = Field(..., alias='rtc:xDim', min_items=1) + + +class RtcBranchComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + rtc_alpha1: Optional[XsDouble] = Field( + None, + alias='rtc:alpha1', + description='the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw', + ) + rtc_alpha2: Optional[XsDouble] = Field( + None, + alias='rtc:alpha2', + description='the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw', + ) + rtc_crossSection: RtcCrossSectionComplexType = Field( + ..., + alias='rtc:crossSection', + description='Cross section in the center of the flow branch.', + ) + rtc_equationType: Optional[RtcEquationEnumStringType] = Field( + None, alias='rtc:equationType' + ) + rtc_input: RtcBranchInputComplexType = Field(..., alias='rtc:input') + rtc_length: XsDouble = Field( + ..., alias='rtc:length', description='Length of the flow branch' + ) + rtc_output: RtcBranchOutputComplexType = Field(..., alias='rtc:output') + rtc_roughness: RtcCrossSectionRoughnessComplexType = Field( + ..., + alias='rtc:roughness', + description='Roughness (Chezy) as a function of elevation h', + ) + rtc_slope: Optional[XsDouble] = Field( + None, alias='rtc:slope', description='slope for optional kinematic wave branch' + ) + rtc_spatialScheme: Optional[RtcSpatialEnumStringType] = Field( + None, alias='rtc:spatialScheme' + ) + + +class RtcDateLookupTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_dateRecord: List[RtcDateRecord2ComplexType] = Field( + ..., alias='rtc:dateRecord', min_items=1 + ) + rtc_input: RtcDateLookupTableInputComplexType = Field(..., alias='rtc:input') + rtc_interpolationOptions: RtcInterpolationOptionsComplexType = Field( + ..., + alias='rtc:interpolationOptions', + description='Interpolation option BLOCK / LINEAR for the two inputs date and value', + ) + rtc_output: RtcDateLookupTableOutputComplexType = Field(..., alias='rtc:output') + + +class RtcHydraulicStructureComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + rtc_orifice: Optional[RtcOrificeComplexType] = Field( + None, + alias='rtc:orifice', + description='Orifice according to definition in SOBEK-Rural', + ) + rtc_pump: Optional[RtcPumpComplexType] = Field( + None, alias='rtc:pump', description='Pump' + ) + rtc_weir: Optional[RtcRiverWeirComplexType] = Field( + None, + alias='rtc:weir', + description='Weir according to definition in SOBEK-River', + ) + + +class RtcHydrologicalModelComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_submodel: List[RtcSubmodelComplexType] = Field( + ..., alias='rtc:submodel', min_items=1 + ) + + +class RtcLayerComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: RtcLayerIDSimpleType = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_neuron: List[RtcNeuronComplexType] = Field(..., alias='rtc:neuron', min_items=1) + + +class RtcNeuralNetworkComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_layer: List[RtcLayerComplexType] = Field(..., alias='rtc:layer', min_items=1) + + +class RtcReservoirComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_controlledOutlet: Optional[List[RtcControlledOutletComplexType]] = Field( + None, alias='rtc:controlledOutlet' + ) + rtc_input: RtcReservoirInputComplexType = Field(..., alias='rtc:input') + rtc_mode: RtcPoolRoutingEnumStringType = Field( + ..., + alias='rtc:mode', + description='Time integration scheme for the network components', + ) + rtc_output: RtcReservoirOutputComplexType = Field(..., alias='rtc:output') + rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + ..., + alias='rtc:storageCharacteristics', + description='Storage characteristics of the reservoir: The storage S as a function of the water level h can be provided as a table or formula.', + ) + rtc_tailwater: Optional[RtcTailwaterComplexType] = Field( + None, + alias='rtc:tailwater', + description='Tailwater rating curve\n ', + ) + rtc_theta: XsDouble = Field( + ..., + alias='rtc:theta', + description='Time weighting coefficient for the semi-implicit theta schema: 0 is equal to a full weight on the old time step, 1 represents a full weight on new time step. The coefficient is not used in the fully explicit or implicit schemas. The permitted range is between 0.5 and 1.0.', + ) + rtc_uncontrolledOutlet: Optional[List[RtcUncontrolledOutletComplexType]] = Field( + None, alias='rtc:uncontrolledOutlet' + ) + + +class RtcReservoirRoutingComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_simpleReservoir: List[RtcSimpleReservoirComplexType] = Field( + ..., alias='rtc:simpleReservoir', min_items=1 + ) + + +class RtcRoutingComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_dischargeRef: Optional[XsString] = Field( + None, + alias='rtc:dischargeRef', + description='Reference to timeseries in data configuration', + ) + rtc_inflow: Optional[List[RtcInflowComplexType]] = Field(None, alias='rtc:inflow') + rtc_outputReferences: RtcRoutingOutputComplexType = Field( + ..., + alias='rtc:outputReferences', + description='Contains references to the output timeseries in the data configuration', + ) + rtc_reservoirRouting: Optional[RtcReservoirRoutingComplexType] = Field( + None, alias='rtc:reservoirRouting' + ) + + +class RtcTable2DLookupTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_matrix: RtcXDimComplexType = Field(..., alias='rtc:matrix') + rtc_x: RtcValueArrayComplexType = Field(..., alias='rtc:x') + rtc_y: RtcValueArrayComplexType = Field(..., alias='rtc:y') + + +class RtcThunerseeRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcThunerseeRuleInputComplexType = Field(..., alias='rtc:input') + rtc_levelSetpoint: XsDouble = Field(..., alias='rtc:levelSetpoint') + rtc_output: RtcThunerseeRuleOutputComplexType = Field(..., alias='rtc:output') + rtc_releaseLimiterPercentage: XsDouble = Field( + ..., alias='rtc:releaseLimiterPercentage' + ) + rtc_reservoir: RtcReservoirThunerseeRuleComplexType = Field( + ..., alias='rtc:reservoir' + ) + rtc_tunnel: RtcTunnelThunerseeRuleComplexType = Field(..., alias='rtc:tunnel') + rtc_weir: RtcWeirThunerseeRuleComplexType = Field(..., alias='rtc:weir') + + +class RtcTimeRelativeComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_controlTable: RtcTimeRelativeControlTableComplexType = Field( + ..., alias='rtc:controlTable', description='table with time [s] / value records' + ) + rtc_input: Optional[RtcTimeRelativeInputComplexType] = Field( + None, alias='rtc:input' + ) + rtc_interpolationOption: Optional[RtcInterpolationOptionEnumStringType] = Field( + None, + alias='rtc:interpolationOption', + description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', + ) + rtc_maximumPeriod: Optional[XsDouble] = Field(None, alias='rtc:maximumPeriod') + rtc_mode: Optional[RtcMode1] = Field( + None, + alias='rtc:mode', + description='timeRelative mode, either "NATIVE" or "RETAINVALUEWHENINACTIVE"', + ) + rtc_output: RtcTimeRelativeOutputComplexType = Field(..., alias='rtc:output') + rtc_valueOption: RtcTimeRelativeEnumStringType = Field( + ..., + alias='rtc:valueOption', + description='setting if the control table provides the absolute value or the relative value ', + ) + + +class RtcUnitHydrographComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcUnitHydrographInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcUnitHydrographOutputComplexType = Field(..., alias='rtc:output') + rtc_weights: RtcUnitHydrographWeightComplexType = Field(..., alias='rtc:weights') + + +class RtcHydraulicModelComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_branch: Optional[List[RtcBranchComplexType]] = Field(None, alias='rtc:branch') + rtc_hydraulicStructure: Optional[List[RtcHydraulicStructureComplexType]] = Field( + None, alias='rtc:hydraulicStructure' + ) + rtc_mode: RtcHydraulicModelModeEnumStringType = Field(..., alias='rtc:mode') + rtc_node: Optional[List[RtcNodeComplexType]] = Field(None, alias='rtc:node') + rtc_numericalTolerance: XsDouble = Field(..., alias='rtc:numericalTolerance') + rtc_output: Optional[RtcHydraulicModelOutputComplexType] = Field( + None, alias='rtc:output' + ) + rtc_sequentialImplicitSettings: Optional[ + RtcHydraulicModelSequentialImplicitComplexType + ] = Field(None, alias='rtc:sequentialImplicitSettings') + rtc_simultaneousSettings: Optional[ + RtcHydraulicModelSimultaneousComplexType + ] = Field(None, alias='rtc:simultaneousSettings') + + +class RtcLookup2DTableComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_input: RtcLookup2DTableInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcLookup2DTableOutputComplexType = Field(..., alias='rtc:output') + rtc_table: RtcTable2DLookupTableComplexType = Field(..., alias='rtc:table') + + +class RtcComponentComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _template: Optional[XsString] = Field(None, alias='@template') + rtc_accumulation: Optional[RtcAccumulationComplexType] = Field( + None, + alias='rtc:accumulation', + description='Accumulation of a time series over time', + ) + rtc_allocationTable: Optional[RtcAllocationTableComplexType] = Field( + None, alias='rtc:allocationTable' + ) + rtc_arma: Optional[RtcArmaComplexType] = Field( + None, alias='rtc:arma', description='Arma error correction model' + ) + rtc_expression: Optional[RtcExpressionComplexType] = Field( + None, alias='rtc:expression', description='Mathematical expression' + ) + rtc_gradient: Optional[RtcGradientComplexType] = Field( + None, + alias='rtc:gradient', + description='Post processing for computing gradients of simulated values', + ) + rtc_hbv: Optional[RtcHBVComplexType] = Field( + None, + alias='rtc:hbv', + description='This is an implementation of the HBV-96 hydrological model. Note that the unit hydrograph is not included, but available separately.', + ) + rtc_hydraulicModel: Optional[RtcHydraulicModelComplexType] = Field( + None, + alias='rtc:hydraulicModel', + description='Simplifications of the full dynamic, one-dimensional hydraulic model according to the kinematic wave, diffusive wave and inertial assumptions.', + ) + rtc_hydrologicalModel: Optional[RtcHydrologicalModelComplexType] = Field( + None, + alias='rtc:hydrologicalModel', + description='Modular, conceptual hydrological model with implicit time stepping scheme.', + ) + rtc_lookup2DTable: Optional[RtcLookup2DTableComplexType] = Field( + None, alias='rtc:lookup2DTable' + ) + rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( + None, alias='rtc:lookupTable' + ) + rtc_lorentGevers: Optional[RtcLorentGeversComplexType] = Field( + None, alias='rtc:lorentGevers', description='Lorent/Gevers hydrological model' + ) + rtc_merger: Optional[RtcMergerComplexType] = Field(None, alias='rtc:merger') + rtc_mergerSplitter: Optional[RtcMergerSplitterComplexType] = Field( + None, alias='rtc:mergerSplitter' + ) + rtc_neuralNetwork: Optional[RtcNeuralNetworkComplexType] = Field( + None, alias='rtc:neuralNetwork' + ) + rtc_reservoir: Optional[RtcReservoirComplexType] = Field( + None, + alias='rtc:reservoir', + description='Reservoir with arbitrary number of inlets and outlets.', + ) + rtc_reservoirCompact: Optional[RtcReservoirCompactComplexType] = Field( + None, + alias='rtc:reservoirCompact', + description='Test implementation of a compact reservoir class for simultaneous and sequential optimization mode', + ) + rtc_routing: Optional[RtcRoutingComplexType] = Field( + None, alias='rtc:routing', description='not implemented yet' + ) + rtc_srm: Optional[RtcSRMComplexType] = Field(None, alias='rtc:srm') + rtc_unitDelay: Optional[RtcUnitDelayComplexType] = Field( + None, + alias='rtc:unitDelay', + description='Unit delay operator for delaying a value by n times the time step of the model.', + ) + rtc_unitHydrograph: Optional[RtcUnitHydrographComplexType] = Field( + None, alias='rtc:unitHydrograph', description='Unit hydrograph' + ) + + +class RtcComponentsComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_component: List[RtcComponentComplexType] = Field( + ..., alias='rtc:component', min_items=1 + ) + + +class Model(BaseModel): + """ + JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com) + """ + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') + _xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + ) + rtc_rtcToolsConfig: Optional[_.RtcRtcToolsConfig] = Field( + None, alias='rtc:rtcToolsConfig' + ) + + +class RtcDeadBandTimeComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_discrete: RtcDeadBandTimeDiscreteComplexType = Field(..., alias='rtc:discrete') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_input: RtcDeadBandTimeInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcDeadBandTimeOutputComplexType = Field(..., alias='rtc:output') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + + +class RtcDeadBandTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_conditionOff: RtcRelationalConditionComplexType = Field( + ..., alias='rtc:conditionOff' + ) + rtc_conditionOn: RtcRelationalConditionComplexType = Field( + ..., alias='rtc:conditionOn' + ) + rtc_default: Optional[XsBoolean] = Field(None, alias='rtc:default') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + + +class RtcPolygonLookupComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_default: Optional[XsDouble] = Field(None, alias='rtc:default') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_input: RtcPolygonLookupInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcPolygonLookupOutputComplexType = Field(..., alias='rtc:output') + rtc_polygons: RtcPolygonsComplexType = Field(..., alias='rtc:polygons') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + + +class RtcRtcToolsConfigComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_components: Optional[RtcComponentsComplexType] = Field( + None, + alias='rtc:components', + description='The components section includes all simulation components.', + ) + rtc_general: Optional[RtcGeneralModuleConfigComplexType] = Field( + None, + alias='rtc:general', + description='OBSOLETE. Still here for backwards compatibility. Remove after next release.', + ) + rtc_rules: Optional[RtcRulesComplexType] = Field( + None, + alias='rtc:rules', + description='The rules section includes operating rules or controllers for defining the release of reservoir, structural settings of gates etc.', + ) + rtc_triggers: Optional[RtcTriggersComplexType] = Field( + None, + alias='rtc:triggers', + description='Triggers may activate or deactivate rules defined in the section above.', + ) + + +class RtcRuleComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_constant: Optional[RtcConstantRuleComplexType] = Field( + None, alias='rtc:constant', description='Simple rule with constant value' + ) + rtc_dateLookupTable: Optional[RtcDateLookupTableComplexType] = Field( + None, + alias='rtc:dateLookupTable', + description='Date lookup table, output y is a function of date and an input value x, the interpolation on the date / value axis can be BLOCK or LINEAR, the number of records should be constant for each date record', + ) + rtc_deadBandTime: Optional[RtcDeadBandTimeComplexType] = Field( + None, alias='rtc:deadBandTime' + ) + rtc_deadBandValue: Optional[RtcDeadBandValueComplexType] = Field( + None, + alias='rtc:deadBandValue', + description='Deadband threshold, yNew will become yOld, if the change yNew-yOld is smaller than the threshold value ', + ) + rtc_dedicated_Aebi: Optional[RtcAebiRuleComplexType] = Field( + None, + alias='rtc:dedicated-Aebi', + description='Dedicated rule for the control of Bielersee, Canton Bern, CH', + ) + rtc_dedicated_Thunersee: Optional[RtcThunerseeRuleComplexType] = Field( + None, + alias='rtc:dedicated-Thunersee', + description='Dedicated rule for the control of Thunersee, Canton Bern, CH', + ) + rtc_expression: Optional[RtcExpressionComplexType] = Field( + None, alias='rtc:expression', description='mathematical expression' + ) + rtc_guideband: Optional[RtcGuideBandRuleComplexType] = Field( + None, + alias='rtc:guideband', + description='Guide band rule, output get 0 if input less equal xMin, 1 if input greater equal xMax, linear interpolation otherwise xMin and xMax can be a function of date, main application in combination with a relative release of a reservoir outlet', + ) + rtc_interval: Optional[RtcIntervalComplexType] = Field(None, alias='rtc:interval') + rtc_limiter: Optional[RtcLimiterComplexType] = Field( + None, + alias='rtc:limiter', + description='Limiter for limiting the change of a variable in a time step to a relative (PERCENTAGE) or absolute (ABSOLUTE) change', + ) + rtc_lookup2DTable: Optional[RtcLookup2DTableComplexType] = Field( + None, alias='rtc:lookup2DTable' + ) + rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( + None, alias='rtc:lookupTable' + ) + rtc_merger: Optional[RtcMergerComplexType] = Field( + None, + alias='rtc:merger', + description='Data hierarchy, highest input has highest priority', + ) + rtc_pid: Optional[RtcPidComplexType] = Field(None, alias='rtc:pid') + rtc_timeAbsolute: Optional[RtcTimeAbsoluteComplexType] = Field( + None, alias='rtc:timeAbsolute', description='absolute time controller' + ) + rtc_timeRelative: Optional[RtcTimeRelativeComplexType] = Field( + None, alias='rtc:timeRelative', description='relative time controller' + ) + rtc_unitDelay: Optional[RtcUnitDelayComplexType] = Field( + None, + alias='rtc:unitDelay', + description='Unit delay operator for delaying a value by n times the time step of the model.', + ) + + +class RtcRuleTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_trigger: Optional[List[RtcTriggerComplexType]] = Field( + None, alias='rtc:trigger' + ) + + +class RtcRulesComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_rule: List[RtcRuleComplexType] = Field(..., alias='rtc:rule', min_items=1) + + +class RtcSetTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_default: Optional[XsBoolean] = Field(None, alias='rtc:default') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_logicalOperator: RtcLogicalOperatorEnumStringType = Field( + ..., alias='rtc:logicalOperator' + ) + rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field24] = Field( + None, alias='rtc:x1Series' + ) + rtc_x1Trigger: Optional[RtcTriggerComplexType] = Field(None, alias='rtc:x1Trigger') + rtc_x1Value: Optional[XsBoolean] = Field(None, alias='rtc:x1Value') + rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field25] = Field( + None, alias='rtc:x2Series' + ) + rtc_x2Trigger: Optional[RtcTriggerComplexType] = Field(None, alias='rtc:x2Trigger') + rtc_x2Value: Optional[XsBoolean] = Field(None, alias='rtc:x2Value') + + +class RtcSpreadsheetComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_defaultInputValue: Optional[XsDouble] = Field( + None, + alias='rtc:defaultInputValue', + description='default input value, if input is NaN or infinity', + ) + rtc_defaultOutputValue: Optional[XsDouble] = Field( + None, + alias='rtc:defaultOutputValue', + description='default output, if no combination of the table applies', + ) + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_input: RtcSpreadsheetInputComplexType = Field(..., alias='rtc:input') + rtc_output: RtcSpreadsheetOutputComplexType = Field(..., alias='rtc:output') + rtc_tables: RtcSpreadsheetTablesComplexType = Field( + ..., + alias='rtc:tables', + description='number of tables with input, output values, the initial state can be taken into account optionally', + ) + rtc_tolerance: XsDouble = Field( + ..., + alias='rtc:tolerance', + description='tolerance for finding a match, keep in mind that the all variable are stored in doubles', + ) + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_validPeriods: Optional[RtcValidPeriodsComplexType] = Field( + None, + alias='rtc:validPeriods', + description='optional period of the year for which the trigger is active', + ) + + +class RtcStandardTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _id: XsString = Field(..., alias='@id') + _name: Optional[XsString] = Field(None, alias='@name') + rtc_condition: RtcRelationalConditionComplexType = Field(..., alias='rtc:condition') + rtc_default: Optional[XsBoolean] = Field(None, alias='rtc:default') + rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:false', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') + rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + None, + alias='rtc:true', + description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', + ) + + +class RtcTriggerComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_deadBand: Optional[RtcDeadBandTriggerComplexType] = Field( + None, alias='rtc:deadBand', description='trigger with deadband' + ) + rtc_deadBandTime: Optional[RtcDeadBandTimeComplexType] = Field( + None, alias='rtc:deadBandTime', description='trigger with time deadband' + ) + rtc_expression: Optional[RtcExpressionComplexType] = Field( + None, alias='rtc:expression', description='mathematical expression' + ) + rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( + None, alias='rtc:lookupTable' + ) + rtc_merger: Optional[RtcMergerComplexType] = Field( + None, + alias='rtc:merger', + description='Data hierarchy, highest input has highest priority', + ) + rtc_polygonLookup: Optional[RtcPolygonLookupComplexType] = Field( + None, + alias='rtc:polygonLookup', + description='trigger with two-dimensional lookup table, trigger results are defined by polygons', + ) + rtc_ruleReference: Optional[XsString] = Field(None, alias='rtc:ruleReference') + rtc_set: Optional[RtcSetTriggerComplexType] = Field( + None, alias='rtc:set', description='set of triggers' + ) + rtc_spreadsheet: Optional[RtcSpreadsheetComplexType] = Field( + None, alias='rtc:spreadsheet', description='spread sheet trigger' + ) + rtc_standard: Optional[RtcStandardTriggerComplexType] = Field( + None, alias='rtc:standard', description='standard trigger' + ) + + +class RtcTriggersComplexType(BaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + rtc_trigger: List[RtcTriggerComplexType] = Field( + ..., alias='rtc:trigger', min_items=1 + ) + + +Model.update_forward_refs() +RtcDeadBandTimeComplexType.update_forward_refs() +RtcDeadBandTriggerComplexType.update_forward_refs() +RtcPolygonLookupComplexType.update_forward_refs() +RtcRtcToolsConfigComplexType.update_forward_refs() +RtcRuleTriggerComplexType.update_forward_refs() +RtcSetTriggerComplexType.update_forward_refs() diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/rtcToolsConfig.json b/hydrolib/core/io/rtc/rtcToolsConfig/generated/rtcToolsConfig.json new file mode 100644 index 000000000..f8985e1ef --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/rtcToolsConfig.json @@ -0,0 +1,7582 @@ +{ + "$schema": "http://json-schema.org/schema#", + "additionalProperties": false, + "definitions": { + "..ExternalParameterSimpleType.1": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "attr_useAbsoluteAsSpillCap": { + "$ref": "#/definitions/xs:boolean" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.1": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_selectingColumnId": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_id" + ], + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.10": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.11": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.12": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.13": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.14": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.15": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.16": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.17": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_factor": { + "$ref": "#/definitions/xs:double" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.18": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_nStepSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_nStepSeriesStart": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.19": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_factor": { + "$ref": "#/definitions/xs:double" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.2": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.20": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.21": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.22": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.23": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.24": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.25": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.3": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.4": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.5": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.6": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_factor": { + "$ref": "#/definitions/xs:double" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.7": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_useAbsoluteAsSpillCap": { + "$ref": "#/definitions/xs:boolean" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.8": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_factor": { + "$ref": "#/definitions/xs:double" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..TimeSeriesSimpleType.9": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_ref": { + "$ref": "#/definitions/inputReferenceEnumStringType" + } + }, + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..xs:string.1": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/xs:string" + }, + "attr_weight": { + "$ref": "#/definitions/ExternalParameterSimpleType" + } + }, + "required": [ + "attr_weight" + ], + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + "..xs:string.2": { + "additionalProperties": false, + "properties": { + "$": { + "$ref": "#/definitions/xs:string" + }, + "attr_weight": { + "$ref": "#/definitions/ExternalParameterSimpleType" + } + }, + "required": [ + "attr_weight" + ], + "type": [ + "object", + "string", + "number", + "boolean" + ] + }, + ".rtcToolsConfig": { + "$ref": "#/definitions/RtcToolsConfigComplexType" + }, + "ATableComplexType": { + "additionalProperties": false, + "properties": { + "row": { + "items": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_id", + "attr_value" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "row" + ], + "type": "object" + }, + "AccumulationComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/AccumulationInputComplexType", + "description": "input variable" + }, + "multiplier": { + "$ref": "#/definitions/xs:double", + "description": "optional multiplier" + }, + "output": { + "$ref": "#/definitions/AccumulationOutputComplexType" + } + }, + "required": [ + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "AccumulationInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "AccumulationOutputComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "y" + ], + "type": "object" + }, + "AebiRuleComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "FactorRTG": { + "$ref": "#/definitions/xs:double" + }, + "LangeteFall": { + "$ref": "#/definitions/caseLangetenEnumStringType" + }, + "input": { + "$ref": "#/definitions/AebiRuleInputComplexType" + }, + "output": { + "$ref": "#/definitions/AebiRuleOutputComplexType" + } + }, + "required": [ + "FactorRTG", + "LangeteFall", + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "AebiRuleInputComplexType": { + "additionalProperties": false, + "properties": { + "AareBruegg": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "AareBrueggMin2": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "AareMurg": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "AbflussReglementPort": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "Emenmatt": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "EmenmattMin4": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "Langeten": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "LangetenMin4": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "PegelBielersee": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "AareBruegg", + "AareBrueggMin2", + "AareMurg", + "AbflussReglementPort", + "Emenmatt", + "EmenmattMin4", + "Langeten", + "LangetenMin4", + "PegelBielersee" + ], + "type": "object" + }, + "AebiRuleOutputComplexType": { + "additionalProperties": false, + "properties": { + "AareMurg_oKWMin1": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "AbflussaenderungPort": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "MaxAbflussPort": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "ProvMaxAbflussPort": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "RTG": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "AareMurg_oKWMin1", + "AbflussaenderungPort", + "MaxAbflussPort", + "ProvMaxAbflussPort", + "RTG" + ], + "type": "object" + }, + "AggregationTypeEnumStringType": { + "enum": [ + "BLOCK", + "LINEAR" + ], + "type": "string" + }, + "AllocationTableComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputATableComplexType" + }, + "output": { + "$ref": "#/definitions/OutputATableComplexType" + }, + "table": { + "$ref": "#/definitions/ATableComplexType" + }, + "tableExternal": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "ArmaComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "arCoef": { + "$ref": "#/definitions/xs:double", + "description": "autoregression coefficient related to prior time step" + }, + "input": { + "$ref": "#/definitions/ArmaInputComplexType" + }, + "output": { + "$ref": "#/definitions/ArmaOutputComplexType" + } + }, + "required": [ + "arCoef", + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "ArmaInputComplexType": { + "additionalProperties": false, + "properties": { + "obs": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "observed data" + }, + "sim": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "simulated data" + } + }, + "required": [ + "obs", + "sim" + ], + "type": "object" + }, + "ArmaOutputComplexType": { + "additionalProperties": false, + "properties": { + "arma": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "output-corrected data" + } + }, + "required": [ + "arma" + ], + "type": "object" + }, + "BranchComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "alpha1": { + "$ref": "#/definitions/xs:double", + "description": "the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw" + }, + "alpha2": { + "$ref": "#/definitions/xs:double", + "description": "the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw" + }, + "crossSection": { + "$ref": "#/definitions/CrossSectionComplexType", + "description": "Cross section in the center of the flow branch." + }, + "equationType": { + "$ref": "#/definitions/EquationEnumStringType" + }, + "input": { + "$ref": "#/definitions/BranchInputComplexType" + }, + "length": { + "$ref": "#/definitions/xs:double", + "description": "Length of the flow branch" + }, + "output": { + "$ref": "#/definitions/BranchOutputComplexType" + }, + "roughness": { + "$ref": "#/definitions/CrossSectionRoughnessComplexType", + "description": "Roughness (Chezy) as a function of elevation h" + }, + "slope": { + "$ref": "#/definitions/xs:double", + "description": "slope for optional kinematic wave branch" + }, + "spatialScheme": { + "$ref": "#/definitions/SpatialEnumStringType" + } + }, + "required": [ + "crossSection", + "input", + "length", + "output", + "roughness", + "attr_id" + ], + "type": "object" + }, + "BranchGradientComplexType": { + "additionalProperties": false, + "properties": { + "storageDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "storageUp": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "surfaceAreaDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "surfaceAreaUp": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "storageDown", + "storageUp", + "surfaceAreaDown", + "surfaceAreaUp" + ], + "type": "object" + }, + "BranchInputComplexType": { + "additionalProperties": false, + "properties": { + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "ID of downstream node" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "ID of upstream node" + }, + "ux": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional wind velocity at an elevation of 10 m above the water surface (x-direction), implementation is for the inertial model only" + }, + "uy": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional wind velocity at an elevation of 10 m above the water surface (y-direction), implementation is for the inertial model only" + } + }, + "required": [ + "HDown", + "HUp" + ], + "type": "object" + }, + "BranchOutputComplexType": { + "additionalProperties": false, + "properties": { + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "Q" + ], + "type": "object" + }, + "BranchTypeEnumStringType": { + "enum": [ + "KINEMATIC", + "DIFFUSIVE", + "DIFFUSIVEPLUSLOCAL" + ], + "type": "string" + }, + "CapacityCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "attr_reference": { + "$ref": "#/definitions/CapacityReferenceEnumStringType" + }, + "capacityEquation": { + "$ref": "#/definitions/EquationsComplexType" + }, + "capacityTable": { + "$ref": "#/definitions/ElevationTableComplexType" + } + }, + "type": "object" + }, + "CapacityReferenceEnumStringType": { + "description": "reference for capacity", + "enum": [ + "UPSTREAMLEVEL", + "HEAD" + ], + "type": "string" + }, + "CapillaryFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputCapillaryFlowStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterCapillaryFlowStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "ColumnsComplexType": { + "additionalProperties": false, + "properties": { + "attr_head01": { + "$ref": "#/definitions/xs:double" + }, + "attr_head02": { + "$ref": "#/definitions/xs:double" + }, + "attr_head03": { + "$ref": "#/definitions/xs:double" + }, + "attr_head04": { + "$ref": "#/definitions/xs:double" + }, + "attr_head05": { + "$ref": "#/definitions/xs:double" + }, + "attr_head06": { + "$ref": "#/definitions/xs:double" + }, + "attr_head07": { + "$ref": "#/definitions/xs:double" + }, + "attr_head08": { + "$ref": "#/definitions/xs:double" + }, + "attr_head09": { + "$ref": "#/definitions/xs:double" + }, + "attr_head10": { + "$ref": "#/definitions/xs:double" + }, + "attr_head11": { + "$ref": "#/definitions/xs:double" + }, + "attr_head12": { + "$ref": "#/definitions/xs:double" + }, + "attr_head13": { + "$ref": "#/definitions/xs:double" + }, + "attr_head14": { + "$ref": "#/definitions/xs:double" + }, + "attr_head15": { + "$ref": "#/definitions/xs:double" + }, + "attr_head16": { + "$ref": "#/definitions/xs:double" + }, + "attr_head17": { + "$ref": "#/definitions/xs:double" + }, + "attr_head18": { + "$ref": "#/definitions/xs:double" + }, + "attr_head19": { + "$ref": "#/definitions/xs:double" + }, + "attr_head20": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_head01", + "attr_head02" + ], + "type": "object" + }, + "ComponentComplexType": { + "additionalProperties": false, + "properties": { + "attr_template": { + "$ref": "#/definitions/xs:string" + }, + "accumulation": { + "$ref": "#/definitions/AccumulationComplexType", + "description": "Accumulation of a time series over time" + }, + "allocationTable": { + "$ref": "#/definitions/AllocationTableComplexType" + }, + "arma": { + "$ref": "#/definitions/ArmaComplexType", + "description": "Arma error correction model" + }, + "expression": { + "$ref": "#/definitions/ExpressionComplexType", + "description": "Mathematical expression" + }, + "gradient": { + "$ref": "#/definitions/GradientComplexType", + "description": "Post processing for computing gradients of simulated values" + }, + "hbv": { + "$ref": "#/definitions/HBVComplexType", + "description": "This is an implementation of the HBV-96 hydrological model. Note that the unit hydrograph is not included, but available separately." + }, + "hydraulicModel": { + "$ref": "#/definitions/HydraulicModelComplexType", + "description": "Simplifications of the full dynamic, one-dimensional hydraulic model according to the kinematic wave, diffusive wave and inertial assumptions." + }, + "hydrologicalModel": { + "$ref": "#/definitions/HydrologicalModelComplexType", + "description": "Modular, conceptual hydrological model with implicit time stepping scheme." + }, + "lookup2DTable": { + "$ref": "#/definitions/Lookup2DTableComplexType" + }, + "lookupTable": { + "$ref": "#/definitions/LookupTableComplexType" + }, + "lorentGevers": { + "$ref": "#/definitions/LorentGeversComplexType", + "description": "Lorent/Gevers hydrological model" + }, + "merger": { + "$ref": "#/definitions/MergerComplexType" + }, + "mergerSplitter": { + "$ref": "#/definitions/MergerSplitterComplexType" + }, + "neuralNetwork": { + "$ref": "#/definitions/NeuralNetworkComplexType" + }, + "reservoir": { + "$ref": "#/definitions/ReservoirComplexType", + "description": "Reservoir with arbitrary number of inlets and outlets." + }, + "reservoirCompact": { + "$ref": "#/definitions/ReservoirCompactComplexType", + "description": "Test implementation of a compact reservoir class for simultaneous and sequential optimization mode" + }, + "routing": { + "$ref": "#/definitions/RoutingComplexType", + "description": "not implemented yet" + }, + "srm": { + "$ref": "#/definitions/SRMComplexType" + }, + "unitDelay": { + "$ref": "#/definitions/UnitDelayComplexType", + "description": "Unit delay operator for delaying a value by n times the time step of the model." + }, + "unitHydrograph": { + "$ref": "#/definitions/UnitHydrographComplexType", + "description": "Unit hydrograph" + } + }, + "type": "object" + }, + "ComponentsComplexType": { + "additionalProperties": false, + "properties": { + "component": { + "items": { + "$ref": "#/definitions/ComponentComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "component" + ], + "type": "object" + }, + "ConditionComplexType": { + "additionalProperties": false, + "properties": { + "greaterThan": { + "$ref": "#/definitions/xs:double" + }, + "lessThan": { + "$ref": "#/definitions/xs:double" + } + }, + "type": "object" + }, + "ConnectionCoefficientsComplexType": { + "additionalProperties": false, + "properties": { + "a": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "b": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "c": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "d": { + "$ref": "#/definitions/ExternalParameterSimpleType" + } + }, + "required": [ + "a", + "b", + "c", + "d" + ], + "type": "object" + }, + "ConnectionInputComplexType": { + "additionalProperties": false, + "properties": { + "discharge": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "downstreamLevel": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "upstreamLevel": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "discharge", + "downstreamLevel", + "upstreamLevel" + ], + "type": "object" + }, + "ConnectionOutputComplexType": { + "additionalProperties": false, + "properties": { + "discharge": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "discharge" + ], + "type": "object" + }, + "ConstantRuleComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "constant": { + "$ref": "#/definitions/xs:double" + }, + "output": { + "$ref": "#/definitions/ConstantRuleOutputComplexType" + } + }, + "required": [ + "constant", + "output", + "attr_id" + ], + "type": "object" + }, + "ConstantRuleOutputComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "y" + ], + "type": "object" + }, + "ControlledOutletComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "capacityCharacteristics": { + "$ref": "#/definitions/CapacityCharacteristicsComplexType", + "description": "Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero" + }, + "input": { + "$ref": "#/definitions/OutletInputComplexType" + }, + "output": { + "$ref": "#/definitions/OutletOutputComplexType" + }, + "turbineCharacteristics": { + "$ref": "#/definitions/TurbineCharacteristicsComplexType", + "description": "Characteristics of optional turbine" + } + }, + "required": [ + "capacityCharacteristics", + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "CrossSectionComplexType": { + "additionalProperties": false, + "properties": { + "crossSectionTable": { + "$ref": "#/definitions/ElevationTableComplexType", + "description": "Tabulated cross section, pairs of elevation h and width b " + } + }, + "required": [ + "crossSectionTable" + ], + "type": "object" + }, + "CrossSectionRoughnessComplexType": { + "additionalProperties": false, + "properties": { + "roughnessTable": { + "$ref": "#/definitions/ElevationTableComplexType", + "description": "Pairs of elevation h and roughness C (according to Chezy)" + } + }, + "required": [ + "roughnessTable" + ], + "type": "object" + }, + "DataTypicalProfileComplexType": { + "additionalProperties": false, + "properties": { + "attr_monthOfYear": { + "enum": [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + "type": "string" + }, + "attr_value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_monthOfYear", + "attr_value" + ], + "type": "object" + }, + "DateComplexType": { + "additionalProperties": false, + "properties": { + "attr_monthDay": { + "$ref": "#/definitions/xs:gMonthDay" + } + }, + "required": [ + "attr_monthDay" + ], + "type": "object" + }, + "DateLookupTableComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "dateRecord": { + "items": { + "$ref": "#/definitions/DateRecord2ComplexType", + "description": "Lookup table at a date location" + }, + "minItems": 1, + "type": "array" + }, + "input": { + "$ref": "#/definitions/DateLookupTableInputComplexType" + }, + "interpolationOptions": { + "$ref": "#/definitions/InterpolationOptionsComplexType", + "description": "Interpolation option BLOCK / LINEAR for the two inputs date and value" + }, + "output": { + "$ref": "#/definitions/DateLookupTableOutputComplexType" + } + }, + "required": [ + "dateRecord", + "input", + "interpolationOptions", + "output", + "attr_id" + ], + "type": "object" + }, + "DateLookupTableInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "DateLookupTableOutputComplexType": { + "additionalProperties": false, + "properties": { + "active": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "y" + ], + "type": "object" + }, + "DateRecord2ComplexType": { + "additionalProperties": false, + "properties": { + "attr_monthDay": { + "$ref": "#/definitions/xs:gMonthDay" + }, + "record": { + "items": { + "$ref": "#/definitions/DateRecord2DataComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "record", + "attr_monthDay" + ], + "type": "object" + }, + "DateRecord2DataComplexType": { + "additionalProperties": false, + "properties": { + "attr_x": { + "$ref": "#/definitions/xs:double" + }, + "attr_y": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_x", + "attr_y" + ], + "type": "object" + }, + "DateRecordComplexType": { + "additionalProperties": false, + "description": "defined data input as per time series format date time (defined either by dateTime or time or\n month day) and value", + "properties": { + "attr_comment": { + "$ref": "#/definitions/xs:string" + }, + "attr_dateTime": { + "$ref": "#/definitions/xs:dateTime" + }, + "attr_monthDay": { + "$ref": "#/definitions/xs:gMonthDay" + }, + "attr_time": { + "$ref": "#/definitions/xs:time" + }, + "attr_value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_value" + ], + "type": "object" + }, + "DateTableComplexType": { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "$ref": "#/definitions/DateRecordComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "DateTimeComplexType": { + "additionalProperties": false, + "properties": { + "attr_date": { + "$ref": "#/definitions/dateType" + }, + "attr_time": { + "$ref": "#/definitions/timeType" + } + }, + "required": [ + "attr_date", + "attr_time" + ], + "type": "object" + }, + "DeadBandTimeComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "discrete": { + "$ref": "#/definitions/DeadBandTimeDiscreteComplexType" + }, + "false": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "input": { + "$ref": "#/definitions/DeadBandTimeInputComplexType" + }, + "output": { + "$ref": "#/definitions/DeadBandTimeOutputComplexType" + }, + "true": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + } + }, + "required": [ + "discrete", + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "DeadBandTimeDiscreteComplexType": { + "additionalProperties": false, + "properties": { + "numberOfStepsDown": { + "$ref": "#/definitions/xs:int" + }, + "numberOfStepsUp": { + "$ref": "#/definitions/xs:int" + } + }, + "required": [ + "numberOfStepsDown", + "numberOfStepsUp" + ], + "type": "object" + }, + "DeadBandTimeInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/..TimeSeriesSimpleType.20" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "DeadBandTimeOutputComplexType": { + "additionalProperties": false, + "properties": { + "status": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "stepsDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "stepsUp": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "timeFalse": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "timeTrue": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "status", + "stepsDown", + "stepsUp" + ], + "type": "object" + }, + "DeadBandTriggerComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "conditionOff": { + "$ref": "#/definitions/RelationalConditionComplexType" + }, + "conditionOn": { + "$ref": "#/definitions/RelationalConditionComplexType" + }, + "default": { + "$ref": "#/definitions/xs:boolean" + }, + "false": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "output": { + "$ref": "#/definitions/TriggerOutputComplexType" + }, + "true": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + } + }, + "required": [ + "conditionOff", + "conditionOn", + "output", + "attr_id" + ], + "type": "object" + }, + "DeadBandValueComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/DeadBandValueInputComplexType" + }, + "threshold": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "input", + "threshold", + "attr_id" + ], + "type": "object" + }, + "DeadBandValueInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "EdgeComplexType": { + "additionalProperties": false, + "properties": { + "attr_x1": { + "$ref": "#/definitions/xs:double" + }, + "attr_x2": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_x1", + "attr_x2" + ], + "type": "object" + }, + "EdgesComplexType": { + "additionalProperties": false, + "properties": { + "edge": { + "items": { + "$ref": "#/definitions/EdgeComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "edge" + ], + "type": "object" + }, + "EifelRurRuleComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "a": { + "$ref": "#/definitions/xs:double" + }, + "b": { + "$ref": "#/definitions/xs:double" + }, + "minimumRelativeStorage": { + "$ref": "#/definitions/DateTableComplexType" + } + }, + "required": [ + "a", + "b", + "minimumRelativeStorage", + "attr_id" + ], + "type": "object" + }, + "ElevationRecordComplexType": { + "additionalProperties": false, + "properties": { + "attr_elevation": { + "$ref": "#/definitions/xs:double" + }, + "attr_value": { + "$ref": "#/definitions/ExternalParameterSimpleType" + } + }, + "required": [ + "attr_elevation", + "attr_value" + ], + "type": "object" + }, + "ElevationTableComplexType": { + "additionalProperties": false, + "description": "\n Table containing data for different elevations. Type of element 'value'\n depends on purpose for which table is used.\n ", + "properties": { + "elevationRecord": { + "items": { + "$ref": "#/definitions/ElevationRecordComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "elevationRecord" + ], + "type": "object" + }, + "EnsembleModeEnumStringType": { + "enum": [ + "JOINT", + "TREE", + "INDEPENDENT" + ], + "type": "string" + }, + "EquationComplexType": { + "additionalProperties": false, + "properties": { + "a": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "b": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "c": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "lowerLevel": { + "$ref": "#/definitions/xs:double" + }, + "upperLevel": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "a", + "b", + "c" + ], + "type": "object" + }, + "EquationEnumStringType": { + "enum": [ + "KINEMATIC", + "DIFFUSIVE", + "INERTIAL" + ], + "type": "string" + }, + "EquationsComplexType": { + "additionalProperties": false, + "properties": { + "equation": { + "items": { + "$ref": "#/definitions/EquationComplexType", + "description": "Power equation for optional segments with lower and upper water level bounds, y = a*(x+b)^c" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "equation" + ], + "type": "object" + }, + "EvaporationPotentialComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputEvaporationPotentialComplexType" + }, + "output": { + "$ref": "#/definitions/OutputEvaporationPotentialComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterEvaporationPotentialComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "ExpressionComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "mathematicalOperator": { + "$ref": "#/definitions/MathematicalOperatorEnumStringType", + "description": "mathematical operator: + (summation), - (substraction), * (multiplication), / (division), min, max, ^ (power)" + }, + "x1Series": { + "$ref": "#/definitions/..TimeSeriesSimpleType.2", + "description": "reference to time series ID" + }, + "x1SeriesVector": { + "$ref": "#/definitions/..TimeSeriesSimpleType.3", + "description": "reference to time series ID vector" + }, + "x1Value": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "user-configured constant value" + }, + "x2Series": { + "$ref": "#/definitions/..TimeSeriesSimpleType.4" + }, + "x2SeriesVector": { + "$ref": "#/definitions/..TimeSeriesSimpleType.5" + }, + "x2Value": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "time series ID of resulting value" + }, + "yVector": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "time series ID vector of resulting value" + } + }, + "required": [ + "mathematicalOperator", + "attr_id" + ], + "type": "object" + }, + "ExternalBooleanSimpleType": { + "anyOf": [ + { + "type": "boolean" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "ExternalIntegerSimpleType": { + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "ExternalParameterSimpleType": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^([#-\\$][\\(-_a-z]+[#-\\$])$", + "type": "string" + } + ] + }, + "GeneralModuleConfigComplexType": { + "additionalProperties": false, + "description": "DEPRICATED", + "properties": { + "description": { + "$ref": "#/definitions/xs:string", + "description": "DEPRICATED" + }, + "poolRoutingScheme": { + "$ref": "#/definitions/poolRoutingEnumStringType", + "description": "DEPRICATED" + }, + "theta": { + "$ref": "#/definitions/xs:double", + "description": "DEPRICATED" + } + }, + "required": [ + "poolRoutingScheme", + "theta" + ], + "type": "object" + }, + "GradientComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/GradientInputComplexType", + "description": "input variable" + }, + "multiplier": { + "$ref": "#/definitions/xs:double", + "description": "optional multiplier" + }, + "output": { + "$ref": "#/definitions/GradientOutputComplexType", + "description": "gradient, dx = multiplier*(xNew-xOld)/dt" + } + }, + "required": [ + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "GradientInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "GradientOutputComplexType": { + "additionalProperties": false, + "properties": { + "dx": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "dx" + ], + "type": "object" + }, + "GuideBandRuleComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/GuideBandRuleInputComplexType" + }, + "output": { + "$ref": "#/definitions/GuideBandRuleOutputComplexType" + }, + "xMax": { + "$ref": "#/definitions/DateTableComplexType" + }, + "xMin": { + "$ref": "#/definitions/DateTableComplexType" + }, + "yMax": { + "$ref": "#/definitions/xs:double" + }, + "yMaxSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "yMin": { + "$ref": "#/definitions/xs:double" + }, + "yMinSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "input", + "output", + "xMax", + "xMin", + "attr_id" + ], + "type": "object" + }, + "GuideBandRuleInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "GuideBandRuleOutputComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "y" + ], + "type": "object" + }, + "HBVComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/HBVInputComplexType" + }, + "link": { + "$ref": "#/definitions/HBVLinkComplexType" + }, + "output": { + "$ref": "#/definitions/HBVOutputComplexType" + }, + "parameterInput": { + "$ref": "#/definitions/HBVParameterInputComplexType" + }, + "parameterInterception": { + "$ref": "#/definitions/HBVParameterInterceptionComplexType" + }, + "parameterResponse": { + "$ref": "#/definitions/HBVParameterResponseComplexType" + }, + "parameterSnow": { + "$ref": "#/definitions/HBVParameterSnowComplexType" + }, + "parameterSoil": { + "$ref": "#/definitions/HBVParameterSoilComplexType" + }, + "state": { + "$ref": "#/definitions/HBVStateComplexType" + }, + "stateUpdate": { + "$ref": "#/definitions/HBVStateUpdateComplexType" + } + }, + "required": [ + "input", + "output", + "parameterInput", + "parameterInterception", + "parameterResponse", + "parameterSnow", + "parameterSoil", + "state", + "attr_id" + ], + "type": "object" + }, + "HBVInputComplexType": { + "additionalProperties": false, + "properties": { + "EP": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "P": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "T": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "TM": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "EP", + "P", + "T", + "TM" + ], + "type": "object" + }, + "HBVLinkComplexType": { + "additionalProperties": false, + "properties": { + "CF": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "EA": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "EI": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "EP": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "IN": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "INI": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "PERC": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "R": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "CF", + "EA", + "EI", + "EP", + "IN", + "INI", + "PERC", + "R" + ], + "type": "object" + }, + "HBVOutputComplexType": { + "additionalProperties": false, + "properties": { + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "SMPercentage": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "SWE": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "Q" + ], + "type": "object" + }, + "HBVParameterInputComplexType": { + "additionalProperties": false, + "properties": { + "ECORR": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "correction factor for EP" + }, + "RFCF": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "correction factor for rainfall" + }, + "SFCF": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "correction factor for snow" + }, + "TT": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "temperature limit for snow / rain [oC], normally close to 0 " + }, + "TTI": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "temperature interval with a mixture of snow / rain [oC]" + } + }, + "required": [ + "TT", + "TTI" + ], + "type": "object" + }, + "HBVParameterInterceptionComplexType": { + "additionalProperties": false, + "properties": { + "LIC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "maximum interception storage" + } + }, + "required": [ + "LIC" + ], + "type": "object" + }, + "HBVParameterResponseComplexType": { + "additionalProperties": false, + "properties": { + "ALPHA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "response box parameter [-], usually between 1.0 and 2.0" + }, + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "catchment area [km2]" + }, + "K": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "recession coefficient" + }, + "K1": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "recession coefficient [1/day]" + }, + "PERC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "percolation from upper to lower response box [mm/day], usually between 0 and 6" + } + }, + "required": [ + "ALPHA", + "AREA", + "K", + "K1", + "PERC" + ], + "type": "object" + }, + "HBVParameterSnowComplexType": { + "additionalProperties": false, + "properties": { + "CFMAX": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "degree day factor [mm/(oC*day)], varies normally between 1.5 and 4, 2 and 3.5 can be used in forested and open\nlandscape respectively" + }, + "CFR": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "refreezing factor [-], about 0.05" + }, + "CWH": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "water holding capacity [-], usually 0.1" + }, + "TTM": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "temperature limit for melting [oC]" + } + }, + "required": [ + "CFMAX", + "CFR", + "CWH", + "TTM" + ], + "type": "object" + }, + "HBVParameterSoilComplexType": { + "additionalProperties": false, + "properties": { + "BETA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "parameter in soil routine [-], usually between 1 and 6" + }, + "CFLUX": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "maximum value of CF" + }, + "ETF": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "temperature correction factor" + }, + "FC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "field capacity [mm], between 50 and 500" + }, + "LP": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "limit for potential evapotranspiration [-], in the range between 0.3 and 1" + } + }, + "required": [ + "BETA", + "CFLUX", + "ETF", + "FC", + "LP" + ], + "type": "object" + }, + "HBVStateComplexType": { + "additionalProperties": false, + "properties": { + "IC": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "LZ": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "SM": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "SP": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "UZ": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "WC": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "IC", + "LZ", + "SM", + "SP", + "UZ", + "WC" + ], + "type": "object" + }, + "HBVStateUpdateComplexType": { + "additionalProperties": false, + "properties": { + "IC": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "LZ": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "increment on lower zone storage [mm]" + }, + "SM": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "STILL NOT IMPLEMENTED" + }, + "SP": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "STILL NOT IMPLEMENTED" + }, + "UZ": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "STILL NOT IMPLEMENTED" + }, + "WC": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "STILL NOT IMPLEMENTED" + } + }, + "type": "object" + }, + "HydraulicModelComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "branch": { + "items": { + "$ref": "#/definitions/BranchComplexType", + "description": "Flow branches" + }, + "type": "array" + }, + "hydraulicStructure": { + "items": { + "$ref": "#/definitions/HydraulicStructureComplexType", + "description": "Hydraulic structures" + }, + "type": "array" + }, + "mode": { + "$ref": "#/definitions/HydraulicModelModeEnumStringType" + }, + "node": { + "items": { + "$ref": "#/definitions/NodeComplexType", + "description": "Storage nodes" + }, + "type": "array" + }, + "numericalTolerance": { + "$ref": "#/definitions/xs:double" + }, + "output": { + "$ref": "#/definitions/HydraulicModelOutputComplexType" + }, + "sequentialImplicitSettings": { + "$ref": "#/definitions/HydraulicModelSequentialImplicitComplexType" + }, + "simultaneousSettings": { + "$ref": "#/definitions/HydraulicModelSimultaneousComplexType" + } + }, + "required": [ + "mode", + "numericalTolerance", + "attr_id" + ], + "type": "object" + }, + "HydraulicModelModeEnumStringType": { + "enum": [ + "SEQUENTIAL_EXPLICIT", + "SEQUENTIAL_IMPLICIT", + "SIMULTANEOUS" + ], + "type": "string" + }, + "HydraulicModelOutputComplexType": { + "additionalProperties": false, + "properties": { + "nFun": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "number of function evaluations" + }, + "nJac": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "number of evaluations of the Jacobian" + }, + "res": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "residuum at last iteration step, 0.5*sum(SQR(ri))" + } + }, + "required": [ + "nFun", + "nJac", + "res" + ], + "type": "object" + }, + "HydraulicModelSequentialImplicitComplexType": { + "additionalProperties": false, + "properties": { + "convergenceThreshold": { + "$ref": "#/definitions/xs:double" + }, + "theta": { + "$ref": "#/definitions/xs:double" + }, + "treatNonConvergenceAsError": { + "$ref": "#/definitions/xs:boolean" + } + }, + "required": [ + "convergenceThreshold", + "theta", + "treatNonConvergenceAsError" + ], + "type": "object" + }, + "HydraulicModelSimultaneousComplexType": { + "additionalProperties": false, + "properties": { + "theta": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "theta" + ], + "type": "object" + }, + "HydraulicStructureComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "orifice": { + "$ref": "#/definitions/OrificeComplexType", + "description": "Orifice according to definition in SOBEK-Rural" + }, + "pump": { + "$ref": "#/definitions/PumpComplexType", + "description": "Pump" + }, + "weir": { + "$ref": "#/definitions/RiverWeirComplexType", + "description": "Weir according to definition in SOBEK-River" + } + }, + "required": [ + "attr_id" + ], + "type": "object" + }, + "HydrologicalModelComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "submodel": { + "items": { + "$ref": "#/definitions/SubmodelComplexType", + "description": "sub-models for the modular setup of the hydrological model, the storage system contains a set of storage nodes and links and is solved with an implicit time stepping scheme" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "submodel", + "attr_id" + ], + "type": "object" + }, + "InflowComplexType": { + "additionalProperties": false, + "properties": { + "attr_factor": { + "$ref": "#/definitions/xs:double" + } + }, + "type": "object" + }, + "InputATableComplexType": { + "additionalProperties": false, + "properties": { + "valueSelection": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "InputCapillaryFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "downstream node, typically UZ unsaturted zone" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream node, typically GW upper zone" + } + }, + "required": [ + "HDown", + "HUp" + ], + "type": "object" + }, + "InputEvaporationActualStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "EI": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "EP": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream node, typically SM (soil moisture)" + } + }, + "required": [ + "EP", + "HUp" + ], + "type": "object" + }, + "InputEvaporationInterceptionStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "EP": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "potential evaporation [mm]" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream node, typically IC (interception)" + } + }, + "required": [ + "EP", + "HUp" + ], + "type": "object" + }, + "InputEvaporationPotentialComplexType": { + "additionalProperties": false, + "properties": { + "EPM": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "monthly mean value of potential evaporation [mm/timestep]" + }, + "T": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "instantaneous temperature [oC]" + }, + "TM": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "monthly mean temperature [oC]" + } + }, + "required": [ + "EPM", + "T", + "TM" + ], + "type": "object" + }, + "InputGroundwaterFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "downstream node, can be GW groundwater or SW surface water" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream node, can be GW groundwater or SW surface water" + } + }, + "required": [ + "HDown", + "HUp" + ], + "type": "object" + }, + "InputNodeStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "discharge": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "inflow as discharge [m3/s]" + }, + "type": "array" + }, + "state": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "unit volume [mm], replaces the computes state" + }, + "unitVolume": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "inflow as unit Volume [mm/timestep]" + }, + "type": "array" + } + }, + "type": "object" + }, + "InputPercolationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "downstream node, typically LZ (lower zone storage)" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream node, typically UZ (upper zone storage)" + } + }, + "required": [ + "HUp" + ], + "type": "object" + }, + "InputPidComplexType": { + "additionalProperties": false, + "properties": { + "disturbance": { + "$ref": "#/definitions/..TimeSeriesSimpleType.8" + }, + "setpointSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "setpointValue": { + "$ref": "#/definitions/xs:double" + }, + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "controllable variable" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "InputReleaseAboveThresholdStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "downstream node" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream node" + } + }, + "required": [ + "HUp" + ], + "type": "object" + }, + "InputReleaseTotalComplexType": { + "additionalProperties": false, + "properties": { + "discharge": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "discharges from different storage nodes [m3/s]" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "discharge" + ], + "type": "object" + }, + "InputResponseStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream (release) node, typically UZ and/or LZ (upper/lower zone storages)" + } + }, + "required": [ + "HUp" + ], + "type": "object" + }, + "InputSnowRainJunctionComplexType": { + "additionalProperties": false, + "properties": { + "P": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "precipitation [mm/timestep]" + }, + "T": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "temperature [oC]" + } + }, + "required": [ + "P", + "T" + ], + "type": "object" + }, + "InputSoilRunoffStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional downstream node, typically uper saturated zones (UZ upper zone storage). Required if capillary flow is used and SM and UZ are present in one storage system" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream node, typically unsaturated zone (SM soil moisture)" + }, + "INF": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "infiltation into the unsaturated zone (fluzex into SM [m3/s]) " + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "HUp", + "INF" + ], + "type": "object" + }, + "InputWaterDistributionConstantStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "downstream node collector of abstracted water. For instance drinking water treatment plant" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)" + } + }, + "required": [ + "HUp" + ], + "type": "object" + }, + "InputWaterDistributionVariableStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "D": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "series of industrial or domestic water demands/abstractions [m3/s]" + }, + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "downstream node collector of abstracted water. For instance drinking water treatment plant" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)" + } + }, + "required": [ + "D", + "HUp" + ], + "type": "object" + }, + "InterpolationOptionsComplexType": { + "additionalProperties": false, + "properties": { + "date": { + "$ref": "#/definitions/interpolationOptionEnumStringType" + }, + "value": { + "$ref": "#/definitions/interpolationOptionEnumStringType" + } + }, + "required": [ + "date", + "value" + ], + "type": "object" + }, + "IntervalComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "deadbandSetpointAbsolute": { + "$ref": "#/definitions/xs:double" + }, + "deadbandSetpointRelative": { + "$ref": "#/definitions/xs:double" + }, + "input": { + "$ref": "#/definitions/IntervalInputComplexType" + }, + "output": { + "$ref": "#/definitions/IntervalOutputComplexType" + }, + "settingAbove": { + "$ref": "#/definitions/xs:double" + }, + "settingBelow": { + "$ref": "#/definitions/xs:double" + }, + "settingMaxSpeed": { + "$ref": "#/definitions/xs:double" + }, + "settingMaxStep": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "input", + "output", + "settingAbove", + "settingBelow", + "attr_id" + ], + "type": "object" + }, + "IntervalInputComplexType": { + "additionalProperties": false, + "properties": { + "setpoint": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "x": { + "$ref": "#/definitions/..TimeSeriesSimpleType.9", + "description": "reference to time series ID" + } + }, + "required": [ + "setpoint", + "x" + ], + "type": "object" + }, + "IntervalOutputComplexType": { + "additionalProperties": false, + "properties": { + "status": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "status", + "y" + ], + "type": "object" + }, + "LayerComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/LayerIDSimpleType" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "neuron": { + "items": { + "$ref": "#/definitions/NeuronComplexType", + "description": "arbitrary number of neurons within one of the layers" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "neuron", + "attr_id" + ], + "type": "object" + }, + "LayerIDSimpleType": { + "pattern": "^([L][0-9]+)$", + "type": "string" + }, + "LevelStorageEquationComplexType": { + "additionalProperties": false, + "properties": { + "A0": { + "$ref": "#/definitions/xs:double" + }, + "A1": { + "$ref": "#/definitions/xs:double" + }, + "A2": { + "$ref": "#/definitions/xs:double" + }, + "A3": { + "$ref": "#/definitions/xs:double" + }, + "A4": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "A0", + "A1" + ], + "type": "object" + }, + "LimiterComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/LimiterInputComplexType" + }, + "mode": { + "$ref": "#/definitions/limiterOptionEnumStringType" + } + }, + "required": [ + "input", + "mode", + "attr_id" + ], + "type": "object" + }, + "LimiterInputComplexType": { + "additionalProperties": false, + "properties": { + "thresholdSeries": { + "$ref": "#/definitions/..TimeSeriesSimpleType.21" + }, + "thresholdValue": { + "$ref": "#/definitions/xs:double" + }, + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "LinkStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "capillaryFlow": { + "$ref": "#/definitions/CapillaryFlowStorageSystemComplexType", + "description": "capillary flow, typically from GW (saturated upper zone - ground water) to UZ (unsaturated zone)" + }, + "evaporationActual": { + "$ref": "#/definitions/evaporationActualStorageSystemComplexType", + "description": "actual evaporation from unsaturated zone storage node" + }, + "evaporationInterception": { + "$ref": "#/definitions/evaporationInterceptionStorageSystemComplexType", + "description": "evaporation from interception storage node, typically VEG/P/UP (vegeration/paved interception)" + }, + "groundwaterFlow": { + "$ref": "#/definitions/groundwaterFlowStorageSystemComplexType", + "description": "GW Groundwater interaction with SW Surface water" + }, + "irrigation": { + "$ref": "#/definitions/irrigationStorageSystemComplexType", + "description": "NOT REFACTORED. water consumption by domestic irrigation due to dry soil" + }, + "meltRefreezing": { + "$ref": "#/definitions/meltRefreezingStorageSystemComplexType", + "description": "NOT REFACTORED. melting and refreezing, typically used between SP (snow pack) and WC (water content) nodes" + }, + "percolation": { + "$ref": "#/definitions/PercolationStorageSystemComplexType", + "description": "percolation, typically from GW upper zone to GW lower zone), or from UP unpaved surface to UZ unsaturated zone" + }, + "releaseInterception": { + "$ref": "#/definitions/releaseAboveThresholdStorageSystemComplexType", + "description": "release above threshold from interception storage node, typically VEG/P/UP (uses relese above threshold link)" + }, + "releaseWaterContent": { + "$ref": "#/definitions/releaseWaterContentStorageSystemComplexType", + "description": "NOT REFACTORED. release from water content storage node (typically WC)" + }, + "response": { + "$ref": "#/definitions/ResponseStorageSystemComplexType", + "description": "response from storage node, typically GW upper and GW lower zone storage nodes" + }, + "sewerOverflow": { + "$ref": "#/definitions/releaseAboveThresholdStorageSystemComplexType", + "description": "sewer overflow (uses relese above threshold link)" + }, + "soilRunoff": { + "$ref": "#/definitions/SoilRunoffStorageSystemComplexType", + "description": "soil runoff from UZ unsaturated zone to GW upper zone storage node" + }, + "wasteWaterTreatmentPlant": { + "$ref": "#/definitions/waterDistributionConstantStorageSystemComplexType", + "description": "water treated via the WWTP, flows at a max rate of a constant max pump capacity. Uses water distribution constant link" + }, + "waterDistributionConstant": { + "$ref": "#/definitions/waterDistributionConstantStorageSystemComplexType", + "description": "water abstraction/distribution/consumption referenced to a constant demand (e.i. maxpump capacity). Uses water distribution constant link" + }, + "waterDistributionVariable": { + "$ref": "#/definitions/waterDistributionVariableStorageSystemComplexType", + "description": "water abstraction/distribution/consumption referenced to a variable demand (e.i. domestic or industrial water demands). Uses water distribution variable link)" + } + }, + "type": "object" + }, + "Lookup2DTableComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/Lookup2DTableInputComplexType" + }, + "output": { + "$ref": "#/definitions/Lookup2DTableOutputComplexType" + }, + "table": { + "$ref": "#/definitions/Table2DLookupTableComplexType" + } + }, + "required": [ + "input", + "output", + "table", + "attr_id" + ], + "type": "object" + }, + "Lookup2DTableInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "z": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x", + "y" + ], + "type": "object" + }, + "Lookup2DTableOutputComplexType": { + "additionalProperties": false, + "properties": { + "z": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "z" + ], + "type": "object" + }, + "LookupTableComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "extrapolationOption": { + "$ref": "#/definitions/interpolationOptionEnumStringType", + "description": "table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR" + }, + "input": { + "$ref": "#/definitions/LookupTableInputComplexType" + }, + "interpolationOption": { + "$ref": "#/definitions/interpolationOptionEnumStringType", + "description": "table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR" + }, + "output": { + "$ref": "#/definitions/LookupTableOutputComplexType" + }, + "property": { + "items": { + "enum": [ + "MONOTON", + "POSITIVE" + ], + "type": "string" + }, + "type": "array" + }, + "table": { + "$ref": "#/definitions/TableLookupTableComplexType" + }, + "tableExternal": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "LookupTableInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/..TimeSeriesSimpleType.10", + "description": "reference to time series ID" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "LookupTableOutputComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "y" + ], + "type": "object" + }, + "LorentGeversComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/LorentGeversInputComplexType" + }, + "output": { + "$ref": "#/definitions/LorentGeversOutputComplexType" + }, + "parameterResponse": { + "$ref": "#/definitions/LorentGeversParameterResponseComplexType" + }, + "parameterSoil": { + "$ref": "#/definitions/LorentGeversParameterSoilComplexType" + }, + "state": { + "$ref": "#/definitions/LorentGeversStateComplexType" + }, + "stateUpdate": { + "$ref": "#/definitions/LorentGeversStateUpdateComplexType" + } + }, + "required": [ + "input", + "output", + "parameterResponse", + "parameterSoil", + "state", + "attr_id" + ], + "type": "object" + }, + "LorentGeversInputComplexType": { + "additionalProperties": false, + "properties": { + "EP": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "P": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "EP", + "P" + ], + "type": "object" + }, + "LorentGeversOutputComplexType": { + "additionalProperties": false, + "properties": { + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "Q" + ], + "type": "object" + }, + "LorentGeversParameterResponseComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "KB": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "KS": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "TB1": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "TB2": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "TS1": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "TS2": { + "$ref": "#/definitions/ExternalParameterSimpleType" + } + }, + "required": [ + "AREA", + "KB", + "KS", + "TB1", + "TB2", + "TS1", + "TS2" + ], + "type": "object" + }, + "LorentGeversParameterSoilComplexType": { + "additionalProperties": false, + "properties": { + "BETA": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "PMAX": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "SMAX": { + "$ref": "#/definitions/ExternalParameterSimpleType" + } + }, + "required": [ + "BETA", + "PMAX", + "SMAX" + ], + "type": "object" + }, + "LorentGeversStateComplexType": { + "additionalProperties": false, + "properties": { + "QB1": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "QB2": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "QS1": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "QS2": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "S": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "QB1", + "QB2", + "QS1", + "QS2", + "S" + ], + "type": "object" + }, + "LorentGeversStateUpdateComplexType": { + "additionalProperties": false, + "properties": { + "S": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "S" + ], + "type": "object" + }, + "MathematicalOperatorEnumStringType": { + "description": "mathematical operators", + "enum": [ + "+", + "-", + "*", + "/", + "min", + "max", + "^" + ], + "type": "string" + }, + "MaxFlowsComplexType": { + "additionalProperties": false, + "properties": { + "attr_maxFlow_head01": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head02": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head03": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head04": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head05": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head06": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head07": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head08": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head09": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head10": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head11": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head12": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head13": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head14": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head15": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head16": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head17": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head18": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head19": { + "$ref": "#/definitions/xs:double" + }, + "attr_maxFlow_head20": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_maxFlow_head01", + "attr_maxFlow_head02" + ], + "type": "object" + }, + "MergerComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/MergerInputComplexType" + }, + "output": { + "$ref": "#/definitions/MergerOutputComplexType" + } + }, + "required": [ + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "MergerInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "items": { + "$ref": "#/definitions/..TimeSeriesSimpleType.11" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "MergerOutputComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "ySum": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "type": "object" + }, + "MergerSplitterComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/MergerSplitterInputComplexType" + }, + "mode": { + "$ref": "#/definitions/MergerSplitterEnumStringType" + }, + "output": { + "$ref": "#/definitions/MergerSplitterOutputComplexType" + } + }, + "required": [ + "input", + "mode", + "output", + "attr_id" + ], + "type": "object" + }, + "MergerSplitterEnumStringType": { + "enum": [ + "AVERAGE", + "DATAHIERARCHY", + "SUM" + ], + "type": "string" + }, + "MergerSplitterInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "items": { + "$ref": "#/definitions/..TimeSeriesSimpleType.17" + }, + "type": "array" + }, + "xVector": { + "$ref": "#/definitions/..TimeSeriesSimpleType.18" + } + }, + "type": "object" + }, + "MergerSplitterOutputComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "items": { + "$ref": "#/definitions/..TimeSeriesSimpleType.19" + }, + "type": "array" + } + }, + "type": "object" + }, + "MinSimpleRuleComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "dateTable": { + "$ref": "#/definitions/DateTableComplexType" + }, + "zones": { + "$ref": "#/definitions/ZonesComplexType" + } + }, + "required": [ + "attr_id" + ], + "type": "object" + }, + "NeuralNetworkComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "layer": { + "items": { + "$ref": "#/definitions/LayerComplexType", + "description": "arbitrary number of layers" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "layer", + "attr_id" + ], + "type": "object" + }, + "NeuronComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/NeuronIDSimpleType" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "bias": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "input": { + "$ref": "#/definitions/NeuronInputComplexType" + }, + "output": { + "$ref": "#/definitions/NeuronOutputComplexType" + }, + "transferFunction": { + "$ref": "#/definitions/transferFunctionEnumStringType", + "description": "transfer function: sigmoid, linear etc." + } + }, + "required": [ + "bias", + "input", + "output", + "transferFunction", + "attr_id" + ], + "type": "object" + }, + "NeuronIDSimpleType": { + "pattern": "^([L][0-9]+[N][0-9]+)$", + "type": "string" + }, + "NeuronInputComplexType": { + "additionalProperties": false, + "properties": { + "external": { + "items": { + "$ref": "#/definitions/..xs:string.1", + "description": "reference to time series ID" + }, + "type": "array" + }, + "internal": { + "items": { + "$ref": "#/definitions/..xs:string.2", + "description": "Supply neuron id! This can be any neuron in the network, also the neuron itself and neurons in the following layers. In this case, the output of the last time step is used -> recurrent network" + }, + "type": "array" + } + }, + "type": "object" + }, + "NeuronOutputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "result of the transfer function" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "result of the summation of weighted input (intermediate result)" + } + }, + "required": [ + "x", + "y" + ], + "type": "object" + }, + "NodeComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_x": { + "$ref": "#/definitions/xs:double" + }, + "attr_y": { + "$ref": "#/definitions/xs:double" + }, + "input": { + "$ref": "#/definitions/NodeInputComplexType" + }, + "output": { + "$ref": "#/definitions/NodeOutputComplexType" + }, + "storageCharacteristics": { + "$ref": "#/definitions/StorageCharacteristicsComplexType", + "description": "Storage characteristics of the node: The storage as a function of water level h. It can be provided as table or as a formula." + } + }, + "required": [ + "output", + "storageCharacteristics", + "attr_id" + ], + "type": "object" + }, + "NodeGradientComplexType": { + "additionalProperties": false, + "properties": { + "lambda": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "surfaceArea": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "lambda", + "surfaceArea" + ], + "type": "object" + }, + "NodeInputComplexType": { + "additionalProperties": false, + "properties": { + "HBC": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Time series with the water level boundary condition, note that a value MUST be provided at all time steps, otherwise the model stops with an error message" + }, + "HUpdate": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Time series with an optional water level for model updating" + }, + "QBC": { + "items": { + "$ref": "#/definitions/..TimeSeriesSimpleType.6", + "description": "Time series with an inflow bounday condition, note that a value MUST be provided at all time steps" + }, + "type": "array" + } + }, + "type": "object" + }, + "NodeOutputComplexType": { + "additionalProperties": false, + "properties": { + "H": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "R": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "S": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "H", + "S" + ], + "type": "object" + }, + "NodeStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "constant area [km2], default is 1.0" + }, + "input": { + "$ref": "#/definitions/InputNodeStorageSystemComplexType" + }, + "residuum": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "residuum [mm]" + }, + "state": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "unit volume [mm]" + }, + "stateMax": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "stateMin": { + "$ref": "#/definitions/ExternalParameterSimpleType" + } + }, + "required": [ + "residuum", + "state", + "attr_id" + ], + "type": "object" + }, + "OrificeComplexType": { + "additionalProperties": false, + "properties": { + "contractionCoefficient": { + "$ref": "#/definitions/xs:double" + }, + "crestLevel": { + "$ref": "#/definitions/xs:double" + }, + "exponentGateFormula": { + "$ref": "#/definitions/xs:double" + }, + "exponentWeirFormula": { + "$ref": "#/definitions/xs:double" + }, + "flowDirection": { + "$ref": "#/definitions/flowDirectionEnumStringType" + }, + "input": { + "$ref": "#/definitions/OrificeInputComplexType" + }, + "output": { + "$ref": "#/definitions/OrificeOutputComplexType" + }, + "width": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "contractionCoefficient", + "crestLevel", + "input", + "output", + "width" + ], + "type": "object" + }, + "OrificeInputComplexType": { + "additionalProperties": false, + "properties": { + "D": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "deprecated" + }, + "DConst": { + "$ref": "#/definitions/xs:double" + }, + "DSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "DeltaHDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "DeltaHUp": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "HDown", + "HUp" + ], + "type": "object" + }, + "OrificeOutputComplexType": { + "additionalProperties": false, + "properties": { + "D": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "flowType": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "D", + "Q" + ], + "type": "object" + }, + "OutletInputComplexType": { + "additionalProperties": false, + "properties": { + "relativeRelease": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Reference to timeseries in data configuration containg the relative release (values inbetween 0 and 1). (ONLY FOR CONTROLLED OUTLET)" + }, + "type": "array" + }, + "release": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Reference to timeseries in data configuration containg an absolute release. (ONLY FOR CONTROLLED OUTLET)" + } + }, + "type": "object" + }, + "OutletOutputComplexType": { + "additionalProperties": false, + "properties": { + "release": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "release" + ], + "type": "object" + }, + "OutputATableComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "items": { + "$ref": "#/definitions/..TimeSeriesSimpleType.1" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "y" + ], + "type": "object" + }, + "OutputEvaporationPotentialComplexType": { + "additionalProperties": false, + "properties": { + "EP": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "instantaneous potential evaporation [mm/timestep]" + } + }, + "required": [ + "EP" + ], + "type": "object" + }, + "OutputLinkStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "H": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Discharge as unit volume [mm/timestep]" + }, + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Discharge [m3/s]" + } + }, + "required": [ + "H", + "Q" + ], + "type": "object" + }, + "OutputPidComplexType": { + "additionalProperties": false, + "properties": { + "differentialPart": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "memory of differential part (in fact e of the last time step)" + }, + "integralPart": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "memory of integral part: integral(e)dt" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "setting of the actuator" + } + }, + "required": [ + "differentialPart", + "integralPart", + "y" + ], + "type": "object" + }, + "OutputSnowRainJunctionComplexType": { + "additionalProperties": false, + "properties": { + "RF": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "rainfall [mm/timestep]" + }, + "SF": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "snowfall [mm/timestep]" + } + }, + "required": [ + "RF", + "SF" + ], + "type": "object" + }, + "OutputStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "nFun": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "number of function evaluations" + }, + "nJac": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "number of evaluations of the Jacobian" + }, + "res": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "residuum at last iteration step" + } + }, + "required": [ + "nFun", + "nJac", + "res" + ], + "type": "object" + }, + "ParameterCapillaryFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + }, + "CFLUX": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "maximum value of capillary flow [mm/d]" + }, + "FC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "field capacity [mm]" + } + }, + "required": [ + "CFLUX", + "FC" + ], + "type": "object" + }, + "ParameterEvaporationActualStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [1000 m2], default = 1.0" + }, + "D": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "distance measure for smoothing the transitions [-]" + }, + "FC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "field capacity [mm]" + }, + "LP": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "limit for potential evaporation [-]" + } + }, + "required": [ + "FC", + "LP" + ], + "type": "object" + }, + "ParameterEvaporationInterceptionStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + } + }, + "type": "object" + }, + "ParameterEvaporationPotentialComplexType": { + "additionalProperties": false, + "properties": { + "ECORR": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "evaporation correction factor, default = 1.0" + }, + "ETF": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "temperature correction factor" + } + }, + "required": [ + "ETF" + ], + "type": "object" + }, + "ParameterIrrigationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2], default = 1.0" + }, + "IRR_CONST": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "costant irrigation flux [mm/d]" + }, + "IRR_THR": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Threshold of the downstream node under which irrigation is needed [mm]" + }, + "M": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "smoothing factor" + } + }, + "required": [ + "IRR_THR" + ], + "type": "object" + }, + "ParameterMeltRefreezingStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + }, + "CFMAX": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "degree day factor [mm/day]" + }, + "CFR": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "refreezing factor [-]" + }, + "M": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "smoothing factor, default = 0.05, more smoothing for higher value and vice versa" + }, + "TTM": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "temperature limit for melting [oC]" + } + }, + "required": [ + "CFMAX", + "CFR", + "TTM" + ], + "type": "object" + }, + "ParameterPercolationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + }, + "PERC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "percolation [mm/d]" + } + }, + "required": [ + "PERC" + ], + "type": "object" + }, + "ParameterReleaseAboveThresholdStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2], default = 1.0" + }, + "FRAC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "percentage of the flow which flows towards the bucket of interest. The permitted range is between 0 and 100" + }, + "LIC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "upper limit of (interception) storage node [mm]" + }, + "M": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "smoothing factor" + } + }, + "required": [ + "LIC" + ], + "type": "object" + }, + "ParameterReleaseTotalComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + } + }, + "required": [ + "AREA" + ], + "type": "object" + }, + "ParameterReleaseWaterContentStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + }, + "M": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "smoothing coefficient" + }, + "WHC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "water holding capacity [-]" + } + }, + "required": [ + "WHC" + ], + "type": "object" + }, + "ParameterResponseStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "ALPHA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "response box parameter [-], default = 0.0" + }, + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + }, + "K": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "recession coefficient [1/d]" + } + }, + "required": [ + "K" + ], + "type": "object" + }, + "ParameterSnowRainJunctionComplexType": { + "additionalProperties": false, + "properties": { + "D": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "smoothing parameter for switching between a linear ramp (D=0.0) and a sigmoid function (D=1.0)" + }, + "RFCF": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "rainfall correction factor [-], default is 1.0" + }, + "SFCF": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "snowfall correction factor [-], default is 1.0" + }, + "TT": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "temperature limit for snow and rainfall [oC]" + }, + "TTI": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "temperature interval with a mixture of snow and rainfall [K]" + } + }, + "required": [ + "TT", + "TTI" + ], + "type": "object" + }, + "ParameterSoilRunoffStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + }, + "BETA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "parameter in soil routine [-]" + }, + "FC": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "field capacity [mm]" + } + }, + "required": [ + "BETA", + "FC" + ], + "type": "object" + }, + "ParameterWaterDistributionConstantStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2], default = 1.0" + }, + "D": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "capacity of demand/abstraction [m3/s]" + }, + "M": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "smoothing factor" + }, + "MIN_UP": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "minimum abstraction level upstream [mm]. Default 0, till empty." + } + }, + "required": [ + "D" + ], + "type": "object" + }, + "ParameterWaterDistributionVariableStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2], default = 1.0" + }, + "M": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "smoothing factor" + }, + "MIN_UP": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "minimum abstraction level upstream [mm]. Default 0, till empty." + } + }, + "type": "object" + }, + "ParametergroundwaterFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "ALPHA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Ground water reaction coefficient" + }, + "AREA": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + }, + "K": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Ground water Conductivity [1/d]" + }, + "MAX_GFLOW": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Maximum groundwater flow [mm/d]" + } + }, + "required": [ + "ALPHA", + "K", + "MAX_GFLOW" + ], + "type": "object" + }, + "PercolationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputPercolationStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterPercolationStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "PidComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputPidComplexType" + }, + "kd": { + "$ref": "#/definitions/xs:double", + "description": "fatcor on differential part kd*de/dt" + }, + "ki": { + "$ref": "#/definitions/xs:double", + "description": "factor on the integral part ki*integral(e)dt" + }, + "kp": { + "$ref": "#/definitions/xs:double", + "description": "factor on the proportional part kp*e" + }, + "mode": { + "description": "pid mode, either \"NATIVE\" or \"SOBEK2\" or \"PIDPOS\" or PIDVEL\"", + "enum": [ + "NATIVE", + "SOBEK2", + "PIDPOS", + "PIDVEL" + ], + "type": "string" + }, + "output": { + "$ref": "#/definitions/OutputPidComplexType" + }, + "settingMax": { + "$ref": "#/definitions/xs:double", + "description": "maximum setting of the actuator" + }, + "settingMaxSpeed": { + "$ref": "#/definitions/xs:double", + "description": "maximum speed of the actuation in [unit/s]" + }, + "settingMin": { + "$ref": "#/definitions/xs:double", + "description": "minimum setting of the actuator" + } + }, + "required": [ + "input", + "kd", + "ki", + "kp", + "output", + "settingMax", + "settingMaxSpeed", + "settingMin", + "attr_id" + ], + "type": "object" + }, + "PolygonComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "edges": { + "$ref": "#/definitions/EdgesComplexType" + }, + "value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "edges" + ], + "type": "object" + }, + "PolygonLookupComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "default": { + "$ref": "#/definitions/xs:double" + }, + "false": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "input": { + "$ref": "#/definitions/PolygonLookupInputComplexType" + }, + "output": { + "$ref": "#/definitions/PolygonLookupOutputComplexType" + }, + "polygons": { + "$ref": "#/definitions/PolygonsComplexType" + }, + "true": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + } + }, + "required": [ + "input", + "output", + "polygons", + "attr_id" + ], + "type": "object" + }, + "PolygonLookupInputComplexType": { + "additionalProperties": false, + "properties": { + "x1": { + "$ref": "#/definitions/..TimeSeriesSimpleType.12" + }, + "x2": { + "$ref": "#/definitions/..TimeSeriesSimpleType.13" + } + }, + "required": [ + "x1", + "x2" + ], + "type": "object" + }, + "PolygonLookupOutputComplexType": { + "additionalProperties": false, + "properties": { + "status": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "PolygonsComplexType": { + "additionalProperties": false, + "properties": { + "polygon": { + "items": { + "$ref": "#/definitions/PolygonComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "polygon" + ], + "type": "object" + }, + "PumpComplexType": { + "additionalProperties": false, + "properties": { + "input": { + "$ref": "#/definitions/PumpInputComplexType" + }, + "output": { + "$ref": "#/definitions/PumpOutputComplexType" + } + }, + "required": [ + "input", + "output" + ], + "type": "object" + }, + "PumpGradientComplexType": { + "additionalProperties": false, + "properties": { + "storageDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "storageUp": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "storageDown", + "storageUp" + ], + "type": "object" + }, + "PumpInputComplexType": { + "additionalProperties": false, + "properties": { + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "HDown", + "HUp", + "Q" + ], + "type": "object" + }, + "PumpOutputComplexType": { + "additionalProperties": false, + "properties": { + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "Q" + ], + "type": "object" + }, + "RelationalConditionComplexType": { + "additionalProperties": false, + "properties": { + "relationalOperator": { + "$ref": "#/definitions/relationalOperatorEnumStringType" + }, + "x1Series": { + "$ref": "#/definitions/..TimeSeriesSimpleType.22" + }, + "x1Value": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "x2Series": { + "$ref": "#/definitions/..TimeSeriesSimpleType.23" + }, + "x2Value": { + "$ref": "#/definitions/ExternalParameterSimpleType" + } + }, + "required": [ + "relationalOperator" + ], + "type": "object" + }, + "ReleaseTotalComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputReleaseTotalComplexType" + }, + "output": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "total discharge [m3/s]" + } + }, + "required": [ + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "ReservoirCompactComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/ReservoirCompactInputComplexType", + "description": "input time series" + }, + "levelStorageEquation": { + "$ref": "#/definitions/LevelStorageEquationComplexType", + "description": "level storage equation according to S = A0 + A1*FB ( + A2*FB^2 + ...)" + }, + "levelStorageTable": { + "$ref": "#/definitions/ElevationTableComplexType", + "description": "level-storage relation of the reservoir, level in [m] or [ft], storage in [m3] or [KCFS-hrs]" + }, + "levelStorageTableExternal": { + "$ref": "#/definitions/xs:string", + "description": "externalizes the level storage table to a parameter file, requires the two columns \"level\" and \"storage\"" + }, + "output": { + "$ref": "#/definitions/ReservoirCompactOutputComplexType", + "description": "output time series" + }, + "tailwaterConstant": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "constant value for tailwater elevation" + }, + "tailwaterEquation": { + "$ref": "#/definitions/TailwaterEquationComplexType", + "description": "tailwater equation according to TW = A + B*FB_downstream(t-1) + C*Q(t)^D, D is equal 1.0 by default if not provided" + }, + "tailwaterExternalTable": { + "$ref": "#/definitions/xs:string", + "description": "external tailwater table" + }, + "tailwaterExternalTimeSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "external tailwater elevation from an external source or a previous calculation OUTSIDE of the reservoirCompact components" + }, + "tailwaterTable": { + "$ref": "#/definitions/ElevationTableComplexType", + "description": "tailwater as a function of the reservoir release only" + }, + "tailwaterTidalEquation": { + "$ref": "#/definitions/TailwaterTidalEquationComplexType", + "description": "tidal influenced tailwater equation (works only in hindcast mode, use tailwater external with appropiate forecast of the tailwater in operational forecasting), TW = TWObs + A*(Q-QObs)" + }, + "turbineEfficiencyConstant": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "turbineEfficiencyTable": { + "$ref": "#/definitions/ElevationTableComplexType", + "description": "old formulation, will be removed in the future" + }, + "turbineEfficiencyTable2D": { + "$ref": "#/definitions/TurbineEfficiencyTableComplexType", + "description": "new formulation, turbine effiency depends on head and turbine release, computation by 2D lookup" + }, + "turbineEfficiencyTable2DExternal": { + "$ref": "#/definitions/xs:string" + }, + "turbineEfficiencyTableExternal": { + "$ref": "#/definitions/xs:string" + }, + "units": { + "$ref": "#/definitions/UnitTypeEnumStringType", + "description": " \"SI\" or \"Imperial\" units" + } + }, + "required": [ + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "ReservoirCompactInputComplexType": { + "additionalProperties": false, + "properties": { + "FB": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "forebay elevation [m above reference level] or [ft above sea level]" + }, + "OF": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "optional time series with the unit outage factor [0-1], it reduces the (physical) constraints PXValue and QTXValue (NO impact on PX, QTX)" + }, + "PM": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "minimum generation constraint on aggregated turbine level [MW], primarly used as operational constraint" + }, + "PMValue": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "fixed minimum generation constraint on aggregated turbine level [MW], primarily used as physical constraint" + }, + "PX": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "maximum generation constraint on aggregated turbine level [MW], primarly used as operational constraint" + }, + "PXValue": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "fixed maximum generation constraint on aggregated turbine level [MW], primarly used as physical constraint" + }, + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "reservoir outflow [m3/s] or [KCFS], data is expected to be complete and valid" + }, + "QI": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "single or multiple inflow time series into the reservoir [m3/s] or [KCFS], data is expected to be complete and valid if provided" + }, + "minItems": 1, + "type": "array" + }, + "QMISC": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional miscellaneous flow (uncontrolled), will be zero by default [m3/s] or [KCFS] if no time series is supplied or if the time series includes NaN values" + }, + "QS": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "absolute spill target [m3/s] or [KCFS]" + }, + "QSPercentage": { + "$ref": "#/definitions/..TimeSeriesSimpleType.7", + "description": "relative spill target as a percentage [0..100] of the total flow Q" + }, + "QSPercentageValue": { + "$ref": "#/definitions/..ExternalParameterSimpleType.1", + "description": "relative spill target as a percentage [0..100] of the total flow Q" + }, + "QSValue": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "absolute spill target [m3/s] or [KCFS]" + }, + "QTX": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as operational constraint" + }, + "QTXValue": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "fixed maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as physical constraint" + } + }, + "required": [ + "FB", + "Q", + "QI" + ], + "type": "object" + }, + "ReservoirCompactOutputComplexType": { + "additionalProperties": false, + "properties": { + "DQ": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "deviation from spill target [m3/s] or [KCFS]" + }, + "FB": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "forebay elevation [m above reference level] or [ft above sea level]" + }, + "H": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "head [m] or [ft]" + }, + "P": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "power generation [MW]" + }, + "PX": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "maximum power generation [MW]" + }, + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "reservoir outflow [m3/s] or [KCFS]" + }, + "QI": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "reservoir inflow [m3/s] or [KCFS]" + }, + "QMISC": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "miscellaneous flow [m3/s] or [KCFS]" + }, + "QS": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "spillage [m3/s] or [KCFS]" + }, + "QSPercentage": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "relative spillage [0..100]" + }, + "QT": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "turbine flow [m3/s] or [KCFS]" + }, + "QTX": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "maximum turbine flow [m3/s] or [KCFS]" + }, + "R": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "residuum of mass balance (in simultaneous mode) [m3/s] or [KCFS]" + }, + "S": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "storage [m3] or [KCFS-hrs], this is the system state needed in the state file" + }, + "TW": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "tailwater elevation [m above reference level] or [ft above sea level]" + } + }, + "required": [ + "DQ", + "FB", + "H", + "P", + "Q", + "QI", + "QS", + "QT", + "R", + "S", + "TW" + ], + "type": "object" + }, + "ReservoirComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "controlledOutlet": { + "items": { + "$ref": "#/definitions/ControlledOutletComplexType", + "description": "Controlled outlet, release can be defined by external input or rule" + }, + "type": "array" + }, + "input": { + "$ref": "#/definitions/ReservoirInputComplexType" + }, + "mode": { + "$ref": "#/definitions/poolRoutingEnumStringType", + "description": "Time integration scheme for the network components" + }, + "output": { + "$ref": "#/definitions/ReservoirOutputComplexType" + }, + "storageCharacteristics": { + "$ref": "#/definitions/StorageCharacteristicsComplexType", + "description": "Storage characteristics of the reservoir: The storage S as a function of the water level h can be provided as a table or formula." + }, + "tailwater": { + "$ref": "#/definitions/TailwaterComplexType", + "description": "Tailwater rating curve\n " + }, + "theta": { + "$ref": "#/definitions/xs:double", + "description": "Time weighting coefficient for the semi-implicit theta schema: 0 is equal to a full weight on the old time step, 1 represents a full weight on new time step. The coefficient is not used in the fully explicit or implicit schemas. The permitted range is between 0.5 and 1.0." + }, + "uncontrolledOutlet": { + "items": { + "$ref": "#/definitions/UncontrolledOutletComplexType", + "description": "Uncontrolled outlet, the release is a function of the water level h in the reservoir" + }, + "type": "array" + } + }, + "required": [ + "input", + "mode", + "output", + "storageCharacteristics", + "theta", + "attr_id" + ], + "type": "object" + }, + "ReservoirGradientComplexType": { + "additionalProperties": false, + "properties": { + "lambda": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "lambdaDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "lambda" + ], + "type": "object" + }, + "ReservoirInputComplexType": { + "additionalProperties": false, + "properties": { + "evaporation": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Direct evaporation from the reservoir [mm/time step]" + }, + "inflow": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Upstream inflows [m3/s] into the reservoir, can be more than one for aggregation the inflows from several upstream reservoirs or river reaches" + }, + "minItems": 1, + "type": "array" + }, + "level": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Optional level [m] for updating the simulated level by an observed water level (simple data assimilation), if provided the error output is equal to the mass balance correction " + }, + "precipitation": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "Direct precitation into the reservoir [mm/time step], the value will be multiplied by the current water surface area of the reservoir" + } + }, + "required": [ + "inflow" + ], + "type": "object" + }, + "ReservoirOutputComplexType": { + "additionalProperties": false, + "properties": { + "error": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional error output [m3/s] which is non-zero if the simple data assimilation option for overruling the simulated water level is used " + }, + "inflow": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "aggregated inflows [m3/s]" + }, + "level": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "water level [m] in the reservoir" + }, + "relativeStorage": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "relative storage [-] typically between 0 and 1 depending on the definition of the maximum level above]" + }, + "release": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "aggregated release [m3/s]" + }, + "residuum": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional residuum of the implicit solution" + }, + "storage": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "storage [m3] (state variable)" + } + }, + "required": [ + "inflow", + "level", + "release", + "storage" + ], + "type": "object" + }, + "ReservoirRoutingComplexType": { + "additionalProperties": false, + "properties": { + "simpleReservoir": { + "items": { + "$ref": "#/definitions/SimpleReservoirComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "simpleReservoir" + ], + "type": "object" + }, + "ReservoirThunerseeRuleComplexType": { + "additionalProperties": false, + "properties": { + "storageCharacteristics": { + "$ref": "#/definitions/StorageCharacteristicsComplexType" + } + }, + "required": [ + "storageCharacteristics" + ], + "type": "object" + }, + "ResponseStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputResponseStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterResponseStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "ResultComplexType": { + "additionalProperties": false, + "properties": { + "output": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "value": { + "$ref": "#/definitions/xs:integer" + } + }, + "required": [ + "output", + "value" + ], + "type": "object" + }, + "RiverWeirComplexType": { + "additionalProperties": false, + "properties": { + "exponentWeirFormula": { + "$ref": "#/definitions/xs:double" + }, + "flowDirection": { + "$ref": "#/definitions/flowDirectionEnumStringType" + }, + "input": { + "$ref": "#/definitions/RiverWeirInputComplexType" + }, + "output": { + "$ref": "#/definitions/RiverWeirOutputComplexType" + }, + "submergedFlowFactor": { + "$ref": "#/definitions/xs:double" + }, + "submergedFlowRatio": { + "$ref": "#/definitions/xs:double" + }, + "width": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "input", + "output", + "width" + ], + "type": "object" + }, + "RiverWeirInputComplexType": { + "additionalProperties": false, + "properties": { + "CConst": { + "$ref": "#/definitions/xs:double" + }, + "CSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "DeltaHDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "DeltaHUp": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "HDown": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "HUp": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "HDown", + "HUp" + ], + "type": "object" + }, + "RiverWeirOutputComplexType": { + "additionalProperties": false, + "properties": { + "C": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "flowType": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "C", + "Q" + ], + "type": "object" + }, + "RoutingComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "dischargeRef": { + "$ref": "#/definitions/xs:string", + "description": "Reference to timeseries in data configuration" + }, + "inflow": { + "items": { + "$ref": "#/definitions/InflowComplexType" + }, + "type": "array" + }, + "outputReferences": { + "$ref": "#/definitions/RoutingOutputComplexType", + "description": "Contains references to the output timeseries in the data configuration" + }, + "reservoirRouting": { + "$ref": "#/definitions/ReservoirRoutingComplexType" + } + }, + "required": [ + "outputReferences", + "attr_id" + ], + "type": "object" + }, + "RoutingOutputComplexType": { + "additionalProperties": false, + "properties": { + "discharge": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "error": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "type": "object" + }, + "RowComplexType": { + "additionalProperties": false, + "properties": { + "attr_eta_head01": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head02": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head03": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head04": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head05": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head06": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head07": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head08": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head09": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head10": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head11": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head12": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head13": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head14": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head15": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head16": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head17": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head18": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head19": { + "$ref": "#/definitions/xs:double" + }, + "attr_eta_head20": { + "$ref": "#/definitions/xs:double" + }, + "attr_flow": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_eta_head02", + "attr_flow", + "attr_eta_head01" + ], + "type": "object" + }, + "RtcToolsConfigComplexType": { + "additionalProperties": false, + "properties": { + "components": { + "$ref": "#/definitions/ComponentsComplexType", + "description": "The components section includes all simulation components." + }, + "general": { + "$ref": "#/definitions/GeneralModuleConfigComplexType", + "description": "OBSOLETE. Still here for backwards compatibility. Remove after next release." + }, + "rules": { + "$ref": "#/definitions/RulesComplexType", + "description": "The rules section includes operating rules or controllers for defining the release of reservoir, structural settings of gates etc." + }, + "triggers": { + "$ref": "#/definitions/TriggersComplexType", + "description": "Triggers may activate or deactivate rules defined in the section above." + } + }, + "type": "object" + }, + "RuleComplexType": { + "additionalProperties": false, + "properties": { + "constant": { + "$ref": "#/definitions/ConstantRuleComplexType", + "description": "Simple rule with constant value" + }, + "dateLookupTable": { + "$ref": "#/definitions/DateLookupTableComplexType", + "description": "Date lookup table, output y is a function of date and an input value x, the interpolation on the date / value axis can be BLOCK or LINEAR, the number of records should be constant for each date record" + }, + "deadBandTime": { + "$ref": "#/definitions/DeadBandTimeComplexType" + }, + "deadBandValue": { + "$ref": "#/definitions/DeadBandValueComplexType", + "description": "Deadband threshold, yNew will become yOld, if the change yNew-yOld is smaller than the threshold value " + }, + "dedicated-Aebi": { + "$ref": "#/definitions/AebiRuleComplexType", + "description": "Dedicated rule for the control of Bielersee, Canton Bern, CH" + }, + "dedicated-Thunersee": { + "$ref": "#/definitions/ThunerseeRuleComplexType", + "description": "Dedicated rule for the control of Thunersee, Canton Bern, CH" + }, + "expression": { + "$ref": "#/definitions/ExpressionComplexType", + "description": "mathematical expression" + }, + "guideband": { + "$ref": "#/definitions/GuideBandRuleComplexType", + "description": "Guide band rule, output get 0 if input less equal xMin, 1 if input greater equal xMax, linear interpolation otherwise xMin and xMax can be a function of date, main application in combination with a relative release of a reservoir outlet" + }, + "interval": { + "$ref": "#/definitions/IntervalComplexType" + }, + "limiter": { + "$ref": "#/definitions/LimiterComplexType", + "description": "Limiter for limiting the change of a variable in a time step to a relative (PERCENTAGE) or absolute (ABSOLUTE) change" + }, + "lookup2DTable": { + "$ref": "#/definitions/Lookup2DTableComplexType" + }, + "lookupTable": { + "$ref": "#/definitions/LookupTableComplexType" + }, + "merger": { + "$ref": "#/definitions/MergerComplexType", + "description": "Data hierarchy, highest input has highest priority" + }, + "pid": { + "$ref": "#/definitions/PidComplexType" + }, + "timeAbsolute": { + "$ref": "#/definitions/TimeAbsoluteComplexType", + "description": "absolute time controller" + }, + "timeRelative": { + "$ref": "#/definitions/TimeRelativeComplexType", + "description": "relative time controller" + }, + "unitDelay": { + "$ref": "#/definitions/UnitDelayComplexType", + "description": "Unit delay operator for delaying a value by n times the time step of the model." + } + }, + "type": "object" + }, + "RuleStateTriggerComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "ruleId": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "ruleId", + "attr_id" + ], + "type": "object" + }, + "RuleTriggerComplexType": { + "additionalProperties": false, + "properties": { + "trigger": { + "items": { + "$ref": "#/definitions/TriggerComplexType" + }, + "type": "array" + } + }, + "type": "object" + }, + "RulesComplexType": { + "additionalProperties": false, + "properties": { + "rule": { + "items": { + "$ref": "#/definitions/RuleComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "SRMComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/SRMInputComplexType" + }, + "output": { + "$ref": "#/definitions/SRMOutputComplexType" + }, + "parameter": { + "$ref": "#/definitions/SRMParameterComplexType" + }, + "parameterZone": { + "items": { + "$ref": "#/definitions/SRMParameterZoneComplexType" + }, + "minItems": 1, + "type": "array" + }, + "state": { + "$ref": "#/definitions/SRMStateComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "parameterZone", + "state", + "attr_id" + ], + "type": "object" + }, + "SRMInputComplexType": { + "additionalProperties": false, + "properties": { + "P": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "P-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "RCA": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "RCA-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "SCA": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "SCA-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "T": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "T-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "cr": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "cr-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "cs": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "cs-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "type": "object" + }, + "SRMOutputComplexType": { + "additionalProperties": false, + "properties": { + "QRain-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "QSnow-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "QStorage-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "QRain-Vector", + "QSnow-Vector", + "QStorage-Vector" + ], + "type": "object" + }, + "SRMParameterComplexType": { + "additionalProperties": false, + "properties": { + "Pt": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "precipitation threshold [mm]" + }, + "TLag": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Time lag of input data [h]" + }, + "x": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "recession coefficient 1" + }, + "y": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "recession coefficient 2" + } + }, + "required": [ + "Pt", + "TLag", + "x", + "y" + ], + "type": "object" + }, + "SRMParameterZoneComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "Tcr1": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "critical temperature (???) [oC]" + }, + "Tcr2": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "critical temperature (???) [oC]" + }, + "a": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "degree day factor [mm/(oC*day)]" + }, + "area": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "area [km2]" + } + }, + "required": [ + "Tcr1", + "Tcr2", + "a", + "area" + ], + "type": "object" + }, + "SRMStateComplexType": { + "additionalProperties": false, + "properties": { + "PStorage-Vector": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "snow storage of non-snow-covered areas [mm]" + }, + "Q": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "discharge [m3/s]" + } + }, + "required": [ + "PStorage-Vector", + "Q" + ], + "type": "object" + }, + "SetTriggerComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "default": { + "$ref": "#/definitions/xs:boolean" + }, + "false": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "logicalOperator": { + "$ref": "#/definitions/logicalOperatorEnumStringType" + }, + "output": { + "$ref": "#/definitions/TriggerOutputComplexType" + }, + "true": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "x1Series": { + "$ref": "#/definitions/..TimeSeriesSimpleType.24" + }, + "x1Trigger": { + "$ref": "#/definitions/TriggerComplexType" + }, + "x1Value": { + "$ref": "#/definitions/xs:boolean" + }, + "x2Series": { + "$ref": "#/definitions/..TimeSeriesSimpleType.25" + }, + "x2Trigger": { + "$ref": "#/definitions/TriggerComplexType" + }, + "x2Value": { + "$ref": "#/definitions/xs:boolean" + } + }, + "required": [ + "logicalOperator", + "output", + "attr_id" + ], + "type": "object" + }, + "SimpleReservoirComplexType": { + "additionalProperties": false, + "properties": { + "attr_multiplier": { + "minimum": 1, + "type": "integer" + }, + "capacityCharacteristics": { + "$ref": "#/definitions/CapacityCharacteristicsComplexType" + }, + "storageCharacteristics": { + "$ref": "#/definitions/StorageCharacteristicsComplexType" + } + }, + "required": [ + "capacityCharacteristics", + "storageCharacteristics" + ], + "type": "object" + }, + "SnowRainJunctionComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputSnowRainJunctionComplexType" + }, + "output": { + "$ref": "#/definitions/OutputSnowRainJunctionComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterSnowRainJunctionComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "SoilRunoffStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputSoilRunoffStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterSoilRunoffStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "SpatialEnumStringType": { + "description": "options for spatial schetization", + "enum": [ + "CENTRAL", + "UPWIND" + ], + "type": "string" + }, + "SpreadsheetComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "defaultInputValue": { + "$ref": "#/definitions/xs:double", + "description": "default input value, if input is NaN or infinity" + }, + "defaultOutputValue": { + "$ref": "#/definitions/xs:double", + "description": "default output, if no combination of the table applies" + }, + "false": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "input": { + "$ref": "#/definitions/SpreadsheetInputComplexType" + }, + "output": { + "$ref": "#/definitions/SpreadsheetOutputComplexType" + }, + "tables": { + "$ref": "#/definitions/SpreadsheetTablesComplexType", + "description": "number of tables with input, output values, the initial state can be taken into account optionally" + }, + "tolerance": { + "$ref": "#/definitions/xs:double", + "description": "tolerance for finding a match, keep in mind that the all variable are stored in doubles" + }, + "true": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "validPeriods": { + "$ref": "#/definitions/ValidPeriodsComplexType", + "description": "optional period of the year for which the trigger is active" + } + }, + "required": [ + "input", + "output", + "tables", + "tolerance", + "attr_id" + ], + "type": "object" + }, + "SpreadsheetInputComplexType": { + "additionalProperties": false, + "properties": { + "x1": { + "$ref": "#/definitions/..TimeSeriesSimpleType.14" + }, + "x2": { + "$ref": "#/definitions/..TimeSeriesSimpleType.15" + }, + "x3": { + "$ref": "#/definitions/..TimeSeriesSimpleType.16" + } + }, + "required": [ + "x1", + "x2" + ], + "type": "object" + }, + "SpreadsheetOutputComplexType": { + "additionalProperties": false, + "properties": { + "status": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "SpreadsheetRecordComplexType": { + "additionalProperties": false, + "properties": { + "attr_x1": { + "$ref": "#/definitions/xs:double" + }, + "attr_x2": { + "$ref": "#/definitions/xs:double" + }, + "attr_x3": { + "$ref": "#/definitions/xs:double" + }, + "attr_y": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_x1", + "attr_x2", + "attr_y" + ], + "type": "object" + }, + "SpreadsheetTableComplexType": { + "additionalProperties": false, + "properties": { + "attr_initialState": { + "$ref": "#/definitions/xs:double" + }, + "record": { + "items": { + "$ref": "#/definitions/SpreadsheetRecordComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "record" + ], + "type": "object" + }, + "SpreadsheetTablesComplexType": { + "additionalProperties": false, + "properties": { + "table": { + "items": { + "$ref": "#/definitions/SpreadsheetTableComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "table" + ], + "type": "object" + }, + "StandardTriggerComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "condition": { + "$ref": "#/definitions/RelationalConditionComplexType" + }, + "default": { + "$ref": "#/definitions/xs:boolean" + }, + "false": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + }, + "output": { + "$ref": "#/definitions/TriggerOutputComplexType" + }, + "true": { + "$ref": "#/definitions/RuleTriggerComplexType", + "description": "link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules" + } + }, + "required": [ + "condition", + "output", + "attr_id" + ], + "type": "object" + }, + "StorageCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "maximumLevel": { + "$ref": "#/definitions/xs:double", + "description": "Maximum water level h in the reservoir: this optional value does not limit the water level, it is used however to compute the relative filling percentage of the reservoir according to s = S/S(maximumLevel), where S is the absolute storage volume" + }, + "storageEquation": { + "$ref": "#/definitions/EquationsComplexType", + "description": "Storage equation, storage S = f(water level h)" + }, + "storageTable": { + "$ref": "#/definitions/ElevationTableComplexType", + "description": "Storage table with pairs of elevation h and storage S" + } + }, + "type": "object" + }, + "StorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "link": { + "items": { + "$ref": "#/definitions/LinkStorageSystemComplexType" + }, + "minItems": 1, + "type": "array" + }, + "output": { + "$ref": "#/definitions/OutputStorageSystemComplexType" + }, + "settings": { + "$ref": "#/definitions/StorageSystemSettingsComplexType" + }, + "storageNode": { + "items": { + "$ref": "#/definitions/NodeStorageSystemComplexType", + "description": "storage node" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "link", + "storageNode", + "attr_id" + ], + "type": "object" + }, + "StorageSystemSettingsComplexType": { + "additionalProperties": false, + "properties": { + "acceptableConvergenceThreshold": { + "$ref": "#/definitions/xs:double", + "description": "optional threshold after reaching the maximum number of iterations, writes a warning if reached, writes error otherwise" + }, + "convergenceThreshold": { + "$ref": "#/definitions/xs:double", + "description": "iteration stops after reaching this threshold" + }, + "treatNonConvergenceAsError": { + "$ref": "#/definitions/xs:boolean", + "description": "treat non-convergence related to the thresholds as error or not" + } + }, + "required": [ + "convergenceThreshold", + "treatNonConvergenceAsError" + ], + "type": "object" + }, + "SubmodelComplexType": { + "additionalProperties": false, + "properties": { + "evaporationPotential": { + "$ref": "#/definitions/EvaporationPotentialComplexType", + "description": "potential evaporation" + }, + "snowRainJunction": { + "$ref": "#/definitions/SnowRainJunctionComplexType", + "description": "separates precipitation into snow and rainfall" + }, + "storageSystem": { + "$ref": "#/definitions/StorageSystemComplexType", + "description": "storage systems with storage nodes and links for setting up bucket models" + }, + "typicalProfile": { + "$ref": "#/definitions/TypicalProfileComplexType" + } + }, + "type": "object" + }, + "Table2DLookupTableComplexType": { + "additionalProperties": false, + "properties": { + "matrix": { + "$ref": "#/definitions/XDimComplexType" + }, + "x": { + "$ref": "#/definitions/ValueArrayComplexType" + }, + "y": { + "$ref": "#/definitions/ValueArrayComplexType" + } + }, + "required": [ + "matrix", + "x", + "y" + ], + "type": "object" + }, + "TableLookupTableComplexType": { + "additionalProperties": false, + "properties": { + "record": { + "items": { + "$ref": "#/definitions/DateRecord2DataComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "record" + ], + "type": "object" + }, + "TailwaterComplexType": { + "additionalProperties": false, + "description": "\n Table containing data for different elevations. Type of element 'value'\n depends on purpose for which table is used.\n ", + "properties": { + "constant": { + "$ref": "#/definitions/xs:double", + "description": "Constant tailwater level [m]" + }, + "output": { + "$ref": "#/definitions/TailwaterOutputComplexType" + }, + "ratingCurve": { + "$ref": "#/definitions/ElevationTableComplexType", + "description": "Tailwater depending on discharge computed by a rating curve" + } + }, + "required": [ + "output" + ], + "type": "object" + }, + "TailwaterEquationComplexType": { + "additionalProperties": false, + "properties": { + "A": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "B": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "C": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "D": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "FBDown": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "time series reference to forebay elevation of the downstream project, only required if B is non-zero" + } + }, + "required": [ + "A", + "B", + "C" + ], + "type": "object" + }, + "TailwaterOutputComplexType": { + "additionalProperties": false, + "properties": { + "head": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "head [m]" + }, + "level": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "tailwater level [m]" + } + }, + "required": [ + "head", + "level" + ], + "type": "object" + }, + "TailwaterTidalEquationComplexType": { + "additionalProperties": false, + "properties": { + "A": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "QObs": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "TWObs": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "A", + "QObs", + "TWObs" + ], + "type": "object" + }, + "ThunerseeRuleComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/ThunerseeRuleInputComplexType" + }, + "levelSetpoint": { + "$ref": "#/definitions/xs:double" + }, + "output": { + "$ref": "#/definitions/ThunerseeRuleOutputComplexType" + }, + "releaseLimiterPercentage": { + "$ref": "#/definitions/xs:double" + }, + "reservoir": { + "$ref": "#/definitions/ReservoirThunerseeRuleComplexType" + }, + "tunnel": { + "$ref": "#/definitions/TunnelThunerseeRuleComplexType" + }, + "weir": { + "$ref": "#/definitions/WeirThunerseeRuleComplexType" + } + }, + "required": [ + "input", + "levelSetpoint", + "output", + "releaseLimiterPercentage", + "reservoir", + "tunnel", + "weir", + "attr_id" + ], + "type": "object" + }, + "ThunerseeRuleInputComplexType": { + "additionalProperties": false, + "properties": { + "catchment": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "inflow": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "level": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "catchment", + "inflow", + "level" + ], + "type": "object" + }, + "ThunerseeRuleOutputComplexType": { + "additionalProperties": false, + "properties": { + "active": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "releaseTotal": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "releaseTunnel": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "releaseWeir": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "releaseTotal", + "releaseTunnel", + "releaseWeir" + ], + "type": "object" + }, + "TimeAbsoluteComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/TimeAbsoluteInputComplexType" + }, + "output": { + "$ref": "#/definitions/TimeAbsoluteOutputComplexType" + } + }, + "required": [ + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "TimeAbsoluteInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "TimeAbsoluteOutputComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "y" + ], + "type": "object" + }, + "TimeRelativeComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "controlTable": { + "$ref": "#/definitions/TimeRelativeControlTableComplexType", + "description": "table with time [s] / value records" + }, + "input": { + "$ref": "#/definitions/TimeRelativeInputComplexType" + }, + "interpolationOption": { + "$ref": "#/definitions/interpolationOptionEnumStringType", + "description": "table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR" + }, + "maximumPeriod": { + "$ref": "#/definitions/xs:double" + }, + "mode": { + "description": "timeRelative mode, either \"NATIVE\" or \"RETAINVALUEWHENINACTIVE\"", + "enum": [ + "NATIVE", + "RETAINVALUEWHENINACTIVE" + ], + "type": "string" + }, + "output": { + "$ref": "#/definitions/TimeRelativeOutputComplexType" + }, + "valueOption": { + "$ref": "#/definitions/timeRelativeEnumStringType", + "description": "setting if the control table provides the absolute value or the relative value " + } + }, + "required": [ + "controlTable", + "output", + "valueOption", + "attr_id" + ], + "type": "object" + }, + "TimeRelativeControlTableComplexType": { + "additionalProperties": false, + "properties": { + "record": { + "items": { + "$ref": "#/definitions/TimeRelativeControlTableRecordComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "record" + ], + "type": "object" + }, + "TimeRelativeControlTableRecordComplexType": { + "additionalProperties": false, + "properties": { + "attr_time": { + "$ref": "#/definitions/xs:double" + }, + "attr_value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_time", + "attr_value" + ], + "type": "object" + }, + "TimeRelativeInputComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional input for deriving the timeActive in case of the relative from Value option" + } + }, + "required": [ + "y" + ], + "type": "object" + }, + "TimeRelativeOutputComplexType": { + "additionalProperties": false, + "properties": { + "timeActive": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "timeActive", + "y" + ], + "type": "object" + }, + "TimeSeriesSimpleType": { + "minLength": 1, + "type": "string" + }, + "TimeStepComplexType": { + "additionalProperties": false, + "description": "The timeunit element has three attributes, unit and devider and multiplier.\n the unit is second, minute, hour, week, month year.\n The divider attribute is optional (default = 1).", + "properties": { + "attr_divider": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_multiplier": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_unit": { + "$ref": "#/definitions/timeStepUnitEnumStringType" + } + }, + "required": [ + "attr_unit" + ], + "type": "object" + }, + "TimeZoneSimpleType": { + "description": "The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", + "type": "number" + }, + "TriggerComplexType": { + "additionalProperties": false, + "properties": { + "deadBand": { + "$ref": "#/definitions/DeadBandTriggerComplexType", + "description": "trigger with deadband" + }, + "deadBandTime": { + "$ref": "#/definitions/DeadBandTimeComplexType", + "description": "trigger with time deadband" + }, + "expression": { + "$ref": "#/definitions/ExpressionComplexType", + "description": "mathematical expression" + }, + "lookupTable": { + "$ref": "#/definitions/LookupTableComplexType" + }, + "merger": { + "$ref": "#/definitions/MergerComplexType", + "description": "Data hierarchy, highest input has highest priority" + }, + "polygonLookup": { + "$ref": "#/definitions/PolygonLookupComplexType", + "description": "trigger with two-dimensional lookup table, trigger results are defined by polygons" + }, + "ruleReference": { + "$ref": "#/definitions/xs:string" + }, + "set": { + "$ref": "#/definitions/SetTriggerComplexType", + "description": "set of triggers" + }, + "spreadsheet": { + "$ref": "#/definitions/SpreadsheetComplexType", + "description": "spread sheet trigger" + }, + "standard": { + "$ref": "#/definitions/StandardTriggerComplexType", + "description": "standard trigger" + } + }, + "type": "object" + }, + "TriggerControllerComplexType": { + "additionalProperties": false, + "properties": { + "input": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "value": { + "$ref": "#/definitions/xs:integer" + } + }, + "required": [ + "input", + "value" + ], + "type": "object" + }, + "TriggerInputComplexType": { + "additionalProperties": false, + "properties": { + "status": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "TriggerOutputComplexType": { + "additionalProperties": false, + "properties": { + "status": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "timeFalse": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "timeTrue": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "TriggersComplexType": { + "additionalProperties": false, + "properties": { + "trigger": { + "items": { + "$ref": "#/definitions/TriggerComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "trigger" + ], + "type": "object" + }, + "TunnelThunerseeRuleComplexType": { + "additionalProperties": false, + "properties": { + "capacityCharacteristics": { + "$ref": "#/definitions/CapacityCharacteristicsComplexType" + }, + "levelThreshold": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "capacityCharacteristics", + "levelThreshold" + ], + "type": "object" + }, + "TurbineCapacityCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "capacityEquation": { + "$ref": "#/definitions/EquationsComplexType", + "description": "capacity equation of hydropower turbine as a function of the water head" + }, + "capacityTable": { + "$ref": "#/definitions/ElevationTableComplexType", + "description": "capacity table of hydropower turbine as a function of the water head" + } + }, + "type": "object" + }, + "TurbineCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "efficiencyTable": { + "$ref": "#/definitions/ElevationTableComplexType", + "description": "efficiency table unit power output [MW / m3/s] as function of head [m] " + }, + "output": { + "$ref": "#/definitions/TurbineOutputCharacteristicsComplexType" + } + }, + "required": [ + "efficiencyTable", + "output" + ], + "type": "object" + }, + "TurbineComplexType": { + "additionalProperties": false, + "properties": { + "capacityCharacteristics": { + "$ref": "#/definitions/TurbineCapacityCharacteristicsComplexType" + }, + "efficiencyCharacteristics": { + "$ref": "#/definitions/TurbineEfficiencyCharacteristicsComplexType" + }, + "input": { + "$ref": "#/definitions/TurbineInputComplexType" + }, + "nodeDown": { + "$ref": "#/definitions/xs:string" + }, + "nodeUp": { + "$ref": "#/definitions/xs:string" + }, + "output": { + "$ref": "#/definitions/TurbineOutputComplexType" + } + }, + "required": [ + "capacityCharacteristics", + "efficiencyCharacteristics", + "input", + "nodeDown", + "nodeUp", + "output" + ], + "type": "object" + }, + "TurbineEfficiencyCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "efficiencyConstant": { + "$ref": "#/definitions/xs:double", + "description": "constant efficiency over all discharges, typical range is [0.80, 0.90]" + } + }, + "type": "object" + }, + "TurbineEfficiencyTableComplexType": { + "additionalProperties": false, + "properties": { + "columns": { + "$ref": "#/definitions/ColumnsComplexType", + "description": "column Ids refering to the head [m] of each column" + }, + "maxFlows": { + "$ref": "#/definitions/MaxFlowsComplexType", + "description": "maximum flow for a given head (provided above)" + }, + "row": { + "items": { + "$ref": "#/definitions/RowComplexType", + "description": "rows with turbine efficiency (related to the head coloumn) for a given flow" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "columns", + "maxFlows", + "row" + ], + "type": "object" + }, + "TurbineInputComplexType": { + "additionalProperties": false, + "properties": { + "relativeRelease": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "provision of relative turbine release, 1 = maximum capacity" + }, + "release": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "provision of absolute turbine release" + } + }, + "type": "object" + }, + "TurbineOutputCharacteristicsComplexType": { + "additionalProperties": false, + "properties": { + "power": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "power output [MW]" + } + }, + "required": [ + "power" + ], + "type": "object" + }, + "TurbineOutputComplexType": { + "additionalProperties": false, + "properties": { + "discharge": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "discharge in m3/s" + }, + "powerProduction": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "power production in MW" + } + }, + "required": [ + "discharge", + "powerProduction" + ], + "type": "object" + }, + "TypicalProfileComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "data": { + "items": { + "$ref": "#/definitions/DataTypicalProfileComplexType" + }, + "minItems": 1, + "type": "array" + }, + "output": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "data", + "output", + "attr_id" + ], + "type": "object" + }, + "UOutletInputComplexType": { + "additionalProperties": false, + "properties": { + "release": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "release" + ], + "type": "object" + }, + "UncontrolledOutletComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "capacityCharacteristics": { + "$ref": "#/definitions/CapacityCharacteristicsComplexType", + "description": "Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero" + }, + "input": { + "$ref": "#/definitions/UOutletInputComplexType" + }, + "output": { + "$ref": "#/definitions/OutletOutputComplexType" + } + }, + "required": [ + "capacityCharacteristics", + "output", + "attr_id" + ], + "type": "object" + }, + "UnitDelayComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/UnitDelayInputComplexType" + }, + "nStep": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "nStep optionally provides a delay with an arbitrary numer of time steps or sub time step, i.e. 1.5 time steps, if being used also specify the yFinal tag in the output options" + }, + "output": { + "$ref": "#/definitions/UnitDelayOutputComplexType", + "description": "The configuration of a multiple unit delay requires the configuration of a time series for each delay time step" + } + }, + "required": [ + "input", + "output", + "attr_id" + ], + "type": "object" + }, + "UnitDelayInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "UnitDelayOutputComplexType": { + "additionalProperties": false, + "properties": { + "y": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "type": "array" + }, + "yFinal": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional result of the delay operator, identical to yVector[end] if the delay is a multiple of the time step, required in case of sub time steps" + }, + "yMax": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "yMean": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional mean of input and outputs" + }, + "yMin": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "ySum": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional sum of input and outputs" + }, + "yVector": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "type": "object" + }, + "UnitHydrographComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/UnitHydrographInputComplexType" + }, + "output": { + "$ref": "#/definitions/UnitHydrographOutputComplexType" + }, + "weights": { + "$ref": "#/definitions/UnitHydrographWeightComplexType" + } + }, + "required": [ + "input", + "output", + "weights", + "attr_id" + ], + "type": "object" + }, + "UnitHydrographInputComplexType": { + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "x" + ], + "type": "object" + }, + "UnitHydrographOutputComplexType": { + "additionalProperties": false, + "properties": { + "xDelay": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "definition of individual time series for vector with delays, configure one element less than weights defined above" + }, + "type": "array" + }, + "xDelayVector": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "definition of delay vector, configure one element less than weights defined above" + }, + "y": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "result of unit hydrograph" + } + }, + "required": [ + "y" + ], + "type": "object" + }, + "UnitHydrographWeightComplexType": { + "additionalProperties": false, + "properties": { + "custom": { + "$ref": "#/definitions/UnitHydrographWeightCustomComplexType", + "description": "user-defined weights" + }, + "triangular": { + "$ref": "#/definitions/UnitHydrographWeightTriangularComplexType", + "description": "weights with triangular shape" + } + }, + "type": "object" + }, + "UnitHydrographWeightCustomComplexType": { + "additionalProperties": false, + "properties": { + "weight": { + "items": { + "$ref": "#/definitions/xs:double", + "description": "user defined weights" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "weight" + ], + "type": "object" + }, + "UnitHydrographWeightTriangularComplexType": { + "additionalProperties": false, + "properties": { + "factor": { + "$ref": "#/definitions/xs:double", + "description": "sum of all weight, if not equal to 1.0" + }, + "nSteps": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "number of time steps" + } + }, + "required": [ + "nSteps" + ], + "type": "object" + }, + "UnitTypeEnumStringType": { + "enum": [ + "SI", + "Imperial" + ], + "type": "string" + }, + "ValidPeriodComplexType": { + "additionalProperties": false, + "properties": { + "endDate": { + "$ref": "#/definitions/DateComplexType" + }, + "startDate": { + "$ref": "#/definitions/DateComplexType" + } + }, + "required": [ + "endDate", + "startDate" + ], + "type": "object" + }, + "ValidPeriodsComplexType": { + "additionalProperties": false, + "properties": { + "validPeriod": { + "items": { + "$ref": "#/definitions/ValidPeriodComplexType" + }, + "type": "array" + } + }, + "type": "object" + }, + "ValueArrayComplexType": { + "additionalProperties": false, + "properties": { + "value": { + "items": { + "$ref": "#/definitions/xs:float" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "VariableTypeEnumStringType": { + "enum": [ + "CONTINUOUS", + "INTEGER", + "TIMEINSTANCE" + ], + "type": "string" + }, + "WeirThunerseeRuleComplexType": { + "additionalProperties": false, + "properties": { + "capacityCharacteristics": { + "$ref": "#/definitions/CapacityCharacteristicsComplexType" + } + }, + "required": [ + "capacityCharacteristics" + ], + "type": "object" + }, + "XDimComplexType": { + "additionalProperties": false, + "properties": { + "xDim": { + "items": { + "$ref": "#/definitions/YDimComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "xDim" + ], + "type": "object" + }, + "YDimComplexType": { + "additionalProperties": false, + "properties": { + "yDim": { + "items": { + "$ref": "#/definitions/xs:float" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "yDim" + ], + "type": "object" + }, + "ZoneComplexType": { + "additionalProperties": false, + "properties": { + "attr_max": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_min": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "dateTable": { + "$ref": "#/definitions/DateTableComplexType" + } + }, + "required": [ + "dateTable" + ], + "type": "object" + }, + "ZonesComplexType": { + "additionalProperties": false, + "properties": { + "zone": { + "items": { + "$ref": "#/definitions/ZoneComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "zone" + ], + "type": "object" + }, + "caseLangetenEnumStringType": { + "enum": [ + 1, + 2 + ], + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "dateType": { + "pattern": "^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$", + "type": "string" + }, + "evaporationActualStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputEvaporationActualStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterEvaporationActualStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "evaporationInterceptionStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputEvaporationInterceptionStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterEvaporationInterceptionStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "flowDirectionEnumStringType": { + "anyOf": [ + { + "enum": [ + "POSITIVE", + "NEGATIVE", + "BOTH" + ], + "type": "string" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ], + "description": "flow direction" + }, + "groundwaterFlowStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputGroundwaterFlowStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParametergroundwaterFlowStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "inputReferenceEnumStringType": { + "enum": [ + "EXPLICIT", + "IMPLICIT" + ], + "type": "string" + }, + "interpolationOptionEnumStringType": { + "description": "Type of interpolation", + "enum": [ + "BLOCK", + "LINEAR" + ], + "type": "string" + }, + "irrigationStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "nodeD": { + "$ref": "#/definitions/xs:string", + "description": "downstream node which recieves the irrigation water" + }, + "nodeU": { + "$ref": "#/definitions/xs:string", + "description": "upstream node, source of water usually the drinking water treatment plant" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterIrrigationStorageSystemComplexType" + } + }, + "required": [ + "nodeD", + "nodeU", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "limiterOptionEnumStringType": { + "description": "Type of limiting", + "enum": [ + "PERCENTAGE", + "ABSOLUTE" + ], + "type": "string" + }, + "logicalOperatorEnumStringType": { + "description": "logical operator", + "enum": [ + "AND", + "OR", + "XOR" + ], + "type": "string" + }, + "meltRefreezingStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "instanteneous temperature [oC]" + }, + "nodeD": { + "$ref": "#/definitions/xs:string", + "description": "downstream node, typically WC (water content)" + }, + "nodeU": { + "$ref": "#/definitions/xs:string", + "description": "upstream node, typically SP (snow pack)" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterMeltRefreezingStorageSystemComplexType" + } + }, + "required": [ + "input", + "nodeD", + "nodeU", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "poolRoutingEnumStringType": { + "description": "Type of pool routing.", + "enum": [ + "ForwardEuler", + "BackwardEuler", + "Theta" + ], + "type": "string" + }, + "relationalOperatorEnumStringType": { + "description": "relational operator", + "enum": [ + "Less", + "LessEqual", + "Equal", + "Unequal", + "GreaterEqual", + "Greater" + ], + "type": "string" + }, + "releaseAboveThresholdStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputReleaseAboveThresholdStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterReleaseAboveThresholdStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "releaseWaterContentStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "nodeA": { + "$ref": "#/definitions/xs:string", + "description": "auxiliary node with snow pack, typically SP (snow pack)" + }, + "nodeU": { + "$ref": "#/definitions/xs:string", + "description": "upstream node, typically WC (water content)" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterReleaseWaterContentStorageSystemComplexType" + } + }, + "required": [ + "nodeA", + "nodeU", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "timeRelativeEnumStringType": { + "description": "Value option", + "enum": [ + "ABSOLUTE", + "RELATIVE" + ], + "type": "string" + }, + "timeSeriesType": { + "description": "Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ", + "enum": [ + "accumulative", + "instantaneous" + ], + "type": "string" + }, + "timeStepUnitEnumStringType": { + "enum": [ + "second", + "minute", + "hour", + "day", + "week" + ], + "type": "string" + }, + "timeType": { + "pattern": "^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$", + "type": "string" + }, + "transferFunctionEnumStringType": { + "description": "Type of transfer function.", + "enum": [ + "Linear", + "SigmoidLogistic", + "Tansig" + ], + "type": "string" + }, + "waterDistributionConstantStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputWaterDistributionConstantStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterWaterDistributionConstantStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "waterDistributionVariableStorageSystemComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/InputWaterDistributionVariableStorageSystemComplexType" + }, + "output": { + "$ref": "#/definitions/OutputLinkStorageSystemComplexType" + }, + "parameter": { + "$ref": "#/definitions/ParameterWaterDistributionVariableStorageSystemComplexType" + } + }, + "required": [ + "input", + "output", + "parameter", + "attr_id" + ], + "type": "object" + }, + "xs:boolean": { + "type": "boolean" + }, + "xs:dateTime": { + "type": "string" + }, + "xs:double": { + "type": "number" + }, + "xs:float": { + "type": "number" + }, + "xs:gMonthDay": { + "type": "string" + }, + "xs:int": { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "xs:integer": { + "type": "integer" + }, + "xs:positiveInteger": { + "minimum": 1, + "type": "integer" + }, + "xs:string": { + "type": "string" + }, + "xs:time": { + "type": "string" + } + }, + "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", + "properties": { + "attr_xmlns:rtc": { + "default": "http://www.wldelft.nl/fews" + }, + "attr_xmlns:xs": { + "default": "http://www.w3.org/2001/XMLSchema" + }, + "rtcToolsConfig": { + "$ref": "#/definitions/.rtcToolsConfig" + } + }, + "type": "object" +} \ No newline at end of file From a3fe4bd72c280c722a696b42acdba4a4efbd84f8 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 15:26:36 +0200 Subject: [PATCH 13/22] #226: Update generated models --- .../core/io/rtc/rtcDataConfig/generated/_.py | 6 +- .../rtc/rtcDataConfig/generated/__init__.py | 55 +- .../core/io/rtc/rtcToolsConfig/generated/_.py | 12 +- .../_/_/ExternalParameterSimpleType.py | 21 + .../generated/_/_/TimeSeriesSimpleType.py | 247 + .../rtcToolsConfig/generated/_/_/__init__.py | 2 +- .../_/_/rtc_ExternalParameterSimpleType.py | 22 - .../generated/_/_/rtc_TimeSeriesSimpleType.py | 250 -- .../rtcToolsConfig/generated/_/_/xs_string.py | 15 +- .../rtc/rtcToolsConfig/generated/__init__.py | 3999 +++++++---------- 10 files changed, 1961 insertions(+), 2668 deletions(-) create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py create mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py delete mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_ExternalParameterSimpleType.py delete mode 100644 hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_TimeSeriesSimpleType.py diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py index 034a8cc6d..9392b4688 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py @@ -1,15 +1,15 @@ # generated by datamodel-codegen: # filename: rtcDataConfig.json -# timestamp: 2022-09-27T13:10:33+00:00 +# timestamp: 2022-09-27T13:22:03+00:00 from __future__ import annotations -from pydantic import BaseModel +from hydrolib.core.io.rtc.basemodel import RtcBaseModel from . import RtcDataConfigComplexType -class RtcDataConfig(BaseModel): +class RtcDataConfig(RtcBaseModel): class Config: allow_population_by_field_name = True diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py index 2404e622d..2c717e25d 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py @@ -1,13 +1,14 @@ # generated by datamodel-codegen: # filename: rtcDataConfig.json -# timestamp: 2022-09-27T13:10:33+00:00 +# timestamp: 2022-09-27T13:22:03+00:00 from __future__ import annotations from enum import Enum from typing import Any, List, Optional, Union -from pydantic import BaseModel, Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Extra, Field from . import _ @@ -23,42 +24,42 @@ class EnsembleModeEnumStringType(str, Enum): INDEPENDENT = 'INDEPENDENT' -class ExternalBooleanSimpleTypeItem(BaseModel): +class ExternalBooleanSimpleTypeItem(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') -class ExternalBooleanSimpleType(BaseModel): +class ExternalBooleanSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: Union[bool, ExternalBooleanSimpleTypeItem] -class ExternalIntegerSimpleTypeItem(BaseModel): +class ExternalIntegerSimpleTypeItem(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') -class ExternalIntegerSimpleType(BaseModel): +class ExternalIntegerSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: Union[int, ExternalIntegerSimpleTypeItem] -class ExternalParameterSimpleTypeItem(BaseModel): +class ExternalParameterSimpleTypeItem(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([#-\\$][\\(-_a-z]+[#-\\$])$') -class ExternalParameterSimpleType(BaseModel): +class ExternalParameterSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True @@ -92,14 +93,14 @@ class SeparatorEnumStringType(str, Enum): __2 = ';' -class TimeSeriesSimpleType(BaseModel): +class TimeSeriesSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., min_length=1) -class TimeZoneSimpleType(BaseModel): +class TimeZoneSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True @@ -123,7 +124,7 @@ class VariableTypeEnumStringType(str, Enum): TIMEINSTANCE = 'TIMEINSTANCE' -class DateType(BaseModel): +class DateType(RtcBaseModel): class Config: allow_population_by_field_name = True @@ -152,35 +153,35 @@ class TimeStepUnitEnumStringType(str, Enum): week = 'week' -class TimeType(BaseModel): +class TimeType(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') -class XsBoolean(BaseModel): +class XsBoolean(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: bool -class XsPositiveInteger(BaseModel): +class XsPositiveInteger(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: int = Field(..., ge=1) -class XsString(BaseModel): +class XsString(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str -class CSVTimeSeriesFileComplexType(BaseModel): +class CSVTimeSeriesFileComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True @@ -190,7 +191,7 @@ class Config: attr_delimiter: Optional[SeparatorEnumStringType] = None -class DateTimeComplexType(BaseModel): +class DateTimeComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True @@ -199,7 +200,7 @@ class Config: attr_time: TimeType -class OpenMIExchangeItemComplexType(BaseModel): +class OpenMIExchangeItemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True @@ -213,7 +214,7 @@ class Config: unit: UnitEnumStringType = Field(..., description='Selection of supported units') -class PITimeSeriesExportFileComplexType(BaseModel): +class PITimeSeriesExportFileComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True @@ -228,7 +229,7 @@ class Config: ) -class PITimeSeriesImportFileComplexType(BaseModel): +class PITimeSeriesImportFileComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True @@ -242,7 +243,7 @@ class Config: ) -class TimeStepComplexType(BaseModel): +class TimeStepComplexType(RtcBaseModel): """ The timeunit element has three attributes, unit and devider and multiplier. the unit is second, minute, hour, week, month year. @@ -258,7 +259,7 @@ class Config: attr_unit: TimeStepUnitEnumStringType -class PITimeSeriesComplexType(BaseModel): +class PITimeSeriesComplexType(RtcBaseModel): """ The header is used to specify the link to the location and the contents @@ -291,7 +292,7 @@ class Config: ) -class RtcTimeSeriesComplexType(BaseModel): +class RtcTimeSeriesComplexType(RtcBaseModel): """ The header is used to specify the link to the location and the contents @@ -314,7 +315,7 @@ class Config: ) -class RtcSeriesExportComplexType(BaseModel): +class RtcSeriesExportComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True @@ -327,7 +328,7 @@ class Config: timeSeries: List[RtcTimeSeriesComplexType] = Field(..., min_items=1) -class RtcSeriesImportComplexType(BaseModel): +class RtcSeriesImportComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True @@ -336,7 +337,7 @@ class Config: timeSeries: List[RtcTimeSeriesComplexType] = Field(..., min_items=1) -class RtcDataConfigComplexType(BaseModel): +class RtcDataConfigComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True @@ -351,7 +352,7 @@ class Config: ) -class Model(BaseModel): +class Model(RtcBaseModel): """ JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com) """ diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py index bf086dd39..ca864ccdf 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py @@ -1,19 +1,19 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:06:58+00:00 +# timestamp: 2022-09-27T13:24:09+00:00 from __future__ import annotations -from pydantic import BaseModel +from hydrolib.core.io.rtc.basemodel import RtcBaseModel -from . import RtcRtcToolsConfigComplexType +from . import RtcToolsConfigComplexType -class RtcRtcToolsConfig(BaseModel): +class RtcToolsConfig(RtcBaseModel): class Config: allow_population_by_field_name = True - __root__: RtcRtcToolsConfigComplexType + __root__: RtcToolsConfigComplexType -RtcRtcToolsConfig.update_forward_refs() +RtcToolsConfig.update_forward_refs() diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py new file mode 100644 index 000000000..ec5e4fea8 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: rtcToolsConfig.json +# timestamp: 2022-09-27T13:24:09+00:00 + +from __future__ import annotations + +from typing import Optional + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Extra, Field + +from ... import ExternalParameterSimpleType, XsBoolean + + +class Field1(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[ExternalParameterSimpleType] = Field(None, alias='$') + attr_useAbsoluteAsSpillCap: Optional[XsBoolean] = None diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py new file mode 100644 index 000000000..0ccd04677 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py @@ -0,0 +1,247 @@ +# generated by datamodel-codegen: +# filename: rtcToolsConfig.json +# timestamp: 2022-09-27T13:24:09+00:00 + +from __future__ import annotations + +from typing import Optional + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Extra, Field + +from ... import ( + InputReferenceEnumStringType, + TimeSeriesSimpleType, + XsBoolean, + XsDouble, + XsString, +) + + +class Field1(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_id: XsString + attr_selectingColumnId: Optional[XsString] = None + + +class Field10(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field11(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field12(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field13(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field14(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field15(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field16(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field17(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_factor: Optional[XsDouble] = None + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field18(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_nStepSeries: Optional[TimeSeriesSimpleType] = None + attr_nStepSeriesStart: Optional[TimeSeriesSimpleType] = None + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field19(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_factor: Optional[XsDouble] = None + + +class Field2(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field20(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field21(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field22(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field23(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field24(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field25(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field3(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field4(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field5(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None + + +class Field6(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_factor: Optional[XsDouble] = None + + +class Field7(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_useAbsoluteAsSpillCap: Optional[XsBoolean] = None + + +class Field8(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_factor: Optional[XsDouble] = None + + +class Field9(RtcBaseModel): + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') + attr_ref: Optional[InputReferenceEnumStringType] = None diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py index 572842aa2..637f69e04 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py @@ -1,3 +1,3 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:06:58+00:00 +# timestamp: 2022-09-27T13:24:09+00:00 diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_ExternalParameterSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_ExternalParameterSimpleType.py deleted file mode 100644 index 34a93bcac..000000000 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_ExternalParameterSimpleType.py +++ /dev/null @@ -1,22 +0,0 @@ -# generated by datamodel-codegen: -# filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:06:58+00:00 - -from __future__ import annotations - -from typing import Optional - -from pydantic import BaseModel, Extra, Field - -from ... import RtcExternalParameterSimpleType, XsBoolean - - -class Field1(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcExternalParameterSimpleType] = Field(None, alias='$') - _useAbsoluteAsSpillCap: Optional[XsBoolean] = Field( - None, alias='@useAbsoluteAsSpillCap' - ) diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_TimeSeriesSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_TimeSeriesSimpleType.py deleted file mode 100644 index e3b4a3e4a..000000000 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/rtc_TimeSeriesSimpleType.py +++ /dev/null @@ -1,250 +0,0 @@ -# generated by datamodel-codegen: -# filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:06:58+00:00 - -from __future__ import annotations - -from typing import Optional - -from pydantic import BaseModel, Extra, Field - -from ... import ( - RtcInputReferenceEnumStringType, - RtcTimeSeriesSimpleType, - XsBoolean, - XsDouble, - XsString, -) - - -class Field1(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _id: XsString = Field(..., alias='@id') - _selectingColumnId: Optional[XsString] = Field(None, alias='@selectingColumnId') - - -class Field10(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field11(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field12(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field13(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field14(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field15(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field16(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field17(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _factor: Optional[XsDouble] = Field(None, alias='@factor') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field18(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _nStepSeries: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@nStepSeries') - _nStepSeriesStart: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='@nStepSeriesStart' - ) - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field19(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _factor: Optional[XsDouble] = Field(None, alias='@factor') - - -class Field2(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field20(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field21(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field22(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field23(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field24(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field25(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field3(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field4(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field5(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') - - -class Field6(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _factor: Optional[XsDouble] = Field(None, alias='@factor') - - -class Field7(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _useAbsoluteAsSpillCap: Optional[XsBoolean] = Field( - None, alias='@useAbsoluteAsSpillCap' - ) - - -class Field8(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _factor: Optional[XsDouble] = Field(None, alias='@factor') - - -class Field9(BaseModel): - class Config: - extra = Extra.forbid - allow_population_by_field_name = True - - _: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='$') - _ref: Optional[RtcInputReferenceEnumStringType] = Field(None, alias='@ref') diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py index 59f10b3e8..4b7cf547e 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py @@ -1,29 +1,30 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:06:58+00:00 +# timestamp: 2022-09-27T13:24:09+00:00 from __future__ import annotations from typing import Optional -from pydantic import BaseModel, Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Extra, Field -from ... import RtcExternalParameterSimpleType, XsString +from ... import ExternalParameterSimpleType, XsString -class Field1(BaseModel): +class Field1(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True _: Optional[XsString] = Field(None, alias='$') - _weight: RtcExternalParameterSimpleType = Field(..., alias='@weight') + attr_weight: ExternalParameterSimpleType -class Field2(BaseModel): +class Field2(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True _: Optional[XsString] = Field(None, alias='$') - _weight: RtcExternalParameterSimpleType = Field(..., alias='@weight') + attr_weight: ExternalParameterSimpleType diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py index 5d9c82a69..6e2a5cdc2 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py @@ -1,30 +1,31 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:06:58+00:00 +# timestamp: 2022-09-27T13:24:09+00:00 from __future__ import annotations from enum import Enum from typing import Any, List, Optional, Union -from pydantic import BaseModel, Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Extra, Field from . import _ -from ._._ import rtc_ExternalParameterSimpleType, rtc_TimeSeriesSimpleType, xs_string +from ._._ import ExternalParameterSimpleType, TimeSeriesSimpleType, xs_string -class RtcAggregationTypeEnumStringType(str, Enum): +class AggregationTypeEnumStringType(str, Enum): BLOCK = 'BLOCK' LINEAR = 'LINEAR' -class RtcBranchTypeEnumStringType(str, Enum): +class BranchTypeEnumStringType(str, Enum): KINEMATIC = 'KINEMATIC' DIFFUSIVE = 'DIFFUSIVE' DIFFUSIVEPLUSLOCAL = 'DIFFUSIVEPLUSLOCAL' -class RtcCapacityReferenceEnumStringType(str, Enum): +class CapacityReferenceEnumStringType(str, Enum): """ reference for capacity """ @@ -33,7 +34,7 @@ class RtcCapacityReferenceEnumStringType(str, Enum): HEAD = 'HEAD' -class _MonthOfYear(str, Enum): +class AttrMonthOfYear(str, Enum): January = 'January' February = 'February' March = 'March' @@ -48,212 +49,195 @@ class _MonthOfYear(str, Enum): December = 'December' -class RtcEnsembleModeEnumStringType(str, Enum): +class EnsembleModeEnumStringType(str, Enum): JOINT = 'JOINT' TREE = 'TREE' INDEPENDENT = 'INDEPENDENT' -class RtcEquationEnumStringType(str, Enum): +class EquationEnumStringType(str, Enum): KINEMATIC = 'KINEMATIC' DIFFUSIVE = 'DIFFUSIVE' INERTIAL = 'INERTIAL' -class RtcExternalBooleanSimpleTypeItem(BaseModel): +class ExternalBooleanSimpleTypeItem(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') -class RtcExternalBooleanSimpleType(BaseModel): +class ExternalBooleanSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True - __root__: Union[bool, RtcExternalBooleanSimpleTypeItem] + __root__: Union[bool, ExternalBooleanSimpleTypeItem] -class RtcExternalIntegerSimpleTypeItem(BaseModel): +class ExternalIntegerSimpleTypeItem(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') -class RtcExternalIntegerSimpleType(BaseModel): +class ExternalIntegerSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True - __root__: Union[int, RtcExternalIntegerSimpleTypeItem] + __root__: Union[int, ExternalIntegerSimpleTypeItem] -class RtcExternalParameterSimpleTypeItem(BaseModel): +class ExternalParameterSimpleTypeItem(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([#-\\$][\\(-_a-z]+[#-\\$])$') -class RtcExternalParameterSimpleType(BaseModel): +class ExternalParameterSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True - __root__: Union[float, RtcExternalParameterSimpleTypeItem] + __root__: Union[float, ExternalParameterSimpleTypeItem] -class RtcHBVParameterInputComplexType(BaseModel): +class HBVParameterInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_ECORR: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:ECORR', description='correction factor for EP' + ECORR: Optional[ExternalParameterSimpleType] = Field( + None, description='correction factor for EP' ) - rtc_RFCF: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:RFCF', description='correction factor for rainfall' + RFCF: Optional[ExternalParameterSimpleType] = Field( + None, description='correction factor for rainfall' ) - rtc_SFCF: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:SFCF', description='correction factor for snow' + SFCF: Optional[ExternalParameterSimpleType] = Field( + None, description='correction factor for snow' ) - rtc_TT: RtcExternalParameterSimpleType = Field( - ..., - alias='rtc:TT', - description='temperature limit for snow / rain [oC], normally close to 0 ', + TT: ExternalParameterSimpleType = Field( + ..., description='temperature limit for snow / rain [oC], normally close to 0 ' ) - rtc_TTI: RtcExternalParameterSimpleType = Field( - ..., - alias='rtc:TTI', - description='temperature interval with a mixture of snow / rain [oC]', + TTI: ExternalParameterSimpleType = Field( + ..., description='temperature interval with a mixture of snow / rain [oC]' ) -class RtcHBVParameterInterceptionComplexType(BaseModel): +class HBVParameterInterceptionComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_LIC: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:LIC', description='maximum interception storage' + LIC: ExternalParameterSimpleType = Field( + ..., description='maximum interception storage' ) -class RtcHBVParameterResponseComplexType(BaseModel): +class HBVParameterResponseComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_ALPHA: RtcExternalParameterSimpleType = Field( - ..., - alias='rtc:ALPHA', - description='response box parameter [-], usually between 1.0 and 2.0', - ) - rtc_AREA: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:AREA', description='catchment area [km2]' - ) - rtc_K: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:K', description='recession coefficient' + ALPHA: ExternalParameterSimpleType = Field( + ..., description='response box parameter [-], usually between 1.0 and 2.0' ) - rtc_K1: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:K1', description='recession coefficient [1/day]' + AREA: ExternalParameterSimpleType = Field(..., description='catchment area [km2]') + K: ExternalParameterSimpleType = Field(..., description='recession coefficient') + K1: ExternalParameterSimpleType = Field( + ..., description='recession coefficient [1/day]' ) - rtc_PERC: RtcExternalParameterSimpleType = Field( + PERC: ExternalParameterSimpleType = Field( ..., - alias='rtc:PERC', description='percolation from upper to lower response box [mm/day], usually between 0 and 6', ) -class RtcHBVParameterSnowComplexType(BaseModel): +class HBVParameterSnowComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_CFMAX: RtcExternalParameterSimpleType = Field( + CFMAX: ExternalParameterSimpleType = Field( ..., - alias='rtc:CFMAX', description='degree day factor [mm/(oC*day)], varies normally between 1.5 and 4, 2 and 3.5 can be used in forested and open\nlandscape respectively', ) - rtc_CFR: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:CFR', description='refreezing factor [-], about 0.05' + CFR: ExternalParameterSimpleType = Field( + ..., description='refreezing factor [-], about 0.05' ) - rtc_CWH: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:CWH', description='water holding capacity [-], usually 0.1' + CWH: ExternalParameterSimpleType = Field( + ..., description='water holding capacity [-], usually 0.1' ) - rtc_TTM: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:TTM', description='temperature limit for melting [oC]' + TTM: ExternalParameterSimpleType = Field( + ..., description='temperature limit for melting [oC]' ) -class RtcHBVParameterSoilComplexType(BaseModel): +class HBVParameterSoilComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_BETA: RtcExternalParameterSimpleType = Field( - ..., - alias='rtc:BETA', - description='parameter in soil routine [-], usually between 1 and 6', - ) - rtc_CFLUX: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:CFLUX', description='maximum value of CF' + BETA: ExternalParameterSimpleType = Field( + ..., description='parameter in soil routine [-], usually between 1 and 6' ) - rtc_ETF: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:ETF', description='temperature correction factor' + CFLUX: ExternalParameterSimpleType = Field(..., description='maximum value of CF') + ETF: ExternalParameterSimpleType = Field( + ..., description='temperature correction factor' ) - rtc_FC: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:FC', description='field capacity [mm], between 50 and 500' + FC: ExternalParameterSimpleType = Field( + ..., description='field capacity [mm], between 50 and 500' ) - rtc_LP: RtcExternalParameterSimpleType = Field( + LP: ExternalParameterSimpleType = Field( ..., - alias='rtc:LP', description='limit for potential evapotranspiration [-], in the range between 0.3 and 1', ) -class RtcHydraulicModelModeEnumStringType(str, Enum): +class HydraulicModelModeEnumStringType(str, Enum): SEQUENTIAL_EXPLICIT = 'SEQUENTIAL_EXPLICIT' SEQUENTIAL_IMPLICIT = 'SEQUENTIAL_IMPLICIT' SIMULTANEOUS = 'SIMULTANEOUS' -class RtcLayerIDSimpleType(BaseModel): +class LayerIDSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([L][0-9]+)$') -class RtcPropertyEnum(str, Enum): +class PropertyEnum(str, Enum): MONOTON = 'MONOTON' POSITIVE = 'POSITIVE' -class RtcLorentGeversParameterResponseComplexType(BaseModel): +class LorentGeversParameterResponseComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: RtcExternalParameterSimpleType = Field(..., alias='rtc:AREA') - rtc_KB: RtcExternalParameterSimpleType = Field(..., alias='rtc:KB') - rtc_KS: RtcExternalParameterSimpleType = Field(..., alias='rtc:KS') - rtc_TB1: RtcExternalParameterSimpleType = Field(..., alias='rtc:TB1') - rtc_TB2: RtcExternalParameterSimpleType = Field(..., alias='rtc:TB2') - rtc_TS1: RtcExternalParameterSimpleType = Field(..., alias='rtc:TS1') - rtc_TS2: RtcExternalParameterSimpleType = Field(..., alias='rtc:TS2') + AREA: ExternalParameterSimpleType + KB: ExternalParameterSimpleType + KS: ExternalParameterSimpleType + TB1: ExternalParameterSimpleType + TB2: ExternalParameterSimpleType + TS1: ExternalParameterSimpleType + TS2: ExternalParameterSimpleType -class RtcLorentGeversParameterSoilComplexType(BaseModel): +class LorentGeversParameterSoilComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_BETA: RtcExternalParameterSimpleType = Field(..., alias='rtc:BETA') - rtc_PMAX: RtcExternalParameterSimpleType = Field(..., alias='rtc:PMAX') - rtc_SMAX: RtcExternalParameterSimpleType = Field(..., alias='rtc:SMAX') + BETA: ExternalParameterSimpleType + PMAX: ExternalParameterSimpleType + SMAX: ExternalParameterSimpleType -class RtcMathematicalOperatorEnumStringType(str, Enum): +class MathematicalOperatorEnumStringType(str, Enum): """ mathematical operators """ @@ -267,309 +251,263 @@ class RtcMathematicalOperatorEnumStringType(str, Enum): __4 = '^' -class RtcMergerSplitterEnumStringType(str, Enum): +class MergerSplitterEnumStringType(str, Enum): AVERAGE = 'AVERAGE' DATAHIERARCHY = 'DATAHIERARCHY' SUM = 'SUM' -class RtcNeuronIDSimpleType(BaseModel): +class NeuronIDSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([L][0-9]+[N][0-9]+)$') -class RtcParameterCapillaryFlowStorageSystemComplexType(BaseModel): +class ParameterCapillaryFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2]' - ) - rtc_CFLUX: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:CFLUX', description='maximum value of capillary flow [mm/d]' - ) - rtc_FC: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:FC', description='field capacity [mm]' + AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') + CFLUX: ExternalParameterSimpleType = Field( + ..., description='maximum value of capillary flow [mm/d]' ) + FC: ExternalParameterSimpleType = Field(..., description='field capacity [mm]') -class RtcParameterEvaporationActualStorageSystemComplexType(BaseModel): +class ParameterEvaporationActualStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [1000 m2], default = 1.0' + AREA: Optional[ExternalParameterSimpleType] = Field( + None, description='area [1000 m2], default = 1.0' ) - rtc_D: Optional[RtcExternalParameterSimpleType] = Field( - None, - alias='rtc:D', - description='distance measure for smoothing the transitions [-]', + D: Optional[ExternalParameterSimpleType] = Field( + None, description='distance measure for smoothing the transitions [-]' ) - rtc_FC: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:FC', description='field capacity [mm]' - ) - rtc_LP: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:LP', description='limit for potential evaporation [-]' + FC: ExternalParameterSimpleType = Field(..., description='field capacity [mm]') + LP: ExternalParameterSimpleType = Field( + ..., description='limit for potential evaporation [-]' ) -class RtcParameterEvaporationInterceptionStorageSystemComplexType(BaseModel): +class ParameterEvaporationInterceptionStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2]' - ) + AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') -class RtcParameterEvaporationPotentialComplexType(BaseModel): +class ParameterEvaporationPotentialComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_ECORR: Optional[RtcExternalParameterSimpleType] = Field( - None, - alias='rtc:ECORR', - description='evaporation correction factor, default = 1.0', + ECORR: Optional[ExternalParameterSimpleType] = Field( + None, description='evaporation correction factor, default = 1.0' ) - rtc_ETF: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:ETF', description='temperature correction factor' + ETF: ExternalParameterSimpleType = Field( + ..., description='temperature correction factor' ) -class RtcParameterIrrigationStorageSystemComplexType(BaseModel): +class ParameterIrrigationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2], default = 1.0' + AREA: Optional[ExternalParameterSimpleType] = Field( + None, description='area [km2], default = 1.0' ) - rtc_IRR_CONST: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:IRR_CONST', description='costant irrigation flux [mm/d]' + IRR_CONST: Optional[ExternalParameterSimpleType] = Field( + None, description='costant irrigation flux [mm/d]' ) - rtc_IRR_THR: RtcExternalParameterSimpleType = Field( + IRR_THR: ExternalParameterSimpleType = Field( ..., - alias='rtc:IRR_THR', description='Threshold of the downstream node under which irrigation is needed [mm]', ) - rtc_M: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:M', description='smoothing factor' + M: Optional[ExternalParameterSimpleType] = Field( + None, description='smoothing factor' ) -class RtcParameterMeltRefreezingStorageSystemComplexType(BaseModel): +class ParameterMeltRefreezingStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2]' - ) - rtc_CFMAX: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:CFMAX', description='degree day factor [mm/day]' - ) - rtc_CFR: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:CFR', description='refreezing factor [-]' + AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') + CFMAX: ExternalParameterSimpleType = Field( + ..., description='degree day factor [mm/day]' ) - rtc_M: Optional[RtcExternalParameterSimpleType] = Field( + CFR: ExternalParameterSimpleType = Field(..., description='refreezing factor [-]') + M: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:M', description='smoothing factor, default = 0.05, more smoothing for higher value and vice versa', ) - rtc_TTM: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:TTM', description='temperature limit for melting [oC]' + TTM: ExternalParameterSimpleType = Field( + ..., description='temperature limit for melting [oC]' ) -class RtcParameterPercolationStorageSystemComplexType(BaseModel): +class ParameterPercolationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2]' - ) - rtc_PERC: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:PERC', description='percolation [mm/d]' - ) + AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') + PERC: ExternalParameterSimpleType = Field(..., description='percolation [mm/d]') -class RtcParameterReleaseAboveThresholdStorageSystemComplexType(BaseModel): +class ParameterReleaseAboveThresholdStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2], default = 1.0' + AREA: Optional[ExternalParameterSimpleType] = Field( + None, description='area [km2], default = 1.0' ) - rtc_FRAC: Optional[RtcExternalParameterSimpleType] = Field( + FRAC: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:FRAC', description='percentage of the flow which flows towards the bucket of interest. The permitted range is between 0 and 100', ) - rtc_LIC: RtcExternalParameterSimpleType = Field( - ..., - alias='rtc:LIC', - description='upper limit of (interception) storage node [mm]', + LIC: ExternalParameterSimpleType = Field( + ..., description='upper limit of (interception) storage node [mm]' ) - rtc_M: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:M', description='smoothing factor' + M: Optional[ExternalParameterSimpleType] = Field( + None, description='smoothing factor' ) -class RtcParameterReleaseTotalComplexType(BaseModel): +class ParameterReleaseTotalComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:AREA', description='area [km2]' - ) + AREA: ExternalParameterSimpleType = Field(..., description='area [km2]') -class RtcParameterReleaseWaterContentStorageSystemComplexType(BaseModel): +class ParameterReleaseWaterContentStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2]' + AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') + M: Optional[ExternalParameterSimpleType] = Field( + None, description='smoothing coefficient' ) - rtc_M: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:M', description='smoothing coefficient' - ) - rtc_WHC: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:WHC', description='water holding capacity [-]' + WHC: ExternalParameterSimpleType = Field( + ..., description='water holding capacity [-]' ) -class RtcParameterResponseStorageSystemComplexType(BaseModel): +class ParameterResponseStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_ALPHA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:ALPHA', description='response box parameter [-], default = 0.0' - ) - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2]' + ALPHA: Optional[ExternalParameterSimpleType] = Field( + None, description='response box parameter [-], default = 0.0' ) - rtc_K: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:K', description='recession coefficient [1/d]' + AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') + K: ExternalParameterSimpleType = Field( + ..., description='recession coefficient [1/d]' ) -class RtcParameterSnowRainJunctionComplexType(BaseModel): +class ParameterSnowRainJunctionComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_D: Optional[RtcExternalParameterSimpleType] = Field( + D: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:D', description='smoothing parameter for switching between a linear ramp (D=0.0) and a sigmoid function (D=1.0)', ) - rtc_RFCF: Optional[RtcExternalParameterSimpleType] = Field( - None, - alias='rtc:RFCF', - description='rainfall correction factor [-], default is 1.0', + RFCF: Optional[ExternalParameterSimpleType] = Field( + None, description='rainfall correction factor [-], default is 1.0' ) - rtc_SFCF: Optional[RtcExternalParameterSimpleType] = Field( - None, - alias='rtc:SFCF', - description='snowfall correction factor [-], default is 1.0', + SFCF: Optional[ExternalParameterSimpleType] = Field( + None, description='snowfall correction factor [-], default is 1.0' ) - rtc_TT: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:TT', description='temperature limit for snow and rainfall [oC]' + TT: ExternalParameterSimpleType = Field( + ..., description='temperature limit for snow and rainfall [oC]' ) - rtc_TTI: RtcExternalParameterSimpleType = Field( - ..., - alias='rtc:TTI', - description='temperature interval with a mixture of snow and rainfall [K]', + TTI: ExternalParameterSimpleType = Field( + ..., description='temperature interval with a mixture of snow and rainfall [K]' ) -class RtcParameterSoilRunoffStorageSystemComplexType(BaseModel): +class ParameterSoilRunoffStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2]' - ) - rtc_BETA: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:BETA', description='parameter in soil routine [-]' - ) - rtc_FC: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:FC', description='field capacity [mm]' + AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') + BETA: ExternalParameterSimpleType = Field( + ..., description='parameter in soil routine [-]' ) + FC: ExternalParameterSimpleType = Field(..., description='field capacity [mm]') -class RtcParameterWaterDistributionConstantStorageSystemComplexType(BaseModel): +class ParameterWaterDistributionConstantStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2], default = 1.0' + AREA: Optional[ExternalParameterSimpleType] = Field( + None, description='area [km2], default = 1.0' ) - rtc_D: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:D', description='capacity of demand/abstraction [m3/s]' + D: ExternalParameterSimpleType = Field( + ..., description='capacity of demand/abstraction [m3/s]' ) - rtc_M: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:M', description='smoothing factor' + M: Optional[ExternalParameterSimpleType] = Field( + None, description='smoothing factor' ) - rtc_MIN_UP: Optional[RtcExternalParameterSimpleType] = Field( + MIN_UP: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:MIN_UP', description='minimum abstraction level upstream [mm]. Default 0, till empty.', ) -class RtcParameterWaterDistributionVariableStorageSystemComplexType(BaseModel): +class ParameterWaterDistributionVariableStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2], default = 1.0' + AREA: Optional[ExternalParameterSimpleType] = Field( + None, description='area [km2], default = 1.0' ) - rtc_M: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:M', description='smoothing factor' + M: Optional[ExternalParameterSimpleType] = Field( + None, description='smoothing factor' ) - rtc_MIN_UP: Optional[RtcExternalParameterSimpleType] = Field( + MIN_UP: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:MIN_UP', description='minimum abstraction level upstream [mm]. Default 0, till empty.', ) -class RtcParametergroundwaterFlowStorageSystemComplexType(BaseModel): +class ParametergroundwaterFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_ALPHA: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:ALPHA', description='Ground water reaction coefficient' + ALPHA: ExternalParameterSimpleType = Field( + ..., description='Ground water reaction coefficient' ) - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='area [km2]' + AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') + K: ExternalParameterSimpleType = Field( + ..., description='Ground water Conductivity [1/d]' ) - rtc_K: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:K', description='Ground water Conductivity [1/d]' - ) - rtc_MAX_GFLOW: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:MAX_GFLOW', description='Maximum groundwater flow [mm/d]' + MAX_GFLOW: ExternalParameterSimpleType = Field( + ..., description='Maximum groundwater flow [mm/d]' ) -class RtcMode(str, Enum): +class Mode(str, Enum): """ pid mode, either "NATIVE" or "SOBEK2" or "PIDPOS" or PIDVEL" """ @@ -580,26 +518,22 @@ class RtcMode(str, Enum): PIDVEL = 'PIDVEL' -class RtcSRMParameterComplexType(BaseModel): +class SRMParameterComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_Pt: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:Pt', description='precipitation threshold [mm]' - ) - rtc_TLag: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:TLag', description='Time lag of input data [h]' + Pt: ExternalParameterSimpleType = Field( + ..., description='precipitation threshold [mm]' ) - rtc_x: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:x', description='recession coefficient 1' - ) - rtc_y: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:y', description='recession coefficient 2' + TLag: ExternalParameterSimpleType = Field( + ..., description='Time lag of input data [h]' ) + x: ExternalParameterSimpleType = Field(..., description='recession coefficient 1') + y: ExternalParameterSimpleType = Field(..., description='recession coefficient 2') -class RtcSpatialEnumStringType(str, Enum): +class SpatialEnumStringType(str, Enum): """ options for spatial schetization """ @@ -608,7 +542,7 @@ class RtcSpatialEnumStringType(str, Enum): UPWIND = 'UPWIND' -class RtcMode1(str, Enum): +class Mode1(str, Enum): """ timeRelative mode, either "NATIVE" or "RETAINVALUEWHENINACTIVE" """ @@ -617,14 +551,14 @@ class RtcMode1(str, Enum): RETAINVALUEWHENINACTIVE = 'RETAINVALUEWHENINACTIVE' -class RtcTimeSeriesSimpleType(BaseModel): +class TimeSeriesSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., min_length=1) -class RtcTimeZoneSimpleType(BaseModel): +class TimeZoneSimpleType(RtcBaseModel): class Config: allow_population_by_field_name = True @@ -634,145 +568,131 @@ class Config: ) -class RtcTriggerInputComplexType(BaseModel): +class TriggerInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') + status: TimeSeriesSimpleType -class RtcTriggerOutputComplexType(BaseModel): +class TriggerOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') - rtc_timeFalse: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:timeFalse' - ) - rtc_timeTrue: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:timeTrue') + status: TimeSeriesSimpleType + timeFalse: Optional[TimeSeriesSimpleType] = None + timeTrue: Optional[TimeSeriesSimpleType] = None -class RtcTurbineInputComplexType(BaseModel): +class TurbineInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_relativeRelease: Optional[RtcTimeSeriesSimpleType] = Field( - None, - alias='rtc:relativeRelease', - description='provision of relative turbine release, 1 = maximum capacity', + relativeRelease: Optional[TimeSeriesSimpleType] = Field( + None, description='provision of relative turbine release, 1 = maximum capacity' ) - rtc_release: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:release', description='provision of absolute turbine release' + release: Optional[TimeSeriesSimpleType] = Field( + None, description='provision of absolute turbine release' ) -class RtcTurbineOutputCharacteristicsComplexType(BaseModel): +class TurbineOutputCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_power: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:power', description='power output [MW]' - ) + power: TimeSeriesSimpleType = Field(..., description='power output [MW]') -class RtcTurbineOutputComplexType(BaseModel): +class TurbineOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_discharge: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:discharge', description='discharge in m3/s' - ) - rtc_powerProduction: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:powerProduction', description='power production in MW' + discharge: TimeSeriesSimpleType = Field(..., description='discharge in m3/s') + powerProduction: TimeSeriesSimpleType = Field( + ..., description='power production in MW' ) -class RtcUOutletInputComplexType(BaseModel): +class UOutletInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_release: RtcTimeSeriesSimpleType = Field(..., alias='rtc:release') + release: TimeSeriesSimpleType -class RtcUnitDelayInputComplexType(BaseModel): +class UnitDelayInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + x: TimeSeriesSimpleType -class RtcUnitDelayOutputComplexType(BaseModel): +class UnitDelayOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: Optional[List[RtcTimeSeriesSimpleType]] = Field(None, alias='rtc:y') - rtc_yFinal: Optional[RtcTimeSeriesSimpleType] = Field( + y: Optional[List[TimeSeriesSimpleType]] = None + yFinal: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:yFinal', description='optional result of the delay operator, identical to yVector[end] if the delay is a multiple of the time step, required in case of sub time steps', ) - rtc_yMax: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:yMax') - rtc_yMean: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:yMean', description='optional mean of input and outputs' + yMax: Optional[TimeSeriesSimpleType] = None + yMean: Optional[TimeSeriesSimpleType] = Field( + None, description='optional mean of input and outputs' ) - rtc_yMin: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:yMin') - rtc_ySum: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:ySum', description='optional sum of input and outputs' + yMin: Optional[TimeSeriesSimpleType] = None + ySum: Optional[TimeSeriesSimpleType] = Field( + None, description='optional sum of input and outputs' ) - rtc_yVector: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:yVector') + yVector: Optional[TimeSeriesSimpleType] = None -class RtcUnitHydrographInputComplexType(BaseModel): +class UnitHydrographInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + x: TimeSeriesSimpleType -class RtcUnitHydrographOutputComplexType(BaseModel): +class UnitHydrographOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_xDelay: Optional[List[RtcTimeSeriesSimpleType]] = Field( - None, alias='rtc:xDelay' - ) - rtc_xDelayVector: Optional[RtcTimeSeriesSimpleType] = Field( + xDelay: Optional[List[TimeSeriesSimpleType]] = None + xDelayVector: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:xDelayVector', description='definition of delay vector, configure one element less than weights defined above', ) - rtc_y: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:y', description='result of unit hydrograph' - ) + y: TimeSeriesSimpleType = Field(..., description='result of unit hydrograph') -class RtcUnitTypeEnumStringType(str, Enum): +class UnitTypeEnumStringType(str, Enum): SI = 'SI' Imperial = 'Imperial' -class RtcVariableTypeEnumStringType(str, Enum): +class VariableTypeEnumStringType(str, Enum): CONTINUOUS = 'CONTINUOUS' INTEGER = 'INTEGER' TIMEINSTANCE = 'TIMEINSTANCE' -class RtcCaseLangetenEnumStringType(int, Enum): +class CaseLangetenEnumStringType(int, Enum): integer_1 = 1 integer_2 = 2 -class RtcDateType(BaseModel): +class DateType(RtcBaseModel): class Config: allow_population_by_field_name = True @@ -781,34 +701,34 @@ class Config: ) -class RtcFlowDirectionEnumStringTypeEnum(str, Enum): +class FlowDirectionEnumStringTypeEnum(str, Enum): POSITIVE = 'POSITIVE' NEGATIVE = 'NEGATIVE' BOTH = 'BOTH' -class RtcFlowDirectionEnumStringTypeItem(BaseModel): +class FlowDirectionEnumStringTypeItem(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') -class RtcFlowDirectionEnumStringType(BaseModel): +class FlowDirectionEnumStringType(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: Union[ - RtcFlowDirectionEnumStringTypeEnum, RtcFlowDirectionEnumStringTypeItem + FlowDirectionEnumStringTypeEnum, FlowDirectionEnumStringTypeItem ] = Field(..., description='flow direction') -class RtcInputReferenceEnumStringType(str, Enum): +class InputReferenceEnumStringType(str, Enum): EXPLICIT = 'EXPLICIT' IMPLICIT = 'IMPLICIT' -class RtcInterpolationOptionEnumStringType(str, Enum): +class InterpolationOptionEnumStringType(str, Enum): """ Type of interpolation """ @@ -817,7 +737,7 @@ class RtcInterpolationOptionEnumStringType(str, Enum): LINEAR = 'LINEAR' -class RtcLimiterOptionEnumStringType(str, Enum): +class LimiterOptionEnumStringType(str, Enum): """ Type of limiting """ @@ -826,7 +746,7 @@ class RtcLimiterOptionEnumStringType(str, Enum): ABSOLUTE = 'ABSOLUTE' -class RtcLogicalOperatorEnumStringType(str, Enum): +class LogicalOperatorEnumStringType(str, Enum): """ logical operator """ @@ -836,7 +756,7 @@ class RtcLogicalOperatorEnumStringType(str, Enum): XOR = 'XOR' -class RtcPoolRoutingEnumStringType(str, Enum): +class PoolRoutingEnumStringType(str, Enum): """ Type of pool routing. """ @@ -846,7 +766,7 @@ class RtcPoolRoutingEnumStringType(str, Enum): Theta = 'Theta' -class RtcRelationalOperatorEnumStringType(str, Enum): +class RelationalOperatorEnumStringType(str, Enum): """ relational operator """ @@ -859,7 +779,7 @@ class RtcRelationalOperatorEnumStringType(str, Enum): Greater = 'Greater' -class RtcTimeRelativeEnumStringType(str, Enum): +class TimeRelativeEnumStringType(str, Enum): """ Value option """ @@ -868,7 +788,7 @@ class RtcTimeRelativeEnumStringType(str, Enum): RELATIVE = 'RELATIVE' -class RtcTimeSeriesType(str, Enum): +class TimeSeriesType(str, Enum): """ Type of data, either accumulative or instantaneous. For accumulative data the time/date of the event is @@ -880,7 +800,7 @@ class RtcTimeSeriesType(str, Enum): instantaneous = 'instantaneous' -class RtcTimeStepUnitEnumStringType(str, Enum): +class TimeStepUnitEnumStringType(str, Enum): second = 'second' minute = 'minute' hour = 'hour' @@ -888,14 +808,14 @@ class RtcTimeStepUnitEnumStringType(str, Enum): week = 'week' -class RtcTimeType(BaseModel): +class TimeType(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') -class RtcTransferFunctionEnumStringType(str, Enum): +class TransferFunctionEnumStringType(str, Enum): """ Type of transfer function. """ @@ -905,332 +825,308 @@ class RtcTransferFunctionEnumStringType(str, Enum): Tansig = 'Tansig' -class XsBoolean(BaseModel): +class XsBoolean(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: bool -class XsDateTime(BaseModel): +class XsDateTime(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str -class XsDouble(BaseModel): +class XsDouble(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: float -class XsFloat(BaseModel): +class XsFloat(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: float -class XsGMonthDay(BaseModel): +class XsGMonthDay(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str -class XsInt(BaseModel): +class XsInt(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: int = Field(..., ge=-2147483648, le=2147483647) -class XsInteger(BaseModel): +class XsInteger(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: int -class XsPositiveInteger(BaseModel): +class XsPositiveInteger(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: int = Field(..., ge=1) -class XsString(BaseModel): +class XsString(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str -class XsTime(BaseModel): +class XsTime(RtcBaseModel): class Config: allow_population_by_field_name = True __root__: str -class RtcRowItem(BaseModel): +class RowItem(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _value: XsDouble = Field(..., alias='@value') + attr_id: XsString + attr_value: XsDouble -class RtcATableComplexType(BaseModel): +class ATableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_row: List[RtcRowItem] = Field(..., alias='rtc:row', min_items=1) + row: List[RowItem] = Field(..., min_items=1) -class RtcAccumulationInputComplexType(BaseModel): +class AccumulationInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + x: TimeSeriesSimpleType -class RtcAccumulationOutputComplexType(BaseModel): +class AccumulationOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + y: TimeSeriesSimpleType -class RtcAebiRuleInputComplexType(BaseModel): +class AebiRuleInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AareBruegg: RtcTimeSeriesSimpleType = Field(..., alias='rtc:AareBruegg') - rtc_AareBrueggMin2: RtcTimeSeriesSimpleType = Field(..., alias='rtc:AareBrueggMin2') - rtc_AareMurg: RtcTimeSeriesSimpleType = Field(..., alias='rtc:AareMurg') - rtc_AbflussReglementPort: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:AbflussReglementPort' - ) - rtc_Emenmatt: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Emenmatt') - rtc_EmenmattMin4: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EmenmattMin4') - rtc_Langeten: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Langeten') - rtc_LangetenMin4: RtcTimeSeriesSimpleType = Field(..., alias='rtc:LangetenMin4') - rtc_PegelBielersee: RtcTimeSeriesSimpleType = Field(..., alias='rtc:PegelBielersee') + AareBruegg: TimeSeriesSimpleType + AareBrueggMin2: TimeSeriesSimpleType + AareMurg: TimeSeriesSimpleType + AbflussReglementPort: TimeSeriesSimpleType + Emenmatt: TimeSeriesSimpleType + EmenmattMin4: TimeSeriesSimpleType + Langeten: TimeSeriesSimpleType + LangetenMin4: TimeSeriesSimpleType + PegelBielersee: TimeSeriesSimpleType -class RtcAebiRuleOutputComplexType(BaseModel): +class AebiRuleOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_AareMurg_oKWMin1: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:AareMurg_oKWMin1' - ) - rtc_AbflussaenderungPort: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:AbflussaenderungPort' - ) - rtc_MaxAbflussPort: RtcTimeSeriesSimpleType = Field(..., alias='rtc:MaxAbflussPort') - rtc_ProvMaxAbflussPort: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:ProvMaxAbflussPort' - ) - rtc_RTG: RtcTimeSeriesSimpleType = Field(..., alias='rtc:RTG') + AareMurg_oKWMin1: TimeSeriesSimpleType + AbflussaenderungPort: TimeSeriesSimpleType + MaxAbflussPort: TimeSeriesSimpleType + ProvMaxAbflussPort: TimeSeriesSimpleType + RTG: TimeSeriesSimpleType -class RtcArmaInputComplexType(BaseModel): +class ArmaInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_obs: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:obs', description='observed data' - ) - rtc_sim: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:sim', description='simulated data' - ) + obs: TimeSeriesSimpleType = Field(..., description='observed data') + sim: TimeSeriesSimpleType = Field(..., description='simulated data') -class RtcArmaOutputComplexType(BaseModel): +class ArmaOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_arma: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:arma', description='output-corrected data' - ) + arma: TimeSeriesSimpleType = Field(..., description='output-corrected data') -class RtcBranchGradientComplexType(BaseModel): +class BranchGradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_storageDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:storageDown') - rtc_storageUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:storageUp') - rtc_surfaceAreaDown: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:surfaceAreaDown' - ) - rtc_surfaceAreaUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:surfaceAreaUp') + storageDown: TimeSeriesSimpleType + storageUp: TimeSeriesSimpleType + surfaceAreaDown: TimeSeriesSimpleType + surfaceAreaUp: TimeSeriesSimpleType -class RtcBranchInputComplexType(BaseModel): +class BranchInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HDown: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:HDown', description='ID of downstream node' - ) - rtc_HUp: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:HUp', description='ID of upstream node' - ) - rtc_ux: Optional[RtcTimeSeriesSimpleType] = Field( + HDown: TimeSeriesSimpleType = Field(..., description='ID of downstream node') + HUp: TimeSeriesSimpleType = Field(..., description='ID of upstream node') + ux: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:ux', description='optional wind velocity at an elevation of 10 m above the water surface (x-direction), implementation is for the inertial model only', ) - rtc_uy: Optional[RtcTimeSeriesSimpleType] = Field( + uy: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:uy', description='optional wind velocity at an elevation of 10 m above the water surface (y-direction), implementation is for the inertial model only', ) -class RtcBranchOutputComplexType(BaseModel): +class BranchOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + Q: TimeSeriesSimpleType -class RtcColumnsComplexType(BaseModel): +class ColumnsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _head01: XsDouble = Field(..., alias='@head01') - _head02: XsDouble = Field(..., alias='@head02') - _head03: Optional[XsDouble] = Field(None, alias='@head03') - _head04: Optional[XsDouble] = Field(None, alias='@head04') - _head05: Optional[XsDouble] = Field(None, alias='@head05') - _head06: Optional[XsDouble] = Field(None, alias='@head06') - _head07: Optional[XsDouble] = Field(None, alias='@head07') - _head08: Optional[XsDouble] = Field(None, alias='@head08') - _head09: Optional[XsDouble] = Field(None, alias='@head09') - _head10: Optional[XsDouble] = Field(None, alias='@head10') - _head11: Optional[XsDouble] = Field(None, alias='@head11') - _head12: Optional[XsDouble] = Field(None, alias='@head12') - _head13: Optional[XsDouble] = Field(None, alias='@head13') - _head14: Optional[XsDouble] = Field(None, alias='@head14') - _head15: Optional[XsDouble] = Field(None, alias='@head15') - _head16: Optional[XsDouble] = Field(None, alias='@head16') - _head17: Optional[XsDouble] = Field(None, alias='@head17') - _head18: Optional[XsDouble] = Field(None, alias='@head18') - _head19: Optional[XsDouble] = Field(None, alias='@head19') - _head20: Optional[XsDouble] = Field(None, alias='@head20') + attr_head01: XsDouble + attr_head02: XsDouble + attr_head03: Optional[XsDouble] = None + attr_head04: Optional[XsDouble] = None + attr_head05: Optional[XsDouble] = None + attr_head06: Optional[XsDouble] = None + attr_head07: Optional[XsDouble] = None + attr_head08: Optional[XsDouble] = None + attr_head09: Optional[XsDouble] = None + attr_head10: Optional[XsDouble] = None + attr_head11: Optional[XsDouble] = None + attr_head12: Optional[XsDouble] = None + attr_head13: Optional[XsDouble] = None + attr_head14: Optional[XsDouble] = None + attr_head15: Optional[XsDouble] = None + attr_head16: Optional[XsDouble] = None + attr_head17: Optional[XsDouble] = None + attr_head18: Optional[XsDouble] = None + attr_head19: Optional[XsDouble] = None + attr_head20: Optional[XsDouble] = None -class RtcConditionComplexType(BaseModel): +class ConditionComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_greaterThan: Optional[XsDouble] = Field(None, alias='rtc:greaterThan') - rtc_lessThan: Optional[XsDouble] = Field(None, alias='rtc:lessThan') + greaterThan: Optional[XsDouble] = None + lessThan: Optional[XsDouble] = None -class RtcConnectionCoefficientsComplexType(BaseModel): +class ConnectionCoefficientsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_a: RtcExternalParameterSimpleType = Field(..., alias='rtc:a') - rtc_b: RtcExternalParameterSimpleType = Field(..., alias='rtc:b') - rtc_c: RtcExternalParameterSimpleType = Field(..., alias='rtc:c') - rtc_d: RtcExternalParameterSimpleType = Field(..., alias='rtc:d') + a: ExternalParameterSimpleType + b: ExternalParameterSimpleType + c: ExternalParameterSimpleType + d: ExternalParameterSimpleType -class RtcConnectionInputComplexType(BaseModel): +class ConnectionInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_discharge: RtcTimeSeriesSimpleType = Field(..., alias='rtc:discharge') - rtc_downstreamLevel: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:downstreamLevel' - ) - rtc_upstreamLevel: RtcTimeSeriesSimpleType = Field(..., alias='rtc:upstreamLevel') + discharge: TimeSeriesSimpleType + downstreamLevel: TimeSeriesSimpleType + upstreamLevel: TimeSeriesSimpleType -class RtcConnectionOutputComplexType(BaseModel): +class ConnectionOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_discharge: RtcTimeSeriesSimpleType = Field(..., alias='rtc:discharge') + discharge: TimeSeriesSimpleType -class RtcConstantRuleOutputComplexType(BaseModel): +class ConstantRuleOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + y: TimeSeriesSimpleType -class RtcDataTypicalProfileComplexType(BaseModel): +class DataTypicalProfileComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _monthOfYear: _MonthOfYear = Field(..., alias='@monthOfYear') - _value: XsDouble = Field(..., alias='@value') + attr_monthOfYear: AttrMonthOfYear + attr_value: XsDouble -class RtcDateComplexType(BaseModel): +class DateComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _monthDay: XsGMonthDay = Field(..., alias='@monthDay') + attr_monthDay: XsGMonthDay -class RtcDateLookupTableInputComplexType(BaseModel): +class DateLookupTableInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') - rtc_y: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:y') + x: TimeSeriesSimpleType + y: Optional[TimeSeriesSimpleType] = None -class RtcDateLookupTableOutputComplexType(BaseModel): +class DateLookupTableOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_active: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:active') - rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + active: Optional[TimeSeriesSimpleType] = None + y: TimeSeriesSimpleType -class RtcDateRecord2DataComplexType(BaseModel): +class DateRecord2DataComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _x: XsDouble = Field(..., alias='@x') - _y: XsDouble = Field(..., alias='@y') + attr_x: XsDouble + attr_y: XsDouble -class RtcDateRecordComplexType(BaseModel): +class DateRecordComplexType(RtcBaseModel): """ defined data input as per time series format date time (defined either by dateTime or time or month day) and value @@ -1240,110 +1136,106 @@ class Config: extra = Extra.forbid allow_population_by_field_name = True - _comment: Optional[XsString] = Field(None, alias='@comment') - _dateTime: Optional[XsDateTime] = Field(None, alias='@dateTime') - _monthDay: Optional[XsGMonthDay] = Field(None, alias='@monthDay') - _time: Optional[XsTime] = Field(None, alias='@time') - _value: XsDouble = Field(..., alias='@value') + attr_comment: Optional[XsString] = None + attr_dateTime: Optional[XsDateTime] = None + attr_monthDay: Optional[XsGMonthDay] = None + attr_time: Optional[XsTime] = None + attr_value: XsDouble -class RtcDateTableComplexType(BaseModel): +class DateTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_data: List[RtcDateRecordComplexType] = Field(..., alias='rtc:data', min_items=1) + data: List[DateRecordComplexType] = Field(..., min_items=1) -class RtcDateTimeComplexType(BaseModel): +class DateTimeComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _date: RtcDateType = Field(..., alias='@date') - _time: RtcTimeType = Field(..., alias='@time') + attr_date: DateType + attr_time: TimeType -class RtcDeadBandTimeDiscreteComplexType(BaseModel): +class DeadBandTimeDiscreteComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_numberOfStepsDown: XsInt = Field(..., alias='rtc:numberOfStepsDown') - rtc_numberOfStepsUp: XsInt = Field(..., alias='rtc:numberOfStepsUp') + numberOfStepsDown: XsInt + numberOfStepsUp: XsInt -class RtcDeadBandTimeInputComplexType(BaseModel): +class DeadBandTimeInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: rtc_TimeSeriesSimpleType.Field20 = Field(..., alias='rtc:x') + x: TimeSeriesSimpleType.Field20 -class RtcDeadBandTimeOutputComplexType(BaseModel): +class DeadBandTimeOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') - rtc_stepsDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:stepsDown') - rtc_stepsUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:stepsUp') - rtc_timeFalse: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:timeFalse' - ) - rtc_timeTrue: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:timeTrue') + status: TimeSeriesSimpleType + stepsDown: TimeSeriesSimpleType + stepsUp: TimeSeriesSimpleType + timeFalse: Optional[TimeSeriesSimpleType] = None + timeTrue: Optional[TimeSeriesSimpleType] = None -class RtcDeadBandValueInputComplexType(BaseModel): +class DeadBandValueInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + x: TimeSeriesSimpleType -class RtcEdgeComplexType(BaseModel): +class EdgeComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _x1: XsDouble = Field(..., alias='@x1') - _x2: XsDouble = Field(..., alias='@x2') + attr_x1: XsDouble + attr_x2: XsDouble -class RtcEdgesComplexType(BaseModel): +class EdgesComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_edge: List[RtcEdgeComplexType] = Field(..., alias='rtc:edge', min_items=1) + edge: List[EdgeComplexType] = Field(..., min_items=1) -class RtcEifelRurRuleComplexType(BaseModel): +class EifelRurRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_a: XsDouble = Field(..., alias='rtc:a') - rtc_b: XsDouble = Field(..., alias='rtc:b') - rtc_minimumRelativeStorage: RtcDateTableComplexType = Field( - ..., alias='rtc:minimumRelativeStorage' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + a: XsDouble + b: XsDouble + minimumRelativeStorage: DateTableComplexType -class RtcElevationRecordComplexType(BaseModel): +class ElevationRecordComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _elevation: XsDouble = Field(..., alias='@elevation') - _value: RtcExternalParameterSimpleType = Field(..., alias='@value') + attr_elevation: XsDouble + attr_value: ExternalParameterSimpleType -class RtcElevationTableComplexType(BaseModel): +class ElevationTableComplexType(RtcBaseModel): """ Table containing data for different elevations. Type of element 'value' @@ -1355,76 +1247,61 @@ class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_elevationRecord: List[RtcElevationRecordComplexType] = Field( - ..., alias='rtc:elevationRecord', min_items=1 - ) + elevationRecord: List[ElevationRecordComplexType] = Field(..., min_items=1) -class RtcEquationComplexType(BaseModel): +class EquationComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_a: RtcExternalParameterSimpleType = Field(..., alias='rtc:a') - rtc_b: RtcExternalParameterSimpleType = Field(..., alias='rtc:b') - rtc_c: RtcExternalParameterSimpleType = Field(..., alias='rtc:c') - rtc_lowerLevel: Optional[XsDouble] = Field(None, alias='rtc:lowerLevel') - rtc_upperLevel: Optional[XsDouble] = Field(None, alias='rtc:upperLevel') + a: ExternalParameterSimpleType + b: ExternalParameterSimpleType + c: ExternalParameterSimpleType + lowerLevel: Optional[XsDouble] = None + upperLevel: Optional[XsDouble] = None -class RtcEquationsComplexType(BaseModel): +class EquationsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_equation: List[RtcEquationComplexType] = Field( - ..., alias='rtc:equation', min_items=1 - ) + equation: List[EquationComplexType] = Field(..., min_items=1) -class RtcExpressionComplexType(BaseModel): +class ExpressionComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_mathematicalOperator: RtcMathematicalOperatorEnumStringType = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + mathematicalOperator: MathematicalOperatorEnumStringType = Field( ..., - alias='rtc:mathematicalOperator', description='mathematical operator: + (summation), - (substraction), * (multiplication), / (division), min, max, ^ (power)', ) - rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field2] = Field( - None, alias='rtc:x1Series', description='reference to time series ID' - ) - rtc_x1SeriesVector: Optional[rtc_TimeSeriesSimpleType.Field3] = Field( - None, - alias='rtc:x1SeriesVector', - description='reference to time series ID vector', + x1Series: Optional[TimeSeriesSimpleType.Field2] = Field( + None, description='reference to time series ID' ) - rtc_x1Value: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:x1Value', description='user-configured constant value' + x1SeriesVector: Optional[TimeSeriesSimpleType.Field3] = Field( + None, description='reference to time series ID vector' ) - rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field4] = Field( - None, alias='rtc:x2Series' + x1Value: Optional[ExternalParameterSimpleType] = Field( + None, description='user-configured constant value' ) - rtc_x2SeriesVector: Optional[rtc_TimeSeriesSimpleType.Field5] = Field( - None, alias='rtc:x2SeriesVector' + x2Series: Optional[TimeSeriesSimpleType.Field4] = None + x2SeriesVector: Optional[TimeSeriesSimpleType.Field5] = None + x2Value: Optional[ExternalParameterSimpleType] = None + y: Optional[TimeSeriesSimpleType] = Field( + None, description='time series ID of resulting value' ) - rtc_x2Value: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:x2Value' - ) - rtc_y: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:y', description='time series ID of resulting value' - ) - rtc_yVector: Optional[RtcTimeSeriesSimpleType] = Field( - None, - alias='rtc:yVector', - description='time series ID vector of resulting value', + yVector: Optional[TimeSeriesSimpleType] = Field( + None, description='time series ID vector of resulting value' ) -class RtcGeneralModuleConfigComplexType(BaseModel): +class GeneralModuleConfigComplexType(RtcBaseModel): """ DEPRICATED """ @@ -1433,1595 +1310,1370 @@ class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_description: Optional[XsString] = Field( - None, alias='rtc:description', description='DEPRICATED' - ) - rtc_poolRoutingScheme: RtcPoolRoutingEnumStringType = Field( - ..., alias='rtc:poolRoutingScheme', description='DEPRICATED' - ) - rtc_theta: XsDouble = Field(..., alias='rtc:theta', description='DEPRICATED') + description: Optional[XsString] = Field(None, description='DEPRICATED') + poolRoutingScheme: PoolRoutingEnumStringType = Field(..., description='DEPRICATED') + theta: XsDouble = Field(..., description='DEPRICATED') -class RtcGradientInputComplexType(BaseModel): +class GradientInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + x: TimeSeriesSimpleType -class RtcGradientOutputComplexType(BaseModel): +class GradientOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_dx: RtcTimeSeriesSimpleType = Field(..., alias='rtc:dx') + dx: TimeSeriesSimpleType -class RtcGuideBandRuleInputComplexType(BaseModel): +class GuideBandRuleInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') - rtc_y: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:y') + x: TimeSeriesSimpleType + y: Optional[TimeSeriesSimpleType] = None -class RtcGuideBandRuleOutputComplexType(BaseModel): +class GuideBandRuleOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + y: TimeSeriesSimpleType -class RtcHBVInputComplexType(BaseModel): +class HBVInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_EP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EP') - rtc_P: RtcTimeSeriesSimpleType = Field(..., alias='rtc:P') - rtc_T: RtcTimeSeriesSimpleType = Field(..., alias='rtc:T') - rtc_TM: RtcTimeSeriesSimpleType = Field(..., alias='rtc:TM') + EP: TimeSeriesSimpleType + P: TimeSeriesSimpleType + T: TimeSeriesSimpleType + TM: TimeSeriesSimpleType -class RtcHBVLinkComplexType(BaseModel): +class HBVLinkComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_CF: RtcTimeSeriesSimpleType = Field(..., alias='rtc:CF') - rtc_EA: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EA') - rtc_EI: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EI') - rtc_EP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EP') - rtc_IN: RtcTimeSeriesSimpleType = Field(..., alias='rtc:IN') - rtc_INI: RtcTimeSeriesSimpleType = Field(..., alias='rtc:INI') - rtc_PERC: RtcTimeSeriesSimpleType = Field(..., alias='rtc:PERC') - rtc_R: RtcTimeSeriesSimpleType = Field(..., alias='rtc:R') + CF: TimeSeriesSimpleType + EA: TimeSeriesSimpleType + EI: TimeSeriesSimpleType + EP: TimeSeriesSimpleType + IN: TimeSeriesSimpleType + INI: TimeSeriesSimpleType + PERC: TimeSeriesSimpleType + R: TimeSeriesSimpleType -class RtcHBVOutputComplexType(BaseModel): +class HBVOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') - rtc_SMPercentage: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:SMPercentage' - ) - rtc_SWE: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:SWE') + Q: TimeSeriesSimpleType + SMPercentage: Optional[TimeSeriesSimpleType] = None + SWE: Optional[TimeSeriesSimpleType] = None -class RtcHBVStateComplexType(BaseModel): +class HBVStateComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_IC: RtcTimeSeriesSimpleType = Field(..., alias='rtc:IC') - rtc_LZ: RtcTimeSeriesSimpleType = Field(..., alias='rtc:LZ') - rtc_SM: RtcTimeSeriesSimpleType = Field(..., alias='rtc:SM') - rtc_SP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:SP') - rtc_UZ: RtcTimeSeriesSimpleType = Field(..., alias='rtc:UZ') - rtc_WC: RtcTimeSeriesSimpleType = Field(..., alias='rtc:WC') + IC: TimeSeriesSimpleType + LZ: TimeSeriesSimpleType + SM: TimeSeriesSimpleType + SP: TimeSeriesSimpleType + UZ: TimeSeriesSimpleType + WC: TimeSeriesSimpleType -class RtcHBVStateUpdateComplexType(BaseModel): +class HBVStateUpdateComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_IC: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:IC') - rtc_LZ: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:LZ', description='increment on lower zone storage [mm]' + IC: Optional[TimeSeriesSimpleType] = None + LZ: Optional[TimeSeriesSimpleType] = Field( + None, description='increment on lower zone storage [mm]' ) - rtc_SM: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:SM', description='STILL NOT IMPLEMENTED' + SM: Optional[TimeSeriesSimpleType] = Field( + None, description='STILL NOT IMPLEMENTED' ) - rtc_SP: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:SP', description='STILL NOT IMPLEMENTED' + SP: Optional[TimeSeriesSimpleType] = Field( + None, description='STILL NOT IMPLEMENTED' ) - rtc_UZ: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:UZ', description='STILL NOT IMPLEMENTED' + UZ: Optional[TimeSeriesSimpleType] = Field( + None, description='STILL NOT IMPLEMENTED' ) - rtc_WC: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:WC', description='STILL NOT IMPLEMENTED' + WC: Optional[TimeSeriesSimpleType] = Field( + None, description='STILL NOT IMPLEMENTED' ) -class RtcHydraulicModelOutputComplexType(BaseModel): +class HydraulicModelOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_nFun: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:nFun', description='number of function evaluations' + nFun: TimeSeriesSimpleType = Field( + ..., description='number of function evaluations' ) - rtc_nJac: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:nJac', description='number of evaluations of the Jacobian' + nJac: TimeSeriesSimpleType = Field( + ..., description='number of evaluations of the Jacobian' ) - rtc_res: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:res', - description='residuum at last iteration step, 0.5*sum(SQR(ri))', + res: TimeSeriesSimpleType = Field( + ..., description='residuum at last iteration step, 0.5*sum(SQR(ri))' ) -class RtcHydraulicModelSequentialImplicitComplexType(BaseModel): +class HydraulicModelSequentialImplicitComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_convergenceThreshold: XsDouble = Field(..., alias='rtc:convergenceThreshold') - rtc_theta: XsDouble = Field(..., alias='rtc:theta') - rtc_treatNonConvergenceAsError: XsBoolean = Field( - ..., alias='rtc:treatNonConvergenceAsError' - ) + convergenceThreshold: XsDouble + theta: XsDouble + treatNonConvergenceAsError: XsBoolean -class RtcHydraulicModelSimultaneousComplexType(BaseModel): +class HydraulicModelSimultaneousComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_theta: XsDouble = Field(..., alias='rtc:theta') + theta: XsDouble -class RtcInflowComplexType(BaseModel): +class InflowComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _factor: Optional[XsDouble] = Field(None, alias='@factor') + attr_factor: Optional[XsDouble] = None -class RtcInputATableComplexType(BaseModel): +class InputATableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_valueSelection: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:valueSelection' - ) - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + valueSelection: Optional[TimeSeriesSimpleType] = None + x: TimeSeriesSimpleType -class RtcInputCapillaryFlowStorageSystemComplexType(BaseModel): +class InputCapillaryFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HDown: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:HDown', - description='downstream node, typically UZ unsaturted zone', + HDown: TimeSeriesSimpleType = Field( + ..., description='downstream node, typically UZ unsaturted zone' ) - rtc_HUp: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:HUp', description='upstream node, typically GW upper zone' + HUp: TimeSeriesSimpleType = Field( + ..., description='upstream node, typically GW upper zone' ) -class RtcInputEvaporationActualStorageSystemComplexType(BaseModel): +class InputEvaporationActualStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_EI: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:EI') - rtc_EP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EP') - rtc_HUp: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:HUp', description='upstream node, typically SM (soil moisture)' + EI: Optional[TimeSeriesSimpleType] = None + EP: TimeSeriesSimpleType + HUp: TimeSeriesSimpleType = Field( + ..., description='upstream node, typically SM (soil moisture)' ) -class RtcInputEvaporationInterceptionStorageSystemComplexType(BaseModel): +class InputEvaporationInterceptionStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_EP: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:EP', description='potential evaporation [mm]' - ) - rtc_HUp: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:HUp', description='upstream node, typically IC (interception)' + EP: TimeSeriesSimpleType = Field(..., description='potential evaporation [mm]') + HUp: TimeSeriesSimpleType = Field( + ..., description='upstream node, typically IC (interception)' ) -class RtcInputEvaporationPotentialComplexType(BaseModel): +class InputEvaporationPotentialComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_EPM: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:EPM', - description='monthly mean value of potential evaporation [mm/timestep]', - ) - rtc_T: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:T', description='instantaneous temperature [oC]' - ) - rtc_TM: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:TM', description='monthly mean temperature [oC]' + EPM: TimeSeriesSimpleType = Field( + ..., description='monthly mean value of potential evaporation [mm/timestep]' ) + T: TimeSeriesSimpleType = Field(..., description='instantaneous temperature [oC]') + TM: TimeSeriesSimpleType = Field(..., description='monthly mean temperature [oC]') -class RtcInputGroundwaterFlowStorageSystemComplexType(BaseModel): +class InputGroundwaterFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HDown: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:HDown', - description='downstream node, can be GW groundwater or SW surface water', + HDown: TimeSeriesSimpleType = Field( + ..., description='downstream node, can be GW groundwater or SW surface water' ) - rtc_HUp: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:HUp', - description='upstream node, can be GW groundwater or SW surface water', + HUp: TimeSeriesSimpleType = Field( + ..., description='upstream node, can be GW groundwater or SW surface water' ) -class RtcInputNodeStorageSystemComplexType(BaseModel): +class InputNodeStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_discharge: Optional[List[RtcTimeSeriesSimpleType]] = Field( - None, alias='rtc:discharge' - ) - rtc_state: Optional[RtcTimeSeriesSimpleType] = Field( - None, - alias='rtc:state', - description='unit volume [mm], replaces the computes state', - ) - rtc_unitVolume: Optional[List[RtcTimeSeriesSimpleType]] = Field( - None, alias='rtc:unitVolume' + discharge: Optional[List[TimeSeriesSimpleType]] = None + state: Optional[TimeSeriesSimpleType] = Field( + None, description='unit volume [mm], replaces the computes state' ) + unitVolume: Optional[List[TimeSeriesSimpleType]] = None -class RtcInputPercolationStorageSystemComplexType(BaseModel): +class InputPercolationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( - None, - alias='rtc:HDown', - description='downstream node, typically LZ (lower zone storage)', + HDown: Optional[TimeSeriesSimpleType] = Field( + None, description='downstream node, typically LZ (lower zone storage)' ) - rtc_HUp: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:HUp', - description='upstream node, typically UZ (upper zone storage)', + HUp: TimeSeriesSimpleType = Field( + ..., description='upstream node, typically UZ (upper zone storage)' ) -class RtcInputPidComplexType(BaseModel): +class InputPidComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_disturbance: Optional[rtc_TimeSeriesSimpleType.Field8] = Field( - None, alias='rtc:disturbance' - ) - rtc_setpointSeries: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:setpointSeries' - ) - rtc_setpointValue: Optional[XsDouble] = Field(None, alias='rtc:setpointValue') - rtc_x: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:x', description='controllable variable' - ) + disturbance: Optional[TimeSeriesSimpleType.Field8] = None + setpointSeries: Optional[TimeSeriesSimpleType] = None + setpointValue: Optional[XsDouble] = None + x: TimeSeriesSimpleType = Field(..., description='controllable variable') -class RtcInputReleaseAboveThresholdStorageSystemComplexType(BaseModel): +class InputReleaseAboveThresholdStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:HDown', description='downstream node' - ) - rtc_HUp: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:HUp', description='upstream node' - ) + HDown: Optional[TimeSeriesSimpleType] = Field(None, description='downstream node') + HUp: TimeSeriesSimpleType = Field(..., description='upstream node') -class RtcInputReleaseTotalComplexType(BaseModel): +class InputReleaseTotalComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_discharge: List[RtcTimeSeriesSimpleType] = Field( - ..., alias='rtc:discharge', min_items=1 - ) + discharge: List[TimeSeriesSimpleType] = Field(..., min_items=1) -class RtcInputResponseStorageSystemComplexType(BaseModel): +class InputResponseStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HUp: RtcTimeSeriesSimpleType = Field( + HUp: TimeSeriesSimpleType = Field( ..., - alias='rtc:HUp', description='upstream (release) node, typically UZ and/or LZ (upper/lower zone storages)', ) -class RtcInputSnowRainJunctionComplexType(BaseModel): +class InputSnowRainJunctionComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_P: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:P', description='precipitation [mm/timestep]' - ) - rtc_T: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:T', description='temperature [oC]' - ) + P: TimeSeriesSimpleType = Field(..., description='precipitation [mm/timestep]') + T: TimeSeriesSimpleType = Field(..., description='temperature [oC]') -class RtcInputSoilRunoffStorageSystemComplexType(BaseModel): +class InputSoilRunoffStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( + HDown: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:HDown', description='optional downstream node, typically uper saturated zones (UZ upper zone storage). Required if capillary flow is used and SM and UZ are present in one storage system', ) - rtc_HUp: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:HUp', - description='upstream node, typically unsaturated zone (SM soil moisture)', + HUp: TimeSeriesSimpleType = Field( + ..., description='upstream node, typically unsaturated zone (SM soil moisture)' ) - rtc_INF: List[RtcTimeSeriesSimpleType] = Field(..., alias='rtc:INF', min_items=1) + INF: List[TimeSeriesSimpleType] = Field(..., min_items=1) -class RtcInputWaterDistributionConstantStorageSystemComplexType(BaseModel): +class InputWaterDistributionConstantStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( + HDown: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:HDown', description='downstream node collector of abstracted water. For instance drinking water treatment plant', ) - rtc_HUp: RtcTimeSeriesSimpleType = Field( + HUp: TimeSeriesSimpleType = Field( ..., - alias='rtc:HUp', description='upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)', ) -class RtcInputWaterDistributionVariableStorageSystemComplexType(BaseModel): +class InputWaterDistributionVariableStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_D: RtcTimeSeriesSimpleType = Field( + D: TimeSeriesSimpleType = Field( ..., - alias='rtc:D', description='series of industrial or domestic water demands/abstractions [m3/s]', ) - rtc_HDown: Optional[RtcTimeSeriesSimpleType] = Field( + HDown: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:HDown', description='downstream node collector of abstracted water. For instance drinking water treatment plant', ) - rtc_HUp: RtcTimeSeriesSimpleType = Field( + HUp: TimeSeriesSimpleType = Field( ..., - alias='rtc:HUp', description='upstream node, source of water abstraction/distribution (i.e. surface water/groundwater/sewerage)', ) -class RtcInterpolationOptionsComplexType(BaseModel): +class InterpolationOptionsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_date: RtcInterpolationOptionEnumStringType = Field(..., alias='rtc:date') - rtc_value: RtcInterpolationOptionEnumStringType = Field(..., alias='rtc:value') + date: InterpolationOptionEnumStringType + value: InterpolationOptionEnumStringType -class RtcIntervalInputComplexType(BaseModel): +class IntervalInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_setpoint: RtcTimeSeriesSimpleType = Field(..., alias='rtc:setpoint') - rtc_x: rtc_TimeSeriesSimpleType.Field9 = Field( - ..., alias='rtc:x', description='reference to time series ID' + setpoint: TimeSeriesSimpleType + x: TimeSeriesSimpleType.Field9 = Field( + ..., description='reference to time series ID' ) -class RtcIntervalOutputComplexType(BaseModel): +class IntervalOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') - rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + status: TimeSeriesSimpleType + y: TimeSeriesSimpleType -class RtcLevelStorageEquationComplexType(BaseModel): +class LevelStorageEquationComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_A0: XsDouble = Field(..., alias='rtc:A0') - rtc_A1: XsDouble = Field(..., alias='rtc:A1') - rtc_A2: Optional[XsDouble] = Field(None, alias='rtc:A2') - rtc_A3: Optional[XsDouble] = Field(None, alias='rtc:A3') - rtc_A4: Optional[XsDouble] = Field(None, alias='rtc:A4') + A0: XsDouble + A1: XsDouble + A2: Optional[XsDouble] = None + A3: Optional[XsDouble] = None + A4: Optional[XsDouble] = None -class RtcLimiterInputComplexType(BaseModel): +class LimiterInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_thresholdSeries: Optional[rtc_TimeSeriesSimpleType.Field21] = Field( - None, alias='rtc:thresholdSeries' - ) - rtc_thresholdValue: Optional[XsDouble] = Field(None, alias='rtc:thresholdValue') - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + thresholdSeries: Optional[TimeSeriesSimpleType.Field21] = None + thresholdValue: Optional[XsDouble] = None + x: TimeSeriesSimpleType -class RtcLookup2DTableInputComplexType(BaseModel): +class Lookup2DTableInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') - rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') - rtc_z: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:z') + x: TimeSeriesSimpleType + y: TimeSeriesSimpleType + z: Optional[TimeSeriesSimpleType] = None -class RtcLookup2DTableOutputComplexType(BaseModel): +class Lookup2DTableOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_z: RtcTimeSeriesSimpleType = Field(..., alias='rtc:z') + z: TimeSeriesSimpleType -class RtcLookupTableInputComplexType(BaseModel): +class LookupTableInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: rtc_TimeSeriesSimpleType.Field10 = Field( - ..., alias='rtc:x', description='reference to time series ID' + x: TimeSeriesSimpleType.Field10 = Field( + ..., description='reference to time series ID' ) - rtc_y: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:y') + y: Optional[TimeSeriesSimpleType] = None -class RtcLookupTableOutputComplexType(BaseModel): +class LookupTableOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + y: TimeSeriesSimpleType -class RtcLorentGeversInputComplexType(BaseModel): +class LorentGeversInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_EP: RtcTimeSeriesSimpleType = Field(..., alias='rtc:EP') - rtc_P: RtcTimeSeriesSimpleType = Field(..., alias='rtc:P') + EP: TimeSeriesSimpleType + P: TimeSeriesSimpleType -class RtcLorentGeversOutputComplexType(BaseModel): +class LorentGeversOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + Q: TimeSeriesSimpleType -class RtcLorentGeversStateComplexType(BaseModel): +class LorentGeversStateComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_QB1: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QB1') - rtc_QB2: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QB2') - rtc_QS1: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QS1') - rtc_QS2: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QS2') - rtc_S: RtcTimeSeriesSimpleType = Field(..., alias='rtc:S') + QB1: TimeSeriesSimpleType + QB2: TimeSeriesSimpleType + QS1: TimeSeriesSimpleType + QS2: TimeSeriesSimpleType + S: TimeSeriesSimpleType -class RtcLorentGeversStateUpdateComplexType(BaseModel): +class LorentGeversStateUpdateComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_S: RtcTimeSeriesSimpleType = Field(..., alias='rtc:S') + S: TimeSeriesSimpleType -class RtcMaxFlowsComplexType(BaseModel): +class MaxFlowsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _maxFlow_head01: XsDouble = Field(..., alias='@maxFlow_head01') - _maxFlow_head02: XsDouble = Field(..., alias='@maxFlow_head02') - _maxFlow_head03: Optional[XsDouble] = Field(None, alias='@maxFlow_head03') - _maxFlow_head04: Optional[XsDouble] = Field(None, alias='@maxFlow_head04') - _maxFlow_head05: Optional[XsDouble] = Field(None, alias='@maxFlow_head05') - _maxFlow_head06: Optional[XsDouble] = Field(None, alias='@maxFlow_head06') - _maxFlow_head07: Optional[XsDouble] = Field(None, alias='@maxFlow_head07') - _maxFlow_head08: Optional[XsDouble] = Field(None, alias='@maxFlow_head08') - _maxFlow_head09: Optional[XsDouble] = Field(None, alias='@maxFlow_head09') - _maxFlow_head10: Optional[XsDouble] = Field(None, alias='@maxFlow_head10') - _maxFlow_head11: Optional[XsDouble] = Field(None, alias='@maxFlow_head11') - _maxFlow_head12: Optional[XsDouble] = Field(None, alias='@maxFlow_head12') - _maxFlow_head13: Optional[XsDouble] = Field(None, alias='@maxFlow_head13') - _maxFlow_head14: Optional[XsDouble] = Field(None, alias='@maxFlow_head14') - _maxFlow_head15: Optional[XsDouble] = Field(None, alias='@maxFlow_head15') - _maxFlow_head16: Optional[XsDouble] = Field(None, alias='@maxFlow_head16') - _maxFlow_head17: Optional[XsDouble] = Field(None, alias='@maxFlow_head17') - _maxFlow_head18: Optional[XsDouble] = Field(None, alias='@maxFlow_head18') - _maxFlow_head19: Optional[XsDouble] = Field(None, alias='@maxFlow_head19') - _maxFlow_head20: Optional[XsDouble] = Field(None, alias='@maxFlow_head20') + attr_maxFlow_head01: XsDouble + attr_maxFlow_head02: XsDouble + attr_maxFlow_head03: Optional[XsDouble] = None + attr_maxFlow_head04: Optional[XsDouble] = None + attr_maxFlow_head05: Optional[XsDouble] = None + attr_maxFlow_head06: Optional[XsDouble] = None + attr_maxFlow_head07: Optional[XsDouble] = None + attr_maxFlow_head08: Optional[XsDouble] = None + attr_maxFlow_head09: Optional[XsDouble] = None + attr_maxFlow_head10: Optional[XsDouble] = None + attr_maxFlow_head11: Optional[XsDouble] = None + attr_maxFlow_head12: Optional[XsDouble] = None + attr_maxFlow_head13: Optional[XsDouble] = None + attr_maxFlow_head14: Optional[XsDouble] = None + attr_maxFlow_head15: Optional[XsDouble] = None + attr_maxFlow_head16: Optional[XsDouble] = None + attr_maxFlow_head17: Optional[XsDouble] = None + attr_maxFlow_head18: Optional[XsDouble] = None + attr_maxFlow_head19: Optional[XsDouble] = None + attr_maxFlow_head20: Optional[XsDouble] = None -class RtcMergerInputComplexType(BaseModel): +class MergerInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: List[rtc_TimeSeriesSimpleType.Field11] = Field( - ..., alias='rtc:x', min_items=1 - ) + x: List[TimeSeriesSimpleType.Field11] = Field(..., min_items=1) -class RtcMergerOutputComplexType(BaseModel): +class MergerOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:y') - rtc_ySum: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:ySum') + y: Optional[TimeSeriesSimpleType] = None + ySum: Optional[TimeSeriesSimpleType] = None -class RtcMergerSplitterInputComplexType(BaseModel): +class MergerSplitterInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: Optional[List[rtc_TimeSeriesSimpleType.Field17]] = Field(None, alias='rtc:x') - rtc_xVector: Optional[rtc_TimeSeriesSimpleType.Field18] = Field( - None, alias='rtc:xVector' - ) + x: Optional[List[TimeSeriesSimpleType.Field17]] = None + xVector: Optional[TimeSeriesSimpleType.Field18] = None -class RtcMergerSplitterOutputComplexType(BaseModel): +class MergerSplitterOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: Optional[List[rtc_TimeSeriesSimpleType.Field19]] = Field(None, alias='rtc:y') + y: Optional[List[TimeSeriesSimpleType.Field19]] = None -class RtcNeuronInputComplexType(BaseModel): +class NeuronInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_external: Optional[List[xs_string.Field1]] = Field(None, alias='rtc:external') - rtc_internal: Optional[List[xs_string.Field2]] = Field(None, alias='rtc:internal') + external: Optional[List[xs_string.Field1]] = None + internal: Optional[List[xs_string.Field2]] = None -class RtcNeuronOutputComplexType(BaseModel): +class NeuronOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:x', description='result of the transfer function' - ) - rtc_y: RtcTimeSeriesSimpleType = Field( + x: TimeSeriesSimpleType = Field(..., description='result of the transfer function') + y: TimeSeriesSimpleType = Field( ..., - alias='rtc:y', description='result of the summation of weighted input (intermediate result)', ) -class RtcNodeGradientComplexType(BaseModel): +class NodeGradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_lambda: RtcTimeSeriesSimpleType = Field(..., alias='rtc:lambda') - rtc_surfaceArea: RtcTimeSeriesSimpleType = Field(..., alias='rtc:surfaceArea') + lambda_: TimeSeriesSimpleType = Field(..., alias='lambda') + surfaceArea: TimeSeriesSimpleType -class RtcNodeInputComplexType(BaseModel): +class NodeInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HBC: Optional[RtcTimeSeriesSimpleType] = Field( + HBC: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:HBC', description='Time series with the water level boundary condition, note that a value MUST be provided at all time steps, otherwise the model stops with an error message', ) - rtc_HUpdate: Optional[RtcTimeSeriesSimpleType] = Field( - None, - alias='rtc:HUpdate', - description='Time series with an optional water level for model updating', - ) - rtc_QBC: Optional[List[rtc_TimeSeriesSimpleType.Field6]] = Field( - None, alias='rtc:QBC' + HUpdate: Optional[TimeSeriesSimpleType] = Field( + None, description='Time series with an optional water level for model updating' ) + QBC: Optional[List[TimeSeriesSimpleType.Field6]] = None -class RtcNodeOutputComplexType(BaseModel): +class NodeOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_H: RtcTimeSeriesSimpleType = Field(..., alias='rtc:H') - rtc_R: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:R') - rtc_S: RtcTimeSeriesSimpleType = Field(..., alias='rtc:S') + H: TimeSeriesSimpleType + R: Optional[TimeSeriesSimpleType] = None + S: TimeSeriesSimpleType -class RtcNodeStorageSystemComplexType(BaseModel): +class NodeStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_AREA: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:AREA', description='constant area [km2], default is 1.0' - ) - rtc_input: Optional[RtcInputNodeStorageSystemComplexType] = Field( - None, alias='rtc:input' - ) - rtc_residuum: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:residuum', description='residuum [mm]' - ) - rtc_state: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:state', description='unit volume [mm]' - ) - rtc_stateMax: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:stateMax' - ) - rtc_stateMin: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:stateMin' + attr_id: XsString + attr_name: Optional[XsString] = None + AREA: Optional[ExternalParameterSimpleType] = Field( + None, description='constant area [km2], default is 1.0' ) + input: Optional[InputNodeStorageSystemComplexType] = None + residuum: TimeSeriesSimpleType = Field(..., description='residuum [mm]') + state: TimeSeriesSimpleType = Field(..., description='unit volume [mm]') + stateMax: Optional[ExternalParameterSimpleType] = None + stateMin: Optional[ExternalParameterSimpleType] = None -class RtcOrificeInputComplexType(BaseModel): +class OrificeInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_D: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:D', description='deprecated' - ) - rtc_DConst: Optional[XsDouble] = Field(None, alias='rtc:DConst') - rtc_DSeries: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:DSeries') - rtc_DeltaHDown: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:DeltaHDown' - ) - rtc_DeltaHUp: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:DeltaHUp') - rtc_HDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HDown') - rtc_HUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HUp') + D: Optional[TimeSeriesSimpleType] = Field(None, description='deprecated') + DConst: Optional[XsDouble] = None + DSeries: Optional[TimeSeriesSimpleType] = None + DeltaHDown: Optional[TimeSeriesSimpleType] = None + DeltaHUp: Optional[TimeSeriesSimpleType] = None + HDown: TimeSeriesSimpleType + HUp: TimeSeriesSimpleType -class RtcOrificeOutputComplexType(BaseModel): +class OrificeOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_D: RtcTimeSeriesSimpleType = Field(..., alias='rtc:D') - rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') - rtc_flowType: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:flowType') + D: TimeSeriesSimpleType + Q: TimeSeriesSimpleType + flowType: Optional[TimeSeriesSimpleType] = None -class RtcOutletInputComplexType(BaseModel): +class OutletInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_relativeRelease: Optional[List[RtcTimeSeriesSimpleType]] = Field( - None, alias='rtc:relativeRelease' - ) - rtc_release: Optional[RtcTimeSeriesSimpleType] = Field( + relativeRelease: Optional[List[TimeSeriesSimpleType]] = None + release: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:release', description='Reference to timeseries in data configuration containg an absolute release. (ONLY FOR CONTROLLED OUTLET)', ) -class RtcOutletOutputComplexType(BaseModel): +class OutletOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_release: RtcTimeSeriesSimpleType = Field(..., alias='rtc:release') + release: TimeSeriesSimpleType -class RtcOutputATableComplexType(BaseModel): +class OutputATableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: List[rtc_TimeSeriesSimpleType.Field1] = Field( - ..., alias='rtc:y', min_items=1 - ) + y: List[TimeSeriesSimpleType.Field1] = Field(..., min_items=1) -class RtcOutputEvaporationPotentialComplexType(BaseModel): +class OutputEvaporationPotentialComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_EP: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:EP', - description='instantaneous potential evaporation [mm/timestep]', + EP: TimeSeriesSimpleType = Field( + ..., description='instantaneous potential evaporation [mm/timestep]' ) -class RtcOutputLinkStorageSystemComplexType(BaseModel): +class OutputLinkStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_H: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:H', description='Discharge as unit volume [mm/timestep]' - ) - rtc_Q: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:Q', description='Discharge [m3/s]' + H: TimeSeriesSimpleType = Field( + ..., description='Discharge as unit volume [mm/timestep]' ) + Q: TimeSeriesSimpleType = Field(..., description='Discharge [m3/s]') -class RtcOutputPidComplexType(BaseModel): +class OutputPidComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_differentialPart: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:differentialPart', - description='memory of differential part (in fact e of the last time step)', - ) - rtc_integralPart: RtcTimeSeriesSimpleType = Field( - ..., - alias='rtc:integralPart', - description='memory of integral part: integral(e)dt', + differentialPart: TimeSeriesSimpleType = Field( + ..., description='memory of differential part (in fact e of the last time step)' ) - rtc_y: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:y', description='setting of the actuator' + integralPart: TimeSeriesSimpleType = Field( + ..., description='memory of integral part: integral(e)dt' ) + y: TimeSeriesSimpleType = Field(..., description='setting of the actuator') -class RtcOutputSnowRainJunctionComplexType(BaseModel): +class OutputSnowRainJunctionComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_RF: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:RF', description='rainfall [mm/timestep]' - ) - rtc_SF: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:SF', description='snowfall [mm/timestep]' - ) + RF: TimeSeriesSimpleType = Field(..., description='rainfall [mm/timestep]') + SF: TimeSeriesSimpleType = Field(..., description='snowfall [mm/timestep]') -class RtcOutputStorageSystemComplexType(BaseModel): +class OutputStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_nFun: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:nFun', description='number of function evaluations' + nFun: TimeSeriesSimpleType = Field( + ..., description='number of function evaluations' ) - rtc_nJac: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:nJac', description='number of evaluations of the Jacobian' + nJac: TimeSeriesSimpleType = Field( + ..., description='number of evaluations of the Jacobian' ) - rtc_res: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:res', description='residuum at last iteration step' + res: TimeSeriesSimpleType = Field( + ..., description='residuum at last iteration step' ) -class RtcPercolationStorageSystemComplexType(BaseModel): +class PercolationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputPercolationStorageSystemComplexType = Field( - ..., alias='rtc:input' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterPercolationStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputPercolationStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParameterPercolationStorageSystemComplexType -class RtcPidComplexType(BaseModel): +class PidComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputPidComplexType = Field(..., alias='rtc:input') - rtc_kd: XsDouble = Field( - ..., alias='rtc:kd', description='fatcor on differential part kd*de/dt' - ) - rtc_ki: XsDouble = Field( - ..., alias='rtc:ki', description='factor on the integral part ki*integral(e)dt' + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputPidComplexType + kd: XsDouble = Field(..., description='fatcor on differential part kd*de/dt') + ki: XsDouble = Field( + ..., description='factor on the integral part ki*integral(e)dt' ) - rtc_kp: XsDouble = Field( - ..., alias='rtc:kp', description='factor on the proportional part kp*e' + kp: XsDouble = Field(..., description='factor on the proportional part kp*e') + mode: Optional[Mode] = Field( + None, description='pid mode, either "NATIVE" or "SOBEK2" or "PIDPOS" or PIDVEL"' ) - rtc_mode: Optional[RtcMode] = Field( - None, - alias='rtc:mode', - description='pid mode, either "NATIVE" or "SOBEK2" or "PIDPOS" or PIDVEL"', - ) - rtc_output: RtcOutputPidComplexType = Field(..., alias='rtc:output') - rtc_settingMax: XsDouble = Field( - ..., alias='rtc:settingMax', description='maximum setting of the actuator' - ) - rtc_settingMaxSpeed: XsDouble = Field( - ..., - alias='rtc:settingMaxSpeed', - description='maximum speed of the actuation in [unit/s]', - ) - rtc_settingMin: XsDouble = Field( - ..., alias='rtc:settingMin', description='minimum setting of the actuator' + output: OutputPidComplexType + settingMax: XsDouble = Field(..., description='maximum setting of the actuator') + settingMaxSpeed: XsDouble = Field( + ..., description='maximum speed of the actuation in [unit/s]' ) + settingMin: XsDouble = Field(..., description='minimum setting of the actuator') -class RtcPolygonComplexType(BaseModel): +class PolygonComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: Optional[XsString] = Field(None, alias='@id') - rtc_edges: RtcEdgesComplexType = Field(..., alias='rtc:edges') - rtc_value: Optional[XsDouble] = Field(None, alias='rtc:value') + attr_id: Optional[XsString] = None + edges: EdgesComplexType + value: Optional[XsDouble] = None -class RtcPolygonLookupInputComplexType(BaseModel): +class PolygonLookupInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x1: rtc_TimeSeriesSimpleType.Field12 = Field(..., alias='rtc:x1') - rtc_x2: rtc_TimeSeriesSimpleType.Field13 = Field(..., alias='rtc:x2') + x1: TimeSeriesSimpleType.Field12 + x2: TimeSeriesSimpleType.Field13 -class RtcPolygonLookupOutputComplexType(BaseModel): +class PolygonLookupOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') + status: TimeSeriesSimpleType -class RtcPolygonsComplexType(BaseModel): +class PolygonsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_polygon: List[RtcPolygonComplexType] = Field( - ..., alias='rtc:polygon', min_items=1 - ) + polygon: List[PolygonComplexType] = Field(..., min_items=1) -class RtcPumpGradientComplexType(BaseModel): +class PumpGradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_storageDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:storageDown') - rtc_storageUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:storageUp') + storageDown: TimeSeriesSimpleType + storageUp: TimeSeriesSimpleType -class RtcPumpInputComplexType(BaseModel): +class PumpInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_HDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HDown') - rtc_HUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HUp') - rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + HDown: TimeSeriesSimpleType + HUp: TimeSeriesSimpleType + Q: TimeSeriesSimpleType -class RtcPumpOutputComplexType(BaseModel): +class PumpOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') + Q: TimeSeriesSimpleType -class RtcRelationalConditionComplexType(BaseModel): +class RelationalConditionComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_relationalOperator: RtcRelationalOperatorEnumStringType = Field( - ..., alias='rtc:relationalOperator' - ) - rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field22] = Field( - None, alias='rtc:x1Series' - ) - rtc_x1Value: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:x1Value' - ) - rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field23] = Field( - None, alias='rtc:x2Series' - ) - rtc_x2Value: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:x2Value' - ) + relationalOperator: RelationalOperatorEnumStringType + x1Series: Optional[TimeSeriesSimpleType.Field22] = None + x1Value: Optional[ExternalParameterSimpleType] = None + x2Series: Optional[TimeSeriesSimpleType.Field23] = None + x2Value: Optional[ExternalParameterSimpleType] = None -class RtcReleaseTotalComplexType(BaseModel): +class ReleaseTotalComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputReleaseTotalComplexType = Field(..., alias='rtc:input') - rtc_output: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:output', description='total discharge [m3/s]' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputReleaseTotalComplexType + output: TimeSeriesSimpleType = Field(..., description='total discharge [m3/s]') -class RtcReservoirCompactInputComplexType(BaseModel): +class ReservoirCompactInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_FB: RtcTimeSeriesSimpleType = Field( + FB: TimeSeriesSimpleType = Field( ..., - alias='rtc:FB', description='forebay elevation [m above reference level] or [ft above sea level]', ) - rtc_OF: Optional[RtcExternalParameterSimpleType] = Field( + OF: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:OF', description='optional time series with the unit outage factor [0-1], it reduces the (physical) constraints PXValue and QTXValue (NO impact on PX, QTX)', ) - rtc_PM: Optional[RtcTimeSeriesSimpleType] = Field( + PM: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:PM', description='minimum generation constraint on aggregated turbine level [MW], primarly used as operational constraint', ) - rtc_PMValue: Optional[RtcExternalParameterSimpleType] = Field( + PMValue: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:PMValue', description='fixed minimum generation constraint on aggregated turbine level [MW], primarily used as physical constraint', ) - rtc_PX: Optional[RtcTimeSeriesSimpleType] = Field( + PX: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:PX', description='maximum generation constraint on aggregated turbine level [MW], primarly used as operational constraint', ) - rtc_PXValue: Optional[RtcExternalParameterSimpleType] = Field( + PXValue: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:PXValue', description='fixed maximum generation constraint on aggregated turbine level [MW], primarly used as physical constraint', ) - rtc_Q: RtcTimeSeriesSimpleType = Field( + Q: TimeSeriesSimpleType = Field( ..., - alias='rtc:Q', description='reservoir outflow [m3/s] or [KCFS], data is expected to be complete and valid', ) - rtc_QI: List[RtcTimeSeriesSimpleType] = Field(..., alias='rtc:QI', min_items=1) - rtc_QMISC: Optional[RtcTimeSeriesSimpleType] = Field( + QI: List[TimeSeriesSimpleType] = Field(..., min_items=1) + QMISC: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:QMISC', description='optional miscellaneous flow (uncontrolled), will be zero by default [m3/s] or [KCFS] if no time series is supplied or if the time series includes NaN values', ) - rtc_QS: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:QS', description='absolute spill target [m3/s] or [KCFS]' + QS: Optional[TimeSeriesSimpleType] = Field( + None, description='absolute spill target [m3/s] or [KCFS]' ) - rtc_QSPercentage: Optional[rtc_TimeSeriesSimpleType.Field7] = Field( + QSPercentage: Optional[TimeSeriesSimpleType.Field7] = Field( None, - alias='rtc:QSPercentage', description='relative spill target as a percentage [0..100] of the total flow Q', ) - rtc_QSPercentageValue: Optional[rtc_ExternalParameterSimpleType.Field1] = Field( + QSPercentageValue: Optional[ExternalParameterSimpleType.Field1] = Field( None, - alias='rtc:QSPercentageValue', description='relative spill target as a percentage [0..100] of the total flow Q', ) - rtc_QSValue: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:QSValue', description='absolute spill target [m3/s] or [KCFS]' + QSValue: Optional[ExternalParameterSimpleType] = Field( + None, description='absolute spill target [m3/s] or [KCFS]' ) - rtc_QTX: Optional[RtcTimeSeriesSimpleType] = Field( + QTX: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:QTX', description='maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as operational constraint', ) - rtc_QTXValue: Optional[RtcExternalParameterSimpleType] = Field( + QTXValue: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:QTXValue', description='fixed maximum generation constraint on aggregated turbine level [m3/s] or [KCFS], primarily used as physical constraint', ) -class RtcReservoirCompactOutputComplexType(BaseModel): +class ReservoirCompactOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_DQ: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:DQ', description='deviation from spill target [m3/s] or [KCFS]' + DQ: TimeSeriesSimpleType = Field( + ..., description='deviation from spill target [m3/s] or [KCFS]' ) - rtc_FB: RtcTimeSeriesSimpleType = Field( + FB: TimeSeriesSimpleType = Field( ..., - alias='rtc:FB', description='forebay elevation [m above reference level] or [ft above sea level]', ) - rtc_H: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:H', description='head [m] or [ft]' - ) - rtc_P: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:P', description='power generation [MW]' + H: TimeSeriesSimpleType = Field(..., description='head [m] or [ft]') + P: TimeSeriesSimpleType = Field(..., description='power generation [MW]') + PX: Optional[TimeSeriesSimpleType] = Field( + None, description='maximum power generation [MW]' ) - rtc_PX: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:PX', description='maximum power generation [MW]' + Q: TimeSeriesSimpleType = Field( + ..., description='reservoir outflow [m3/s] or [KCFS]' ) - rtc_Q: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:Q', description='reservoir outflow [m3/s] or [KCFS]' + QI: TimeSeriesSimpleType = Field( + ..., description='reservoir inflow [m3/s] or [KCFS]' ) - rtc_QI: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:QI', description='reservoir inflow [m3/s] or [KCFS]' + QMISC: Optional[TimeSeriesSimpleType] = Field( + None, description='miscellaneous flow [m3/s] or [KCFS]' ) - rtc_QMISC: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:QMISC', description='miscellaneous flow [m3/s] or [KCFS]' + QS: TimeSeriesSimpleType = Field(..., description='spillage [m3/s] or [KCFS]') + QSPercentage: Optional[TimeSeriesSimpleType] = Field( + None, description='relative spillage [0..100]' ) - rtc_QS: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:QS', description='spillage [m3/s] or [KCFS]' + QT: TimeSeriesSimpleType = Field(..., description='turbine flow [m3/s] or [KCFS]') + QTX: Optional[TimeSeriesSimpleType] = Field( + None, description='maximum turbine flow [m3/s] or [KCFS]' ) - rtc_QSPercentage: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:QSPercentage', description='relative spillage [0..100]' - ) - rtc_QT: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:QT', description='turbine flow [m3/s] or [KCFS]' - ) - rtc_QTX: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:QTX', description='maximum turbine flow [m3/s] or [KCFS]' - ) - rtc_R: RtcTimeSeriesSimpleType = Field( + R: TimeSeriesSimpleType = Field( ..., - alias='rtc:R', description='residuum of mass balance (in simultaneous mode) [m3/s] or [KCFS]', ) - rtc_S: RtcTimeSeriesSimpleType = Field( + S: TimeSeriesSimpleType = Field( ..., - alias='rtc:S', description='storage [m3] or [KCFS-hrs], this is the system state needed in the state file', ) - rtc_TW: RtcTimeSeriesSimpleType = Field( + TW: TimeSeriesSimpleType = Field( ..., - alias='rtc:TW', description='tailwater elevation [m above reference level] or [ft above sea level]', ) -class RtcReservoirGradientComplexType(BaseModel): +class ReservoirGradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_lambda: RtcTimeSeriesSimpleType = Field(..., alias='rtc:lambda') - rtc_lambdaDown: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:lambdaDown' - ) + lambda_: TimeSeriesSimpleType = Field(..., alias='lambda') + lambdaDown: Optional[TimeSeriesSimpleType] = None -class RtcReservoirInputComplexType(BaseModel): +class ReservoirInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_evaporation: Optional[RtcTimeSeriesSimpleType] = Field( - None, - alias='rtc:evaporation', - description='Direct evaporation from the reservoir [mm/time step]', + evaporation: Optional[TimeSeriesSimpleType] = Field( + None, description='Direct evaporation from the reservoir [mm/time step]' ) - rtc_inflow: List[RtcTimeSeriesSimpleType] = Field( - ..., alias='rtc:inflow', min_items=1 - ) - rtc_level: Optional[RtcTimeSeriesSimpleType] = Field( + inflow: List[TimeSeriesSimpleType] = Field(..., min_items=1) + level: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:level', description='Optional level [m] for updating the simulated level by an observed water level (simple data assimilation), if provided the error output is equal to the mass balance correction ', ) - rtc_precipitation: Optional[RtcTimeSeriesSimpleType] = Field( + precipitation: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:precipitation', description='Direct precitation into the reservoir [mm/time step], the value will be multiplied by the current water surface area of the reservoir', ) -class RtcReservoirOutputComplexType(BaseModel): +class ReservoirOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_error: Optional[RtcTimeSeriesSimpleType] = Field( + error: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:error', description='optional error output [m3/s] which is non-zero if the simple data assimilation option for overruling the simulated water level is used ', ) - rtc_inflow: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:inflow', description='aggregated inflows [m3/s]' - ) - rtc_level: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:level', description='water level [m] in the reservoir' + inflow: TimeSeriesSimpleType = Field(..., description='aggregated inflows [m3/s]') + level: TimeSeriesSimpleType = Field( + ..., description='water level [m] in the reservoir' ) - rtc_relativeStorage: Optional[RtcTimeSeriesSimpleType] = Field( + relativeStorage: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:relativeStorage', description='relative storage [-] typically between 0 and 1 depending on the definition of the maximum level above]', ) - rtc_release: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:release', description='aggregated release [m3/s]' - ) - rtc_residuum: Optional[RtcTimeSeriesSimpleType] = Field( - None, - alias='rtc:residuum', - description='optional residuum of the implicit solution', + release: TimeSeriesSimpleType = Field(..., description='aggregated release [m3/s]') + residuum: Optional[TimeSeriesSimpleType] = Field( + None, description='optional residuum of the implicit solution' ) - rtc_storage: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:storage', description='storage [m3] (state variable)' + storage: TimeSeriesSimpleType = Field( + ..., description='storage [m3] (state variable)' ) -class RtcResponseStorageSystemComplexType(BaseModel): +class ResponseStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputResponseStorageSystemComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterResponseStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputResponseStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParameterResponseStorageSystemComplexType -class RtcResultComplexType(BaseModel): +class ResultComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_output: RtcTimeSeriesSimpleType = Field(..., alias='rtc:output') - rtc_value: XsInteger = Field(..., alias='rtc:value') + output: TimeSeriesSimpleType + value: XsInteger -class RtcRiverWeirInputComplexType(BaseModel): +class RiverWeirInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_CConst: Optional[XsDouble] = Field(None, alias='rtc:CConst') - rtc_CSeries: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:CSeries') - rtc_DeltaHDown: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:DeltaHDown' - ) - rtc_DeltaHUp: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:DeltaHUp') - rtc_HDown: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HDown') - rtc_HUp: RtcTimeSeriesSimpleType = Field(..., alias='rtc:HUp') + CConst: Optional[XsDouble] = None + CSeries: Optional[TimeSeriesSimpleType] = None + DeltaHDown: Optional[TimeSeriesSimpleType] = None + DeltaHUp: Optional[TimeSeriesSimpleType] = None + HDown: TimeSeriesSimpleType + HUp: TimeSeriesSimpleType -class RtcRiverWeirOutputComplexType(BaseModel): +class RiverWeirOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_C: RtcTimeSeriesSimpleType = Field(..., alias='rtc:C') - rtc_Q: RtcTimeSeriesSimpleType = Field(..., alias='rtc:Q') - rtc_flowType: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:flowType') + C: TimeSeriesSimpleType + Q: TimeSeriesSimpleType + flowType: Optional[TimeSeriesSimpleType] = None -class RtcRoutingOutputComplexType(BaseModel): +class RoutingOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_discharge: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:discharge' - ) - rtc_error: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:error') + discharge: Optional[TimeSeriesSimpleType] = None + error: Optional[TimeSeriesSimpleType] = None -class RtcRowComplexType(BaseModel): +class RowComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _eta_head01: XsDouble = Field(..., alias='@eta_head01') - _eta_head02: XsDouble = Field(..., alias='@eta_head02') - _eta_head03: Optional[XsDouble] = Field(None, alias='@eta_head03') - _eta_head04: Optional[XsDouble] = Field(None, alias='@eta_head04') - _eta_head05: Optional[XsDouble] = Field(None, alias='@eta_head05') - _eta_head06: Optional[XsDouble] = Field(None, alias='@eta_head06') - _eta_head07: Optional[XsDouble] = Field(None, alias='@eta_head07') - _eta_head08: Optional[XsDouble] = Field(None, alias='@eta_head08') - _eta_head09: Optional[XsDouble] = Field(None, alias='@eta_head09') - _eta_head10: Optional[XsDouble] = Field(None, alias='@eta_head10') - _eta_head11: Optional[XsDouble] = Field(None, alias='@eta_head11') - _eta_head12: Optional[XsDouble] = Field(None, alias='@eta_head12') - _eta_head13: Optional[XsDouble] = Field(None, alias='@eta_head13') - _eta_head14: Optional[XsDouble] = Field(None, alias='@eta_head14') - _eta_head15: Optional[XsDouble] = Field(None, alias='@eta_head15') - _eta_head16: Optional[XsDouble] = Field(None, alias='@eta_head16') - _eta_head17: Optional[XsDouble] = Field(None, alias='@eta_head17') - _eta_head18: Optional[XsDouble] = Field(None, alias='@eta_head18') - _eta_head19: Optional[XsDouble] = Field(None, alias='@eta_head19') - _eta_head20: Optional[XsDouble] = Field(None, alias='@eta_head20') - _flow: XsDouble = Field(..., alias='@flow') + attr_eta_head01: XsDouble + attr_eta_head02: XsDouble + attr_eta_head03: Optional[XsDouble] = None + attr_eta_head04: Optional[XsDouble] = None + attr_eta_head05: Optional[XsDouble] = None + attr_eta_head06: Optional[XsDouble] = None + attr_eta_head07: Optional[XsDouble] = None + attr_eta_head08: Optional[XsDouble] = None + attr_eta_head09: Optional[XsDouble] = None + attr_eta_head10: Optional[XsDouble] = None + attr_eta_head11: Optional[XsDouble] = None + attr_eta_head12: Optional[XsDouble] = None + attr_eta_head13: Optional[XsDouble] = None + attr_eta_head14: Optional[XsDouble] = None + attr_eta_head15: Optional[XsDouble] = None + attr_eta_head16: Optional[XsDouble] = None + attr_eta_head17: Optional[XsDouble] = None + attr_eta_head18: Optional[XsDouble] = None + attr_eta_head19: Optional[XsDouble] = None + attr_eta_head20: Optional[XsDouble] = None + attr_flow: XsDouble -class RtcRuleStateTriggerComplexType(BaseModel): +class RuleStateTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_ruleId: XsString = Field(..., alias='rtc:ruleId') + attr_id: XsString + attr_name: Optional[XsString] = None + ruleId: XsString -class RtcSRMInputComplexType(BaseModel): +class SRMInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_P: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:P') - rtc_P_Vector: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:P-Vector') - rtc_RCA: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:RCA') - rtc_RCA_Vector: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:RCA-Vector' - ) - rtc_SCA: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:SCA') - rtc_SCA_Vector: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:SCA-Vector' - ) - rtc_T: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:T') - rtc_T_Vector: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:T-Vector') - rtc_cr: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:cr') - rtc_cr_Vector: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:cr-Vector' - ) - rtc_cs: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:cs') - rtc_cs_Vector: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:cs-Vector' - ) + P: Optional[TimeSeriesSimpleType] = None + P_Vector: Optional[TimeSeriesSimpleType] = Field(None, alias='P-Vector') + RCA: Optional[TimeSeriesSimpleType] = None + RCA_Vector: Optional[TimeSeriesSimpleType] = Field(None, alias='RCA-Vector') + SCA: Optional[TimeSeriesSimpleType] = None + SCA_Vector: Optional[TimeSeriesSimpleType] = Field(None, alias='SCA-Vector') + T: Optional[TimeSeriesSimpleType] = None + T_Vector: Optional[TimeSeriesSimpleType] = Field(None, alias='T-Vector') + cr: Optional[TimeSeriesSimpleType] = None + cr_Vector: Optional[TimeSeriesSimpleType] = Field(None, alias='cr-Vector') + cs: Optional[TimeSeriesSimpleType] = None + cs_Vector: Optional[TimeSeriesSimpleType] = Field(None, alias='cs-Vector') -class RtcSRMOutputComplexType(BaseModel): +class SRMOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_QRain_Vector: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QRain-Vector') - rtc_QSnow_Vector: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QSnow-Vector') - rtc_QStorage_Vector: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:QStorage-Vector' - ) + QRain_Vector: TimeSeriesSimpleType = Field(..., alias='QRain-Vector') + QSnow_Vector: TimeSeriesSimpleType = Field(..., alias='QSnow-Vector') + QStorage_Vector: TimeSeriesSimpleType = Field(..., alias='QStorage-Vector') -class RtcSRMParameterZoneComplexType(BaseModel): +class SRMParameterZoneComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: Optional[XsString] = Field(None, alias='@id') - rtc_Tcr1: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:Tcr1', description='critical temperature (???) [oC]' - ) - rtc_Tcr2: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:Tcr2', description='critical temperature (???) [oC]' + attr_id: Optional[XsString] = None + Tcr1: ExternalParameterSimpleType = Field( + ..., description='critical temperature (???) [oC]' ) - rtc_a: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:a', description='degree day factor [mm/(oC*day)]' + Tcr2: ExternalParameterSimpleType = Field( + ..., description='critical temperature (???) [oC]' ) - rtc_area: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:area', description='area [km2]' + a: ExternalParameterSimpleType = Field( + ..., description='degree day factor [mm/(oC*day)]' ) + area: ExternalParameterSimpleType = Field(..., description='area [km2]') -class RtcSRMStateComplexType(BaseModel): +class SRMStateComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_PStorage_Vector: RtcTimeSeriesSimpleType = Field( + PStorage_Vector: TimeSeriesSimpleType = Field( ..., - alias='rtc:PStorage-Vector', + alias='PStorage-Vector', description='snow storage of non-snow-covered areas [mm]', ) - rtc_Q: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:Q', description='discharge [m3/s]' - ) + Q: TimeSeriesSimpleType = Field(..., description='discharge [m3/s]') -class RtcSnowRainJunctionComplexType(BaseModel): +class SnowRainJunctionComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputSnowRainJunctionComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOutputSnowRainJunctionComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterSnowRainJunctionComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputSnowRainJunctionComplexType + output: OutputSnowRainJunctionComplexType + parameter: ParameterSnowRainJunctionComplexType -class RtcSoilRunoffStorageSystemComplexType(BaseModel): +class SoilRunoffStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputSoilRunoffStorageSystemComplexType = Field( - ..., alias='rtc:input' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterSoilRunoffStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputSoilRunoffStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParameterSoilRunoffStorageSystemComplexType -class RtcSpreadsheetInputComplexType(BaseModel): +class SpreadsheetInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x1: rtc_TimeSeriesSimpleType.Field14 = Field(..., alias='rtc:x1') - rtc_x2: rtc_TimeSeriesSimpleType.Field15 = Field(..., alias='rtc:x2') - rtc_x3: Optional[rtc_TimeSeriesSimpleType.Field16] = Field(None, alias='rtc:x3') + x1: TimeSeriesSimpleType.Field14 + x2: TimeSeriesSimpleType.Field15 + x3: Optional[TimeSeriesSimpleType.Field16] = None -class RtcSpreadsheetOutputComplexType(BaseModel): +class SpreadsheetOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_status: RtcTimeSeriesSimpleType = Field(..., alias='rtc:status') + status: TimeSeriesSimpleType -class RtcSpreadsheetRecordComplexType(BaseModel): +class SpreadsheetRecordComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _x1: XsDouble = Field(..., alias='@x1') - _x2: XsDouble = Field(..., alias='@x2') - _x3: Optional[XsDouble] = Field(None, alias='@x3') - _y: XsDouble = Field(..., alias='@y') + attr_x1: XsDouble + attr_x2: XsDouble + attr_x3: Optional[XsDouble] = None + attr_y: XsDouble -class RtcSpreadsheetTableComplexType(BaseModel): +class SpreadsheetTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _initialState: Optional[XsDouble] = Field(None, alias='@initialState') - rtc_record: List[RtcSpreadsheetRecordComplexType] = Field( - ..., alias='rtc:record', min_items=1 - ) + attr_initialState: Optional[XsDouble] = None + record: List[SpreadsheetRecordComplexType] = Field(..., min_items=1) -class RtcSpreadsheetTablesComplexType(BaseModel): +class SpreadsheetTablesComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_table: List[RtcSpreadsheetTableComplexType] = Field( - ..., alias='rtc:table', min_items=1 - ) + table: List[SpreadsheetTableComplexType] = Field(..., min_items=1) -class RtcStorageCharacteristicsComplexType(BaseModel): +class StorageCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_maximumLevel: Optional[XsDouble] = Field( + maximumLevel: Optional[XsDouble] = Field( None, - alias='rtc:maximumLevel', description='Maximum water level h in the reservoir: this optional value does not limit the water level, it is used however to compute the relative filling percentage of the reservoir according to s = S/S(maximumLevel), where S is the absolute storage volume', ) - rtc_storageEquation: Optional[RtcEquationsComplexType] = Field( - None, - alias='rtc:storageEquation', - description='Storage equation, storage S = f(water level h)', + storageEquation: Optional[EquationsComplexType] = Field( + None, description='Storage equation, storage S = f(water level h)' ) - rtc_storageTable: Optional[RtcElevationTableComplexType] = Field( - None, - alias='rtc:storageTable', - description='Storage table with pairs of elevation h and storage S', + storageTable: Optional[ElevationTableComplexType] = Field( + None, description='Storage table with pairs of elevation h and storage S' ) -class RtcStorageSystemSettingsComplexType(BaseModel): +class StorageSystemSettingsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_acceptableConvergenceThreshold: Optional[XsDouble] = Field( + acceptableConvergenceThreshold: Optional[XsDouble] = Field( None, - alias='rtc:acceptableConvergenceThreshold', description='optional threshold after reaching the maximum number of iterations, writes a warning if reached, writes error otherwise', ) - rtc_convergenceThreshold: XsDouble = Field( - ..., - alias='rtc:convergenceThreshold', - description='iteration stops after reaching this threshold', + convergenceThreshold: XsDouble = Field( + ..., description='iteration stops after reaching this threshold' ) - rtc_treatNonConvergenceAsError: XsBoolean = Field( + treatNonConvergenceAsError: XsBoolean = Field( ..., - alias='rtc:treatNonConvergenceAsError', description='treat non-convergence related to the thresholds as error or not', ) -class RtcTableLookupTableComplexType(BaseModel): +class TableLookupTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_record: List[RtcDateRecord2DataComplexType] = Field( - ..., alias='rtc:record', min_items=1 - ) + record: List[DateRecord2DataComplexType] = Field(..., min_items=1) -class RtcTailwaterEquationComplexType(BaseModel): +class TailwaterEquationComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_A: RtcExternalParameterSimpleType = Field(..., alias='rtc:A') - rtc_B: RtcExternalParameterSimpleType = Field(..., alias='rtc:B') - rtc_C: RtcExternalParameterSimpleType = Field(..., alias='rtc:C') - rtc_D: Optional[RtcExternalParameterSimpleType] = Field(None, alias='rtc:D') - rtc_FBDown: Optional[RtcTimeSeriesSimpleType] = Field( + A: ExternalParameterSimpleType + B: ExternalParameterSimpleType + C: ExternalParameterSimpleType + D: Optional[ExternalParameterSimpleType] = None + FBDown: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:FBDown', description='time series reference to forebay elevation of the downstream project, only required if B is non-zero', ) -class RtcTailwaterOutputComplexType(BaseModel): +class TailwaterOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_head: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:head', description='head [m]' - ) - rtc_level: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:level', description='tailwater level [m]' - ) + head: TimeSeriesSimpleType = Field(..., description='head [m]') + level: TimeSeriesSimpleType = Field(..., description='tailwater level [m]') -class RtcTailwaterTidalEquationComplexType(BaseModel): +class TailwaterTidalEquationComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_A: RtcExternalParameterSimpleType = Field(..., alias='rtc:A') - rtc_QObs: RtcTimeSeriesSimpleType = Field(..., alias='rtc:QObs') - rtc_TWObs: RtcTimeSeriesSimpleType = Field(..., alias='rtc:TWObs') + A: ExternalParameterSimpleType + QObs: TimeSeriesSimpleType + TWObs: TimeSeriesSimpleType -class RtcThunerseeRuleInputComplexType(BaseModel): +class ThunerseeRuleInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_catchment: RtcTimeSeriesSimpleType = Field(..., alias='rtc:catchment') - rtc_inflow: RtcTimeSeriesSimpleType = Field(..., alias='rtc:inflow') - rtc_level: RtcTimeSeriesSimpleType = Field(..., alias='rtc:level') + catchment: TimeSeriesSimpleType + inflow: TimeSeriesSimpleType + level: TimeSeriesSimpleType -class RtcThunerseeRuleOutputComplexType(BaseModel): +class ThunerseeRuleOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_active: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='rtc:active') - rtc_releaseTotal: RtcTimeSeriesSimpleType = Field(..., alias='rtc:releaseTotal') - rtc_releaseTunnel: RtcTimeSeriesSimpleType = Field(..., alias='rtc:releaseTunnel') - rtc_releaseWeir: RtcTimeSeriesSimpleType = Field(..., alias='rtc:releaseWeir') + active: Optional[TimeSeriesSimpleType] = None + releaseTotal: TimeSeriesSimpleType + releaseTunnel: TimeSeriesSimpleType + releaseWeir: TimeSeriesSimpleType -class RtcTimeAbsoluteInputComplexType(BaseModel): +class TimeAbsoluteInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_x: RtcTimeSeriesSimpleType = Field(..., alias='rtc:x') + x: TimeSeriesSimpleType -class RtcTimeAbsoluteOutputComplexType(BaseModel): +class TimeAbsoluteOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + y: TimeSeriesSimpleType -class RtcTimeRelativeControlTableRecordComplexType(BaseModel): +class TimeRelativeControlTableRecordComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _time: XsDouble = Field(..., alias='@time') - _value: XsDouble = Field(..., alias='@value') + attr_time: XsDouble + attr_value: XsDouble -class RtcTimeRelativeInputComplexType(BaseModel): +class TimeRelativeInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_y: RtcTimeSeriesSimpleType = Field( + y: TimeSeriesSimpleType = Field( ..., - alias='rtc:y', description='optional input for deriving the timeActive in case of the relative from Value option', ) -class RtcTimeRelativeOutputComplexType(BaseModel): +class TimeRelativeOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_timeActive: RtcTimeSeriesSimpleType = Field(..., alias='rtc:timeActive') - rtc_y: RtcTimeSeriesSimpleType = Field(..., alias='rtc:y') + timeActive: TimeSeriesSimpleType + y: TimeSeriesSimpleType -class RtcTimeStepComplexType(BaseModel): +class TimeStepComplexType(RtcBaseModel): """ The timeunit element has three attributes, unit and devider and multiplier. the unit is second, minute, hour, week, month year. @@ -3032,1075 +2684,868 @@ class Config: extra = Extra.forbid allow_population_by_field_name = True - _divider: Optional[XsPositiveInteger] = Field(None, alias='@divider') - _multiplier: Optional[XsPositiveInteger] = Field(None, alias='@multiplier') - _unit: RtcTimeStepUnitEnumStringType = Field(..., alias='@unit') + attr_divider: Optional[XsPositiveInteger] = None + attr_multiplier: Optional[XsPositiveInteger] = None + attr_unit: TimeStepUnitEnumStringType -class RtcTriggerControllerComplexType(BaseModel): +class TriggerControllerComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_input: RtcTimeSeriesSimpleType = Field(..., alias='rtc:input') - rtc_value: XsInteger = Field(..., alias='rtc:value') + input: TimeSeriesSimpleType + value: XsInteger -class RtcTurbineCapacityCharacteristicsComplexType(BaseModel): +class TurbineCapacityCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_capacityEquation: Optional[RtcEquationsComplexType] = Field( + capacityEquation: Optional[EquationsComplexType] = Field( None, - alias='rtc:capacityEquation', description='capacity equation of hydropower turbine as a function of the water head', ) - rtc_capacityTable: Optional[RtcElevationTableComplexType] = Field( + capacityTable: Optional[ElevationTableComplexType] = Field( None, - alias='rtc:capacityTable', description='capacity table of hydropower turbine as a function of the water head', ) -class RtcTurbineCharacteristicsComplexType(BaseModel): +class TurbineCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_efficiencyTable: RtcElevationTableComplexType = Field( + efficiencyTable: ElevationTableComplexType = Field( ..., - alias='rtc:efficiencyTable', description='efficiency table unit power output [MW / m3/s] as function of head [m] ', ) - rtc_output: RtcTurbineOutputCharacteristicsComplexType = Field( - ..., alias='rtc:output' - ) + output: TurbineOutputCharacteristicsComplexType -class RtcTurbineEfficiencyCharacteristicsComplexType(BaseModel): +class TurbineEfficiencyCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_efficiencyConstant: Optional[XsDouble] = Field( + efficiencyConstant: Optional[XsDouble] = Field( None, - alias='rtc:efficiencyConstant', description='constant efficiency over all discharges, typical range is [0.80, 0.90]', ) -class RtcTurbineEfficiencyTableComplexType(BaseModel): +class TurbineEfficiencyTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_columns: RtcColumnsComplexType = Field( - ..., - alias='rtc:columns', - description='column Ids refering to the head [m] of each column', + columns: ColumnsComplexType = Field( + ..., description='column Ids refering to the head [m] of each column' ) - rtc_maxFlows: RtcMaxFlowsComplexType = Field( - ..., - alias='rtc:maxFlows', - description='maximum flow for a given head (provided above)', + maxFlows: MaxFlowsComplexType = Field( + ..., description='maximum flow for a given head (provided above)' ) - rtc_row: List[RtcRowComplexType] = Field(..., alias='rtc:row', min_items=1) + row: List[RowComplexType] = Field(..., min_items=1) -class RtcTypicalProfileComplexType(BaseModel): +class TypicalProfileComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_data: List[RtcDataTypicalProfileComplexType] = Field( - ..., alias='rtc:data', min_items=1 - ) - rtc_output: RtcTimeSeriesSimpleType = Field(..., alias='rtc:output') + attr_id: XsString + attr_name: Optional[XsString] = None + data: List[DataTypicalProfileComplexType] = Field(..., min_items=1) + output: TimeSeriesSimpleType -class RtcUnitDelayComplexType(BaseModel): +class UnitDelayComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcUnitDelayInputComplexType = Field(..., alias='rtc:input') - rtc_nStep: Optional[RtcExternalParameterSimpleType] = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + input: UnitDelayInputComplexType + nStep: Optional[ExternalParameterSimpleType] = Field( None, - alias='rtc:nStep', description='nStep optionally provides a delay with an arbitrary numer of time steps or sub time step, i.e. 1.5 time steps, if being used also specify the yFinal tag in the output options', ) - rtc_output: RtcUnitDelayOutputComplexType = Field( + output: UnitDelayOutputComplexType = Field( ..., - alias='rtc:output', description='The configuration of a multiple unit delay requires the configuration of a time series for each delay time step', ) -class RtcUnitHydrographWeightCustomComplexType(BaseModel): +class UnitHydrographWeightCustomComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_weight: List[XsDouble] = Field(..., alias='rtc:weight', min_items=1) + weight: List[XsDouble] = Field(..., min_items=1) -class RtcUnitHydrographWeightTriangularComplexType(BaseModel): +class UnitHydrographWeightTriangularComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_factor: Optional[XsDouble] = Field( - None, alias='rtc:factor', description='sum of all weight, if not equal to 1.0' - ) - rtc_nSteps: RtcExternalParameterSimpleType = Field( - ..., alias='rtc:nSteps', description='number of time steps' + factor: Optional[XsDouble] = Field( + None, description='sum of all weight, if not equal to 1.0' ) + nSteps: ExternalParameterSimpleType = Field(..., description='number of time steps') -class RtcValidPeriodComplexType(BaseModel): +class ValidPeriodComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_endDate: RtcDateComplexType = Field(..., alias='rtc:endDate') - rtc_startDate: RtcDateComplexType = Field(..., alias='rtc:startDate') + endDate: DateComplexType + startDate: DateComplexType -class RtcValidPeriodsComplexType(BaseModel): +class ValidPeriodsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_validPeriod: Optional[List[RtcValidPeriodComplexType]] = Field( - None, alias='rtc:validPeriod' - ) + validPeriod: Optional[List[ValidPeriodComplexType]] = None -class RtcValueArrayComplexType(BaseModel): +class ValueArrayComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_value: List[XsFloat] = Field(..., alias='rtc:value', min_items=1) + value: List[XsFloat] = Field(..., min_items=1) -class RtcYDimComplexType(BaseModel): +class YDimComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_yDim: List[XsFloat] = Field(..., alias='rtc:yDim', min_items=1) + yDim: List[XsFloat] = Field(..., min_items=1) -class RtcZoneComplexType(BaseModel): +class ZoneComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _max: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@max') - _min: Optional[RtcTimeSeriesSimpleType] = Field(None, alias='@min') - rtc_dateTable: RtcDateTableComplexType = Field(..., alias='rtc:dateTable') + attr_max: Optional[TimeSeriesSimpleType] = None + attr_min: Optional[TimeSeriesSimpleType] = None + dateTable: DateTableComplexType -class RtcZonesComplexType(BaseModel): +class ZonesComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_zone: List[RtcZoneComplexType] = Field(..., alias='rtc:zone', min_items=1) + zone: List[ZoneComplexType] = Field(..., min_items=1) -class RtcEvaporationActualStorageSystemComplexType(BaseModel): +class EvaporationActualStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputEvaporationActualStorageSystemComplexType = Field( - ..., alias='rtc:input' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterEvaporationActualStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputEvaporationActualStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParameterEvaporationActualStorageSystemComplexType -class RtcEvaporationInterceptionStorageSystemComplexType(BaseModel): +class EvaporationInterceptionStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputEvaporationInterceptionStorageSystemComplexType = Field( - ..., alias='rtc:input' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterEvaporationInterceptionStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputEvaporationInterceptionStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParameterEvaporationInterceptionStorageSystemComplexType -class RtcGroundwaterFlowStorageSystemComplexType(BaseModel): +class GroundwaterFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputGroundwaterFlowStorageSystemComplexType = Field( - ..., alias='rtc:input' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParametergroundwaterFlowStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputGroundwaterFlowStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParametergroundwaterFlowStorageSystemComplexType -class RtcIrrigationStorageSystemComplexType(BaseModel): +class IrrigationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_nodeD: XsString = Field( - ..., - alias='rtc:nodeD', - description='downstream node which recieves the irrigation water', + attr_id: XsString + attr_name: Optional[XsString] = None + nodeD: XsString = Field( + ..., description='downstream node which recieves the irrigation water' ) - rtc_nodeU: XsString = Field( + nodeU: XsString = Field( ..., - alias='rtc:nodeU', description='upstream node, source of water usually the drinking water treatment plant', ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterIrrigationStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + output: OutputLinkStorageSystemComplexType + parameter: ParameterIrrigationStorageSystemComplexType -class RtcMeltRefreezingStorageSystemComplexType(BaseModel): +class MeltRefreezingStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcTimeSeriesSimpleType = Field( - ..., alias='rtc:input', description='instanteneous temperature [oC]' - ) - rtc_nodeD: XsString = Field( - ..., - alias='rtc:nodeD', - description='downstream node, typically WC (water content)', + attr_id: XsString + attr_name: Optional[XsString] = None + input: TimeSeriesSimpleType = Field( + ..., description='instanteneous temperature [oC]' ) - rtc_nodeU: XsString = Field( - ..., alias='rtc:nodeU', description='upstream node, typically SP (snow pack)' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterMeltRefreezingStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + nodeD: XsString = Field( + ..., description='downstream node, typically WC (water content)' ) + nodeU: XsString = Field(..., description='upstream node, typically SP (snow pack)') + output: OutputLinkStorageSystemComplexType + parameter: ParameterMeltRefreezingStorageSystemComplexType -class RtcReleaseAboveThresholdStorageSystemComplexType(BaseModel): +class ReleaseAboveThresholdStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputReleaseAboveThresholdStorageSystemComplexType = Field( - ..., alias='rtc:input' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterReleaseAboveThresholdStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputReleaseAboveThresholdStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParameterReleaseAboveThresholdStorageSystemComplexType -class RtcReleaseWaterContentStorageSystemComplexType(BaseModel): +class ReleaseWaterContentStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_nodeA: XsString = Field( - ..., - alias='rtc:nodeA', - description='auxiliary node with snow pack, typically SP (snow pack)', + attr_id: XsString + attr_name: Optional[XsString] = None + nodeA: XsString = Field( + ..., description='auxiliary node with snow pack, typically SP (snow pack)' ) - rtc_nodeU: XsString = Field( - ..., - alias='rtc:nodeU', - description='upstream node, typically WC (water content)', - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterReleaseWaterContentStorageSystemComplexType = Field( - ..., alias='rtc:parameter' + nodeU: XsString = Field( + ..., description='upstream node, typically WC (water content)' ) + output: OutputLinkStorageSystemComplexType + parameter: ParameterReleaseWaterContentStorageSystemComplexType -class RtcWaterDistributionConstantStorageSystemComplexType(BaseModel): +class WaterDistributionConstantStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputWaterDistributionConstantStorageSystemComplexType = Field( - ..., alias='rtc:input' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterWaterDistributionConstantStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputWaterDistributionConstantStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParameterWaterDistributionConstantStorageSystemComplexType -class RtcWaterDistributionVariableStorageSystemComplexType(BaseModel): +class WaterDistributionVariableStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputWaterDistributionVariableStorageSystemComplexType = Field( - ..., alias='rtc:input' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterWaterDistributionVariableStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputWaterDistributionVariableStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParameterWaterDistributionVariableStorageSystemComplexType -class RtcAccumulationComplexType(BaseModel): +class AccumulationComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcAccumulationInputComplexType = Field( - ..., alias='rtc:input', description='input variable' - ) - rtc_multiplier: Optional[XsDouble] = Field( - None, alias='rtc:multiplier', description='optional multiplier' - ) - rtc_output: RtcAccumulationOutputComplexType = Field(..., alias='rtc:output') + attr_id: XsString + attr_name: Optional[XsString] = None + input: AccumulationInputComplexType = Field(..., description='input variable') + multiplier: Optional[XsDouble] = Field(None, description='optional multiplier') + output: AccumulationOutputComplexType -class RtcAebiRuleComplexType(BaseModel): +class AebiRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_FactorRTG: XsDouble = Field(..., alias='rtc:FactorRTG') - rtc_LangeteFall: RtcCaseLangetenEnumStringType = Field(..., alias='rtc:LangeteFall') - rtc_input: RtcAebiRuleInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcAebiRuleOutputComplexType = Field(..., alias='rtc:output') + attr_id: XsString + attr_name: Optional[XsString] = None + FactorRTG: XsDouble + LangeteFall: CaseLangetenEnumStringType + input: AebiRuleInputComplexType + output: AebiRuleOutputComplexType -class RtcAllocationTableComplexType(BaseModel): +class AllocationTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputATableComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOutputATableComplexType = Field(..., alias='rtc:output') - rtc_table: Optional[RtcATableComplexType] = Field(None, alias='rtc:table') - rtc_tableExternal: Optional[XsString] = Field(None, alias='rtc:tableExternal') + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputATableComplexType + output: OutputATableComplexType + table: Optional[ATableComplexType] = None + tableExternal: Optional[XsString] = None -class RtcArmaComplexType(BaseModel): +class ArmaComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_arCoef: XsDouble = Field( - ..., - alias='rtc:arCoef', - description='autoregression coefficient related to prior time step', + attr_id: XsString + attr_name: Optional[XsString] = None + arCoef: XsDouble = Field( + ..., description='autoregression coefficient related to prior time step' ) - rtc_input: RtcArmaInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcArmaOutputComplexType = Field(..., alias='rtc:output') + input: ArmaInputComplexType + output: ArmaOutputComplexType -class RtcCapacityCharacteristicsComplexType(BaseModel): +class CapacityCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _reference: Optional[RtcCapacityReferenceEnumStringType] = Field( - None, alias='@reference' - ) - rtc_capacityEquation: Optional[RtcEquationsComplexType] = Field( - None, alias='rtc:capacityEquation' - ) - rtc_capacityTable: Optional[RtcElevationTableComplexType] = Field( - None, alias='rtc:capacityTable' - ) + attr_reference: Optional[CapacityReferenceEnumStringType] = None + capacityEquation: Optional[EquationsComplexType] = None + capacityTable: Optional[ElevationTableComplexType] = None -class RtcCapillaryFlowStorageSystemComplexType(BaseModel): +class CapillaryFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputCapillaryFlowStorageSystemComplexType = Field( - ..., alias='rtc:input' - ) - rtc_output: RtcOutputLinkStorageSystemComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcParameterCapillaryFlowStorageSystemComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputCapillaryFlowStorageSystemComplexType + output: OutputLinkStorageSystemComplexType + parameter: ParameterCapillaryFlowStorageSystemComplexType -class RtcConstantRuleComplexType(BaseModel): +class ConstantRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_constant: XsDouble = Field(..., alias='rtc:constant') - rtc_output: RtcConstantRuleOutputComplexType = Field(..., alias='rtc:output') + attr_id: XsString + attr_name: Optional[XsString] = None + constant: XsDouble + output: ConstantRuleOutputComplexType -class RtcControlledOutletComplexType(BaseModel): +class ControlledOutletComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + capacityCharacteristics: CapacityCharacteristicsComplexType = Field( ..., - alias='rtc:capacityCharacteristics', description='Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero', ) - rtc_input: RtcOutletInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOutletOutputComplexType = Field(..., alias='rtc:output') - rtc_turbineCharacteristics: Optional[RtcTurbineCharacteristicsComplexType] = Field( - None, - alias='rtc:turbineCharacteristics', - description='Characteristics of optional turbine', + input: OutletInputComplexType + output: OutletOutputComplexType + turbineCharacteristics: Optional[TurbineCharacteristicsComplexType] = Field( + None, description='Characteristics of optional turbine' ) -class RtcCrossSectionComplexType(BaseModel): +class CrossSectionComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_crossSectionTable: RtcElevationTableComplexType = Field( - ..., - alias='rtc:crossSectionTable', - description='Tabulated cross section, pairs of elevation h and width b ', + crossSectionTable: ElevationTableComplexType = Field( + ..., description='Tabulated cross section, pairs of elevation h and width b ' ) -class RtcCrossSectionRoughnessComplexType(BaseModel): +class CrossSectionRoughnessComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_roughnessTable: RtcElevationTableComplexType = Field( - ..., - alias='rtc:roughnessTable', - description='Pairs of elevation h and roughness C (according to Chezy)', + roughnessTable: ElevationTableComplexType = Field( + ..., description='Pairs of elevation h and roughness C (according to Chezy)' ) -class RtcDateRecord2ComplexType(BaseModel): +class DateRecord2ComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _monthDay: XsGMonthDay = Field(..., alias='@monthDay') - rtc_record: List[RtcDateRecord2DataComplexType] = Field( - ..., alias='rtc:record', min_items=1 - ) + attr_monthDay: XsGMonthDay + record: List[DateRecord2DataComplexType] = Field(..., min_items=1) -class RtcDeadBandValueComplexType(BaseModel): +class DeadBandValueComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcDeadBandValueInputComplexType = Field(..., alias='rtc:input') - rtc_threshold: XsDouble = Field(..., alias='rtc:threshold') + attr_id: XsString + attr_name: Optional[XsString] = None + input: DeadBandValueInputComplexType + threshold: XsDouble -class RtcEvaporationPotentialComplexType(BaseModel): +class EvaporationPotentialComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcInputEvaporationPotentialComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOutputEvaporationPotentialComplexType = Field( - ..., alias='rtc:output' - ) - rtc_parameter: RtcParameterEvaporationPotentialComplexType = Field( - ..., alias='rtc:parameter' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: InputEvaporationPotentialComplexType + output: OutputEvaporationPotentialComplexType + parameter: ParameterEvaporationPotentialComplexType -class RtcGradientComplexType(BaseModel): +class GradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcGradientInputComplexType = Field( - ..., alias='rtc:input', description='input variable' - ) - rtc_multiplier: Optional[XsDouble] = Field( - None, alias='rtc:multiplier', description='optional multiplier' - ) - rtc_output: RtcGradientOutputComplexType = Field( - ..., alias='rtc:output', description='gradient, dx = multiplier*(xNew-xOld)/dt' + attr_id: XsString + attr_name: Optional[XsString] = None + input: GradientInputComplexType = Field(..., description='input variable') + multiplier: Optional[XsDouble] = Field(None, description='optional multiplier') + output: GradientOutputComplexType = Field( + ..., description='gradient, dx = multiplier*(xNew-xOld)/dt' ) -class RtcGuideBandRuleComplexType(BaseModel): +class GuideBandRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcGuideBandRuleInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcGuideBandRuleOutputComplexType = Field(..., alias='rtc:output') - rtc_xMax: RtcDateTableComplexType = Field(..., alias='rtc:xMax') - rtc_xMin: RtcDateTableComplexType = Field(..., alias='rtc:xMin') - rtc_yMax: Optional[XsDouble] = Field(None, alias='rtc:yMax') - rtc_yMaxSeries: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:yMaxSeries' - ) - rtc_yMin: Optional[XsDouble] = Field(None, alias='rtc:yMin') - rtc_yMinSeries: Optional[RtcTimeSeriesSimpleType] = Field( - None, alias='rtc:yMinSeries' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: GuideBandRuleInputComplexType + output: GuideBandRuleOutputComplexType + xMax: DateTableComplexType + xMin: DateTableComplexType + yMax: Optional[XsDouble] = None + yMaxSeries: Optional[TimeSeriesSimpleType] = None + yMin: Optional[XsDouble] = None + yMinSeries: Optional[TimeSeriesSimpleType] = None -class RtcHBVComplexType(BaseModel): +class HBVComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcHBVInputComplexType = Field(..., alias='rtc:input') - rtc_link: Optional[RtcHBVLinkComplexType] = Field(None, alias='rtc:link') - rtc_output: RtcHBVOutputComplexType = Field(..., alias='rtc:output') - rtc_parameterInput: RtcHBVParameterInputComplexType = Field( - ..., alias='rtc:parameterInput' - ) - rtc_parameterInterception: RtcHBVParameterInterceptionComplexType = Field( - ..., alias='rtc:parameterInterception' - ) - rtc_parameterResponse: RtcHBVParameterResponseComplexType = Field( - ..., alias='rtc:parameterResponse' - ) - rtc_parameterSnow: RtcHBVParameterSnowComplexType = Field( - ..., alias='rtc:parameterSnow' - ) - rtc_parameterSoil: RtcHBVParameterSoilComplexType = Field( - ..., alias='rtc:parameterSoil' - ) - rtc_state: RtcHBVStateComplexType = Field(..., alias='rtc:state') - rtc_stateUpdate: Optional[RtcHBVStateUpdateComplexType] = Field( - None, alias='rtc:stateUpdate' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: HBVInputComplexType + link: Optional[HBVLinkComplexType] = None + output: HBVOutputComplexType + parameterInput: HBVParameterInputComplexType + parameterInterception: HBVParameterInterceptionComplexType + parameterResponse: HBVParameterResponseComplexType + parameterSnow: HBVParameterSnowComplexType + parameterSoil: HBVParameterSoilComplexType + state: HBVStateComplexType + stateUpdate: Optional[HBVStateUpdateComplexType] = None -class RtcIntervalComplexType(BaseModel): +class IntervalComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_deadbandSetpointAbsolute: Optional[XsDouble] = Field( - None, alias='rtc:deadbandSetpointAbsolute' - ) - rtc_deadbandSetpointRelative: Optional[XsDouble] = Field( - None, alias='rtc:deadbandSetpointRelative' - ) - rtc_input: RtcIntervalInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcIntervalOutputComplexType = Field(..., alias='rtc:output') - rtc_settingAbove: XsDouble = Field(..., alias='rtc:settingAbove') - rtc_settingBelow: XsDouble = Field(..., alias='rtc:settingBelow') - rtc_settingMaxSpeed: Optional[XsDouble] = Field(None, alias='rtc:settingMaxSpeed') - rtc_settingMaxStep: Optional[XsDouble] = Field(None, alias='rtc:settingMaxStep') + attr_id: XsString + attr_name: Optional[XsString] = None + deadbandSetpointAbsolute: Optional[XsDouble] = None + deadbandSetpointRelative: Optional[XsDouble] = None + input: IntervalInputComplexType + output: IntervalOutputComplexType + settingAbove: XsDouble + settingBelow: XsDouble + settingMaxSpeed: Optional[XsDouble] = None + settingMaxStep: Optional[XsDouble] = None -class RtcLimiterComplexType(BaseModel): +class LimiterComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcLimiterInputComplexType = Field(..., alias='rtc:input') - rtc_mode: RtcLimiterOptionEnumStringType = Field(..., alias='rtc:mode') + attr_id: XsString + attr_name: Optional[XsString] = None + input: LimiterInputComplexType + mode: LimiterOptionEnumStringType -class RtcLinkStorageSystemComplexType(BaseModel): +class LinkStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_capillaryFlow: Optional[RtcCapillaryFlowStorageSystemComplexType] = Field( + capillaryFlow: Optional[CapillaryFlowStorageSystemComplexType] = Field( None, - alias='rtc:capillaryFlow', description='capillary flow, typically from GW (saturated upper zone - ground water) to UZ (unsaturated zone)', ) - rtc_evaporationActual: Optional[ - RtcEvaporationActualStorageSystemComplexType - ] = Field( - None, - alias='rtc:evaporationActual', - description='actual evaporation from unsaturated zone storage node', + evaporationActual: Optional[EvaporationActualStorageSystemComplexType] = Field( + None, description='actual evaporation from unsaturated zone storage node' ) - rtc_evaporationInterception: Optional[ - RtcEvaporationInterceptionStorageSystemComplexType + evaporationInterception: Optional[ + EvaporationInterceptionStorageSystemComplexType ] = Field( None, - alias='rtc:evaporationInterception', description='evaporation from interception storage node, typically VEG/P/UP (vegeration/paved interception)', ) - rtc_groundwaterFlow: Optional[RtcGroundwaterFlowStorageSystemComplexType] = Field( - None, - alias='rtc:groundwaterFlow', - description='GW Groundwater interaction with SW Surface water', + groundwaterFlow: Optional[GroundwaterFlowStorageSystemComplexType] = Field( + None, description='GW Groundwater interaction with SW Surface water' ) - rtc_irrigation: Optional[RtcIrrigationStorageSystemComplexType] = Field( + irrigation: Optional[IrrigationStorageSystemComplexType] = Field( None, - alias='rtc:irrigation', description='NOT REFACTORED. water consumption by domestic irrigation due to dry soil', ) - rtc_meltRefreezing: Optional[RtcMeltRefreezingStorageSystemComplexType] = Field( + meltRefreezing: Optional[MeltRefreezingStorageSystemComplexType] = Field( None, - alias='rtc:meltRefreezing', description='NOT REFACTORED. melting and refreezing, typically used between SP (snow pack) and WC (water content) nodes', ) - rtc_percolation: Optional[RtcPercolationStorageSystemComplexType] = Field( + percolation: Optional[PercolationStorageSystemComplexType] = Field( None, - alias='rtc:percolation', description='percolation, typically from GW upper zone to GW lower zone), or from UP unpaved surface to UZ unsaturated zone', ) - rtc_releaseInterception: Optional[ - RtcReleaseAboveThresholdStorageSystemComplexType + releaseInterception: Optional[ + ReleaseAboveThresholdStorageSystemComplexType ] = Field( None, - alias='rtc:releaseInterception', description='release above threshold from interception storage node, typically VEG/P/UP (uses relese above threshold link)', ) - rtc_releaseWaterContent: Optional[ - RtcReleaseWaterContentStorageSystemComplexType - ] = Field( + releaseWaterContent: Optional[ReleaseWaterContentStorageSystemComplexType] = Field( None, - alias='rtc:releaseWaterContent', description='NOT REFACTORED. release from water content storage node (typically WC)', ) - rtc_response: Optional[RtcResponseStorageSystemComplexType] = Field( + response: Optional[ResponseStorageSystemComplexType] = Field( None, - alias='rtc:response', description='response from storage node, typically GW upper and GW lower zone storage nodes', ) - rtc_sewerOverflow: Optional[ - RtcReleaseAboveThresholdStorageSystemComplexType - ] = Field( - None, - alias='rtc:sewerOverflow', - description='sewer overflow (uses relese above threshold link)', + sewerOverflow: Optional[ReleaseAboveThresholdStorageSystemComplexType] = Field( + None, description='sewer overflow (uses relese above threshold link)' ) - rtc_soilRunoff: Optional[RtcSoilRunoffStorageSystemComplexType] = Field( + soilRunoff: Optional[SoilRunoffStorageSystemComplexType] = Field( None, - alias='rtc:soilRunoff', description='soil runoff from UZ unsaturated zone to GW upper zone storage node', ) - rtc_wasteWaterTreatmentPlant: Optional[ - RtcWaterDistributionConstantStorageSystemComplexType + wasteWaterTreatmentPlant: Optional[ + WaterDistributionConstantStorageSystemComplexType ] = Field( None, - alias='rtc:wasteWaterTreatmentPlant', description='water treated via the WWTP, flows at a max rate of a constant max pump capacity. Uses water distribution constant link', ) - rtc_waterDistributionConstant: Optional[ - RtcWaterDistributionConstantStorageSystemComplexType + waterDistributionConstant: Optional[ + WaterDistributionConstantStorageSystemComplexType ] = Field( None, - alias='rtc:waterDistributionConstant', description='water abstraction/distribution/consumption referenced to a constant demand (e.i. maxpump capacity). Uses water distribution constant link', ) - rtc_waterDistributionVariable: Optional[ - RtcWaterDistributionVariableStorageSystemComplexType + waterDistributionVariable: Optional[ + WaterDistributionVariableStorageSystemComplexType ] = Field( None, - alias='rtc:waterDistributionVariable', description='water abstraction/distribution/consumption referenced to a variable demand (e.i. domestic or industrial water demands). Uses water distribution variable link)', ) -class RtcLookupTableComplexType(BaseModel): +class LookupTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_extrapolationOption: Optional[RtcInterpolationOptionEnumStringType] = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + extrapolationOption: Optional[InterpolationOptionEnumStringType] = Field( None, - alias='rtc:extrapolationOption', description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', ) - rtc_input: RtcLookupTableInputComplexType = Field(..., alias='rtc:input') - rtc_interpolationOption: Optional[RtcInterpolationOptionEnumStringType] = Field( + input: LookupTableInputComplexType + interpolationOption: Optional[InterpolationOptionEnumStringType] = Field( None, - alias='rtc:interpolationOption', description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', ) - rtc_output: RtcLookupTableOutputComplexType = Field(..., alias='rtc:output') - rtc_property: Optional[List[RtcPropertyEnum]] = Field(None, alias='rtc:property') - rtc_table: Optional[RtcTableLookupTableComplexType] = Field(None, alias='rtc:table') - rtc_tableExternal: Optional[XsString] = Field(None, alias='rtc:tableExternal') + output: LookupTableOutputComplexType + property: Optional[List[PropertyEnum]] = None + table: Optional[TableLookupTableComplexType] = None + tableExternal: Optional[XsString] = None -class RtcLorentGeversComplexType(BaseModel): +class LorentGeversComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcLorentGeversInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcLorentGeversOutputComplexType = Field(..., alias='rtc:output') - rtc_parameterResponse: RtcLorentGeversParameterResponseComplexType = Field( - ..., alias='rtc:parameterResponse' - ) - rtc_parameterSoil: RtcLorentGeversParameterSoilComplexType = Field( - ..., alias='rtc:parameterSoil' - ) - rtc_state: RtcLorentGeversStateComplexType = Field(..., alias='rtc:state') - rtc_stateUpdate: Optional[RtcLorentGeversStateUpdateComplexType] = Field( - None, alias='rtc:stateUpdate' - ) + attr_id: XsString + attr_name: Optional[XsString] = None + input: LorentGeversInputComplexType + output: LorentGeversOutputComplexType + parameterResponse: LorentGeversParameterResponseComplexType + parameterSoil: LorentGeversParameterSoilComplexType + state: LorentGeversStateComplexType + stateUpdate: Optional[LorentGeversStateUpdateComplexType] = None -class RtcMergerComplexType(BaseModel): +class MergerComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcMergerInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcMergerOutputComplexType = Field(..., alias='rtc:output') + attr_id: XsString + attr_name: Optional[XsString] = None + input: MergerInputComplexType + output: MergerOutputComplexType -class RtcMergerSplitterComplexType(BaseModel): +class MergerSplitterComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcMergerSplitterInputComplexType = Field(..., alias='rtc:input') - rtc_mode: RtcMergerSplitterEnumStringType = Field(..., alias='rtc:mode') - rtc_output: RtcMergerSplitterOutputComplexType = Field(..., alias='rtc:output') + attr_id: XsString + attr_name: Optional[XsString] = None + input: MergerSplitterInputComplexType + mode: MergerSplitterEnumStringType + output: MergerSplitterOutputComplexType -class RtcMinSimpleRuleComplexType(BaseModel): +class MinSimpleRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_dateTable: Optional[RtcDateTableComplexType] = Field( - None, alias='rtc:dateTable' - ) - rtc_zones: Optional[RtcZonesComplexType] = Field(None, alias='rtc:zones') + attr_id: XsString + attr_name: Optional[XsString] = None + dateTable: Optional[DateTableComplexType] = None + zones: Optional[ZonesComplexType] = None -class RtcNeuronComplexType(BaseModel): +class NeuronComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: RtcNeuronIDSimpleType = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_bias: RtcExternalParameterSimpleType = Field(..., alias='rtc:bias') - rtc_input: RtcNeuronInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcNeuronOutputComplexType = Field(..., alias='rtc:output') - rtc_transferFunction: RtcTransferFunctionEnumStringType = Field( - ..., - alias='rtc:transferFunction', - description='transfer function: sigmoid, linear etc.', + attr_id: NeuronIDSimpleType + attr_name: Optional[XsString] = None + bias: ExternalParameterSimpleType + input: NeuronInputComplexType + output: NeuronOutputComplexType + transferFunction: TransferFunctionEnumStringType = Field( + ..., description='transfer function: sigmoid, linear etc.' ) -class RtcNodeComplexType(BaseModel): +class NodeComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _x: Optional[XsDouble] = Field(None, alias='@x') - _y: Optional[XsDouble] = Field(None, alias='@y') - rtc_input: Optional[RtcNodeInputComplexType] = Field(None, alias='rtc:input') - rtc_output: RtcNodeOutputComplexType = Field(..., alias='rtc:output') - rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + attr_id: XsString + attr_x: Optional[XsDouble] = None + attr_y: Optional[XsDouble] = None + input: Optional[NodeInputComplexType] = None + output: NodeOutputComplexType + storageCharacteristics: StorageCharacteristicsComplexType = Field( ..., - alias='rtc:storageCharacteristics', description='Storage characteristics of the node: The storage as a function of water level h. It can be provided as table or as a formula.', ) -class RtcOrificeComplexType(BaseModel): +class OrificeComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_contractionCoefficient: XsDouble = Field( - ..., alias='rtc:contractionCoefficient' - ) - rtc_crestLevel: XsDouble = Field(..., alias='rtc:crestLevel') - rtc_exponentGateFormula: Optional[XsDouble] = Field( - None, alias='rtc:exponentGateFormula' - ) - rtc_exponentWeirFormula: Optional[XsDouble] = Field( - None, alias='rtc:exponentWeirFormula' - ) - rtc_flowDirection: Optional[RtcFlowDirectionEnumStringType] = Field( - None, alias='rtc:flowDirection' - ) - rtc_input: RtcOrificeInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcOrificeOutputComplexType = Field(..., alias='rtc:output') - rtc_width: XsDouble = Field(..., alias='rtc:width') + contractionCoefficient: XsDouble + crestLevel: XsDouble + exponentGateFormula: Optional[XsDouble] = None + exponentWeirFormula: Optional[XsDouble] = None + flowDirection: Optional[FlowDirectionEnumStringType] = None + input: OrificeInputComplexType + output: OrificeOutputComplexType + width: XsDouble -class RtcPumpComplexType(BaseModel): +class PumpComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_input: RtcPumpInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcPumpOutputComplexType = Field(..., alias='rtc:output') + input: PumpInputComplexType + output: PumpOutputComplexType -class RtcReservoirCompactComplexType(BaseModel): +class ReservoirCompactComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcReservoirCompactInputComplexType = Field( - ..., alias='rtc:input', description='input time series' + attr_id: XsString + attr_name: Optional[XsString] = None + input: ReservoirCompactInputComplexType = Field( + ..., description='input time series' ) - rtc_levelStorageEquation: Optional[RtcLevelStorageEquationComplexType] = Field( + levelStorageEquation: Optional[LevelStorageEquationComplexType] = Field( None, - alias='rtc:levelStorageEquation', description='level storage equation according to S = A0 + A1*FB ( + A2*FB^2 + ...)', ) - rtc_levelStorageTable: Optional[RtcElevationTableComplexType] = Field( + levelStorageTable: Optional[ElevationTableComplexType] = Field( None, - alias='rtc:levelStorageTable', description='level-storage relation of the reservoir, level in [m] or [ft], storage in [m3] or [KCFS-hrs]', ) - rtc_levelStorageTableExternal: Optional[XsString] = Field( + levelStorageTableExternal: Optional[XsString] = Field( None, - alias='rtc:levelStorageTableExternal', description='externalizes the level storage table to a parameter file, requires the two columns "level" and "storage"', ) - rtc_output: RtcReservoirCompactOutputComplexType = Field( - ..., alias='rtc:output', description='output time series' + output: ReservoirCompactOutputComplexType = Field( + ..., description='output time series' ) - rtc_tailwaterConstant: Optional[RtcExternalParameterSimpleType] = Field( - None, - alias='rtc:tailwaterConstant', - description='constant value for tailwater elevation', + tailwaterConstant: Optional[ExternalParameterSimpleType] = Field( + None, description='constant value for tailwater elevation' ) - rtc_tailwaterEquation: Optional[RtcTailwaterEquationComplexType] = Field( + tailwaterEquation: Optional[TailwaterEquationComplexType] = Field( None, - alias='rtc:tailwaterEquation', description='tailwater equation according to TW = A + B*FB_downstream(t-1) + C*Q(t)^D, D is equal 1.0 by default if not provided', ) - rtc_tailwaterExternalTable: Optional[XsString] = Field( - None, alias='rtc:tailwaterExternalTable', description='external tailwater table' + tailwaterExternalTable: Optional[XsString] = Field( + None, description='external tailwater table' ) - rtc_tailwaterExternalTimeSeries: Optional[RtcTimeSeriesSimpleType] = Field( + tailwaterExternalTimeSeries: Optional[TimeSeriesSimpleType] = Field( None, - alias='rtc:tailwaterExternalTimeSeries', description='external tailwater elevation from an external source or a previous calculation OUTSIDE of the reservoirCompact components', ) - rtc_tailwaterTable: Optional[RtcElevationTableComplexType] = Field( - None, - alias='rtc:tailwaterTable', - description='tailwater as a function of the reservoir release only', + tailwaterTable: Optional[ElevationTableComplexType] = Field( + None, description='tailwater as a function of the reservoir release only' ) - rtc_tailwaterTidalEquation: Optional[RtcTailwaterTidalEquationComplexType] = Field( + tailwaterTidalEquation: Optional[TailwaterTidalEquationComplexType] = Field( None, - alias='rtc:tailwaterTidalEquation', description='tidal influenced tailwater equation (works only in hindcast mode, use tailwater external with appropiate forecast of the tailwater in operational forecasting), TW = TWObs + A*(Q-QObs)', ) - rtc_turbineEfficiencyConstant: Optional[RtcExternalParameterSimpleType] = Field( - None, alias='rtc:turbineEfficiencyConstant' - ) - rtc_turbineEfficiencyTable: Optional[RtcElevationTableComplexType] = Field( - None, - alias='rtc:turbineEfficiencyTable', - description='old formulation, will be removed in the future', + turbineEfficiencyConstant: Optional[ExternalParameterSimpleType] = None + turbineEfficiencyTable: Optional[ElevationTableComplexType] = Field( + None, description='old formulation, will be removed in the future' ) - rtc_turbineEfficiencyTable2D: Optional[ - RtcTurbineEfficiencyTableComplexType - ] = Field( + turbineEfficiencyTable2D: Optional[TurbineEfficiencyTableComplexType] = Field( None, - alias='rtc:turbineEfficiencyTable2D', description='new formulation, turbine effiency depends on head and turbine release, computation by 2D lookup', ) - rtc_turbineEfficiencyTable2DExternal: Optional[XsString] = Field( - None, alias='rtc:turbineEfficiencyTable2DExternal' - ) - rtc_turbineEfficiencyTableExternal: Optional[XsString] = Field( - None, alias='rtc:turbineEfficiencyTableExternal' - ) - rtc_units: Optional[RtcUnitTypeEnumStringType] = Field( - None, alias='rtc:units', description=' "SI" or "Imperial" units' + turbineEfficiencyTable2DExternal: Optional[XsString] = None + turbineEfficiencyTableExternal: Optional[XsString] = None + units: Optional[UnitTypeEnumStringType] = Field( + None, description=' "SI" or "Imperial" units' ) -class RtcReservoirThunerseeRuleComplexType(BaseModel): +class ReservoirThunerseeRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( - ..., alias='rtc:storageCharacteristics' - ) + storageCharacteristics: StorageCharacteristicsComplexType -class RtcRiverWeirComplexType(BaseModel): +class RiverWeirComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_exponentWeirFormula: Optional[XsDouble] = Field( - None, alias='rtc:exponentWeirFormula' - ) - rtc_flowDirection: Optional[RtcFlowDirectionEnumStringType] = Field( - None, alias='rtc:flowDirection' - ) - rtc_input: RtcRiverWeirInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcRiverWeirOutputComplexType = Field(..., alias='rtc:output') - rtc_submergedFlowFactor: Optional[XsDouble] = Field( - None, alias='rtc:submergedFlowFactor' - ) - rtc_submergedFlowRatio: Optional[XsDouble] = Field( - None, alias='rtc:submergedFlowRatio' - ) - rtc_width: XsDouble = Field(..., alias='rtc:width') + exponentWeirFormula: Optional[XsDouble] = None + flowDirection: Optional[FlowDirectionEnumStringType] = None + input: RiverWeirInputComplexType + output: RiverWeirOutputComplexType + submergedFlowFactor: Optional[XsDouble] = None + submergedFlowRatio: Optional[XsDouble] = None + width: XsDouble -class RtcSRMComplexType(BaseModel): +class SRMComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcSRMInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcSRMOutputComplexType = Field(..., alias='rtc:output') - rtc_parameter: RtcSRMParameterComplexType = Field(..., alias='rtc:parameter') - rtc_parameterZone: List[RtcSRMParameterZoneComplexType] = Field( - ..., alias='rtc:parameterZone', min_items=1 - ) - rtc_state: RtcSRMStateComplexType = Field(..., alias='rtc:state') + attr_id: XsString + attr_name: Optional[XsString] = None + input: SRMInputComplexType + output: SRMOutputComplexType + parameter: SRMParameterComplexType + parameterZone: List[SRMParameterZoneComplexType] = Field(..., min_items=1) + state: SRMStateComplexType -class RtcSimpleReservoirComplexType(BaseModel): +class SimpleReservoirComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _multiplier: Optional[int] = Field(None, alias='@multiplier', ge=1) - rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( - ..., alias='rtc:capacityCharacteristics' - ) - rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( - ..., alias='rtc:storageCharacteristics' - ) + attr_multiplier: Optional[int] = Field(None, ge=1) + capacityCharacteristics: CapacityCharacteristicsComplexType + storageCharacteristics: StorageCharacteristicsComplexType -class RtcStorageSystemComplexType(BaseModel): +class StorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_link: List[RtcLinkStorageSystemComplexType] = Field( - ..., alias='rtc:link', min_items=1 - ) - rtc_output: Optional[RtcOutputStorageSystemComplexType] = Field( - None, alias='rtc:output' - ) - rtc_settings: Optional[RtcStorageSystemSettingsComplexType] = Field( - None, alias='rtc:settings' - ) - rtc_storageNode: List[RtcNodeStorageSystemComplexType] = Field( - ..., alias='rtc:storageNode', min_items=1 - ) + attr_id: XsString + attr_name: Optional[XsString] = None + link: List[LinkStorageSystemComplexType] = Field(..., min_items=1) + output: Optional[OutputStorageSystemComplexType] = None + settings: Optional[StorageSystemSettingsComplexType] = None + storageNode: List[NodeStorageSystemComplexType] = Field(..., min_items=1) -class RtcSubmodelComplexType(BaseModel): +class SubmodelComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_evaporationPotential: Optional[RtcEvaporationPotentialComplexType] = Field( - None, alias='rtc:evaporationPotential', description='potential evaporation' + evaporationPotential: Optional[EvaporationPotentialComplexType] = Field( + None, description='potential evaporation' ) - rtc_snowRainJunction: Optional[RtcSnowRainJunctionComplexType] = Field( - None, - alias='rtc:snowRainJunction', - description='separates precipitation into snow and rainfall', + snowRainJunction: Optional[SnowRainJunctionComplexType] = Field( + None, description='separates precipitation into snow and rainfall' ) - rtc_storageSystem: Optional[RtcStorageSystemComplexType] = Field( + storageSystem: Optional[StorageSystemComplexType] = Field( None, - alias='rtc:storageSystem', description='storage systems with storage nodes and links for setting up bucket models', ) - rtc_typicalProfile: Optional[RtcTypicalProfileComplexType] = Field( - None, alias='rtc:typicalProfile' - ) + typicalProfile: Optional[TypicalProfileComplexType] = None -class RtcTailwaterComplexType(BaseModel): +class TailwaterComplexType(RtcBaseModel): """ Table containing data for different elevations. Type of element 'value' @@ -4112,499 +3557,408 @@ class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_constant: Optional[XsDouble] = Field( - None, alias='rtc:constant', description='Constant tailwater level [m]' + constant: Optional[XsDouble] = Field( + None, description='Constant tailwater level [m]' ) - rtc_output: RtcTailwaterOutputComplexType = Field(..., alias='rtc:output') - rtc_ratingCurve: Optional[RtcElevationTableComplexType] = Field( - None, - alias='rtc:ratingCurve', - description='Tailwater depending on discharge computed by a rating curve', + output: TailwaterOutputComplexType + ratingCurve: Optional[ElevationTableComplexType] = Field( + None, description='Tailwater depending on discharge computed by a rating curve' ) -class RtcTimeAbsoluteComplexType(BaseModel): +class TimeAbsoluteComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcTimeAbsoluteInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcTimeAbsoluteOutputComplexType = Field(..., alias='rtc:output') + attr_id: XsString + attr_name: Optional[XsString] = None + input: TimeAbsoluteInputComplexType + output: TimeAbsoluteOutputComplexType -class RtcTimeRelativeControlTableComplexType(BaseModel): +class TimeRelativeControlTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_record: List[RtcTimeRelativeControlTableRecordComplexType] = Field( - ..., alias='rtc:record', min_items=1 - ) + record: List[TimeRelativeControlTableRecordComplexType] = Field(..., min_items=1) -class RtcTunnelThunerseeRuleComplexType(BaseModel): +class TunnelThunerseeRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( - ..., alias='rtc:capacityCharacteristics' - ) - rtc_levelThreshold: XsDouble = Field(..., alias='rtc:levelThreshold') + capacityCharacteristics: CapacityCharacteristicsComplexType + levelThreshold: XsDouble -class RtcTurbineComplexType(BaseModel): +class TurbineComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_capacityCharacteristics: RtcTurbineCapacityCharacteristicsComplexType = Field( - ..., alias='rtc:capacityCharacteristics' - ) - rtc_efficiencyCharacteristics: RtcTurbineEfficiencyCharacteristicsComplexType = Field( - ..., alias='rtc:efficiencyCharacteristics' - ) - rtc_input: RtcTurbineInputComplexType = Field(..., alias='rtc:input') - rtc_nodeDown: XsString = Field(..., alias='rtc:nodeDown') - rtc_nodeUp: XsString = Field(..., alias='rtc:nodeUp') - rtc_output: RtcTurbineOutputComplexType = Field(..., alias='rtc:output') + capacityCharacteristics: TurbineCapacityCharacteristicsComplexType + efficiencyCharacteristics: TurbineEfficiencyCharacteristicsComplexType + input: TurbineInputComplexType + nodeDown: XsString + nodeUp: XsString + output: TurbineOutputComplexType -class RtcUncontrolledOutletComplexType(BaseModel): +class UncontrolledOutletComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + capacityCharacteristics: CapacityCharacteristicsComplexType = Field( ..., - alias='rtc:capacityCharacteristics', description='Maximum capacity of outlet as function of the water level h, minimum capacity is assumed to be zero', ) - rtc_input: Optional[RtcUOutletInputComplexType] = Field(None, alias='rtc:input') - rtc_output: RtcOutletOutputComplexType = Field(..., alias='rtc:output') + input: Optional[UOutletInputComplexType] = None + output: OutletOutputComplexType -class RtcUnitHydrographWeightComplexType(BaseModel): +class UnitHydrographWeightComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_custom: Optional[RtcUnitHydrographWeightCustomComplexType] = Field( - None, alias='rtc:custom', description='user-defined weights' + custom: Optional[UnitHydrographWeightCustomComplexType] = Field( + None, description='user-defined weights' ) - rtc_triangular: Optional[RtcUnitHydrographWeightTriangularComplexType] = Field( - None, alias='rtc:triangular', description='weights with triangular shape' + triangular: Optional[UnitHydrographWeightTriangularComplexType] = Field( + None, description='weights with triangular shape' ) -class RtcWeirThunerseeRuleComplexType(BaseModel): +class WeirThunerseeRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_capacityCharacteristics: RtcCapacityCharacteristicsComplexType = Field( - ..., alias='rtc:capacityCharacteristics' - ) + capacityCharacteristics: CapacityCharacteristicsComplexType -class RtcXDimComplexType(BaseModel): +class XDimComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_xDim: List[RtcYDimComplexType] = Field(..., alias='rtc:xDim', min_items=1) + xDim: List[YDimComplexType] = Field(..., min_items=1) -class RtcBranchComplexType(BaseModel): +class BranchComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - rtc_alpha1: Optional[XsDouble] = Field( + attr_id: XsString + alpha1: Optional[XsDouble] = Field( None, - alias='rtc:alpha1', description='the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw', ) - rtc_alpha2: Optional[XsDouble] = Field( + alpha2: Optional[XsDouble] = Field( None, - alias='rtc:alpha2', description='the wind friction coefficient is given by Cw = alpha1 + alpha2 * Vw, with wind velocity Vw', ) - rtc_crossSection: RtcCrossSectionComplexType = Field( - ..., - alias='rtc:crossSection', - description='Cross section in the center of the flow branch.', - ) - rtc_equationType: Optional[RtcEquationEnumStringType] = Field( - None, alias='rtc:equationType' - ) - rtc_input: RtcBranchInputComplexType = Field(..., alias='rtc:input') - rtc_length: XsDouble = Field( - ..., alias='rtc:length', description='Length of the flow branch' - ) - rtc_output: RtcBranchOutputComplexType = Field(..., alias='rtc:output') - rtc_roughness: RtcCrossSectionRoughnessComplexType = Field( - ..., - alias='rtc:roughness', - description='Roughness (Chezy) as a function of elevation h', + crossSection: CrossSectionComplexType = Field( + ..., description='Cross section in the center of the flow branch.' ) - rtc_slope: Optional[XsDouble] = Field( - None, alias='rtc:slope', description='slope for optional kinematic wave branch' + equationType: Optional[EquationEnumStringType] = None + input: BranchInputComplexType + length: XsDouble = Field(..., description='Length of the flow branch') + output: BranchOutputComplexType + roughness: CrossSectionRoughnessComplexType = Field( + ..., description='Roughness (Chezy) as a function of elevation h' ) - rtc_spatialScheme: Optional[RtcSpatialEnumStringType] = Field( - None, alias='rtc:spatialScheme' + slope: Optional[XsDouble] = Field( + None, description='slope for optional kinematic wave branch' ) + spatialScheme: Optional[SpatialEnumStringType] = None -class RtcDateLookupTableComplexType(BaseModel): +class DateLookupTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_dateRecord: List[RtcDateRecord2ComplexType] = Field( - ..., alias='rtc:dateRecord', min_items=1 - ) - rtc_input: RtcDateLookupTableInputComplexType = Field(..., alias='rtc:input') - rtc_interpolationOptions: RtcInterpolationOptionsComplexType = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + dateRecord: List[DateRecord2ComplexType] = Field(..., min_items=1) + input: DateLookupTableInputComplexType + interpolationOptions: InterpolationOptionsComplexType = Field( ..., - alias='rtc:interpolationOptions', description='Interpolation option BLOCK / LINEAR for the two inputs date and value', ) - rtc_output: RtcDateLookupTableOutputComplexType = Field(..., alias='rtc:output') + output: DateLookupTableOutputComplexType -class RtcHydraulicStructureComplexType(BaseModel): +class HydraulicStructureComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - rtc_orifice: Optional[RtcOrificeComplexType] = Field( - None, - alias='rtc:orifice', - description='Orifice according to definition in SOBEK-Rural', + attr_id: XsString + orifice: Optional[OrificeComplexType] = Field( + None, description='Orifice according to definition in SOBEK-Rural' ) - rtc_pump: Optional[RtcPumpComplexType] = Field( - None, alias='rtc:pump', description='Pump' - ) - rtc_weir: Optional[RtcRiverWeirComplexType] = Field( - None, - alias='rtc:weir', - description='Weir according to definition in SOBEK-River', + pump: Optional[PumpComplexType] = Field(None, description='Pump') + weir: Optional[RiverWeirComplexType] = Field( + None, description='Weir according to definition in SOBEK-River' ) -class RtcHydrologicalModelComplexType(BaseModel): +class HydrologicalModelComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_submodel: List[RtcSubmodelComplexType] = Field( - ..., alias='rtc:submodel', min_items=1 - ) + attr_id: XsString + attr_name: Optional[XsString] = None + submodel: List[SubmodelComplexType] = Field(..., min_items=1) -class RtcLayerComplexType(BaseModel): +class LayerComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: RtcLayerIDSimpleType = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_neuron: List[RtcNeuronComplexType] = Field(..., alias='rtc:neuron', min_items=1) + attr_id: LayerIDSimpleType + attr_name: Optional[XsString] = None + neuron: List[NeuronComplexType] = Field(..., min_items=1) -class RtcNeuralNetworkComplexType(BaseModel): +class NeuralNetworkComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_layer: List[RtcLayerComplexType] = Field(..., alias='rtc:layer', min_items=1) + attr_id: XsString + attr_name: Optional[XsString] = None + layer: List[LayerComplexType] = Field(..., min_items=1) -class RtcReservoirComplexType(BaseModel): +class ReservoirComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_controlledOutlet: Optional[List[RtcControlledOutletComplexType]] = Field( - None, alias='rtc:controlledOutlet' - ) - rtc_input: RtcReservoirInputComplexType = Field(..., alias='rtc:input') - rtc_mode: RtcPoolRoutingEnumStringType = Field( - ..., - alias='rtc:mode', - description='Time integration scheme for the network components', + attr_id: XsString + attr_name: Optional[XsString] = None + controlledOutlet: Optional[List[ControlledOutletComplexType]] = None + input: ReservoirInputComplexType + mode: PoolRoutingEnumStringType = Field( + ..., description='Time integration scheme for the network components' ) - rtc_output: RtcReservoirOutputComplexType = Field(..., alias='rtc:output') - rtc_storageCharacteristics: RtcStorageCharacteristicsComplexType = Field( + output: ReservoirOutputComplexType + storageCharacteristics: StorageCharacteristicsComplexType = Field( ..., - alias='rtc:storageCharacteristics', description='Storage characteristics of the reservoir: The storage S as a function of the water level h can be provided as a table or formula.', ) - rtc_tailwater: Optional[RtcTailwaterComplexType] = Field( - None, - alias='rtc:tailwater', - description='Tailwater rating curve\n ', + tailwater: Optional[TailwaterComplexType] = Field( + None, description='Tailwater rating curve\n ' ) - rtc_theta: XsDouble = Field( + theta: XsDouble = Field( ..., - alias='rtc:theta', description='Time weighting coefficient for the semi-implicit theta schema: 0 is equal to a full weight on the old time step, 1 represents a full weight on new time step. The coefficient is not used in the fully explicit or implicit schemas. The permitted range is between 0.5 and 1.0.', ) - rtc_uncontrolledOutlet: Optional[List[RtcUncontrolledOutletComplexType]] = Field( - None, alias='rtc:uncontrolledOutlet' - ) + uncontrolledOutlet: Optional[List[UncontrolledOutletComplexType]] = None -class RtcReservoirRoutingComplexType(BaseModel): +class ReservoirRoutingComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_simpleReservoir: List[RtcSimpleReservoirComplexType] = Field( - ..., alias='rtc:simpleReservoir', min_items=1 - ) + simpleReservoir: List[SimpleReservoirComplexType] = Field(..., min_items=1) -class RtcRoutingComplexType(BaseModel): +class RoutingComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_dischargeRef: Optional[XsString] = Field( - None, - alias='rtc:dischargeRef', - description='Reference to timeseries in data configuration', + attr_id: XsString + attr_name: Optional[XsString] = None + dischargeRef: Optional[XsString] = Field( + None, description='Reference to timeseries in data configuration' ) - rtc_inflow: Optional[List[RtcInflowComplexType]] = Field(None, alias='rtc:inflow') - rtc_outputReferences: RtcRoutingOutputComplexType = Field( + inflow: Optional[List[InflowComplexType]] = None + outputReferences: RoutingOutputComplexType = Field( ..., - alias='rtc:outputReferences', description='Contains references to the output timeseries in the data configuration', ) - rtc_reservoirRouting: Optional[RtcReservoirRoutingComplexType] = Field( - None, alias='rtc:reservoirRouting' - ) + reservoirRouting: Optional[ReservoirRoutingComplexType] = None -class RtcTable2DLookupTableComplexType(BaseModel): +class Table2DLookupTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_matrix: RtcXDimComplexType = Field(..., alias='rtc:matrix') - rtc_x: RtcValueArrayComplexType = Field(..., alias='rtc:x') - rtc_y: RtcValueArrayComplexType = Field(..., alias='rtc:y') + matrix: XDimComplexType + x: ValueArrayComplexType + y: ValueArrayComplexType -class RtcThunerseeRuleComplexType(BaseModel): +class ThunerseeRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcThunerseeRuleInputComplexType = Field(..., alias='rtc:input') - rtc_levelSetpoint: XsDouble = Field(..., alias='rtc:levelSetpoint') - rtc_output: RtcThunerseeRuleOutputComplexType = Field(..., alias='rtc:output') - rtc_releaseLimiterPercentage: XsDouble = Field( - ..., alias='rtc:releaseLimiterPercentage' - ) - rtc_reservoir: RtcReservoirThunerseeRuleComplexType = Field( - ..., alias='rtc:reservoir' - ) - rtc_tunnel: RtcTunnelThunerseeRuleComplexType = Field(..., alias='rtc:tunnel') - rtc_weir: RtcWeirThunerseeRuleComplexType = Field(..., alias='rtc:weir') + attr_id: XsString + attr_name: Optional[XsString] = None + input: ThunerseeRuleInputComplexType + levelSetpoint: XsDouble + output: ThunerseeRuleOutputComplexType + releaseLimiterPercentage: XsDouble + reservoir: ReservoirThunerseeRuleComplexType + tunnel: TunnelThunerseeRuleComplexType + weir: WeirThunerseeRuleComplexType -class RtcTimeRelativeComplexType(BaseModel): +class TimeRelativeComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_controlTable: RtcTimeRelativeControlTableComplexType = Field( - ..., alias='rtc:controlTable', description='table with time [s] / value records' - ) - rtc_input: Optional[RtcTimeRelativeInputComplexType] = Field( - None, alias='rtc:input' + attr_id: XsString + attr_name: Optional[XsString] = None + controlTable: TimeRelativeControlTableComplexType = Field( + ..., description='table with time [s] / value records' ) - rtc_interpolationOption: Optional[RtcInterpolationOptionEnumStringType] = Field( + input: Optional[TimeRelativeInputComplexType] = None + interpolationOption: Optional[InterpolationOptionEnumStringType] = Field( None, - alias='rtc:interpolationOption', description='table interpolation can be BLOCK or LINEAR, default setting if not provided is LINEAR', ) - rtc_maximumPeriod: Optional[XsDouble] = Field(None, alias='rtc:maximumPeriod') - rtc_mode: Optional[RtcMode1] = Field( + maximumPeriod: Optional[XsDouble] = None + mode: Optional[Mode1] = Field( None, - alias='rtc:mode', description='timeRelative mode, either "NATIVE" or "RETAINVALUEWHENINACTIVE"', ) - rtc_output: RtcTimeRelativeOutputComplexType = Field(..., alias='rtc:output') - rtc_valueOption: RtcTimeRelativeEnumStringType = Field( + output: TimeRelativeOutputComplexType + valueOption: TimeRelativeEnumStringType = Field( ..., - alias='rtc:valueOption', description='setting if the control table provides the absolute value or the relative value ', ) -class RtcUnitHydrographComplexType(BaseModel): +class UnitHydrographComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcUnitHydrographInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcUnitHydrographOutputComplexType = Field(..., alias='rtc:output') - rtc_weights: RtcUnitHydrographWeightComplexType = Field(..., alias='rtc:weights') + attr_id: XsString + attr_name: Optional[XsString] = None + input: UnitHydrographInputComplexType + output: UnitHydrographOutputComplexType + weights: UnitHydrographWeightComplexType -class RtcHydraulicModelComplexType(BaseModel): +class HydraulicModelComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_branch: Optional[List[RtcBranchComplexType]] = Field(None, alias='rtc:branch') - rtc_hydraulicStructure: Optional[List[RtcHydraulicStructureComplexType]] = Field( - None, alias='rtc:hydraulicStructure' - ) - rtc_mode: RtcHydraulicModelModeEnumStringType = Field(..., alias='rtc:mode') - rtc_node: Optional[List[RtcNodeComplexType]] = Field(None, alias='rtc:node') - rtc_numericalTolerance: XsDouble = Field(..., alias='rtc:numericalTolerance') - rtc_output: Optional[RtcHydraulicModelOutputComplexType] = Field( - None, alias='rtc:output' - ) - rtc_sequentialImplicitSettings: Optional[ - RtcHydraulicModelSequentialImplicitComplexType - ] = Field(None, alias='rtc:sequentialImplicitSettings') - rtc_simultaneousSettings: Optional[ - RtcHydraulicModelSimultaneousComplexType - ] = Field(None, alias='rtc:simultaneousSettings') + attr_id: XsString + attr_name: Optional[XsString] = None + branch: Optional[List[BranchComplexType]] = None + hydraulicStructure: Optional[List[HydraulicStructureComplexType]] = None + mode: HydraulicModelModeEnumStringType + node: Optional[List[NodeComplexType]] = None + numericalTolerance: XsDouble + output: Optional[HydraulicModelOutputComplexType] = None + sequentialImplicitSettings: Optional[ + HydraulicModelSequentialImplicitComplexType + ] = None + simultaneousSettings: Optional[HydraulicModelSimultaneousComplexType] = None -class RtcLookup2DTableComplexType(BaseModel): +class Lookup2DTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_input: RtcLookup2DTableInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcLookup2DTableOutputComplexType = Field(..., alias='rtc:output') - rtc_table: RtcTable2DLookupTableComplexType = Field(..., alias='rtc:table') + attr_id: XsString + attr_name: Optional[XsString] = None + input: Lookup2DTableInputComplexType + output: Lookup2DTableOutputComplexType + table: Table2DLookupTableComplexType -class RtcComponentComplexType(BaseModel): +class ComponentComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _template: Optional[XsString] = Field(None, alias='@template') - rtc_accumulation: Optional[RtcAccumulationComplexType] = Field( - None, - alias='rtc:accumulation', - description='Accumulation of a time series over time', - ) - rtc_allocationTable: Optional[RtcAllocationTableComplexType] = Field( - None, alias='rtc:allocationTable' + attr_template: Optional[XsString] = None + accumulation: Optional[AccumulationComplexType] = Field( + None, description='Accumulation of a time series over time' ) - rtc_arma: Optional[RtcArmaComplexType] = Field( - None, alias='rtc:arma', description='Arma error correction model' + allocationTable: Optional[AllocationTableComplexType] = None + arma: Optional[ArmaComplexType] = Field( + None, description='Arma error correction model' ) - rtc_expression: Optional[RtcExpressionComplexType] = Field( - None, alias='rtc:expression', description='Mathematical expression' + expression: Optional[ExpressionComplexType] = Field( + None, description='Mathematical expression' ) - rtc_gradient: Optional[RtcGradientComplexType] = Field( - None, - alias='rtc:gradient', - description='Post processing for computing gradients of simulated values', + gradient: Optional[GradientComplexType] = Field( + None, description='Post processing for computing gradients of simulated values' ) - rtc_hbv: Optional[RtcHBVComplexType] = Field( + hbv: Optional[HBVComplexType] = Field( None, - alias='rtc:hbv', description='This is an implementation of the HBV-96 hydrological model. Note that the unit hydrograph is not included, but available separately.', ) - rtc_hydraulicModel: Optional[RtcHydraulicModelComplexType] = Field( + hydraulicModel: Optional[HydraulicModelComplexType] = Field( None, - alias='rtc:hydraulicModel', description='Simplifications of the full dynamic, one-dimensional hydraulic model according to the kinematic wave, diffusive wave and inertial assumptions.', ) - rtc_hydrologicalModel: Optional[RtcHydrologicalModelComplexType] = Field( + hydrologicalModel: Optional[HydrologicalModelComplexType] = Field( None, - alias='rtc:hydrologicalModel', description='Modular, conceptual hydrological model with implicit time stepping scheme.', ) - rtc_lookup2DTable: Optional[RtcLookup2DTableComplexType] = Field( - None, alias='rtc:lookup2DTable' - ) - rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( - None, alias='rtc:lookupTable' - ) - rtc_lorentGevers: Optional[RtcLorentGeversComplexType] = Field( - None, alias='rtc:lorentGevers', description='Lorent/Gevers hydrological model' + lookup2DTable: Optional[Lookup2DTableComplexType] = None + lookupTable: Optional[LookupTableComplexType] = None + lorentGevers: Optional[LorentGeversComplexType] = Field( + None, description='Lorent/Gevers hydrological model' ) - rtc_merger: Optional[RtcMergerComplexType] = Field(None, alias='rtc:merger') - rtc_mergerSplitter: Optional[RtcMergerSplitterComplexType] = Field( - None, alias='rtc:mergerSplitter' + merger: Optional[MergerComplexType] = None + mergerSplitter: Optional[MergerSplitterComplexType] = None + neuralNetwork: Optional[NeuralNetworkComplexType] = None + reservoir: Optional[ReservoirComplexType] = Field( + None, description='Reservoir with arbitrary number of inlets and outlets.' ) - rtc_neuralNetwork: Optional[RtcNeuralNetworkComplexType] = Field( - None, alias='rtc:neuralNetwork' - ) - rtc_reservoir: Optional[RtcReservoirComplexType] = Field( - None, - alias='rtc:reservoir', - description='Reservoir with arbitrary number of inlets and outlets.', - ) - rtc_reservoirCompact: Optional[RtcReservoirCompactComplexType] = Field( + reservoirCompact: Optional[ReservoirCompactComplexType] = Field( None, - alias='rtc:reservoirCompact', description='Test implementation of a compact reservoir class for simultaneous and sequential optimization mode', ) - rtc_routing: Optional[RtcRoutingComplexType] = Field( - None, alias='rtc:routing', description='not implemented yet' + routing: Optional[RoutingComplexType] = Field( + None, description='not implemented yet' ) - rtc_srm: Optional[RtcSRMComplexType] = Field(None, alias='rtc:srm') - rtc_unitDelay: Optional[RtcUnitDelayComplexType] = Field( + srm: Optional[SRMComplexType] = None + unitDelay: Optional[UnitDelayComplexType] = Field( None, - alias='rtc:unitDelay', description='Unit delay operator for delaying a value by n times the time step of the model.', ) - rtc_unitHydrograph: Optional[RtcUnitHydrographComplexType] = Field( - None, alias='rtc:unitHydrograph', description='Unit hydrograph' + unitHydrograph: Optional[UnitHydrographComplexType] = Field( + None, description='Unit hydrograph' ) -class RtcComponentsComplexType(BaseModel): +class ComponentsComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_component: List[RtcComponentComplexType] = Field( - ..., alias='rtc:component', min_items=1 - ) + component: List[ComponentComplexType] = Field(..., min_items=1) -class Model(BaseModel): +class Model(RtcBaseModel): """ JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com) """ @@ -4613,357 +3967,298 @@ class Config: extra = Extra.forbid allow_population_by_field_name = True - _xmlns_rtc: Optional[Any] = Field('http://www.wldelft.nl/fews', alias='@xmlns:rtc') - _xmlns_xs: Optional[Any] = Field( - 'http://www.w3.org/2001/XMLSchema', alias='@xmlns:xs' + attr_xmlns_rtc: Optional[Any] = Field( + 'http://www.wldelft.nl/fews', alias='attr_xmlns:rtc' ) - rtc_rtcToolsConfig: Optional[_.RtcRtcToolsConfig] = Field( - None, alias='rtc:rtcToolsConfig' + attr_xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' ) + rtcToolsConfig: Optional[_.RtcToolsConfig] = None -class RtcDeadBandTimeComplexType(BaseModel): +class DeadBandTimeComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_discrete: RtcDeadBandTimeDiscreteComplexType = Field(..., alias='rtc:discrete') - rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + discrete: DeadBandTimeDiscreteComplexType + false: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:false', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) - rtc_input: RtcDeadBandTimeInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcDeadBandTimeOutputComplexType = Field(..., alias='rtc:output') - rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + input: DeadBandTimeInputComplexType + output: DeadBandTimeOutputComplexType + true: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:true', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) -class RtcDeadBandTriggerComplexType(BaseModel): +class DeadBandTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_conditionOff: RtcRelationalConditionComplexType = Field( - ..., alias='rtc:conditionOff' - ) - rtc_conditionOn: RtcRelationalConditionComplexType = Field( - ..., alias='rtc:conditionOn' - ) - rtc_default: Optional[XsBoolean] = Field(None, alias='rtc:default') - rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + conditionOff: RelationalConditionComplexType + conditionOn: RelationalConditionComplexType + default: Optional[XsBoolean] = None + false: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:false', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) - rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') - rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + output: TriggerOutputComplexType + true: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:true', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) -class RtcPolygonLookupComplexType(BaseModel): +class PolygonLookupComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_default: Optional[XsDouble] = Field(None, alias='rtc:default') - rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + default: Optional[XsDouble] = None + false: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:false', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) - rtc_input: RtcPolygonLookupInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcPolygonLookupOutputComplexType = Field(..., alias='rtc:output') - rtc_polygons: RtcPolygonsComplexType = Field(..., alias='rtc:polygons') - rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + input: PolygonLookupInputComplexType + output: PolygonLookupOutputComplexType + polygons: PolygonsComplexType + true: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:true', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) -class RtcRtcToolsConfigComplexType(BaseModel): +class RtcToolsConfigComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_components: Optional[RtcComponentsComplexType] = Field( - None, - alias='rtc:components', - description='The components section includes all simulation components.', + components: Optional[ComponentsComplexType] = Field( + None, description='The components section includes all simulation components.' ) - rtc_general: Optional[RtcGeneralModuleConfigComplexType] = Field( + general: Optional[GeneralModuleConfigComplexType] = Field( None, - alias='rtc:general', description='OBSOLETE. Still here for backwards compatibility. Remove after next release.', ) - rtc_rules: Optional[RtcRulesComplexType] = Field( + rules: Optional[RulesComplexType] = Field( None, - alias='rtc:rules', description='The rules section includes operating rules or controllers for defining the release of reservoir, structural settings of gates etc.', ) - rtc_triggers: Optional[RtcTriggersComplexType] = Field( + triggers: Optional[TriggersComplexType] = Field( None, - alias='rtc:triggers', description='Triggers may activate or deactivate rules defined in the section above.', ) -class RtcRuleComplexType(BaseModel): +class RuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_constant: Optional[RtcConstantRuleComplexType] = Field( - None, alias='rtc:constant', description='Simple rule with constant value' + constant: Optional[ConstantRuleComplexType] = Field( + None, description='Simple rule with constant value' ) - rtc_dateLookupTable: Optional[RtcDateLookupTableComplexType] = Field( + dateLookupTable: Optional[DateLookupTableComplexType] = Field( None, - alias='rtc:dateLookupTable', description='Date lookup table, output y is a function of date and an input value x, the interpolation on the date / value axis can be BLOCK or LINEAR, the number of records should be constant for each date record', ) - rtc_deadBandTime: Optional[RtcDeadBandTimeComplexType] = Field( - None, alias='rtc:deadBandTime' - ) - rtc_deadBandValue: Optional[RtcDeadBandValueComplexType] = Field( + deadBandTime: Optional[DeadBandTimeComplexType] = None + deadBandValue: Optional[DeadBandValueComplexType] = Field( None, - alias='rtc:deadBandValue', description='Deadband threshold, yNew will become yOld, if the change yNew-yOld is smaller than the threshold value ', ) - rtc_dedicated_Aebi: Optional[RtcAebiRuleComplexType] = Field( + dedicated_Aebi: Optional[AebiRuleComplexType] = Field( None, - alias='rtc:dedicated-Aebi', + alias='dedicated-Aebi', description='Dedicated rule for the control of Bielersee, Canton Bern, CH', ) - rtc_dedicated_Thunersee: Optional[RtcThunerseeRuleComplexType] = Field( + dedicated_Thunersee: Optional[ThunerseeRuleComplexType] = Field( None, - alias='rtc:dedicated-Thunersee', + alias='dedicated-Thunersee', description='Dedicated rule for the control of Thunersee, Canton Bern, CH', ) - rtc_expression: Optional[RtcExpressionComplexType] = Field( - None, alias='rtc:expression', description='mathematical expression' + expression: Optional[ExpressionComplexType] = Field( + None, description='mathematical expression' ) - rtc_guideband: Optional[RtcGuideBandRuleComplexType] = Field( + guideband: Optional[GuideBandRuleComplexType] = Field( None, - alias='rtc:guideband', description='Guide band rule, output get 0 if input less equal xMin, 1 if input greater equal xMax, linear interpolation otherwise xMin and xMax can be a function of date, main application in combination with a relative release of a reservoir outlet', ) - rtc_interval: Optional[RtcIntervalComplexType] = Field(None, alias='rtc:interval') - rtc_limiter: Optional[RtcLimiterComplexType] = Field( + interval: Optional[IntervalComplexType] = None + limiter: Optional[LimiterComplexType] = Field( None, - alias='rtc:limiter', description='Limiter for limiting the change of a variable in a time step to a relative (PERCENTAGE) or absolute (ABSOLUTE) change', ) - rtc_lookup2DTable: Optional[RtcLookup2DTableComplexType] = Field( - None, alias='rtc:lookup2DTable' + lookup2DTable: Optional[Lookup2DTableComplexType] = None + lookupTable: Optional[LookupTableComplexType] = None + merger: Optional[MergerComplexType] = Field( + None, description='Data hierarchy, highest input has highest priority' ) - rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( - None, alias='rtc:lookupTable' + pid: Optional[PidComplexType] = None + timeAbsolute: Optional[TimeAbsoluteComplexType] = Field( + None, description='absolute time controller' ) - rtc_merger: Optional[RtcMergerComplexType] = Field( - None, - alias='rtc:merger', - description='Data hierarchy, highest input has highest priority', + timeRelative: Optional[TimeRelativeComplexType] = Field( + None, description='relative time controller' ) - rtc_pid: Optional[RtcPidComplexType] = Field(None, alias='rtc:pid') - rtc_timeAbsolute: Optional[RtcTimeAbsoluteComplexType] = Field( - None, alias='rtc:timeAbsolute', description='absolute time controller' - ) - rtc_timeRelative: Optional[RtcTimeRelativeComplexType] = Field( - None, alias='rtc:timeRelative', description='relative time controller' - ) - rtc_unitDelay: Optional[RtcUnitDelayComplexType] = Field( + unitDelay: Optional[UnitDelayComplexType] = Field( None, - alias='rtc:unitDelay', description='Unit delay operator for delaying a value by n times the time step of the model.', ) -class RtcRuleTriggerComplexType(BaseModel): +class RuleTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_trigger: Optional[List[RtcTriggerComplexType]] = Field( - None, alias='rtc:trigger' - ) + trigger: Optional[List[TriggerComplexType]] = None -class RtcRulesComplexType(BaseModel): +class RulesComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_rule: List[RtcRuleComplexType] = Field(..., alias='rtc:rule', min_items=1) + rule: List[RuleComplexType] = Field(..., min_items=1) -class RtcSetTriggerComplexType(BaseModel): +class SetTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_default: Optional[XsBoolean] = Field(None, alias='rtc:default') - rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + default: Optional[XsBoolean] = None + false: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:false', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) - rtc_logicalOperator: RtcLogicalOperatorEnumStringType = Field( - ..., alias='rtc:logicalOperator' - ) - rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') - rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + logicalOperator: LogicalOperatorEnumStringType + output: TriggerOutputComplexType + true: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:true', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) - rtc_x1Series: Optional[rtc_TimeSeriesSimpleType.Field24] = Field( - None, alias='rtc:x1Series' - ) - rtc_x1Trigger: Optional[RtcTriggerComplexType] = Field(None, alias='rtc:x1Trigger') - rtc_x1Value: Optional[XsBoolean] = Field(None, alias='rtc:x1Value') - rtc_x2Series: Optional[rtc_TimeSeriesSimpleType.Field25] = Field( - None, alias='rtc:x2Series' - ) - rtc_x2Trigger: Optional[RtcTriggerComplexType] = Field(None, alias='rtc:x2Trigger') - rtc_x2Value: Optional[XsBoolean] = Field(None, alias='rtc:x2Value') + x1Series: Optional[TimeSeriesSimpleType.Field24] = None + x1Trigger: Optional[TriggerComplexType] = None + x1Value: Optional[XsBoolean] = None + x2Series: Optional[TimeSeriesSimpleType.Field25] = None + x2Trigger: Optional[TriggerComplexType] = None + x2Value: Optional[XsBoolean] = None -class RtcSpreadsheetComplexType(BaseModel): +class SpreadsheetComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_defaultInputValue: Optional[XsDouble] = Field( - None, - alias='rtc:defaultInputValue', - description='default input value, if input is NaN or infinity', + attr_id: XsString + attr_name: Optional[XsString] = None + defaultInputValue: Optional[XsDouble] = Field( + None, description='default input value, if input is NaN or infinity' ) - rtc_defaultOutputValue: Optional[XsDouble] = Field( - None, - alias='rtc:defaultOutputValue', - description='default output, if no combination of the table applies', + defaultOutputValue: Optional[XsDouble] = Field( + None, description='default output, if no combination of the table applies' ) - rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + false: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:false', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) - rtc_input: RtcSpreadsheetInputComplexType = Field(..., alias='rtc:input') - rtc_output: RtcSpreadsheetOutputComplexType = Field(..., alias='rtc:output') - rtc_tables: RtcSpreadsheetTablesComplexType = Field( + input: SpreadsheetInputComplexType + output: SpreadsheetOutputComplexType + tables: SpreadsheetTablesComplexType = Field( ..., - alias='rtc:tables', description='number of tables with input, output values, the initial state can be taken into account optionally', ) - rtc_tolerance: XsDouble = Field( + tolerance: XsDouble = Field( ..., - alias='rtc:tolerance', description='tolerance for finding a match, keep in mind that the all variable are stored in doubles', ) - rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + true: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:true', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) - rtc_validPeriods: Optional[RtcValidPeriodsComplexType] = Field( - None, - alias='rtc:validPeriods', - description='optional period of the year for which the trigger is active', + validPeriods: Optional[ValidPeriodsComplexType] = Field( + None, description='optional period of the year for which the trigger is active' ) -class RtcStandardTriggerComplexType(BaseModel): +class StandardTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - _id: XsString = Field(..., alias='@id') - _name: Optional[XsString] = Field(None, alias='@name') - rtc_condition: RtcRelationalConditionComplexType = Field(..., alias='rtc:condition') - rtc_default: Optional[XsBoolean] = Field(None, alias='rtc:default') - rtc_false: Optional[RtcRuleTriggerComplexType] = Field( + attr_id: XsString + attr_name: Optional[XsString] = None + condition: RelationalConditionComplexType + default: Optional[XsBoolean] = None + false: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:false', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) - rtc_output: RtcTriggerOutputComplexType = Field(..., alias='rtc:output') - rtc_true: Optional[RtcRuleTriggerComplexType] = Field( + output: TriggerOutputComplexType + true: Optional[RuleTriggerComplexType] = Field( None, - alias='rtc:true', description='link the trigger event to either an other trigger or to a rule. Use the item ID as link to rules', ) -class RtcTriggerComplexType(BaseModel): +class TriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_deadBand: Optional[RtcDeadBandTriggerComplexType] = Field( - None, alias='rtc:deadBand', description='trigger with deadband' + deadBand: Optional[DeadBandTriggerComplexType] = Field( + None, description='trigger with deadband' ) - rtc_deadBandTime: Optional[RtcDeadBandTimeComplexType] = Field( - None, alias='rtc:deadBandTime', description='trigger with time deadband' + deadBandTime: Optional[DeadBandTimeComplexType] = Field( + None, description='trigger with time deadband' ) - rtc_expression: Optional[RtcExpressionComplexType] = Field( - None, alias='rtc:expression', description='mathematical expression' + expression: Optional[ExpressionComplexType] = Field( + None, description='mathematical expression' ) - rtc_lookupTable: Optional[RtcLookupTableComplexType] = Field( - None, alias='rtc:lookupTable' + lookupTable: Optional[LookupTableComplexType] = None + merger: Optional[MergerComplexType] = Field( + None, description='Data hierarchy, highest input has highest priority' ) - rtc_merger: Optional[RtcMergerComplexType] = Field( + polygonLookup: Optional[PolygonLookupComplexType] = Field( None, - alias='rtc:merger', - description='Data hierarchy, highest input has highest priority', - ) - rtc_polygonLookup: Optional[RtcPolygonLookupComplexType] = Field( - None, - alias='rtc:polygonLookup', description='trigger with two-dimensional lookup table, trigger results are defined by polygons', ) - rtc_ruleReference: Optional[XsString] = Field(None, alias='rtc:ruleReference') - rtc_set: Optional[RtcSetTriggerComplexType] = Field( - None, alias='rtc:set', description='set of triggers' + ruleReference: Optional[XsString] = None + set: Optional[SetTriggerComplexType] = Field(None, description='set of triggers') + spreadsheet: Optional[SpreadsheetComplexType] = Field( + None, description='spread sheet trigger' ) - rtc_spreadsheet: Optional[RtcSpreadsheetComplexType] = Field( - None, alias='rtc:spreadsheet', description='spread sheet trigger' - ) - rtc_standard: Optional[RtcStandardTriggerComplexType] = Field( - None, alias='rtc:standard', description='standard trigger' + standard: Optional[StandardTriggerComplexType] = Field( + None, description='standard trigger' ) -class RtcTriggersComplexType(BaseModel): +class TriggersComplexType(RtcBaseModel): class Config: extra = Extra.forbid allow_population_by_field_name = True - rtc_trigger: List[RtcTriggerComplexType] = Field( - ..., alias='rtc:trigger', min_items=1 - ) + trigger: List[TriggerComplexType] = Field(..., min_items=1) Model.update_forward_refs() -RtcDeadBandTimeComplexType.update_forward_refs() -RtcDeadBandTriggerComplexType.update_forward_refs() -RtcPolygonLookupComplexType.update_forward_refs() -RtcRtcToolsConfigComplexType.update_forward_refs() -RtcRuleTriggerComplexType.update_forward_refs() -RtcSetTriggerComplexType.update_forward_refs() +DeadBandTimeComplexType.update_forward_refs() +DeadBandTriggerComplexType.update_forward_refs() +PolygonLookupComplexType.update_forward_refs() +RtcToolsConfigComplexType.update_forward_refs() +RuleTriggerComplexType.update_forward_refs() +SetTriggerComplexType.update_forward_refs() From b1c309aecefd2e0d9a85e21501d9314d5279357c Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 15:31:54 +0200 Subject: [PATCH 14/22] #226: Add `allow_population_by_field_name` as True to RtcBaseModel --- hydrolib/core/io/rtc/basemodel.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hydrolib/core/io/rtc/basemodel.py b/hydrolib/core/io/rtc/basemodel.py index e085b04b7..8534ef021 100644 --- a/hydrolib/core/io/rtc/basemodel.py +++ b/hydrolib/core/io/rtc/basemodel.py @@ -5,6 +5,9 @@ from pydantic.fields import ModelField class RtcBaseModel(BaseModel): + class Config: + allow_population_by_field_name = True + @root_validator(pre=True) def validate(cls, data) -> dict: if not isinstance(data, dict): From d59316a08dbab2b7aa55015c8752942f7216bf51 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 15:35:23 +0200 Subject: [PATCH 15/22] #226: Remove `allow_population_by_field_name` from generated models --- .../core/io/rtc/rtcDataConfig/generated/_.py | 5 +- .../rtc/rtcDataConfig/generated/__init__.py | 53 +-- .../core/io/rtc/rtcToolsConfig/generated/_.py | 5 +- .../_/_/ExternalParameterSimpleType.py | 3 +- .../generated/_/_/TimeSeriesSimpleType.py | 27 +- .../rtcToolsConfig/generated/_/_/__init__.py | 2 +- .../rtcToolsConfig/generated/_/_/xs_string.py | 4 +- .../rtc/rtcToolsConfig/generated/__init__.py | 355 +----------------- 8 files changed, 8 insertions(+), 446 deletions(-) diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py index 9392b4688..9ac4c6cae 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcDataConfig.json -# timestamp: 2022-09-27T13:22:03+00:00 +# timestamp: 2022-09-27T13:33:22+00:00 from __future__ import annotations @@ -10,7 +10,4 @@ class RtcDataConfig(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: RtcDataConfigComplexType diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py index 2c717e25d..c7ac4169f 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcDataConfig.json -# timestamp: 2022-09-27T13:22:03+00:00 +# timestamp: 2022-09-27T13:33:22+00:00 from __future__ import annotations @@ -25,44 +25,26 @@ class EnsembleModeEnumStringType(str, Enum): class ExternalBooleanSimpleTypeItem(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') class ExternalBooleanSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: Union[bool, ExternalBooleanSimpleTypeItem] class ExternalIntegerSimpleTypeItem(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') class ExternalIntegerSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: Union[int, ExternalIntegerSimpleTypeItem] class ExternalParameterSimpleTypeItem(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([#-\\$][\\(-_a-z]+[#-\\$])$') class ExternalParameterSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: Union[float, ExternalParameterSimpleTypeItem] @@ -94,16 +76,10 @@ class SeparatorEnumStringType(str, Enum): class TimeSeriesSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., min_length=1) class TimeZoneSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: float = Field( ..., description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', @@ -125,9 +101,6 @@ class VariableTypeEnumStringType(str, Enum): class DateType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field( ..., regex='^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$' ) @@ -154,37 +127,24 @@ class TimeStepUnitEnumStringType(str, Enum): class TimeType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') class XsBoolean(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: bool class XsPositiveInteger(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: int = Field(..., ge=1) class XsString(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str class CSVTimeSeriesFileComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_adjointOutput: Optional[XsBoolean] = None attr_decimalSeparator: Optional[SeparatorEnumStringType] = None @@ -194,7 +154,6 @@ class Config: class DateTimeComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_date: DateType attr_time: TimeType @@ -203,7 +162,6 @@ class Config: class OpenMIExchangeItemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True elementId: XsString = Field( ..., description='OpenMI element ID, corresponds to the locationId' @@ -217,7 +175,6 @@ class Config: class PITimeSeriesExportFileComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True adjointOutput: Optional[XsBoolean] = None timeSeriesFile: XsString = Field( @@ -232,7 +189,6 @@ class Config: class PITimeSeriesImportFileComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True timeSeriesFile: XsString = Field( ..., description='Name of the file containing timeseries data. ' @@ -252,7 +208,6 @@ class TimeStepComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_divider: Optional[XsPositiveInteger] = None attr_multiplier: Optional[XsPositiveInteger] = None @@ -267,7 +222,6 @@ class PITimeSeriesComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True locationId: XsString = Field( ..., description='Location ID in Delft-FEWS PI-XML file' @@ -300,7 +254,6 @@ class RtcTimeSeriesComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: str = Field(..., min_length=1) attr_validation: Optional[AttrValidation] = None @@ -318,7 +271,6 @@ class Config: class RtcSeriesExportComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True CSVTimeSeriesFile: Optional[CSVTimeSeriesFileComplexType] = Field( None, @@ -331,7 +283,6 @@ class Config: class RtcSeriesImportComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True PITimeSeriesFile: Optional[PITimeSeriesImportFileComplexType] = None timeSeries: List[RtcTimeSeriesComplexType] = Field(..., min_items=1) @@ -340,7 +291,6 @@ class Config: class RtcDataConfigComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True importSeries: RtcSeriesImportComplexType = Field( ..., @@ -359,7 +309,6 @@ class Model(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews' attr_xmlns_xs: Optional[Any] = Field( diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py index ca864ccdf..a8ef4b95e 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:24:09+00:00 +# timestamp: 2022-09-27T13:34:13+00:00 from __future__ import annotations @@ -10,9 +10,6 @@ class RtcToolsConfig(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: RtcToolsConfigComplexType diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py index ec5e4fea8..8ae9ab731 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:24:09+00:00 +# timestamp: 2022-09-27T13:34:13+00:00 from __future__ import annotations @@ -15,7 +15,6 @@ class Field1(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[ExternalParameterSimpleType] = Field(None, alias='$') attr_useAbsoluteAsSpillCap: Optional[XsBoolean] = None diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py index 0ccd04677..a0df88341 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:24:09+00:00 +# timestamp: 2022-09-27T13:34:13+00:00 from __future__ import annotations @@ -21,7 +21,6 @@ class Field1(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_id: XsString @@ -31,7 +30,6 @@ class Config: class Field10(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -40,7 +38,6 @@ class Config: class Field11(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -49,7 +46,6 @@ class Config: class Field12(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -58,7 +54,6 @@ class Config: class Field13(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -67,7 +62,6 @@ class Config: class Field14(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -76,7 +70,6 @@ class Config: class Field15(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -85,7 +78,6 @@ class Config: class Field16(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -94,7 +86,6 @@ class Config: class Field17(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_factor: Optional[XsDouble] = None @@ -104,7 +95,6 @@ class Config: class Field18(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_nStepSeries: Optional[TimeSeriesSimpleType] = None @@ -115,7 +105,6 @@ class Config: class Field19(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_factor: Optional[XsDouble] = None @@ -124,7 +113,6 @@ class Config: class Field2(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -133,7 +121,6 @@ class Config: class Field20(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -142,7 +129,6 @@ class Config: class Field21(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -151,7 +137,6 @@ class Config: class Field22(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -160,7 +145,6 @@ class Config: class Field23(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -169,7 +153,6 @@ class Config: class Field24(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -178,7 +161,6 @@ class Config: class Field25(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -187,7 +169,6 @@ class Config: class Field3(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -196,7 +177,6 @@ class Config: class Field4(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -205,7 +185,6 @@ class Config: class Field5(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None @@ -214,7 +193,6 @@ class Config: class Field6(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_factor: Optional[XsDouble] = None @@ -223,7 +201,6 @@ class Config: class Field7(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_useAbsoluteAsSpillCap: Optional[XsBoolean] = None @@ -232,7 +209,6 @@ class Config: class Field8(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_factor: Optional[XsDouble] = None @@ -241,7 +217,6 @@ class Config: class Field9(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[TimeSeriesSimpleType] = Field(None, alias='$') attr_ref: Optional[InputReferenceEnumStringType] = None diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py index 637f69e04..11ab00a35 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py @@ -1,3 +1,3 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:24:09+00:00 +# timestamp: 2022-09-27T13:34:13+00:00 diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py index 4b7cf547e..42d50620d 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:24:09+00:00 +# timestamp: 2022-09-27T13:34:13+00:00 from __future__ import annotations @@ -15,7 +15,6 @@ class Field1(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[XsString] = Field(None, alias='$') attr_weight: ExternalParameterSimpleType @@ -24,7 +23,6 @@ class Config: class Field2(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True _: Optional[XsString] = Field(None, alias='$') attr_weight: ExternalParameterSimpleType diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py index 6e2a5cdc2..6e1631535 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:24:09+00:00 +# timestamp: 2022-09-27T13:34:13+00:00 from __future__ import annotations @@ -62,51 +62,32 @@ class EquationEnumStringType(str, Enum): class ExternalBooleanSimpleTypeItem(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') class ExternalBooleanSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: Union[bool, ExternalBooleanSimpleTypeItem] class ExternalIntegerSimpleTypeItem(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') class ExternalIntegerSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: Union[int, ExternalIntegerSimpleTypeItem] class ExternalParameterSimpleTypeItem(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([#-\\$][\\(-_a-z]+[#-\\$])$') class ExternalParameterSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: Union[float, ExternalParameterSimpleTypeItem] class HBVParameterInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True ECORR: Optional[ExternalParameterSimpleType] = Field( None, description='correction factor for EP' @@ -128,7 +109,6 @@ class Config: class HBVParameterInterceptionComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True LIC: ExternalParameterSimpleType = Field( ..., description='maximum interception storage' @@ -138,7 +118,6 @@ class Config: class HBVParameterResponseComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True ALPHA: ExternalParameterSimpleType = Field( ..., description='response box parameter [-], usually between 1.0 and 2.0' @@ -157,7 +136,6 @@ class Config: class HBVParameterSnowComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True CFMAX: ExternalParameterSimpleType = Field( ..., @@ -177,7 +155,6 @@ class Config: class HBVParameterSoilComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True BETA: ExternalParameterSimpleType = Field( ..., description='parameter in soil routine [-], usually between 1 and 6' @@ -202,9 +179,6 @@ class HydraulicModelModeEnumStringType(str, Enum): class LayerIDSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([L][0-9]+)$') @@ -216,7 +190,6 @@ class PropertyEnum(str, Enum): class LorentGeversParameterResponseComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: ExternalParameterSimpleType KB: ExternalParameterSimpleType @@ -230,7 +203,6 @@ class Config: class LorentGeversParameterSoilComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True BETA: ExternalParameterSimpleType PMAX: ExternalParameterSimpleType @@ -258,16 +230,12 @@ class MergerSplitterEnumStringType(str, Enum): class NeuronIDSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([L][0-9]+[N][0-9]+)$') class ParameterCapillaryFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') CFLUX: ExternalParameterSimpleType = Field( @@ -279,7 +247,6 @@ class Config: class ParameterEvaporationActualStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field( None, description='area [1000 m2], default = 1.0' @@ -296,7 +263,6 @@ class Config: class ParameterEvaporationInterceptionStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') @@ -304,7 +270,6 @@ class Config: class ParameterEvaporationPotentialComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True ECORR: Optional[ExternalParameterSimpleType] = Field( None, description='evaporation correction factor, default = 1.0' @@ -317,7 +282,6 @@ class Config: class ParameterIrrigationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field( None, description='area [km2], default = 1.0' @@ -337,7 +301,6 @@ class Config: class ParameterMeltRefreezingStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') CFMAX: ExternalParameterSimpleType = Field( @@ -356,7 +319,6 @@ class Config: class ParameterPercolationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') PERC: ExternalParameterSimpleType = Field(..., description='percolation [mm/d]') @@ -365,7 +327,6 @@ class Config: class ParameterReleaseAboveThresholdStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field( None, description='area [km2], default = 1.0' @@ -385,7 +346,6 @@ class Config: class ParameterReleaseTotalComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: ExternalParameterSimpleType = Field(..., description='area [km2]') @@ -393,7 +353,6 @@ class Config: class ParameterReleaseWaterContentStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') M: Optional[ExternalParameterSimpleType] = Field( @@ -407,7 +366,6 @@ class Config: class ParameterResponseStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True ALPHA: Optional[ExternalParameterSimpleType] = Field( None, description='response box parameter [-], default = 0.0' @@ -421,7 +379,6 @@ class Config: class ParameterSnowRainJunctionComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True D: Optional[ExternalParameterSimpleType] = Field( None, @@ -444,7 +401,6 @@ class Config: class ParameterSoilRunoffStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field(None, description='area [km2]') BETA: ExternalParameterSimpleType = Field( @@ -456,7 +412,6 @@ class Config: class ParameterWaterDistributionConstantStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field( None, description='area [km2], default = 1.0' @@ -476,7 +431,6 @@ class Config: class ParameterWaterDistributionVariableStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AREA: Optional[ExternalParameterSimpleType] = Field( None, description='area [km2], default = 1.0' @@ -493,7 +447,6 @@ class Config: class ParametergroundwaterFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True ALPHA: ExternalParameterSimpleType = Field( ..., description='Ground water reaction coefficient' @@ -521,7 +474,6 @@ class Mode(str, Enum): class SRMParameterComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True Pt: ExternalParameterSimpleType = Field( ..., description='precipitation threshold [mm]' @@ -552,16 +504,10 @@ class Mode1(str, Enum): class TimeSeriesSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., min_length=1) class TimeZoneSimpleType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: float = Field( ..., description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', @@ -571,7 +517,6 @@ class Config: class TriggerInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True status: TimeSeriesSimpleType @@ -579,7 +524,6 @@ class Config: class TriggerOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True status: TimeSeriesSimpleType timeFalse: Optional[TimeSeriesSimpleType] = None @@ -589,7 +533,6 @@ class Config: class TurbineInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True relativeRelease: Optional[TimeSeriesSimpleType] = Field( None, description='provision of relative turbine release, 1 = maximum capacity' @@ -602,7 +545,6 @@ class Config: class TurbineOutputCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True power: TimeSeriesSimpleType = Field(..., description='power output [MW]') @@ -610,7 +552,6 @@ class Config: class TurbineOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True discharge: TimeSeriesSimpleType = Field(..., description='discharge in m3/s') powerProduction: TimeSeriesSimpleType = Field( @@ -621,7 +562,6 @@ class Config: class UOutletInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True release: TimeSeriesSimpleType @@ -629,7 +569,6 @@ class Config: class UnitDelayInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType @@ -637,7 +576,6 @@ class Config: class UnitDelayOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: Optional[List[TimeSeriesSimpleType]] = None yFinal: Optional[TimeSeriesSimpleType] = Field( @@ -658,7 +596,6 @@ class Config: class UnitHydrographInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType @@ -666,7 +603,6 @@ class Config: class UnitHydrographOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True xDelay: Optional[List[TimeSeriesSimpleType]] = None xDelayVector: Optional[TimeSeriesSimpleType] = Field( @@ -693,9 +629,6 @@ class CaseLangetenEnumStringType(int, Enum): class DateType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field( ..., regex='^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$' ) @@ -708,16 +641,10 @@ class FlowDirectionEnumStringTypeEnum(str, Enum): class FlowDirectionEnumStringTypeItem(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') class FlowDirectionEnumStringType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: Union[ FlowDirectionEnumStringTypeEnum, FlowDirectionEnumStringTypeItem ] = Field(..., description='flow direction') @@ -809,9 +736,6 @@ class TimeStepUnitEnumStringType(str, Enum): class TimeType(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') @@ -826,79 +750,48 @@ class TransferFunctionEnumStringType(str, Enum): class XsBoolean(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: bool class XsDateTime(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str class XsDouble(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: float class XsFloat(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: float class XsGMonthDay(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str class XsInt(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: int = Field(..., ge=-2147483648, le=2147483647) class XsInteger(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: int class XsPositiveInteger(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: int = Field(..., ge=1) class XsString(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str class XsTime(RtcBaseModel): - class Config: - allow_population_by_field_name = True - __root__: str class RowItem(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_value: XsDouble @@ -907,7 +800,6 @@ class Config: class ATableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True row: List[RowItem] = Field(..., min_items=1) @@ -915,7 +807,6 @@ class Config: class AccumulationInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType @@ -923,7 +814,6 @@ class Config: class AccumulationOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: TimeSeriesSimpleType @@ -931,7 +821,6 @@ class Config: class AebiRuleInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AareBruegg: TimeSeriesSimpleType AareBrueggMin2: TimeSeriesSimpleType @@ -947,7 +836,6 @@ class Config: class AebiRuleOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True AareMurg_oKWMin1: TimeSeriesSimpleType AbflussaenderungPort: TimeSeriesSimpleType @@ -959,7 +847,6 @@ class Config: class ArmaInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True obs: TimeSeriesSimpleType = Field(..., description='observed data') sim: TimeSeriesSimpleType = Field(..., description='simulated data') @@ -968,7 +855,6 @@ class Config: class ArmaOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True arma: TimeSeriesSimpleType = Field(..., description='output-corrected data') @@ -976,7 +862,6 @@ class Config: class BranchGradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True storageDown: TimeSeriesSimpleType storageUp: TimeSeriesSimpleType @@ -987,7 +872,6 @@ class Config: class BranchInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HDown: TimeSeriesSimpleType = Field(..., description='ID of downstream node') HUp: TimeSeriesSimpleType = Field(..., description='ID of upstream node') @@ -1004,7 +888,6 @@ class Config: class BranchOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True Q: TimeSeriesSimpleType @@ -1012,7 +895,6 @@ class Config: class ColumnsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_head01: XsDouble attr_head02: XsDouble @@ -1039,7 +921,6 @@ class Config: class ConditionComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True greaterThan: Optional[XsDouble] = None lessThan: Optional[XsDouble] = None @@ -1048,7 +929,6 @@ class Config: class ConnectionCoefficientsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True a: ExternalParameterSimpleType b: ExternalParameterSimpleType @@ -1059,7 +939,6 @@ class Config: class ConnectionInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True discharge: TimeSeriesSimpleType downstreamLevel: TimeSeriesSimpleType @@ -1069,7 +948,6 @@ class Config: class ConnectionOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True discharge: TimeSeriesSimpleType @@ -1077,7 +955,6 @@ class Config: class ConstantRuleOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: TimeSeriesSimpleType @@ -1085,7 +962,6 @@ class Config: class DataTypicalProfileComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_monthOfYear: AttrMonthOfYear attr_value: XsDouble @@ -1094,7 +970,6 @@ class Config: class DateComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_monthDay: XsGMonthDay @@ -1102,7 +977,6 @@ class Config: class DateLookupTableInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType y: Optional[TimeSeriesSimpleType] = None @@ -1111,7 +985,6 @@ class Config: class DateLookupTableOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True active: Optional[TimeSeriesSimpleType] = None y: TimeSeriesSimpleType @@ -1120,7 +993,6 @@ class Config: class DateRecord2DataComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_x: XsDouble attr_y: XsDouble @@ -1134,7 +1006,6 @@ class DateRecordComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_comment: Optional[XsString] = None attr_dateTime: Optional[XsDateTime] = None @@ -1146,7 +1017,6 @@ class Config: class DateTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True data: List[DateRecordComplexType] = Field(..., min_items=1) @@ -1154,7 +1024,6 @@ class Config: class DateTimeComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_date: DateType attr_time: TimeType @@ -1163,7 +1032,6 @@ class Config: class DeadBandTimeDiscreteComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True numberOfStepsDown: XsInt numberOfStepsUp: XsInt @@ -1172,7 +1040,6 @@ class Config: class DeadBandTimeInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType.Field20 @@ -1180,7 +1047,6 @@ class Config: class DeadBandTimeOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True status: TimeSeriesSimpleType stepsDown: TimeSeriesSimpleType @@ -1192,7 +1058,6 @@ class Config: class DeadBandValueInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType @@ -1200,7 +1065,6 @@ class Config: class EdgeComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_x1: XsDouble attr_x2: XsDouble @@ -1209,7 +1073,6 @@ class Config: class EdgesComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True edge: List[EdgeComplexType] = Field(..., min_items=1) @@ -1217,7 +1080,6 @@ class Config: class EifelRurRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -1229,7 +1091,6 @@ class Config: class ElevationRecordComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_elevation: XsDouble attr_value: ExternalParameterSimpleType @@ -1245,7 +1106,6 @@ class ElevationTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True elevationRecord: List[ElevationRecordComplexType] = Field(..., min_items=1) @@ -1253,7 +1113,6 @@ class Config: class EquationComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True a: ExternalParameterSimpleType b: ExternalParameterSimpleType @@ -1265,7 +1124,6 @@ class Config: class EquationsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True equation: List[EquationComplexType] = Field(..., min_items=1) @@ -1273,7 +1131,6 @@ class Config: class ExpressionComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -1308,7 +1165,6 @@ class GeneralModuleConfigComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True description: Optional[XsString] = Field(None, description='DEPRICATED') poolRoutingScheme: PoolRoutingEnumStringType = Field(..., description='DEPRICATED') @@ -1318,7 +1174,6 @@ class Config: class GradientInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType @@ -1326,7 +1181,6 @@ class Config: class GradientOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True dx: TimeSeriesSimpleType @@ -1334,7 +1188,6 @@ class Config: class GuideBandRuleInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType y: Optional[TimeSeriesSimpleType] = None @@ -1343,7 +1196,6 @@ class Config: class GuideBandRuleOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: TimeSeriesSimpleType @@ -1351,7 +1203,6 @@ class Config: class HBVInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True EP: TimeSeriesSimpleType P: TimeSeriesSimpleType @@ -1362,7 +1213,6 @@ class Config: class HBVLinkComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True CF: TimeSeriesSimpleType EA: TimeSeriesSimpleType @@ -1377,7 +1227,6 @@ class Config: class HBVOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True Q: TimeSeriesSimpleType SMPercentage: Optional[TimeSeriesSimpleType] = None @@ -1387,7 +1236,6 @@ class Config: class HBVStateComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True IC: TimeSeriesSimpleType LZ: TimeSeriesSimpleType @@ -1400,7 +1248,6 @@ class Config: class HBVStateUpdateComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True IC: Optional[TimeSeriesSimpleType] = None LZ: Optional[TimeSeriesSimpleType] = Field( @@ -1423,7 +1270,6 @@ class Config: class HydraulicModelOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True nFun: TimeSeriesSimpleType = Field( ..., description='number of function evaluations' @@ -1439,7 +1285,6 @@ class Config: class HydraulicModelSequentialImplicitComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True convergenceThreshold: XsDouble theta: XsDouble @@ -1449,7 +1294,6 @@ class Config: class HydraulicModelSimultaneousComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True theta: XsDouble @@ -1457,7 +1301,6 @@ class Config: class InflowComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_factor: Optional[XsDouble] = None @@ -1465,7 +1308,6 @@ class Config: class InputATableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True valueSelection: Optional[TimeSeriesSimpleType] = None x: TimeSeriesSimpleType @@ -1474,7 +1316,6 @@ class Config: class InputCapillaryFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HDown: TimeSeriesSimpleType = Field( ..., description='downstream node, typically UZ unsaturted zone' @@ -1487,7 +1328,6 @@ class Config: class InputEvaporationActualStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True EI: Optional[TimeSeriesSimpleType] = None EP: TimeSeriesSimpleType @@ -1499,7 +1339,6 @@ class Config: class InputEvaporationInterceptionStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True EP: TimeSeriesSimpleType = Field(..., description='potential evaporation [mm]') HUp: TimeSeriesSimpleType = Field( @@ -1510,7 +1349,6 @@ class Config: class InputEvaporationPotentialComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True EPM: TimeSeriesSimpleType = Field( ..., description='monthly mean value of potential evaporation [mm/timestep]' @@ -1522,7 +1360,6 @@ class Config: class InputGroundwaterFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HDown: TimeSeriesSimpleType = Field( ..., description='downstream node, can be GW groundwater or SW surface water' @@ -1535,7 +1372,6 @@ class Config: class InputNodeStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True discharge: Optional[List[TimeSeriesSimpleType]] = None state: Optional[TimeSeriesSimpleType] = Field( @@ -1547,7 +1383,6 @@ class Config: class InputPercolationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HDown: Optional[TimeSeriesSimpleType] = Field( None, description='downstream node, typically LZ (lower zone storage)' @@ -1560,7 +1395,6 @@ class Config: class InputPidComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True disturbance: Optional[TimeSeriesSimpleType.Field8] = None setpointSeries: Optional[TimeSeriesSimpleType] = None @@ -1571,7 +1405,6 @@ class Config: class InputReleaseAboveThresholdStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HDown: Optional[TimeSeriesSimpleType] = Field(None, description='downstream node') HUp: TimeSeriesSimpleType = Field(..., description='upstream node') @@ -1580,7 +1413,6 @@ class Config: class InputReleaseTotalComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True discharge: List[TimeSeriesSimpleType] = Field(..., min_items=1) @@ -1588,7 +1420,6 @@ class Config: class InputResponseStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HUp: TimeSeriesSimpleType = Field( ..., @@ -1599,7 +1430,6 @@ class Config: class InputSnowRainJunctionComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True P: TimeSeriesSimpleType = Field(..., description='precipitation [mm/timestep]') T: TimeSeriesSimpleType = Field(..., description='temperature [oC]') @@ -1608,7 +1438,6 @@ class Config: class InputSoilRunoffStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HDown: Optional[TimeSeriesSimpleType] = Field( None, @@ -1623,7 +1452,6 @@ class Config: class InputWaterDistributionConstantStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HDown: Optional[TimeSeriesSimpleType] = Field( None, @@ -1638,7 +1466,6 @@ class Config: class InputWaterDistributionVariableStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True D: TimeSeriesSimpleType = Field( ..., @@ -1657,7 +1484,6 @@ class Config: class InterpolationOptionsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True date: InterpolationOptionEnumStringType value: InterpolationOptionEnumStringType @@ -1666,7 +1492,6 @@ class Config: class IntervalInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True setpoint: TimeSeriesSimpleType x: TimeSeriesSimpleType.Field9 = Field( @@ -1677,7 +1502,6 @@ class Config: class IntervalOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True status: TimeSeriesSimpleType y: TimeSeriesSimpleType @@ -1686,7 +1510,6 @@ class Config: class LevelStorageEquationComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True A0: XsDouble A1: XsDouble @@ -1698,7 +1521,6 @@ class Config: class LimiterInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True thresholdSeries: Optional[TimeSeriesSimpleType.Field21] = None thresholdValue: Optional[XsDouble] = None @@ -1708,7 +1530,6 @@ class Config: class Lookup2DTableInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType y: TimeSeriesSimpleType @@ -1718,7 +1539,6 @@ class Config: class Lookup2DTableOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True z: TimeSeriesSimpleType @@ -1726,7 +1546,6 @@ class Config: class LookupTableInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType.Field10 = Field( ..., description='reference to time series ID' @@ -1737,7 +1556,6 @@ class Config: class LookupTableOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: TimeSeriesSimpleType @@ -1745,7 +1563,6 @@ class Config: class LorentGeversInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True EP: TimeSeriesSimpleType P: TimeSeriesSimpleType @@ -1754,7 +1571,6 @@ class Config: class LorentGeversOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True Q: TimeSeriesSimpleType @@ -1762,7 +1578,6 @@ class Config: class LorentGeversStateComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True QB1: TimeSeriesSimpleType QB2: TimeSeriesSimpleType @@ -1774,7 +1589,6 @@ class Config: class LorentGeversStateUpdateComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True S: TimeSeriesSimpleType @@ -1782,7 +1596,6 @@ class Config: class MaxFlowsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_maxFlow_head01: XsDouble attr_maxFlow_head02: XsDouble @@ -1809,7 +1622,6 @@ class Config: class MergerInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: List[TimeSeriesSimpleType.Field11] = Field(..., min_items=1) @@ -1817,7 +1629,6 @@ class Config: class MergerOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: Optional[TimeSeriesSimpleType] = None ySum: Optional[TimeSeriesSimpleType] = None @@ -1826,7 +1637,6 @@ class Config: class MergerSplitterInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: Optional[List[TimeSeriesSimpleType.Field17]] = None xVector: Optional[TimeSeriesSimpleType.Field18] = None @@ -1835,7 +1645,6 @@ class Config: class MergerSplitterOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: Optional[List[TimeSeriesSimpleType.Field19]] = None @@ -1843,7 +1652,6 @@ class Config: class NeuronInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True external: Optional[List[xs_string.Field1]] = None internal: Optional[List[xs_string.Field2]] = None @@ -1852,7 +1660,6 @@ class Config: class NeuronOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType = Field(..., description='result of the transfer function') y: TimeSeriesSimpleType = Field( @@ -1864,7 +1671,6 @@ class Config: class NodeGradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True lambda_: TimeSeriesSimpleType = Field(..., alias='lambda') surfaceArea: TimeSeriesSimpleType @@ -1873,7 +1679,6 @@ class Config: class NodeInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HBC: Optional[TimeSeriesSimpleType] = Field( None, @@ -1888,7 +1693,6 @@ class Config: class NodeOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True H: TimeSeriesSimpleType R: Optional[TimeSeriesSimpleType] = None @@ -1898,7 +1702,6 @@ class Config: class NodeStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -1915,7 +1718,6 @@ class Config: class OrificeInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True D: Optional[TimeSeriesSimpleType] = Field(None, description='deprecated') DConst: Optional[XsDouble] = None @@ -1929,7 +1731,6 @@ class Config: class OrificeOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True D: TimeSeriesSimpleType Q: TimeSeriesSimpleType @@ -1939,7 +1740,6 @@ class Config: class OutletInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True relativeRelease: Optional[List[TimeSeriesSimpleType]] = None release: Optional[TimeSeriesSimpleType] = Field( @@ -1951,7 +1751,6 @@ class Config: class OutletOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True release: TimeSeriesSimpleType @@ -1959,7 +1758,6 @@ class Config: class OutputATableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: List[TimeSeriesSimpleType.Field1] = Field(..., min_items=1) @@ -1967,7 +1765,6 @@ class Config: class OutputEvaporationPotentialComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True EP: TimeSeriesSimpleType = Field( ..., description='instantaneous potential evaporation [mm/timestep]' @@ -1977,7 +1774,6 @@ class Config: class OutputLinkStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True H: TimeSeriesSimpleType = Field( ..., description='Discharge as unit volume [mm/timestep]' @@ -1988,7 +1784,6 @@ class Config: class OutputPidComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True differentialPart: TimeSeriesSimpleType = Field( ..., description='memory of differential part (in fact e of the last time step)' @@ -2002,7 +1797,6 @@ class Config: class OutputSnowRainJunctionComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True RF: TimeSeriesSimpleType = Field(..., description='rainfall [mm/timestep]') SF: TimeSeriesSimpleType = Field(..., description='snowfall [mm/timestep]') @@ -2011,7 +1805,6 @@ class Config: class OutputStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True nFun: TimeSeriesSimpleType = Field( ..., description='number of function evaluations' @@ -2027,7 +1820,6 @@ class Config: class PercolationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2039,7 +1831,6 @@ class Config: class PidComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2063,7 +1854,6 @@ class Config: class PolygonComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: Optional[XsString] = None edges: EdgesComplexType @@ -2073,7 +1863,6 @@ class Config: class PolygonLookupInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x1: TimeSeriesSimpleType.Field12 x2: TimeSeriesSimpleType.Field13 @@ -2082,7 +1871,6 @@ class Config: class PolygonLookupOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True status: TimeSeriesSimpleType @@ -2090,7 +1878,6 @@ class Config: class PolygonsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True polygon: List[PolygonComplexType] = Field(..., min_items=1) @@ -2098,7 +1885,6 @@ class Config: class PumpGradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True storageDown: TimeSeriesSimpleType storageUp: TimeSeriesSimpleType @@ -2107,7 +1893,6 @@ class Config: class PumpInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True HDown: TimeSeriesSimpleType HUp: TimeSeriesSimpleType @@ -2117,7 +1902,6 @@ class Config: class PumpOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True Q: TimeSeriesSimpleType @@ -2125,7 +1909,6 @@ class Config: class RelationalConditionComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True relationalOperator: RelationalOperatorEnumStringType x1Series: Optional[TimeSeriesSimpleType.Field22] = None @@ -2137,7 +1920,6 @@ class Config: class ReleaseTotalComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2148,7 +1930,6 @@ class Config: class ReservoirCompactInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True FB: TimeSeriesSimpleType = Field( ..., @@ -2210,7 +1991,6 @@ class Config: class ReservoirCompactOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True DQ: TimeSeriesSimpleType = Field( ..., description='deviation from spill target [m3/s] or [KCFS]' @@ -2258,7 +2038,6 @@ class Config: class ReservoirGradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True lambda_: TimeSeriesSimpleType = Field(..., alias='lambda') lambdaDown: Optional[TimeSeriesSimpleType] = None @@ -2267,7 +2046,6 @@ class Config: class ReservoirInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True evaporation: Optional[TimeSeriesSimpleType] = Field( None, description='Direct evaporation from the reservoir [mm/time step]' @@ -2286,7 +2064,6 @@ class Config: class ReservoirOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True error: Optional[TimeSeriesSimpleType] = Field( None, @@ -2312,7 +2089,6 @@ class Config: class ResponseStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2324,7 +2100,6 @@ class Config: class ResultComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True output: TimeSeriesSimpleType value: XsInteger @@ -2333,7 +2108,6 @@ class Config: class RiverWeirInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True CConst: Optional[XsDouble] = None CSeries: Optional[TimeSeriesSimpleType] = None @@ -2346,7 +2120,6 @@ class Config: class RiverWeirOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True C: TimeSeriesSimpleType Q: TimeSeriesSimpleType @@ -2356,7 +2129,6 @@ class Config: class RoutingOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True discharge: Optional[TimeSeriesSimpleType] = None error: Optional[TimeSeriesSimpleType] = None @@ -2365,7 +2137,6 @@ class Config: class RowComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_eta_head01: XsDouble attr_eta_head02: XsDouble @@ -2393,7 +2164,6 @@ class Config: class RuleStateTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2403,7 +2173,6 @@ class Config: class SRMInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True P: Optional[TimeSeriesSimpleType] = None P_Vector: Optional[TimeSeriesSimpleType] = Field(None, alias='P-Vector') @@ -2422,7 +2191,6 @@ class Config: class SRMOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True QRain_Vector: TimeSeriesSimpleType = Field(..., alias='QRain-Vector') QSnow_Vector: TimeSeriesSimpleType = Field(..., alias='QSnow-Vector') @@ -2432,7 +2200,6 @@ class Config: class SRMParameterZoneComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: Optional[XsString] = None Tcr1: ExternalParameterSimpleType = Field( @@ -2450,7 +2217,6 @@ class Config: class SRMStateComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True PStorage_Vector: TimeSeriesSimpleType = Field( ..., @@ -2463,7 +2229,6 @@ class Config: class SnowRainJunctionComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2475,7 +2240,6 @@ class Config: class SoilRunoffStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2487,7 +2251,6 @@ class Config: class SpreadsheetInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x1: TimeSeriesSimpleType.Field14 x2: TimeSeriesSimpleType.Field15 @@ -2497,7 +2260,6 @@ class Config: class SpreadsheetOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True status: TimeSeriesSimpleType @@ -2505,7 +2267,6 @@ class Config: class SpreadsheetRecordComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_x1: XsDouble attr_x2: XsDouble @@ -2516,7 +2277,6 @@ class Config: class SpreadsheetTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_initialState: Optional[XsDouble] = None record: List[SpreadsheetRecordComplexType] = Field(..., min_items=1) @@ -2525,7 +2285,6 @@ class Config: class SpreadsheetTablesComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True table: List[SpreadsheetTableComplexType] = Field(..., min_items=1) @@ -2533,7 +2292,6 @@ class Config: class StorageCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True maximumLevel: Optional[XsDouble] = Field( None, @@ -2550,7 +2308,6 @@ class Config: class StorageSystemSettingsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True acceptableConvergenceThreshold: Optional[XsDouble] = Field( None, @@ -2568,7 +2325,6 @@ class Config: class TableLookupTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True record: List[DateRecord2DataComplexType] = Field(..., min_items=1) @@ -2576,7 +2332,6 @@ class Config: class TailwaterEquationComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True A: ExternalParameterSimpleType B: ExternalParameterSimpleType @@ -2591,7 +2346,6 @@ class Config: class TailwaterOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True head: TimeSeriesSimpleType = Field(..., description='head [m]') level: TimeSeriesSimpleType = Field(..., description='tailwater level [m]') @@ -2600,7 +2354,6 @@ class Config: class TailwaterTidalEquationComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True A: ExternalParameterSimpleType QObs: TimeSeriesSimpleType @@ -2610,7 +2363,6 @@ class Config: class ThunerseeRuleInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True catchment: TimeSeriesSimpleType inflow: TimeSeriesSimpleType @@ -2620,7 +2372,6 @@ class Config: class ThunerseeRuleOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True active: Optional[TimeSeriesSimpleType] = None releaseTotal: TimeSeriesSimpleType @@ -2631,7 +2382,6 @@ class Config: class TimeAbsoluteInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True x: TimeSeriesSimpleType @@ -2639,7 +2389,6 @@ class Config: class TimeAbsoluteOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: TimeSeriesSimpleType @@ -2647,7 +2396,6 @@ class Config: class TimeRelativeControlTableRecordComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_time: XsDouble attr_value: XsDouble @@ -2656,7 +2404,6 @@ class Config: class TimeRelativeInputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True y: TimeSeriesSimpleType = Field( ..., @@ -2667,7 +2414,6 @@ class Config: class TimeRelativeOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True timeActive: TimeSeriesSimpleType y: TimeSeriesSimpleType @@ -2682,7 +2428,6 @@ class TimeStepComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_divider: Optional[XsPositiveInteger] = None attr_multiplier: Optional[XsPositiveInteger] = None @@ -2692,7 +2437,6 @@ class Config: class TriggerControllerComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True input: TimeSeriesSimpleType value: XsInteger @@ -2701,7 +2445,6 @@ class Config: class TurbineCapacityCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True capacityEquation: Optional[EquationsComplexType] = Field( None, @@ -2716,7 +2459,6 @@ class Config: class TurbineCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True efficiencyTable: ElevationTableComplexType = Field( ..., @@ -2728,7 +2470,6 @@ class Config: class TurbineEfficiencyCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True efficiencyConstant: Optional[XsDouble] = Field( None, @@ -2739,7 +2480,6 @@ class Config: class TurbineEfficiencyTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True columns: ColumnsComplexType = Field( ..., description='column Ids refering to the head [m] of each column' @@ -2753,7 +2493,6 @@ class Config: class TypicalProfileComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2764,7 +2503,6 @@ class Config: class UnitDelayComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2782,7 +2520,6 @@ class Config: class UnitHydrographWeightCustomComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True weight: List[XsDouble] = Field(..., min_items=1) @@ -2790,7 +2527,6 @@ class Config: class UnitHydrographWeightTriangularComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True factor: Optional[XsDouble] = Field( None, description='sum of all weight, if not equal to 1.0' @@ -2801,7 +2537,6 @@ class Config: class ValidPeriodComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True endDate: DateComplexType startDate: DateComplexType @@ -2810,7 +2545,6 @@ class Config: class ValidPeriodsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True validPeriod: Optional[List[ValidPeriodComplexType]] = None @@ -2818,7 +2552,6 @@ class Config: class ValueArrayComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True value: List[XsFloat] = Field(..., min_items=1) @@ -2826,7 +2559,6 @@ class Config: class YDimComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True yDim: List[XsFloat] = Field(..., min_items=1) @@ -2834,7 +2566,6 @@ class Config: class ZoneComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_max: Optional[TimeSeriesSimpleType] = None attr_min: Optional[TimeSeriesSimpleType] = None @@ -2844,7 +2575,6 @@ class Config: class ZonesComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True zone: List[ZoneComplexType] = Field(..., min_items=1) @@ -2852,7 +2582,6 @@ class Config: class EvaporationActualStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2864,7 +2593,6 @@ class Config: class EvaporationInterceptionStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2876,7 +2604,6 @@ class Config: class GroundwaterFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2888,7 +2615,6 @@ class Config: class IrrigationStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2906,7 +2632,6 @@ class Config: class MeltRefreezingStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2924,7 +2649,6 @@ class Config: class ReleaseAboveThresholdStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2936,7 +2660,6 @@ class Config: class ReleaseWaterContentStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2953,7 +2676,6 @@ class Config: class WaterDistributionConstantStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2965,7 +2687,6 @@ class Config: class WaterDistributionVariableStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2977,7 +2698,6 @@ class Config: class AccumulationComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -2989,7 +2709,6 @@ class Config: class AebiRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3002,7 +2721,6 @@ class Config: class AllocationTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3015,7 +2733,6 @@ class Config: class ArmaComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3029,7 +2746,6 @@ class Config: class CapacityCharacteristicsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_reference: Optional[CapacityReferenceEnumStringType] = None capacityEquation: Optional[EquationsComplexType] = None @@ -3039,7 +2755,6 @@ class Config: class CapillaryFlowStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3051,7 +2766,6 @@ class Config: class ConstantRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3062,7 +2776,6 @@ class Config: class ControlledOutletComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3080,7 +2793,6 @@ class Config: class CrossSectionComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True crossSectionTable: ElevationTableComplexType = Field( ..., description='Tabulated cross section, pairs of elevation h and width b ' @@ -3090,7 +2802,6 @@ class Config: class CrossSectionRoughnessComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True roughnessTable: ElevationTableComplexType = Field( ..., description='Pairs of elevation h and roughness C (according to Chezy)' @@ -3100,7 +2811,6 @@ class Config: class DateRecord2ComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_monthDay: XsGMonthDay record: List[DateRecord2DataComplexType] = Field(..., min_items=1) @@ -3109,7 +2819,6 @@ class Config: class DeadBandValueComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3120,7 +2829,6 @@ class Config: class EvaporationPotentialComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3132,7 +2840,6 @@ class Config: class GradientComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3146,7 +2853,6 @@ class Config: class GuideBandRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3163,7 +2869,6 @@ class Config: class HBVComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3182,7 +2887,6 @@ class Config: class IntervalComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3199,7 +2903,6 @@ class Config: class LimiterComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3210,7 +2913,6 @@ class Config: class LinkStorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True capillaryFlow: Optional[CapillaryFlowStorageSystemComplexType] = Field( None, @@ -3284,7 +2986,6 @@ class Config: class LookupTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3306,7 +3007,6 @@ class Config: class LorentGeversComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3321,7 +3021,6 @@ class Config: class MergerComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3332,7 +3031,6 @@ class Config: class MergerSplitterComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3344,7 +3042,6 @@ class Config: class MinSimpleRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3355,7 +3052,6 @@ class Config: class NeuronComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: NeuronIDSimpleType attr_name: Optional[XsString] = None @@ -3370,7 +3066,6 @@ class Config: class NodeComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_x: Optional[XsDouble] = None @@ -3386,7 +3081,6 @@ class Config: class OrificeComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True contractionCoefficient: XsDouble crestLevel: XsDouble @@ -3401,7 +3095,6 @@ class Config: class PumpComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True input: PumpInputComplexType output: PumpOutputComplexType @@ -3410,7 +3103,6 @@ class Config: class ReservoirCompactComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3471,7 +3163,6 @@ class Config: class ReservoirThunerseeRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True storageCharacteristics: StorageCharacteristicsComplexType @@ -3479,7 +3170,6 @@ class Config: class RiverWeirComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True exponentWeirFormula: Optional[XsDouble] = None flowDirection: Optional[FlowDirectionEnumStringType] = None @@ -3493,7 +3183,6 @@ class Config: class SRMComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3507,7 +3196,6 @@ class Config: class SimpleReservoirComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_multiplier: Optional[int] = Field(None, ge=1) capacityCharacteristics: CapacityCharacteristicsComplexType @@ -3517,7 +3205,6 @@ class Config: class StorageSystemComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3530,7 +3217,6 @@ class Config: class SubmodelComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True evaporationPotential: Optional[EvaporationPotentialComplexType] = Field( None, description='potential evaporation' @@ -3555,7 +3241,6 @@ class TailwaterComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True constant: Optional[XsDouble] = Field( None, description='Constant tailwater level [m]' @@ -3569,7 +3254,6 @@ class Config: class TimeAbsoluteComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3580,7 +3264,6 @@ class Config: class TimeRelativeControlTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True record: List[TimeRelativeControlTableRecordComplexType] = Field(..., min_items=1) @@ -3588,7 +3271,6 @@ class Config: class TunnelThunerseeRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True capacityCharacteristics: CapacityCharacteristicsComplexType levelThreshold: XsDouble @@ -3597,7 +3279,6 @@ class Config: class TurbineComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True capacityCharacteristics: TurbineCapacityCharacteristicsComplexType efficiencyCharacteristics: TurbineEfficiencyCharacteristicsComplexType @@ -3610,7 +3291,6 @@ class Config: class UncontrolledOutletComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3625,7 +3305,6 @@ class Config: class UnitHydrographWeightComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True custom: Optional[UnitHydrographWeightCustomComplexType] = Field( None, description='user-defined weights' @@ -3638,7 +3317,6 @@ class Config: class WeirThunerseeRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True capacityCharacteristics: CapacityCharacteristicsComplexType @@ -3646,7 +3324,6 @@ class Config: class XDimComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True xDim: List[YDimComplexType] = Field(..., min_items=1) @@ -3654,7 +3331,6 @@ class Config: class BranchComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString alpha1: Optional[XsDouble] = Field( @@ -3684,7 +3360,6 @@ class Config: class DateLookupTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3700,7 +3375,6 @@ class Config: class HydraulicStructureComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString orifice: Optional[OrificeComplexType] = Field( @@ -3715,7 +3389,6 @@ class Config: class HydrologicalModelComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3725,7 +3398,6 @@ class Config: class LayerComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: LayerIDSimpleType attr_name: Optional[XsString] = None @@ -3735,7 +3407,6 @@ class Config: class NeuralNetworkComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3745,7 +3416,6 @@ class Config: class ReservoirComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3772,7 +3442,6 @@ class Config: class ReservoirRoutingComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True simpleReservoir: List[SimpleReservoirComplexType] = Field(..., min_items=1) @@ -3780,7 +3449,6 @@ class Config: class RoutingComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3798,7 +3466,6 @@ class Config: class Table2DLookupTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True matrix: XDimComplexType x: ValueArrayComplexType @@ -3808,7 +3475,6 @@ class Config: class ThunerseeRuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3824,7 +3490,6 @@ class Config: class TimeRelativeComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3851,7 +3516,6 @@ class Config: class UnitHydrographComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3863,7 +3527,6 @@ class Config: class HydraulicModelComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3882,7 +3545,6 @@ class Config: class Lookup2DTableComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3894,7 +3556,6 @@ class Config: class ComponentComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_template: Optional[XsString] = None accumulation: Optional[AccumulationComplexType] = Field( @@ -3953,7 +3614,6 @@ class Config: class ComponentsComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True component: List[ComponentComplexType] = Field(..., min_items=1) @@ -3965,7 +3625,6 @@ class Model(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_xmlns_rtc: Optional[Any] = Field( 'http://www.wldelft.nl/fews', alias='attr_xmlns:rtc' @@ -3979,7 +3638,6 @@ class Config: class DeadBandTimeComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -3999,7 +3657,6 @@ class Config: class DeadBandTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -4020,7 +3677,6 @@ class Config: class PolygonLookupComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -4041,7 +3697,6 @@ class Config: class RtcToolsConfigComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True components: Optional[ComponentsComplexType] = Field( None, description='The components section includes all simulation components.' @@ -4063,7 +3718,6 @@ class Config: class RuleComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True constant: Optional[ConstantRuleComplexType] = Field( None, description='Simple rule with constant value' @@ -4120,7 +3774,6 @@ class Config: class RuleTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True trigger: Optional[List[TriggerComplexType]] = None @@ -4128,7 +3781,6 @@ class Config: class RulesComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True rule: List[RuleComplexType] = Field(..., min_items=1) @@ -4136,7 +3788,6 @@ class Config: class SetTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -4162,7 +3813,6 @@ class Config: class SpreadsheetComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -4198,7 +3848,6 @@ class Config: class StandardTriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True attr_id: XsString attr_name: Optional[XsString] = None @@ -4218,7 +3867,6 @@ class Config: class TriggerComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True deadBand: Optional[DeadBandTriggerComplexType] = Field( None, description='trigger with deadband' @@ -4250,7 +3898,6 @@ class Config: class TriggersComplexType(RtcBaseModel): class Config: extra = Extra.forbid - allow_population_by_field_name = True trigger: List[TriggerComplexType] = Field(..., min_items=1) From 48baac8d0f51ac84f24b3d6809ac981135d005af Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 16:10:29 +0200 Subject: [PATCH 16/22] #226: Add auto-generated file for rtcRuntimeConfig --- .../io/rtc/rtcRuntimeConfig/generated/_.py | 13 + .../rtcRuntimeConfig/generated/__init__.py | 1605 +++++++++++++++ .../generated/rtcRuntimeConfig.json | 1733 +++++++++++++++++ 3 files changed, 3351 insertions(+) create mode 100644 hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py create mode 100644 hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py create mode 100644 hydrolib/core/io/rtc/rtcRuntimeConfig/generated/rtcRuntimeConfig.json diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py new file mode 100644 index 000000000..e0e551040 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: rtcRuntimeConfig.json +# timestamp: 2022-09-27T14:08:30+00:00 + +from __future__ import annotations + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + +from . import RtcRuntimeConfigComplexType + + +class RtcRuntimeConfig(RtcBaseModel): + __root__: RtcRuntimeConfigComplexType diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py new file mode 100644 index 000000000..5f42d37cc --- /dev/null +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py @@ -0,0 +1,1605 @@ +# generated by datamodel-codegen: +# filename: rtcRuntimeConfig.json +# timestamp: 2022-09-27T14:08:30+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Extra, Field + +from . import _ + + +class AggregationTypeEnumStringType(str, Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class EnsembleModeEnumStringType(str, Enum): + JOINT = 'JOINT' + TREE = 'TREE' + INDEPENDENT = 'INDEPENDENT' + + +class ExternalBooleanSimpleTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') + + +class ExternalBooleanSimpleType(RtcBaseModel): + __root__: Union[bool, ExternalBooleanSimpleTypeItem] + + +class ExternalIntegerSimpleTypeItem(ExternalBooleanSimpleTypeItem): + pass + + +class ExternalIntegerSimpleType(RtcBaseModel): + __root__: Union[int, ExternalIntegerSimpleTypeItem] + + +class ExternalParameterSimpleTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([#-\\$][\\(-_a-z]+[#-\\$])$') + + +class ExternalParameterSimpleType(RtcBaseModel): + __root__: Union[float, ExternalParameterSimpleTypeItem] + + +class FunctionOutputEnumStringType(str, Enum): + NONE = 'NONE' + VALUE = 'VALUE' + DERIVATIVE = 'DERIVATIVE' + VALUE_DERIVATIVE = 'VALUE+DERIVATIVE' + + +class Algorithm(str, Enum): + ipopt = 'ipopt' + ipopth = 'ipopth' + conopt = 'conopt' + + +class GAMSComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + algorithm: Optional[Algorithm] = None + + +class AdaptiveMuGlobalization(str, Enum): + """ + Globalization strategy for the adaptive mu selection mode. +To achieve global convergence of the adaptive version, the algorithm has to switch to the monotone mode (Fiacco-McCormick approach) when convergence does not seem to appear. This option sets the criterion used to decide when to do this switch. (Only used if option "mu_strategy" is chosen as "adaptive".) The default value for this string option is "obj-constr-filter". +Possible values: +kkt-error: nonmonotone decrease of kkt-error +obj-constr-filter: 2-dim filter for objective and constraint violation +never-monotone-mode: disables globalization + """ + + kkt_error = 'kkt-error' + obj_constr_filter = 'obj-constr-filter' + never_monotone_mode = 'never-monotone-mode' + + +class FixedMuOracle(str, Enum): + """ + Oracle for the barrier parameter when switching to fixed mode. +Determines how the first value of the barrier parameter should be computed when switching to the "monotone mode" in the adaptive strategy. (Only considered if "adaptive" is selected for option "mu_strategy".) The default value for this string option is "average_compl". +Possible values: +probing: Mehrotra's probing heuristic +loqo: LOQO's centrality rule +quality-function: minimize a quality function +average_compl: base on current average complementarity + """ + + probing = 'probing' + loqo = 'loqo' + quality_function = 'quality-function' + average_compl = 'average_compl' + + +class MehrotraAlgorithm(str, Enum): + """ + Indicates if we want to do Mehrotra's algorithm. +If set to yes, Ipopt runs as Mehrotra's predictor-corrector algorithm. This works usually very well for LPs and convex QPs. This automatically disables the line search, and chooses the (unglobalized) adaptive mu strategy with the "probing" oracle, and uses "corrector_type=affine" without any safeguards; you should not set any of those options explicitly in addition. Also, unless otherwise specified, the values of "bound_push", "bound_frac", and "bound_mult_init_val" are set more aggressive, and sets "alpha_for_y=bound_mult". The default value for this string option is "no". +Possible values: +no: Do the usual Ipopt algorithm. +yes: Do Mehrotra's predictor-corrector algorithm. + """ + + no = 'no' + yes = 'yes' + + +class MuOracle(str, Enum): + """ + Oracle for a new barrier parameter in the adaptive strategy. +Determines how a new barrier parameter is computed in each "free-mode" iteration of the adaptive barrier parameter strategy. (Only considered if "adaptive" is selected for option "mu_strategy"). The default value for this string option is "quality-function". +Possible values: +probing: Mehrotra's probing heuristic +loqo: LOQO's centrality rule +quality-function: minimize a quality function + """ + + probing = 'probing' + loqo = 'loqo' + quality_function = 'quality-function' + + +class MuStrategy(str, Enum): + """ + Update strategy for barrier parameter. +Determines which barrier parameter update strategy is to be used. The default value for this string option is "monotone". +Possible values: +monotone: use the monotone (Fiacco-McCormick) strategy +adaptive: use the adaptive update strategy + """ + + monotone = 'monotone' + adaptive = 'adaptive' + + +class DerivativeTest(str, Enum): + """ + Enable derivative checker + """ + + none = 'none' + first_order = 'first-order' + + +class DerivativeTestPrintAll(str, Enum): + """ + Indicates whether information for all estimated derivatives should be + printed + """ + + yes = 'yes' + no = 'no' + + +class JacobianApproximation(str, Enum): + """ + Specifies technique to compute constraint Jacobian + """ + + exact = 'exact' + finite_difference_values = 'finite-difference-values' + + +class IPOPTDerivativeCheckerComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + derivative_test: Optional[DerivativeTest] = Field( + None, description='Enable derivative checker' + ) + derivative_test_perturbation: Optional[float] = Field( + None, + description='Size of the finite difference perturbation in derivative test', + gt=0.0, + ) + derivative_test_print_all: Optional[DerivativeTestPrintAll] = Field( + None, + description='Indicates whether information for all estimated derivatives should be\n printed', + ) + derivative_test_tol: Optional[float] = Field( + None, description='Threshold for indicating wrong derivative', gt=0.0 + ) + findiff_perturbation: Optional[float] = Field( + None, + description='Size of the finite difference perturbation for derivative approximation', + gt=0.0, + ) + jacobian_approximation: Optional[JacobianApproximation] = Field( + None, description='Specifies technique to compute constraint Jacobian' + ) + + +class BoundMultInitMethod(str, Enum): + """ + Initialization method for bound multipliers +This option defines how the iterates for the bound multipliers are initialized. If "constant" is chosen, then all bound multipliers are initialized to the value of "bound_mult_init_val". If "mu-based" is chosen, the each value is initialized to the the value of "mu_init" divided by the corresponding slack variable. This latter option might be useful if the starting point is close to the optimal solution. The default value for this string option is "constant". +Possible values: +constant: set all bound multipliers to the value of bound_mult_init_val +mu-based: initialize to mu_init/x_slack + """ + + constant = 'constant' + mu_based = 'mu-based' + + +class LinearSolver(str, Enum): + """ + Linear solver used for step computations + """ + + ma27 = 'ma27' + ma57 = 'ma57' + ma77 = 'ma77' + ma86 = 'ma86' + ma97 = 'ma97' + mumps = 'mumps' + pardiso = 'pardiso' + + +class LinearSystemScaling(str, Enum): + """ + Method for scaling the linear system. +Determines the method used to compute symmetric scaling factors for the augmented system (see also the "linear_scaling_on_demand" option). This scaling is independent of the NLP problem scaling. By default, MC19 is only used if MA27 or MA57 are selected as linear solvers. This value is only available if Ipopt has been compiled with MC19. The default value for this string option is "mc19". + """ + + none = 'none' + mc19 = 'mc19' + slack_based = 'slack-based' + + +class AlphaForY(str, Enum): + """ + Method to determine the step size for constraint multipliers. +This option determines how the step size (alpha_y) will be calculated when updating the constraint multipliers. The default value for this string option is "primal". +Possible values: +primal: use primal step size +bound-mult: use step size for the bound multipliers (good for LPs) +min: use the min of primal and bound multipliers +max: use the max of primal and bound multipliers +full: take a full step of size one +min-dual-infeas: choose step size minimizing new dual infeasibility +safer-min-dual-infeas: like "min_dual_infeas", but safeguarded by "min" and "max" +primal-and-full: use the primal step size, and full step if delta_x smaller or equal than alpha_for_y_tol +dual-and-full: use the dual step size, and full step if delta_x smaller or equal than alpha_for_y_tol +acceptor: Call LSAcceptor to get step size for y + """ + + primal = 'primal' + bound_mult = 'bound-mult' + min = 'min' + max = 'max' + full = 'full' + min_dual_infeas = 'min-dual-infeas' + safer_min_dual_infeas = 'safer-min-dual-infeas' + primal_and_full = 'primal-and-full' + dual_and_full = 'dual-and-full' + acceptor = 'acceptor' + + +class FixedVariableTreatment(str, Enum): + """ + Determines how fixed variables should be handled + """ + + make_parameter = 'make_parameter' + make_constraint = 'make_constraint' + relax_bounds = 'relax_bounds' + + +class IPOPTNLPComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + bound_relax_factor: Optional[float] = Field( + None, description='Factor for initial relaxation of the bounds', ge=0.0 + ) + check_derivatives_for_naninf: Optional[DerivativeTestPrintAll] = Field( + None, + description='Indicates whether it is desired to check for Nan/Inf in derivative matrices [no/yes]', + ) + fixed_variable_treatment: Optional[FixedVariableTreatment] = Field( + None, description='Determines how fixed variables should be handled' + ) + honor_original_bounds: Optional[DerivativeTestPrintAll] = Field( + None, + description='Indicates whether final points should be projected into original bounds [no/yes]', + ) + jac_c_constant: Optional[DerivativeTestPrintAll] = Field( + None, + description='Indicates whether all equality constraints are linear [no/yes]', + ) + jac_d_constant: Optional[DerivativeTestPrintAll] = Field( + None, + description='Indicates whether all inequality constraints are linear [no/yes]', + ) + + +class NlpScalingMethod(str, Enum): + """ + Select the technique used for scaling the NLP + """ + + none = 'none' + user_scaling = 'user-scaling' + gradient_based = 'gradient-based' + + +class IPOPTNLPScalingComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + nlp_scaling_max_gradient: Optional[float] = Field( + None, description='Maximum gradient after NLP scaling', gt=0.0 + ) + nlp_scaling_method: Optional[NlpScalingMethod] = Field( + None, description='Select the technique used for scaling the NLP' + ) + nlp_scaling_min_value: Optional[float] = Field( + None, description='Maximum gradient after NLP scaling', ge=0.0 + ) + obj_scaling_factor: Optional[ExternalParameterSimpleType] = Field( + None, description='Scaling factor for the objective function' + ) + + +class IPOPTOutputComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + file_print_level: Optional[int] = Field( + None, + description='Verbosity level for output file 0-12 NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12', + ge=0, + le=12, + ) + print_level: Optional[int] = Field( + None, + description='Output verbosity level 0-12, NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12', + ge=0, + le=12, + ) + print_options_documentation: Optional[DerivativeTestPrintAll] = Field( + None, description='Switch to print all algorithmic options [no/yes]' + ) + print_timing_statistics: Optional[DerivativeTestPrintAll] = Field( + None, description='Switch to print timing statistics [no/yes]' + ) + print_user_options: Optional[DerivativeTestPrintAll] = Field( + None, description='Print all options set by the user [no/yes]' + ) + + +class IPOPTQuasiNewtonComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + limited_memory_max_history: Optional[ExternalIntegerSimpleType] = Field( + None, + description='Maximum size of the history for the limited quasi-Newton Hessian\napproximation', + ) + limited_memory_max_skipping: Optional[ExternalIntegerSimpleType] = Field( + None, description='Threshold for successive iterations where update is skipped' + ) + + +class IPOPTTerminationComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + acceptable_compl_inf_tol: Optional[ExternalParameterSimpleType] = Field( + None, description='"Acceptance" threshold for the complementarity conditions' + ) + acceptable_constr_viol_tol: Optional[ExternalParameterSimpleType] = Field( + None, description='"Acceptance" threshold for the constraint violation' + ) + acceptable_dual_inf_tol: Optional[ExternalParameterSimpleType] = Field( + None, description='"Acceptance" threshold for the dual infeasibility' + ) + acceptable_iter: Optional[ExternalIntegerSimpleType] = Field( + None, + description='Number of "acceptable" iterates before triggering termination', + ) + acceptable_obj_change_tol: Optional[ExternalParameterSimpleType] = Field( + None, + description='"Acceptance" stopping criterion based on objective function change', + ) + acceptable_tol: Optional[ExternalParameterSimpleType] = Field( + None, description='"Acceptable" convergence tolerance (relative)' + ) + compl_inf_tol: Optional[ExternalParameterSimpleType] = Field( + None, description='Desired threshold for the complementarity conditions' + ) + constr_viol_tol: Optional[ExternalParameterSimpleType] = Field( + None, description='Desired threshold for the constraint violation' + ) + diverging_iterates_tol: Optional[ExternalParameterSimpleType] = Field( + None, description='Threshold for maximal value of primal iterates' + ) + dual_inf_tol: Optional[ExternalParameterSimpleType] = Field( + None, description='Desired threshold for the dual infeasibility' + ) + max_cpu_time: Optional[ExternalParameterSimpleType] = Field( + None, description='Maximum number of CPU seconds' + ) + max_iter: Optional[ExternalIntegerSimpleType] = Field( + None, description='Maximum number of iterations' + ) + tol: Optional[ExternalParameterSimpleType] = Field( + None, description='Desired convergence tolerance (relative)' + ) + treat_unsuccess_as_error: Optional[ExternalBooleanSimpleType] = Field( + None, description='Other return codes than SUCESS are treated as error message' + ) + + +class ReportConstraintViolation(RtcBaseModel): + """ + report constraint violation in diagnostics + """ + + class Config: + extra = Extra.forbid + + attr_level: Optional[ExternalIntegerSimpleType] = None + + +class LoggingComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + constraintViolationTolerance: Optional[ExternalParameterSimpleType] = Field( + None, + description='tolerance for scaled constraints for which a constraint violation is detected', + ) + eventCode: Optional[ExternalBooleanSimpleType] = None + flushing: ExternalBooleanSimpleType = Field( + ..., + description='set flushing of the diagnostics file after each new message (=true) or at the end of the program execution (=false)', + ) + logLevel: ExternalIntegerSimpleType = Field( + ..., + description='definition of the logging level, 0 = fatal error, 1 = error, 2 = warning, 3 = info, 4 = debug messages', + ) + outputConstraints: Optional[FunctionOutputEnumStringType] = None + outputObjectiveFunction: Optional[FunctionOutputEnumStringType] = None + reportConstraintViolation: Optional[ReportConstraintViolation] = Field( + None, description='report constraint violation in diagnostics' + ) + + +class Ma77Order(str, Enum): + """ + Controls type of ordering used by HSL_MA77 +This option controls ordering for the solver HSL_MA77. The default value for this string option is "metis". +Possible values: +amd: Use the HSL_MC68 approximate minimum degree algorithm +metis: Use the MeTiS nested dissection algorithm (if available) + """ + + amd = 'amd' + metis = 'metis' + + +class Ma86Order(str, Enum): + """ + CControls type of ordering used by HSL_MA86 +This option controls ordering for the solver HSL_MA86. The default value for this string option is "auto". +Possible values: +auto: Try both AMD and MeTiS, pick best +amd: Use the HSL_MC68 approximate minimum degree algorithm +metis: Use the MeTiS nested dissection algorithm (if available) + """ + + auto = 'auto' + amd = 'amd' + metis = 'metis' + + +class Ma86Scaling(str, Enum): + """ + Controls scaling of matrix +This option controls scaling for the solver HSL_MA86. The default value for this string option is "mc64". +Possible values: +none: Do not scale the linear system matrix +mc64: Scale linear system matrix using MC64 +mc77: Scale linear system matrix using MC77 [1,3,0] + """ + + mone = 'mone' + mc64 = 'mc64' + mc77 = 'mc77' + + +class Ma97Order(str, Enum): + """ + Controls type of ordering used by HSL_MA97 +The default value for this string option is "auto". +Possible values: +auto: Use HSL_MA97 heuristic to guess best of AMD and METIS +best: Try both AMD and MeTiS, pick best +amd: Use the HSL_MC68 approximate minimum degree algorithm +metis: Use the MeTiS nested dissection algorithm +matched-auto: Use the HSL_MC80 matching with heuristic choice of AMD or METIS +matched-metis: Use the HSL_MC80 matching based ordering with METIS +matched-amd: Use the HSL_MC80 matching based ordering with AMD + """ + + auto = 'auto' + best = 'best' + amd = 'amd' + metis = 'metis' + matched_auto = 'matched-auto' + matched_metis = 'matched-metis' + matched_amd = 'matched-amd' + + +class Ma97Scaling(str, Enum): + """ + Specifies strategy for scaling in HSL_MA97 linear solver +The default value for this string option is "dynamic". +Possible values: +none: Do not scale the linear system matrix +mc30: Scale all linear system matrices using MC30 +mc64: Scale all linear system matrices using MC64 +mc77: Scale all linear system matrices using MC77 [1,3,0] +dynamic: Dynamically select scaling according to rules specified by ma97_scalingX and ma97_switchX options. + """ + + none = 'none' + mc30 = 'mc30' + mc64 = 'mc64' + mc77 = 'mc77' + dynamic = 'dynamic' + + +class Ma97Scaling1(str, Enum): + """ + First scaling. +If ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch1. If ma97_switch2 is triggered it is disabled. The default value for this string option is "mc64". +Possible values: +none: No scaling +mc30: Scale linear system matrix using MC30 +mc64: Scale linear system matrix using MC64 +mc77: Scale linear system matrix using MC77 [1,3,0] + """ + + none = 'none' + mc30 = 'mc30' + mc64 = 'mc64' + mc77 = 'mc77' + + +class Ma97Switch1(str, Enum): + """ + First switch, determine when ma97_scaling1 is enabled. +If ma97_scaling=dynamic, ma97_scaling1 is enabled according to this condition. If ma97_switch2 occurs this option is henceforth ignored. The default value for this string option is "od_hd_reuse". +Possible values: +never: Scaling is never enabled. +at_start: Scaling to be used from the very start. +at_start_reuse: Scaling to be used on first iteration, then reused thereafter. +on_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed). +on_demand_reuse: As on_demand, but reuse scaling from previous itr +high_delay: Scaling to be used after more than 0.05*n delays are present +high_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr +od_hd: Combination of on_demand and high_delay +od_hd_reuse: Combination of on_demand_reuse and high_delay_reuse + """ + + never = 'never' + at_start = 'at_start' + at_start_reuse = 'at_start_reuse' + on_demand = 'on_demand' + on_demand_reuse = 'on_demand_reuse' + high_delay = 'high_delay' + high_delay_reuse = 'high_delay_reuse' + od_hd = 'od_hd' + od_hd_reuse = 'od_hd_reuse' + + +class OptimizerModeEnumStringType(str, Enum): + SEQUENTIAL = 'SEQUENTIAL' + PARALLEL = 'PARALLEL' + + +class ParallelModeEnumStringType(str, Enum): + NONE = 'NONE' + ENSEMBLE = 'ENSEMBLE' + INTERNAL = 'INTERNAL' + ENSEMBLE_INTERNAL = 'ENSEMBLE+INTERNAL' + + +class ParameterFilePrefixEnumStringType(str, Enum): + NONE = 'NONE' + LOCATIONID = 'LOCATIONID' + + +class ParameterFileTypeEnumStringType(str, Enum): + TREEVECTOR = 'TREEVECTOR' + PIMODELPARAMETERS = 'PIMODELPARAMETERS' + + +class PardisoMatchingStrategy(str, Enum): + """ + Matching strategy to be used by Pardiso +This is IPAR(13) in Pardiso manual. The default value for this string option is "complete+2x2". +Possible values: +complete: Match complete (IPAR(13)=1) +complete+2x2: Match complete+2x2 (IPAR(13)=2) +constraints: Match constraints (IPAR(13)=3) + """ + + complete = 'complete' + complete_2x2 = 'complete+2x2' + constraints = 'constraints' + + +class PardisoOrder(str, Enum): + """ + Controls the fill-in reduction ordering algorithm for the input matrix. +The default value for this string option is "five". +Possible values: +amd: minimum degree algorithm +one: undocumented +metis: MeTiS nested dissection algorithm +pmetis: parallel (OpenMP) version of MeTiS nested dissection algorithm +four: undocumented +five: undocumented + """ + + amd = 'amd' + one = 'one' + metis = 'metis' + pmetis = 'pmetis' + four = 'four' + five = 'five' + + +class PeriodEnumStringType(str, Enum): + COMPLETE = 'COMPLETE' + UPDATE = 'UPDATE' + FORECAST = 'FORECAST' + + +class TimeSeriesSimpleType(RtcBaseModel): + __root__: str = Field(..., min_length=1) + + +class TimeZoneSimpleType(RtcBaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + ) + + +class VariableTypeEnumStringType(str, Enum): + CONTINUOUS = 'CONTINUOUS' + INTEGER = 'INTEGER' + TIMEINSTANCE = 'TIMEINSTANCE' + + +class DateType(RtcBaseModel): + __root__: str = Field( + ..., regex='^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$' + ) + + +class TimeSeriesType(str, Enum): + """ + Type of data, either accumulative or instantaneous. + For accumulative data the time/date of the event is + the moment at which the data was gathered. + + """ + + accumulative = 'accumulative' + instantaneous = 'instantaneous' + + +class TimeStepUnitEnumStringType(str, Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + + +class TimeType(RtcBaseModel): + __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') + + +class XsBoolean(RtcBaseModel): + __root__: bool + + +class XsDouble(RtcBaseModel): + __root__: float + + +class XsInt(RtcBaseModel): + __root__: int = Field(..., ge=-2147483648, le=2147483647) + + +class XsInteger(RtcBaseModel): + __root__: int + + +class XsPositiveInteger(RtcBaseModel): + __root__: int = Field(..., ge=1) + + +class XsString(RtcBaseModel): + __root__: str + + +class DateTimeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_date: DateType + attr_time: TimeType + + +class FileDataComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_name: XsString + + +class FileObjectiveComplexType(FileDataComplexType): + pass + + +class FileParameterComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_name: XsString + attr_prefix: Optional[ParameterFilePrefixEnumStringType] = None + attr_type: ParameterFileTypeEnumStringType + + +class FileScenarioTreeComplexType(FileDataComplexType): + pass + + +class FileToolsComplexType(FileDataComplexType): + pass + + +class IPOPTBarrierParameterComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + adaptive_mu_globalization: Optional[AdaptiveMuGlobalization] = Field( + None, + description='Globalization strategy for the adaptive mu selection mode. \nTo achieve global convergence of the adaptive version, the algorithm has to switch to the monotone mode (Fiacco-McCormick approach) when convergence does not seem to appear. This option sets the criterion used to decide when to do this switch. (Only used if option "mu_strategy" is chosen as "adaptive".) The default value for this string option is "obj-constr-filter". \nPossible values:\nkkt-error: nonmonotone decrease of kkt-error\nobj-constr-filter: 2-dim filter for objective and constraint violation\nnever-monotone-mode: disables globalization', + ) + barrier_tol_factor: Optional[XsDouble] = Field( + None, + description='Factor for mu in barrier stop test. \nThe convergence tolerance for each barrier problem in the monotone mode is the value of the barrier parameter times "barrier_tol_factor". This option is also used in the adaptive mu strategy during the monotone mode. (This is kappa_epsilon in implementation paper). The valid range for this real option is [0, inf]and its default value is 10.', + ) + fixed_mu_oracle: Optional[FixedMuOracle] = Field( + None, + description='Oracle for the barrier parameter when switching to fixed mode. \nDetermines how the first value of the barrier parameter should be computed when switching to the "monotone mode" in the adaptive strategy. (Only considered if "adaptive" is selected for option "mu_strategy".) The default value for this string option is "average_compl". \nPossible values:\nprobing: Mehrotra\'s probing heuristic\nloqo: LOQO\'s centrality rule\nquality-function: minimize a quality function\naverage_compl: base on current average complementarity', + ) + mehrotra_algorithm: Optional[MehrotraAlgorithm] = Field( + None, + description='Indicates if we want to do Mehrotra\'s algorithm. \nIf set to yes, Ipopt runs as Mehrotra\'s predictor-corrector algorithm. This works usually very well for LPs and convex QPs. This automatically disables the line search, and chooses the (unglobalized) adaptive mu strategy with the "probing" oracle, and uses "corrector_type=affine" without any safeguards; you should not set any of those options explicitly in addition. Also, unless otherwise specified, the values of "bound_push", "bound_frac", and "bound_mult_init_val" are set more aggressive, and sets "alpha_for_y=bound_mult". The default value for this string option is "no". \nPossible values:\nno: Do the usual Ipopt algorithm.\nyes: Do Mehrotra\'s predictor-corrector algorithm.', + ) + mu_init: Optional[XsDouble] = Field( + None, + description='Initial value for the barrier parameter. \nThis option determines the initial value for the barrier parameter (mu). It is only relevant in the monotone, Fiacco-McCormick version of the algorithm. (i.e., if "mu_strategy" is chosen as "monotone") The valid range for this real option is [0,inf] and its default value is0.1..', + ) + mu_linear_decrease_factor: Optional[XsDouble] = Field( + None, + description='Determines linear decrease rate of barrier parameter. \nFor the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*"mu_linear_decrease_factor" and mu"superlinear_decrease_power". (This is kappa_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is[0,1] and its default value is 0.2', + ) + mu_max: Optional[XsDouble] = Field( + None, + description='Maximum value for barrier parameter. \nThis option specifies an upper bound on the barrier parameter in the adaptive mu selection mode. If this option is set, it overwrites the effect of mu_max_fact. (Only used if option "mu_strategy" is chosen as "adaptive".) The valid range for this real option is [0, inf] and its default value is 100000.', + ) + mu_max_fact: Optional[XsDouble] = Field( + None, + description='Factor for initialization of maximum value for barrier parameter. \nThis option determines the upper bound on the barrier parameter. This upper bound is computed as the average complementarity at the initial point times the value of this option. (Only used if option "mu_strategy" is chosen as "adaptive".) The valid range for this real option is [0, inf] and its default value is 1000.', + ) + mu_min: Optional[XsDouble] = Field( + None, + description='Minimum value for barrier parameter. \nThis option specifies the lower bound on the barrier parameter in the adaptive mu selection mode. By default, it is set to the minimum of 1e-11 and min("tol","compl_inf_tol")/("barrier_tol_factor"+1), which should be a reasonable value. (Only used if option "mu_strategy" is chosen as "adaptive".) The valid range for this real option is [0, inf] and its default value is 1e-11.', + ) + mu_oracle: Optional[MuOracle] = Field( + None, + description='Oracle for a new barrier parameter in the adaptive strategy. \nDetermines how a new barrier parameter is computed in each "free-mode" iteration of the adaptive barrier parameter strategy. (Only considered if "adaptive" is selected for option "mu_strategy"). The default value for this string option is "quality-function". \nPossible values:\nprobing: Mehrotra\'s probing heuristic\nloqo: LOQO\'s centrality rule\nquality-function: minimize a quality function', + ) + mu_strategy: Optional[MuStrategy] = Field( + None, + description='Update strategy for barrier parameter. \nDetermines which barrier parameter update strategy is to be used. The default value for this string option is "monotone". \nPossible values:\nmonotone: use the monotone (Fiacco-McCormick) strategy\nadaptive: use the adaptive update strategy', + ) + mu_superlinear_decrease_power: Optional[XsDouble] = Field( + None, + description='Determines superlinear decrease rate of barrier parameter. \nFor the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*"mu_linear_decrease_factor" and mu"superlinear_decrease_power". (This is theta_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is [1,2] and its default value is 1.5.', + ) + mu_target: Optional[XsDouble] = Field( + None, + description='Desired value of complementarity. \nUsually, the barrier parameter is driven to zero and the termination test for complementarity is measured with respect to zero complementarity. However, in some cases it might be desired to have Ipopt solve barrier problem for strictly positive value of the barrier parameter. In this case, the value of "mu_target" specifies the final value of the barrier parameter, and the termination tests are then defined with respect to the barrier problem for this value of the barrier parameter. The valid range for this real option is [0, inf] and its default value is 0.', + ) + quality_function_max_section_steps: Optional[XsInt] = Field( + None, + description='Maximum number of search steps during direct search procedure determining the optimal centering parameter. \nThe golden section search is performed for the quality function based mu oracle. (Only used if option "mu_oracle" is set to "quality-function".) The valid range for this integer option is [0, inf] and its default value is 8.', + ) + + +class IPOPTHessianPermutationComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + first_hessian_perturbation: Optional[XsDouble] = Field( + None, + description='Size of first x-s perturbation tried. \nThe first value tried for the x-s perturbation in the inertia correction scheme.(This is delta_0 in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e4.', + ) + jacobian_regularization_value: Optional[XsDouble] = Field( + None, + description='Size of the regularization for rank-deficient constraint Jacobians. \n(This is bar delta_c in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e-8. .', + ) + max_hessian_perturbation: Optional[XsDouble] = Field( + None, + description='This parameter gives the maximum value of the regularization parameter. If a regularization of that size is not enough, the algorithm skips this iteration and goes to the restoration phase. (This is delta_wmax in the implementation paper.) The valid range for this real option is [0,+inf] and its default value is 1e+20.', + ) + min_hessian_perturbation: Optional[XsDouble] = Field( + None, + description='Smallest perturbation of the Hessian block. \nThe size of the perturbation of the Hessian block is never selected smaller than this value, unless no perturbation is necessary. (This is delta_wmin in implementation paper.) The valid range for this real option is [0, +inf] and its default value is 1e-20', + ) + perturb_dec_fact: Optional[XsDouble] = Field( + None, + description='Decrease factor for x-s perturbation. \nThe factor by which the perturbation is decreased when a trial value is deduced from the size of the most recent successful perturbation. (This is kappa_w- in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.333333.', + ) + perturb_inc_fact: Optional[XsDouble] = Field( + None, + description='Increase factor for x-s perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of all perturbations except for the first. (This is kappa_w+ in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 8.', + ) + perturb_inc_fact_first: Optional[XsDouble] = Field( + None, + description='Increase factor for x-s perturbation for very first perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of the very first perturbation and allows a different value for for the first perturbation than that used for the remaining perturbations. (This is bar_kappa_w+ in the implementation paper.) The valid range for this real option is [1,inf] and its default value is100.', + ) + + +class IPOPTInitializationComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + bound_frac: Optional[XsDouble] = Field( + None, + description='Desired minimum relative distance from the initial point to bound. \nDetermines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with "bound_push"). (This is kappa_2 in Section 3.6 of implementation paper.) The valid range for this real option is [0, 0.5]and its default value is 0.01..', + ) + bound_mult_init_method: Optional[BoundMultInitMethod] = Field( + None, + description='Initialization method for bound multipliers \nThis option defines how the iterates for the bound multipliers are initialized. If "constant" is chosen, then all bound multipliers are initialized to the value of "bound_mult_init_val". If "mu-based" is chosen, the each value is initialized to the the value of "mu_init" divided by the corresponding slack variable. This latter option might be useful if the starting point is close to the optimal solution. The default value for this string option is "constant". \nPossible values:\nconstant: set all bound multipliers to the value of bound_mult_init_val\nmu-based: initialize to mu_init/x_slack', + ) + bound_mult_init_val: Optional[XsDouble] = Field( + None, + description='Initial value for the bound multipliers. \nAll dual variables corresponding to bound constraints are initialized to this value. The valid range for this real option is [0, inf] and its default value is 1.', + ) + bound_push: Optional[XsDouble] = Field( + None, + description='Desired minimum absolute distance from the initial point to bound. \nDetermines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with "bound_frac"). (This is kappa_1 in Section 3.6 of implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.01.', + ) + constr_mult_init_max: Optional[XsDouble] = Field( + None, + description='Maximum allowed least-square guess of constraint multipliers. \nDetermines how large the initial least-square guesses of the constraint multipliers are allowed to be (in max-norm). If the guess is larger than this value, it is discarded and all constraint multipliers are set to zero. This options is also used when initializing the restoration phase. By default, "resto.constr_mult_init_max" (the one used in RestoIterateInitializer) is set to zero. The valid range for this real option is [0, inf] and its default value is 1000.', + ) + slack_bound_frac: Optional[XsDouble] = Field( + None, + description='Desired minimum relative distance from the initial slack to bound. \nDetermines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with "slack_bound_push"). (This is kappa_2 in Section 3.6 of implementation paper.) The valid range for this real option is [0, 0.5] and its default value is 0.01.', + ) + slack_bound_push: Optional[XsDouble] = Field( + None, + description='Desired minimum absolute distance from the initial slack to bound. \nDetermines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with "slack_bound_frac"). (This is kappa_1 in Section 3.6 of implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.01.', + ) + + +class IPOPTLineSearchComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + accept_every_trial_step: Optional[MehrotraAlgorithm] = Field( + None, + description='Always accept the first trial step. \nSetting this option to "yes" essentially disables the line search and makes the algorithm take aggressive steps, without global convergence guarantees. The default value for this string option is "no". \nPossible values:\nno: don\'t arbitrarily accept the full step\nyes: always accept the full step', + ) + max_soc: Optional[XsInt] = Field( + None, + description='Maximum number of second order correction trial steps at each iteration. \nChoosing 0 disables the second order corrections. (This is pmax of Step A-5.9 of Algorithm A in the implementation paper.) The valid range for this integer option is [0, inf] and its default value is 4 .', + ) + watchdog_shortened_iter_trigger: Optional[XsInt] = Field( + None, + description='Number of shortened iterations that trigger the watchdog. \nIf the number of successive iterations in which the backtracking line search did not accept the first trial point exceeds this number, the watchdog procedure is activated. Choosing "0" here disables the watchdog procedure. The valid range for this integer option is [0,inf] and its default value is 10.', + ) + watchdog_trial_iter_max: Optional[XsInt] = Field( + None, + description='Maximum number of watchdog iterations. \nThis option determines the number of trial iterations allowed before the watchdog procedure is aborted and the algorithm returns to the stored point. The valid range for this integer option is [1, inf] and its default value is 3. ', + ) + + +class IPOPTMultiplierUpdatesComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + alpha_for_y: Optional[AlphaForY] = Field( + None, + description='Method to determine the step size for constraint multipliers. \nThis option determines how the step size (alpha_y) will be calculated when updating the constraint multipliers. The default value for this string option is "primal". \nPossible values:\nprimal: use primal step size\nbound-mult: use step size for the bound multipliers (good for LPs)\nmin: use the min of primal and bound multipliers\nmax: use the max of primal and bound multipliers\nfull: take a full step of size one\nmin-dual-infeas: choose step size minimizing new dual infeasibility\nsafer-min-dual-infeas: like "min_dual_infeas", but safeguarded by "min" and "max"\nprimal-and-full: use the primal step size, and full step if delta_x smaller or equal than alpha_for_y_tol\ndual-and-full: use the dual step size, and full step if delta_x smaller or equal than alpha_for_y_tol\nacceptor: Call LSAcceptor to get step size for y', + ) + alpha_for_y_tol: Optional[XsDouble] = Field( + None, + description='Tolerance for switching to full equality multiplier steps. \nThis is only relevant if "alpha_for_y" is chosen "primal-and-full" or "dual-and-full". The step size for the equality constraint multipliers is taken to be one if the max-norm of the primal step is less than this tolerance. The valid range for this real option is [0, inf] and its default value is 10.', + ) + recalc_y: Optional[MehrotraAlgorithm] = Field( + None, + description='Tells the algorithm to recalculate the equality and inequality multipliers as least square estimates. \nThis asks the algorithm to recompute the multipliers, whenever the current infeasibility is less than recalc_y_feas_tol. Choosing yes might be helpful in the quasi-Newton option. However, each recalculation requires an extra factorization of the linear system. If a limited memory quasi-Newton option is chosen, this is used by default. The default value for this string option is "no". \nPossible values:\nno: use the Newton step to update the multipliers\nyes: use least-square multiplier estimates', + ) + recalc_y_feas_tol: Optional[XsDouble] = Field( + None, + description='Feasibility threshold for recomputation of multipliers. \nIf recalc_y is chosen and the current infeasibility is less than this value, then the multipliers are recomputed. The valid range for this real option is [0, inf] and its default value is 1e-6.', + ) + + +class IPOPTRestorationPhaseComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + bound_mult_reset_threshold: Optional[XsDouble] = Field( + None, + description='Threshold for resetting bound multipliers after the restoration phase. \nAfter returning from the restoration phase, the bound multipliers are updated with a Newton step for complementarity. Here, the change in the primal variables during the entire restoration phase is taken to be the corresponding primal Newton step. However, if after the update the largest bound multiplier exceeds the threshold specified by this option, the multipliers are all reset to 1. The valid range for this real option is [0, inf] and its default value is 1000 .', + ) + constr_mult_reset_threshold: Optional[XsDouble] = Field( + None, + description='Threshold for resetting equality and inequality multipliers after restoration phase. \nAfter returning from the restoration phase, the constraint multipliers are recomputed by a least square estimate. This option triggers when those least-square estimates should be ignored. The valid range for this real option is [0, inf] and its default value is 0 .', + ) + evaluate_orig_obj_at_resto_trial: Optional[MehrotraAlgorithm] = Field( + None, + description='Determines if the original objective function should be evaluated at restoration phase trial points. \nSetting this option to "yes" makes the restoration phase algorithm evaluate the objective function of the original problem at every trial point encountered during the restoration phase, even if this value is not required. In this way, it is guaranteed that the original objective function can be evaluated without error at all accepted iterates; otherwise the algorithm might fail at a point where the restoration phase accepts an iterate that is good for the restoration phase problem, but not the original problem. On the other hand, if the evaluation of the original objective is expensive, this might be costly. The default value for this string option is "yes". \nPossible values:\nno: skip evaluation\nyes: evaluate at every trial point', + ) + expect_infeasible_problem: Optional[MehrotraAlgorithm] = Field( + None, + description='Enable heuristics to quickly detect an infeasible problem. \nThis options is meant to activate heuristics that may speed up the infeasibility determination if you expect that there is a good chance for the problem to be infeasible. In the filter line search procedure, the restoration phase is called more quickly than usually, and more reduction in the constraint violation is enforced before the restoration phase is left. If the problem is square, this option is enabled automatically. The default value for this string option is "no". \nPossible values:\nno: the problem probably be feasible\nyes: the problem has a good chance to be infeasible', + ) + expect_infeasible_problem_ctol: Optional[XsDouble] = Field( + None, + description='Threshold for disabling "expect_infeasible_problem" option. \nIf the constraint violation becomes smaller than this threshold, the "expect_infeasible_problem" heuristics in the filter line search are disabled. If the problem is square, this options is set to 0. The valid range for this real option is [0, inf] and its default value is 0.001.', + ) + expect_infeasible_problem_ytol: Optional[XsDouble] = Field( + None, + description='Multiplier threshold for activating "expect_infeasible_problem" option. \nIf the max norm of the constraint multipliers becomes larger than this value and "expect_infeasible_problem" is chosen, then the restoration phase is entered. The valid range for this real option is [0, inf] and its default value is 1e8.', + ) + required_infeasibility_reduction: Optional[XsDouble] = Field( + None, + description='Required reduction of infeasibility before leaving restoration phase. \nThe restoration phase algorithm is performed, until a point is found that is acceptable to the filter and the infeasibility has been reduced by at least the fraction given by this option. The valid range for this real option is [0, inf] and its default value is 0.9 .', + ) + soft_resto_pderror_reduction_factor: Optional[XsDouble] = Field( + None, + description='Required reduction in primal-dual error in the soft restoration phase. \nThe soft restoration phase attempts to reduce the primal-dual error with regular steps. If the damped primal-dual step (damped only to satisfy the fraction-to-the-boundary rule) is not decreasing the primal-dual error by at least this factor, then the regular restoration phase is called. Choosing "0" here disables the soft restoration phase. The valid range for this real option is [0, inf] and its default value is 0.9999 .', + ) + start_with_resto: Optional[MehrotraAlgorithm] = Field( + None, + description='Tells algorithm to switch to restoration phase in first iteration. \nSetting this option to "yes" forces the algorithm to switch to the feasibility restoration phase in the first iteration. If the initial point is feasible, the algorithm will abort with a failure. The default value for this string option is "no". \nPossible values:\nno: don\'t force start in restoration phase\nyes: force start in restoration phase', + ) + + +class IPOPTWarmStartComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + warm_start_bound_frac: Optional[XsDouble] = Field( + None, + description='same as bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001.', + ) + warm_start_bound_push: Optional[XsDouble] = Field( + None, + description='same as bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', + ) + warm_start_init_point: Optional[MehrotraAlgorithm] = Field( + None, + description='Warm-start for initial point \nIndicates whether this optimization should use a warm start initialization, where values of primal and dual variables are given (e.g., from a previous optimization of a related problem.) The default value for this string option is "no". \nPossible values:\nno: do not use the warm start initialization\nyes: use the warm start initialization', + ) + warm_start_mult_bound_push: Optional[XsDouble] = Field( + None, + description='same as mult_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', + ) + warm_start_mult_init_max: Optional[XsDouble] = Field( + None, + description='Maximum initial value for the equality multipliers. \nThe valid range for this real option is [-inf, +inf] and its default value is 1e6.', + ) + warm_start_slack_bound_frac: Optional[XsDouble] = Field( + None, + description='same as slack_bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001.', + ) + warm_start_slack_bound_push: Optional[XsDouble] = Field( + None, + description='same as slack_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', + ) + + +class MA27ComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + ma27_la_init_factor: Optional[XsDouble] = Field( + None, + description='Real workspace memory for MA27. \nThe initial real workspace memory = la_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5.', + ) + ma27_liw_init_factor: Optional[XsDouble] = Field( + None, + description='Integer workspace memory for MA27. \nThe initial integer workspace memory = liw_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5.', + ) + ma27_meminc_factor: Optional[XsDouble] = Field( + None, + description='Increment factor for workspace size for MA27. \nIf the integer or real workspace is not large enough, Ipopt will increase its size by this factor. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 2.', + ) + ma27_pivtol: Optional[XsDouble] = Field( + None, + description='Pivot tolerance for the linear solver MA27. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 1e-8.', + ) + ma27_pivtolmax: Optional[XsDouble] = Field( + None, + description='Maximum pivot tolerance for the linear solver MA27. \nIpopt may increase pivtol as high as ma27_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 0.0001.', + ) + + +class MA57ComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + ma57_automatic_scaling: Optional[DerivativeTestPrintAll] = Field( + None, + description='Controls MA57 automatic scaling \nThis option controls the internal scaling option of MA57. For higher reliability of the MA57 solver, you may want to set this option to yes. This is ICNTL(15) in MA57. The default value for this string option is "no". \nPossible values:\nno: Do not scale the linear system matrix\nyes: Scale the linear system matrix', + ) + ma57_block_size: Optional[XsInt] = Field( + None, + description='Controls block size used by Level 3 BLAS in MA57BD \nThis is ICNTL(11) in MA57. The valid range for this integer option is [1, inf] and its default value is 16. .', + ) + ma57_node_amalgamation: Optional[XsInt] = Field( + None, + description='Node amalgamation parameter \nThis is ICNTL(12) in MA57. The valid range for this integer option is [1, inf] and its default value is 16.', + ) + ma57_pivot_order: Optional[XsInt] = Field( + None, + description='Controls pivot order in MA57 \nThis is ICNTL(6) in MA57. The valid range for this integer option is [0,5] and its default value is 5.', + ) + ma57_pivtol: Optional[XsDouble] = Field( + None, + description='Pivot tolerance for the linear solver MA57. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 1e-8.', + ) + ma57_pivtolmax: Optional[XsDouble] = Field( + None, + description='Maximum pivot tolerance for the linear solver MA57. \nIpopt may increase pivtol as high as ma57_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 0.0001.', + ) + ma57_pre_alloc: Optional[XsDouble] = Field( + None, + description='Safety factor for work space memory allocation for the linear solver MA57. \nIf 1 is chosen, the suggested amount of work space is used. However, choosing a larger number might avoid reallocation if the suggest values do not suffice. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [1, inf] and its default value is 1.05.', + ) + ma57_small_pivot_flag: Optional[XsInt] = Field( + None, + description='If set to 1, then when small entries defined by CNTL(2) are detected they are removed and the corresponding pivots placed at the end of the factorization. This can be particularly efficient if the matrix is highly rank deficient. \nThis is ICNTL(16) in MA57. The valid range for this integer option is [0,1] and its default value is 0.', + ) + + +class MA77ComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + ma77_buffer_lpage: Optional[XsInt] = Field( + None, + description='Number of scalars per MA77 buffer page \nNumber of scalars per an in-core buffer in the out-of-core solver MA77. Must be at most ma77_file_size. The valid range for this integer option is [1, inf] and its default value is 4096.', + ) + ma77_buffer_npage: Optional[XsInt] = Field( + None, + description='Number of pages that make up MA77 buffer \nNumber of pages of size buffer_lpage that exist in-core for the out-of-core solver MA77. The valid range for this integer option is [1, inf] and its default value is 1600.', + ) + ma77_file_size: Optional[XsInt] = Field( + None, + description='Target size of each temporary file for MA77, scalars per type \nMA77 uses many temporary files, this option controls the size of each one. It is measured in the number of entries (int or double), NOT bytes. The valid range for this integer option is [1, inf] and its default value is 2097152.', + ) + ma77_maxstore: Optional[XsInt] = Field( + None, + description='Maximum storage size for MA77 in-core mode \nIf greater than zero, the maximum size of factors stored in core before out-of-core mode is invoked. The valid range for this integer option is [0, inf] and its default value is 0', + ) + ma77_nemin: Optional[XsInt] = Field( + None, + description='Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma77_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8.', + ) + ma77_order: Optional[Ma77Order] = Field( + None, + description='Controls type of ordering used by HSL_MA77 \nThis option controls ordering for the solver HSL_MA77. The default value for this string option is "metis". \nPossible values:\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm (if available)', + ) + ma77_print_level: Optional[XsInt] = Field( + None, + description='Debug printing level for the linear solver MA77 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1.', + ) + ma77_small: Optional[XsDouble] = Field( + None, + description='Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', + ) + ma77_static: Optional[XsDouble] = Field( + None, + description='Static Pivoting Threshold \nSee MA77 documentation. Either ma77_static=0.0 or ma77_static>ma77_small. ma77_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 .', + ) + ma77_u: Optional[XsDouble] = Field( + None, + description='Pivoting Threshold \nSee MA77 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.', + ) + ma77_umax: Optional[XsDouble] = Field( + None, + description='Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5]and its default value is 0.0001.', + ) + + +class MA86ComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + ma86_nemin: Optional[XsInt] = Field( + None, + description='Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma86_nemin variables. The valid range for this integer option is [1, inf] and its default value is 32.', + ) + ma86_order: Optional[Ma86Order] = Field( + None, + description='CControls type of ordering used by HSL_MA86 \nThis option controls ordering for the solver HSL_MA86. The default value for this string option is "auto". \nPossible values:\nauto: Try both AMD and MeTiS, pick best\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm (if available)', + ) + ma86_print_level: Optional[XsInt] = Field( + None, + description='Debug printing level for the linear solver ma86 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1.', + ) + ma86_scaling: Optional[Ma86Scaling] = Field( + None, + description='Controls scaling of matrix \nThis option controls scaling for the solver HSL_MA86. The default value for this string option is "mc64". \nPossible values:\nnone: Do not scale the linear system matrix\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', + ) + ma86_small: Optional[XsDouble] = Field( + None, + description='Zero Pivot Threshold \nAny pivot less than ma86_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', + ) + ma86_static: Optional[XsDouble] = Field( + None, + description='Static Pivoting Threshold \nSee ma86 documentation. Either ma86_static=0.0 or ma86_static>ma86_small. ma86_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 .', + ) + ma86_u: Optional[XsDouble] = Field( + None, + description='Pivoting Threshold \nSee ma86 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.', + ) + ma86_umax: Optional[XsDouble] = Field( + None, + description='Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5] and its default value is 0.0001.', + ) + + +class MA97ComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + ma97_nemin: Optional[XsInt] = Field( + None, + description='Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma97_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8.', + ) + ma97_order: Optional[Ma97Order] = Field( + None, + description='Controls type of ordering used by HSL_MA97 \nThe default value for this string option is "auto". \nPossible values:\nauto: Use HSL_MA97 heuristic to guess best of AMD and METIS\nbest: Try both AMD and MeTiS, pick best\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm\nmatched-auto: Use the HSL_MC80 matching with heuristic choice of AMD or METIS\nmatched-metis: Use the HSL_MC80 matching based ordering with METIS\nmatched-amd: Use the HSL_MC80 matching based ordering with AMD', + ) + ma97_print_level: Optional[XsInt] = Field( + None, + description='Debug printing level for the linear solver MA97 \nThe valid range for this integer option is [-inf, +inf] and its default value is 0.', + ) + ma97_scaling: Optional[Ma97Scaling] = Field( + None, + description='Specifies strategy for scaling in HSL_MA97 linear solver \nThe default value for this string option is "dynamic". \nPossible values:\nnone: Do not scale the linear system matrix\nmc30: Scale all linear system matrices using MC30\nmc64: Scale all linear system matrices using MC64\nmc77: Scale all linear system matrices using MC77 [1,3,0]\ndynamic: Dynamically select scaling according to rules specified by ma97_scalingX and ma97_switchX options.', + ) + ma97_scaling1: Optional[Ma97Scaling1] = Field( + None, + description='First scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch1. If ma97_switch2 is triggered it is disabled. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', + ) + ma97_scaling2: Optional[Ma97Scaling1] = Field( + None, + description='Second scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch2. If ma97_switch3 is triggered it is disabled. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', + ) + ma97_scaling3: Optional[Ma97Scaling1] = Field( + None, + description='Third scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch3. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', + ) + ma97_small: Optional[XsDouble] = Field( + None, + description='Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', + ) + ma97_solve_blas3: Optional[MehrotraAlgorithm] = Field( + None, + description='Controls if blas2 or blas3 routines are used for solve \nThe default value for this string option is "no". \nPossible values:\nno: Use BLAS2 (faster, some implementations bit incompatible)\nyes: Use BLAS3 (slower)', + ) + ma97_switch1: Optional[Ma97Switch1] = Field( + None, + description='First switch, determine when ma97_scaling1 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling1 is enabled according to this condition. If ma97_switch2 occurs this option is henceforth ignored. The default value for this string option is "od_hd_reuse". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', + ) + ma97_switch2: Optional[Ma97Switch1] = Field( + None, + description='Second switch, determine when ma97_scaling2 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling2 is enabled according to this condition. If ma97_switch3 occurs this option is henceforth ignored. The default value for this string option is "never". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', + ) + ma97_switch3: Optional[Ma97Switch1] = Field( + None, + description='Third switch, determine when ma97_scaling3 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling3 is enabled according to this condition. The default value for this string option is "never". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', + ) + ma97_u: Optional[XsDouble] = Field( + None, + description='Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8.', + ) + ma97_umax: Optional[XsDouble] = Field( + None, + description='Maximum Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 0.0001.', + ) + + +class MUMPSComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + mumps_mem_percent: Optional[XsInt] = Field( + None, + description='Percentage increase in the estimated working space for MUMPS. \nIn MUMPS when significant extra fill-in is caused by numerical pivoting, larger values of mumps_mem_percent may help use the workspace more efficiently. On the other hand, if memory requirement are too large at the very beginning of the optimization, choosing a much smaller value for this option, such as 5, might reduce memory requirements. The valid range for this integer option is [0, inf] and its default value is 1000.', + ) + mumps_permuting_scaling: Optional[XsInt] = Field( + None, + description='Controls permuting and scaling in MUMPS \nThis is ICNTL(6) in MUMPS. The valid range for this integer option is [0,7] and its default value is 7.', + ) + mumps_pivot_order: Optional[XsInt] = Field( + None, + description='Controls pivot order in MUMPS \nThis is ICNTL(7) in MUMPS. The valid range for this integer option is [0, 7] and its default value is 7.', + ) + mumps_pivtol: Optional[XsDouble] = Field( + None, + description='Pivot tolerance for the linear solver MUMPS. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 1e-6.', + ) + mumps_pivtolmax: Optional[XsDouble] = Field( + None, + description='Maximum pivot tolerance for the linear solver MUMPS. \nIpopt may increase pivtol as high as pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 0.1', + ) + mumps_scaling: Optional[XsInt] = Field( + None, + description='Controls scaling in MUMPS \nThis is ICNTL(8) in MUMPS. The valid range for this integer option is [-2,77] and its default value is 77.', + ) + + +class ModeSimulationComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + executeConstraints: Optional[XsBoolean] = None + executeObjectiveFunction: Optional[XsBoolean] = None + limitedMemory: Optional[XsBoolean] = Field( + None, description='limited-memory option for time series matrix' + ) + period: Optional[PeriodEnumStringType] = None + + +class PIInputRuntimeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + file: XsString + numberEnsembles: Optional[XsInt] = Field( + None, + description='optional number of ensemble, if not provides one ensemble member is assumed', + ) + + +class ParallelizationComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + constraints: Optional[ParallelModeEnumStringType] = None + nThread: Optional[XsInt] = None + simulation: Optional[ParallelModeEnumStringType] = None + + +class PardisoComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + pardiso_matching_strategy: Optional[PardisoMatchingStrategy] = Field( + None, + description='Matching strategy to be used by Pardiso \nThis is IPAR(13) in Pardiso manual. The default value for this string option is "complete+2x2". \nPossible values:\ncomplete: Match complete (IPAR(13)=1)\ncomplete+2x2: Match complete+2x2 (IPAR(13)=2)\nconstraints: Match constraints (IPAR(13)=3)', + ) + pardiso_max_iterative_refinement_steps: Optional[XsInt] = Field( + None, + description='Limit on number of iterative refinement steps. \nThe solver does not perform more than the absolute value of this value steps of iterative refinement and stops the process if a satisfactory level of accuracy of the solution in terms of backward error is achieved. If negative, the accumulation of the residue uses extended precision real and complex data types. Perturbed pivots result in iterative refinement. The solver automatically performs two steps of iterative refinements when perturbed pivots are obtained during the numerical factorization and this option is set to 0. The valid range for this integer option is [-inf, inf] and its default value is 0 .', + ) + pardiso_msglvl: Optional[XsInt] = Field( + None, + description='Pardiso message level \nThis determines the amount of analysis output from the Pardiso solver. This is MSGLVL in the Pardiso manual. The valid range for this integer option is [0, inf] and its default value is 0 .', + ) + pardiso_order: Optional[PardisoOrder] = Field( + None, + description='Controls the fill-in reduction ordering algorithm for the input matrix. \nThe default value for this string option is "five". \nPossible values:\namd: minimum degree algorithm\none: undocumented\nmetis: MeTiS nested dissection algorithm\npmetis: parallel (OpenMP) version of MeTiS nested dissection algorithm\nfour: undocumented\nfive: undocumented', + ) + + +class SAComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + dels: Optional[ExternalParameterSimpleType] = Field(None, description='???') + ftoll: Optional[ExternalParameterSimpleType] = Field(None, description='???') + max_cpu_time: Optional[ExternalParameterSimpleType] = Field( + None, description='maximum cpu time for executing the optimization' + ) + max_iter: Optional[XsInteger] = Field( + None, description='Maximum number of iterations' + ) + + +class TimeStepComplexType(RtcBaseModel): + """ + The timeunit element has three attributes, unit and devider and multiplier. + the unit is second, minute, hour, week, month year. + The divider attribute is optional (default = 1). + """ + + class Config: + extra = Extra.forbid + + attr_divider: Optional[XsPositiveInteger] = None + attr_multiplier: Optional[XsPositiveInteger] = None + attr_unit: TimeStepUnitEnumStringType + + +class UserDefinedRuntimeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + endDate: DateTimeComplexType = Field( + ..., description='End date and time of the simulation.' + ) + forecastDate: Optional[DateTimeComplexType] = Field( + None, description='Forecast date and time of the simulation.' + ) + numberEnsembles: Optional[XsInt] = Field( + None, + description='Optional number of ensemble of the simulation. If not provided, one ensemble member is assumed.', + ) + startDate: DateTimeComplexType = Field( + ..., description='Start date and time of the similation.' + ) + timeStep: TimeStepComplexType = Field( + ..., + description='Time step of the simulation (till now, the model supports only equidistant time steps)', + ) + + +class UserDefinedStateExportComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + endDate: DateTimeComplexType = Field( + ..., description='End date and time for exporting state files.' + ) + startDate: DateTimeComplexType = Field( + ..., description='Start date and time for exporting state files.' + ) + stateTimeStep: Optional[XsDouble] = Field( + None, description='Step in seconds for exporting state files' + ) + + +class FileComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + rtcDataConfig: FileDataComplexType = Field( + ..., description='File with the time series model definition' + ) + rtcObjectiveConfig: Optional[FileObjectiveComplexType] = Field( + None, + description='Optional file with the definition of an optimization problem including optimization variables, constraints and objective function terms', + ) + rtcParameterConfig: Optional[List[FileParameterComplexType]] = None + rtcScenarioTreeConfig: Optional[FileScenarioTreeComplexType] = Field( + None, + description='Optional file with the definition of a scenario tree for the control trajectory in case of multi-stage stochastic optimization problems', + ) + rtcToolsConfig: FileToolsComplexType = Field( + ..., + description='File with the schematization of the process model, i.e. the model of the water resources systems', + ) + + +class IPOPTLinearSolverComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + linear_scaling_on_demand: Optional[DerivativeTestPrintAll] = Field( + None, + description='Flag indicating that linear scaling is only done if it seems required. \nThis option is only important if a linear scaling method (e.g., mc19) is used. If you choose "no", then the scaling factors are computed for every linear system from the start. This can be quite expensive. Choosing "yes" means that the algorithm will start the scaling method only when the solutions to the linear system seem not good, and then use it until the end. The default value for this string option is "yes". ', + ) + linear_solver: Optional[LinearSolver] = Field( + None, description='Linear solver used for step computations' + ) + linear_system_scaling: Optional[LinearSystemScaling] = Field( + None, + description='Method for scaling the linear system. \nDetermines the method used to compute symmetric scaling factors for the augmented system (see also the "linear_scaling_on_demand" option). This scaling is independent of the NLP problem scaling. By default, MC19 is only used if MA27 or MA57 are selected as linear solvers. This value is only available if Ipopt has been compiled with MC19. The default value for this string option is "mc19". ', + ) + ma27: Optional[MA27ComplexType] = None + ma57: Optional[MA57ComplexType] = None + ma77: Optional[MA77ComplexType] = None + ma86: Optional[MA86ComplexType] = None + ma97: Optional[MA97ComplexType] = None + max_refinement_steps: Optional[XsInt] = Field( + None, + description='Maximum number of iterative refinement steps per linear system solve. \nIterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the maximum number of iterative refinements (i.e. at least "min_refinement_steps" iterative refinement steps are enforced per right hand side.) The valid range for this integer option is [0,+inf] and its default value is 1.\n\t\t\t\t ', + ) + min_refinement_steps: Optional[XsInt] = Field( + None, + description='Minimum number of iterative refinement steps per linear system solve. \nIterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the minimum number of iterative refinements (i.e. at least "min_refinement_steps" iterative refinement steps are enforced per right hand side.) The valid range for this integer option is [0,+inf] and its default value is 10.\n\t\t\t\t ', + ) + mumps: Optional[MUMPSComplexType] = None + pardiso: Optional[PardisoComplexType] = None + + +class PIRunFileRuntimeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + file: XsString + numberEnsembles: Optional[XsInt] = Field( + None, + description='optional number of ensemble, if not provides one ensemble member is assumed', + ) + timeStep: TimeStepComplexType = Field( + ..., + description='Time step of the simulation (till now, the model supports only equidistant time steps)', + ) + + +class PeriodComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + PIInput: Optional[PIInputRuntimeComplexType] = Field( + None, + description='The execution period is defined by the first time series of the referred PI-XML file.', + ) + PIRunFile: Optional[PIRunFileRuntimeComplexType] = Field( + None, description='The execution period is defined in the PI-XML run file.' + ) + userDefined: Optional[UserDefinedRuntimeComplexType] = Field( + None, + description='The execution period is user-defined by start and end time, time step and optionally the number of ensembles.', + ) + + +class IPOPTComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + barrierParameter: IPOPTBarrierParameterComplexType + derivativeChecker: IPOPTDerivativeCheckerComplexType = Field( + ..., description='Optional derivative checker' + ) + hessianPermutation: IPOPTHessianPermutationComplexType = Field( + ..., description='Optional hessian settings' + ) + initialization: IPOPTInitializationComplexType + lineSearch: IPOPTLineSearchComplexType + linearSolver: IPOPTLinearSolverComplexType = Field( + ..., + description='Settings and selection of the integrated linear equation solver ', + ) + multiplierUpdates: IPOPTMultiplierUpdatesComplexType + nlp: IPOPTNLPComplexType = Field( + ..., description='Settings of the nonlinear optimizer' + ) + nlpScaling: IPOPTNLPScalingComplexType = Field( + ..., description='Scaling options for the optimization problem' + ) + output: IPOPTOutputComplexType = Field(..., description='Output options') + quasiNewton: IPOPTQuasiNewtonComplexType + restorationPhase: IPOPTRestorationPhaseComplexType + termination: IPOPTTerminationComplexType = Field( + ..., description='Termination criteria' + ) + warmStart: IPOPTWarmStartComplexType + + +class OptimizerComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + GAMS: Optional[GAMSComplexType] = Field( + None, + description='This option generates a GAMS optimization problem with an external model in RTC-Tools. Note that you need to run the optimization in GAMS after executing the stand alone RTC-Tools.', + ) + IPOPT: Optional[IPOPTComplexType] = Field( + None, + description='Optimization by the IPOPT optimizer, check also the related documentation on the COIN-OR website', + ) + SA: Optional[SAComplexType] = Field( + None, + description='Optimization by a simulated annealing optimizer (NOT FULLY IMPLEMENTED right now)', + ) + + +class ModeOptimizationComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + optimizer: Optional[List[OptimizerComplexType]] = None + optimizerMode: Optional[OptimizerModeEnumStringType] = Field( + None, + description='Mode for defining more robust hybrid optimizer settings for running optimizations sequentially (optimimum of the first is input for the next) or parallel (independent optimization, best one is returned), STILL NOT IMPLEMENTED', + ) + period: Optional[PeriodEnumStringType] = None + + +class ModeClosedLoopComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + forecastHorizon: XsInteger = Field( + ..., + description='Number of time steps of forecasts in the predictive control mode', + ) + optimization: ModeOptimizationComplexType + recedingHorizon: XsInteger = Field( + ..., description='Number of time steps after which the optimization is repeated' + ) + + +class ModeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + closedLoop: Optional[ModeClosedLoopComplexType] = Field( + None, + description='Closed loop mode with an alternating switch between simulation and optimization', + ) + firstOrderSensitivity: Optional[XsString] = Field( + None, + description='Calculation of first-order model sensitivities of an objective function value with respect to inputs, states and outputs (requires the definition of an objective function in the rtcObjectiveConfig.xml)', + ) + optimization: Optional[ModeOptimizationComplexType] = Field( + None, + description='Optimization mode (requires the definition of an optimization problem in the rtcObjectiveConfig.xml)', + ) + postprocessing: Optional[XsString] = None + simulation: Optional[ModeSimulationComplexType] = Field( + None, description='Simulation mode (default)' + ) + + +class ModesComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + mode: List[ModeComplexType] = Field(..., min_items=1) + + +class RtcRuntimeConfigComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + files: Optional[FileComplexType] = Field( + None, + description='Optional provision of input files, if provided ALL relevant input files needs to be defined, if not, the program will check for files with default naming in the current working folder', + ) + logging: Optional[LoggingComplexType] = Field(None, description='Logging') + mode: Optional[ModeComplexType] = Field( + None, + description='Optional definition of the execution mode of the application, default = simulation if not provided', + ) + modes: Optional[ModesComplexType] = None + parallelization: Optional[ParallelizationComplexType] = Field( + None, description='Optional parallelization settings' + ) + period: PeriodComplexType = Field( + ..., description='Execution period of the simulation or optimization' + ) + stateFiles: Optional[UserDefinedStateExportComplexType] = Field( + None, description='Optional definition for saving periodic state files' + ) + + +class Model(RtcBaseModel): + """ + JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com) + """ + + class Config: + extra = Extra.forbid + + attr_xmlns_rtc: Optional[Any] = Field( + 'http://www.wldelft.nl/fews', alias='attr_xmlns:rtc' + ) + attr_xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' + ) + rtcRuntimeConfig: Optional[_.RtcRuntimeConfig] = None diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/rtcRuntimeConfig.json b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/rtcRuntimeConfig.json new file mode 100644 index 000000000..f9ea394e6 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/rtcRuntimeConfig.json @@ -0,0 +1,1733 @@ +{ + "$schema": "http://json-schema.org/schema#", + "additionalProperties": false, + "definitions": { + ".rtcRuntimeConfig": { + "$ref": "#/definitions/RtcRuntimeConfigComplexType" + }, + "AggregationTypeEnumStringType": { + "enum": [ + "BLOCK", + "LINEAR" + ], + "type": "string" + }, + "DateTimeComplexType": { + "additionalProperties": false, + "properties": { + "attr_date": { + "$ref": "#/definitions/dateType" + }, + "attr_time": { + "$ref": "#/definitions/timeType" + } + }, + "required": [ + "attr_date", + "attr_time" + ], + "type": "object" + }, + "EnsembleModeEnumStringType": { + "enum": [ + "JOINT", + "TREE", + "INDEPENDENT" + ], + "type": "string" + }, + "ExternalBooleanSimpleType": { + "anyOf": [ + { + "type": "boolean" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "ExternalIntegerSimpleType": { + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "ExternalParameterSimpleType": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^([#-\\$][\\(-_a-z]+[#-\\$])$", + "type": "string" + } + ] + }, + "FileComplexType": { + "additionalProperties": false, + "properties": { + "rtcDataConfig": { + "$ref": "#/definitions/FileDataComplexType", + "description": "File with the time series model definition" + }, + "rtcObjectiveConfig": { + "$ref": "#/definitions/FileObjectiveComplexType", + "description": "Optional file with the definition of an optimization problem including optimization variables, constraints and objective function terms" + }, + "rtcParameterConfig": { + "items": { + "$ref": "#/definitions/FileParameterComplexType", + "description": "Optional file with externalized (scalar) parameters" + }, + "type": "array" + }, + "rtcScenarioTreeConfig": { + "$ref": "#/definitions/FileScenarioTreeComplexType", + "description": "Optional file with the definition of a scenario tree for the control trajectory in case of multi-stage stochastic optimization problems" + }, + "rtcToolsConfig": { + "$ref": "#/definitions/FileToolsComplexType", + "description": "File with the schematization of the process model, i.e. the model of the water resources systems" + } + }, + "required": [ + "rtcDataConfig", + "rtcToolsConfig" + ], + "type": "object" + }, + "FileDataComplexType": { + "additionalProperties": false, + "properties": { + "attr_name": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_name" + ], + "type": "object" + }, + "FileObjectiveComplexType": { + "additionalProperties": false, + "properties": { + "attr_name": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_name" + ], + "type": "object" + }, + "FileParameterComplexType": { + "additionalProperties": false, + "properties": { + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "attr_prefix": { + "$ref": "#/definitions/ParameterFilePrefixEnumStringType" + }, + "attr_type": { + "$ref": "#/definitions/ParameterFileTypeEnumStringType" + } + }, + "required": [ + "attr_name", + "attr_type" + ], + "type": "object" + }, + "FileScenarioTreeComplexType": { + "additionalProperties": false, + "properties": { + "attr_name": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_name" + ], + "type": "object" + }, + "FileToolsComplexType": { + "additionalProperties": false, + "properties": { + "attr_name": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_name" + ], + "type": "object" + }, + "FunctionOutputEnumStringType": { + "enum": [ + "NONE", + "VALUE", + "DERIVATIVE", + "VALUE+DERIVATIVE" + ], + "type": "string" + }, + "GAMSComplexType": { + "additionalProperties": false, + "properties": { + "algorithm": { + "enum": [ + "ipopt", + "ipopth", + "conopt" + ], + "type": "string" + } + }, + "type": "object" + }, + "IPOPTBarrierParameterComplexType": { + "additionalProperties": false, + "properties": { + "adaptive_mu_globalization": { + "description": "Globalization strategy for the adaptive mu selection mode. \nTo achieve global convergence of the adaptive version, the algorithm has to switch to the monotone mode (Fiacco-McCormick approach) when convergence does not seem to appear. This option sets the criterion used to decide when to do this switch. (Only used if option \"mu_strategy\" is chosen as \"adaptive\".) The default value for this string option is \"obj-constr-filter\". \nPossible values:\nkkt-error: nonmonotone decrease of kkt-error\nobj-constr-filter: 2-dim filter for objective and constraint violation\nnever-monotone-mode: disables globalization", + "enum": [ + "kkt-error", + "obj-constr-filter", + "never-monotone-mode" + ], + "type": "string" + }, + "barrier_tol_factor": { + "$ref": "#/definitions/xs:double", + "description": "Factor for mu in barrier stop test. \nThe convergence tolerance for each barrier problem in the monotone mode is the value of the barrier parameter times \"barrier_tol_factor\". This option is also used in the adaptive mu strategy during the monotone mode. (This is kappa_epsilon in implementation paper). The valid range for this real option is [0, inf]and its default value is 10." + }, + "fixed_mu_oracle": { + "description": "Oracle for the barrier parameter when switching to fixed mode. \nDetermines how the first value of the barrier parameter should be computed when switching to the \"monotone mode\" in the adaptive strategy. (Only considered if \"adaptive\" is selected for option \"mu_strategy\".) The default value for this string option is \"average_compl\". \nPossible values:\nprobing: Mehrotra's probing heuristic\nloqo: LOQO's centrality rule\nquality-function: minimize a quality function\naverage_compl: base on current average complementarity", + "enum": [ + "probing", + "loqo", + "quality-function", + "average_compl" + ], + "type": "string" + }, + "mehrotra_algorithm": { + "description": "Indicates if we want to do Mehrotra's algorithm. \nIf set to yes, Ipopt runs as Mehrotra's predictor-corrector algorithm. This works usually very well for LPs and convex QPs. This automatically disables the line search, and chooses the (unglobalized) adaptive mu strategy with the \"probing\" oracle, and uses \"corrector_type=affine\" without any safeguards; you should not set any of those options explicitly in addition. Also, unless otherwise specified, the values of \"bound_push\", \"bound_frac\", and \"bound_mult_init_val\" are set more aggressive, and sets \"alpha_for_y=bound_mult\". The default value for this string option is \"no\". \nPossible values:\nno: Do the usual Ipopt algorithm.\nyes: Do Mehrotra's predictor-corrector algorithm.", + "enum": [ + "no", + "yes" + ], + "type": "string" + }, + "mu_init": { + "$ref": "#/definitions/xs:double", + "description": "Initial value for the barrier parameter. \nThis option determines the initial value for the barrier parameter (mu). It is only relevant in the monotone, Fiacco-McCormick version of the algorithm. (i.e., if \"mu_strategy\" is chosen as \"monotone\") The valid range for this real option is [0,inf] and its default value is0.1.." + }, + "mu_linear_decrease_factor": { + "$ref": "#/definitions/xs:double", + "description": "Determines linear decrease rate of barrier parameter. \nFor the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*\"mu_linear_decrease_factor\" and mu\"superlinear_decrease_power\". (This is kappa_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is[0,1] and its default value is 0.2" + }, + "mu_max": { + "$ref": "#/definitions/xs:double", + "description": "Maximum value for barrier parameter. \nThis option specifies an upper bound on the barrier parameter in the adaptive mu selection mode. If this option is set, it overwrites the effect of mu_max_fact. (Only used if option \"mu_strategy\" is chosen as \"adaptive\".) The valid range for this real option is [0, inf] and its default value is 100000." + }, + "mu_max_fact": { + "$ref": "#/definitions/xs:double", + "description": "Factor for initialization of maximum value for barrier parameter. \nThis option determines the upper bound on the barrier parameter. This upper bound is computed as the average complementarity at the initial point times the value of this option. (Only used if option \"mu_strategy\" is chosen as \"adaptive\".) The valid range for this real option is [0, inf] and its default value is 1000." + }, + "mu_min": { + "$ref": "#/definitions/xs:double", + "description": "Minimum value for barrier parameter. \nThis option specifies the lower bound on the barrier parameter in the adaptive mu selection mode. By default, it is set to the minimum of 1e-11 and min(\"tol\",\"compl_inf_tol\")/(\"barrier_tol_factor\"+1), which should be a reasonable value. (Only used if option \"mu_strategy\" is chosen as \"adaptive\".) The valid range for this real option is [0, inf] and its default value is 1e-11." + }, + "mu_oracle": { + "description": "Oracle for a new barrier parameter in the adaptive strategy. \nDetermines how a new barrier parameter is computed in each \"free-mode\" iteration of the adaptive barrier parameter strategy. (Only considered if \"adaptive\" is selected for option \"mu_strategy\"). The default value for this string option is \"quality-function\". \nPossible values:\nprobing: Mehrotra's probing heuristic\nloqo: LOQO's centrality rule\nquality-function: minimize a quality function", + "enum": [ + "probing", + "loqo", + "quality-function" + ], + "type": "string" + }, + "mu_strategy": { + "description": "Update strategy for barrier parameter. \nDetermines which barrier parameter update strategy is to be used. The default value for this string option is \"monotone\". \nPossible values:\nmonotone: use the monotone (Fiacco-McCormick) strategy\nadaptive: use the adaptive update strategy", + "enum": [ + "monotone", + "adaptive" + ], + "type": "string" + }, + "mu_superlinear_decrease_power": { + "$ref": "#/definitions/xs:double", + "description": "Determines superlinear decrease rate of barrier parameter. \nFor the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*\"mu_linear_decrease_factor\" and mu\"superlinear_decrease_power\". (This is theta_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is [1,2] and its default value is 1.5." + }, + "mu_target": { + "$ref": "#/definitions/xs:double", + "description": "Desired value of complementarity. \nUsually, the barrier parameter is driven to zero and the termination test for complementarity is measured with respect to zero complementarity. However, in some cases it might be desired to have Ipopt solve barrier problem for strictly positive value of the barrier parameter. In this case, the value of \"mu_target\" specifies the final value of the barrier parameter, and the termination tests are then defined with respect to the barrier problem for this value of the barrier parameter. The valid range for this real option is [0, inf] and its default value is 0." + }, + "quality_function_max_section_steps": { + "$ref": "#/definitions/xs:int", + "description": "Maximum number of search steps during direct search procedure determining the optimal centering parameter. \nThe golden section search is performed for the quality function based mu oracle. (Only used if option \"mu_oracle\" is set to \"quality-function\".) The valid range for this integer option is [0, inf] and its default value is 8." + } + }, + "type": "object" + }, + "IPOPTComplexType": { + "additionalProperties": false, + "properties": { + "barrierParameter": { + "$ref": "#/definitions/IPOPTBarrierParameterComplexType" + }, + "derivativeChecker": { + "$ref": "#/definitions/IPOPTDerivativeCheckerComplexType", + "description": "Optional derivative checker" + }, + "hessianPermutation": { + "$ref": "#/definitions/IPOPTHessianPermutationComplexType", + "description": "Optional hessian settings" + }, + "initialization": { + "$ref": "#/definitions/IPOPTInitializationComplexType" + }, + "lineSearch": { + "$ref": "#/definitions/IPOPTLineSearchComplexType" + }, + "linearSolver": { + "$ref": "#/definitions/IPOPTLinearSolverComplexType", + "description": "Settings and selection of the integrated linear equation solver " + }, + "multiplierUpdates": { + "$ref": "#/definitions/IPOPTMultiplierUpdatesComplexType" + }, + "nlp": { + "$ref": "#/definitions/IPOPTNLPComplexType", + "description": "Settings of the nonlinear optimizer" + }, + "nlpScaling": { + "$ref": "#/definitions/IPOPTNLPScalingComplexType", + "description": "Scaling options for the optimization problem" + }, + "output": { + "$ref": "#/definitions/IPOPTOutputComplexType", + "description": "Output options" + }, + "quasiNewton": { + "$ref": "#/definitions/IPOPTQuasiNewtonComplexType" + }, + "restorationPhase": { + "$ref": "#/definitions/IPOPTRestorationPhaseComplexType" + }, + "termination": { + "$ref": "#/definitions/IPOPTTerminationComplexType", + "description": "Termination criteria" + }, + "warmStart": { + "$ref": "#/definitions/IPOPTWarmStartComplexType" + } + }, + "required": [ + "barrierParameter", + "derivativeChecker", + "hessianPermutation", + "initialization", + "lineSearch", + "linearSolver", + "multiplierUpdates", + "nlp", + "nlpScaling", + "output", + "quasiNewton", + "restorationPhase", + "termination", + "warmStart" + ], + "type": "object" + }, + "IPOPTDerivativeCheckerComplexType": { + "additionalProperties": false, + "properties": { + "derivative_test": { + "description": "Enable derivative checker", + "enum": [ + "none", + "first-order" + ], + "type": "string" + }, + "derivative_test_perturbation": { + "description": "Size of the finite difference perturbation in derivative test", + "exclusiveMinimum": 0, + "type": "number" + }, + "derivative_test_print_all": { + "description": "Indicates whether information for all estimated derivatives should be\n printed", + "enum": [ + "yes", + "no" + ], + "type": "string" + }, + "derivative_test_tol": { + "description": "Threshold for indicating wrong derivative", + "exclusiveMinimum": 0, + "type": "number" + }, + "findiff_perturbation": { + "description": "Size of the finite difference perturbation for derivative approximation", + "exclusiveMinimum": 0, + "type": "number" + }, + "jacobian_approximation": { + "description": "Specifies technique to compute constraint Jacobian", + "enum": [ + "exact", + "finite-difference-values" + ], + "type": "string" + } + }, + "type": "object" + }, + "IPOPTHessianPermutationComplexType": { + "additionalProperties": false, + "properties": { + "first_hessian_perturbation": { + "$ref": "#/definitions/xs:double", + "description": "Size of first x-s perturbation tried. \nThe first value tried for the x-s perturbation in the inertia correction scheme.(This is delta_0 in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e4." + }, + "jacobian_regularization_value": { + "$ref": "#/definitions/xs:double", + "description": "Size of the regularization for rank-deficient constraint Jacobians. \n(This is bar delta_c in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 1e-8. ." + }, + "max_hessian_perturbation": { + "$ref": "#/definitions/xs:double", + "description": "This parameter gives the maximum value of the regularization parameter. If a regularization of that size is not enough, the algorithm skips this iteration and goes to the restoration phase. (This is delta_wmax in the implementation paper.) The valid range for this real option is [0,+inf] and its default value is 1e+20." + }, + "min_hessian_perturbation": { + "$ref": "#/definitions/xs:double", + "description": "Smallest perturbation of the Hessian block. \nThe size of the perturbation of the Hessian block is never selected smaller than this value, unless no perturbation is necessary. (This is delta_wmin in implementation paper.) The valid range for this real option is [0, +inf] and its default value is 1e-20" + }, + "perturb_dec_fact": { + "$ref": "#/definitions/xs:double", + "description": "Decrease factor for x-s perturbation. \nThe factor by which the perturbation is decreased when a trial value is deduced from the size of the most recent successful perturbation. (This is kappa_w- in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.333333." + }, + "perturb_inc_fact": { + "$ref": "#/definitions/xs:double", + "description": "Increase factor for x-s perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of all perturbations except for the first. (This is kappa_w+ in the implementation paper.) The valid range for this real option is [0, inf] and its default value is 8." + }, + "perturb_inc_fact_first": { + "$ref": "#/definitions/xs:double", + "description": "Increase factor for x-s perturbation for very first perturbation. \nThe factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of the very first perturbation and allows a different value for for the first perturbation than that used for the remaining perturbations. (This is bar_kappa_w+ in the implementation paper.) The valid range for this real option is [1,inf] and its default value is100." + } + }, + "type": "object" + }, + "IPOPTInitializationComplexType": { + "additionalProperties": false, + "properties": { + "bound_frac": { + "$ref": "#/definitions/xs:double", + "description": "Desired minimum relative distance from the initial point to bound. \nDetermines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with \"bound_push\"). (This is kappa_2 in Section 3.6 of implementation paper.) The valid range for this real option is [0, 0.5]and its default value is 0.01.." + }, + "bound_mult_init_method": { + "description": "Initialization method for bound multipliers \nThis option defines how the iterates for the bound multipliers are initialized. If \"constant\" is chosen, then all bound multipliers are initialized to the value of \"bound_mult_init_val\". If \"mu-based\" is chosen, the each value is initialized to the the value of \"mu_init\" divided by the corresponding slack variable. This latter option might be useful if the starting point is close to the optimal solution. The default value for this string option is \"constant\". \nPossible values:\nconstant: set all bound multipliers to the value of bound_mult_init_val\nmu-based: initialize to mu_init/x_slack", + "enum": [ + "constant", + "mu-based" + ], + "type": "string" + }, + "bound_mult_init_val": { + "$ref": "#/definitions/xs:double", + "description": "Initial value for the bound multipliers. \nAll dual variables corresponding to bound constraints are initialized to this value. The valid range for this real option is [0, inf] and its default value is 1." + }, + "bound_push": { + "$ref": "#/definitions/xs:double", + "description": "Desired minimum absolute distance from the initial point to bound. \nDetermines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with \"bound_frac\"). (This is kappa_1 in Section 3.6 of implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.01." + }, + "constr_mult_init_max": { + "$ref": "#/definitions/xs:double", + "description": "Maximum allowed least-square guess of constraint multipliers. \nDetermines how large the initial least-square guesses of the constraint multipliers are allowed to be (in max-norm). If the guess is larger than this value, it is discarded and all constraint multipliers are set to zero. This options is also used when initializing the restoration phase. By default, \"resto.constr_mult_init_max\" (the one used in RestoIterateInitializer) is set to zero. The valid range for this real option is [0, inf] and its default value is 1000." + }, + "slack_bound_frac": { + "$ref": "#/definitions/xs:double", + "description": "Desired minimum relative distance from the initial slack to bound. \nDetermines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with \"slack_bound_push\"). (This is kappa_2 in Section 3.6 of implementation paper.) The valid range for this real option is [0, 0.5] and its default value is 0.01." + }, + "slack_bound_push": { + "$ref": "#/definitions/xs:double", + "description": "Desired minimum absolute distance from the initial slack to bound. \nDetermines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with \"slack_bound_frac\"). (This is kappa_1 in Section 3.6 of implementation paper.) The valid range for this real option is [0, inf] and its default value is 0.01." + } + }, + "type": "object" + }, + "IPOPTLineSearchComplexType": { + "additionalProperties": false, + "properties": { + "accept_every_trial_step": { + "description": "Always accept the first trial step. \nSetting this option to \"yes\" essentially disables the line search and makes the algorithm take aggressive steps, without global convergence guarantees. The default value for this string option is \"no\". \nPossible values:\nno: don't arbitrarily accept the full step\nyes: always accept the full step", + "enum": [ + "no", + "yes" + ], + "type": "string" + }, + "max_soc": { + "$ref": "#/definitions/xs:int", + "description": "Maximum number of second order correction trial steps at each iteration. \nChoosing 0 disables the second order corrections. (This is pmax of Step A-5.9 of Algorithm A in the implementation paper.) The valid range for this integer option is [0, inf] and its default value is 4 ." + }, + "watchdog_shortened_iter_trigger": { + "$ref": "#/definitions/xs:int", + "description": "Number of shortened iterations that trigger the watchdog. \nIf the number of successive iterations in which the backtracking line search did not accept the first trial point exceeds this number, the watchdog procedure is activated. Choosing \"0\" here disables the watchdog procedure. The valid range for this integer option is [0,inf] and its default value is 10." + }, + "watchdog_trial_iter_max": { + "$ref": "#/definitions/xs:int", + "description": "Maximum number of watchdog iterations. \nThis option determines the number of trial iterations allowed before the watchdog procedure is aborted and the algorithm returns to the stored point. The valid range for this integer option is [1, inf] and its default value is 3. " + } + }, + "type": "object" + }, + "IPOPTLinearSolverComplexType": { + "additionalProperties": false, + "properties": { + "linear_scaling_on_demand": { + "description": "Flag indicating that linear scaling is only done if it seems required. \nThis option is only important if a linear scaling method (e.g., mc19) is used. If you choose \"no\", then the scaling factors are computed for every linear system from the start. This can be quite expensive. Choosing \"yes\" means that the algorithm will start the scaling method only when the solutions to the linear system seem not good, and then use it until the end. The default value for this string option is \"yes\". ", + "enum": [ + "yes", + "no" + ], + "type": "string" + }, + "linear_solver": { + "description": "Linear solver used for step computations", + "enum": [ + "ma27", + "ma57", + "ma77", + "ma86", + "ma97", + "mumps", + "pardiso" + ], + "type": "string" + }, + "linear_system_scaling": { + "description": "Method for scaling the linear system. \nDetermines the method used to compute symmetric scaling factors for the augmented system (see also the \"linear_scaling_on_demand\" option). This scaling is independent of the NLP problem scaling. By default, MC19 is only used if MA27 or MA57 are selected as linear solvers. This value is only available if Ipopt has been compiled with MC19. The default value for this string option is \"mc19\". ", + "enum": [ + "none", + "mc19", + "slack-based" + ], + "type": "string" + }, + "ma27": { + "$ref": "#/definitions/MA27ComplexType" + }, + "ma57": { + "$ref": "#/definitions/MA57ComplexType" + }, + "ma77": { + "$ref": "#/definitions/MA77ComplexType" + }, + "ma86": { + "$ref": "#/definitions/MA86ComplexType" + }, + "ma97": { + "$ref": "#/definitions/MA97ComplexType" + }, + "max_refinement_steps": { + "$ref": "#/definitions/xs:int", + "description": "Maximum number of iterative refinement steps per linear system solve. \nIterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the maximum number of iterative refinements (i.e. at least \"min_refinement_steps\" iterative refinement steps are enforced per right hand side.) The valid range for this integer option is [0,+inf] and its default value is 1.\n\t\t\t\t " + }, + "min_refinement_steps": { + "$ref": "#/definitions/xs:int", + "description": "Minimum number of iterative refinement steps per linear system solve. \nIterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the minimum number of iterative refinements (i.e. at least \"min_refinement_steps\" iterative refinement steps are enforced per right hand side.) The valid range for this integer option is [0,+inf] and its default value is 10.\n\t\t\t\t " + }, + "mumps": { + "$ref": "#/definitions/MUMPSComplexType" + }, + "pardiso": { + "$ref": "#/definitions/PardisoComplexType" + } + }, + "type": "object" + }, + "IPOPTMultiplierUpdatesComplexType": { + "additionalProperties": false, + "properties": { + "alpha_for_y": { + "description": "Method to determine the step size for constraint multipliers. \nThis option determines how the step size (alpha_y) will be calculated when updating the constraint multipliers. The default value for this string option is \"primal\". \nPossible values:\nprimal: use primal step size\nbound-mult: use step size for the bound multipliers (good for LPs)\nmin: use the min of primal and bound multipliers\nmax: use the max of primal and bound multipliers\nfull: take a full step of size one\nmin-dual-infeas: choose step size minimizing new dual infeasibility\nsafer-min-dual-infeas: like \"min_dual_infeas\", but safeguarded by \"min\" and \"max\"\nprimal-and-full: use the primal step size, and full step if delta_x smaller or equal than alpha_for_y_tol\ndual-and-full: use the dual step size, and full step if delta_x smaller or equal than alpha_for_y_tol\nacceptor: Call LSAcceptor to get step size for y", + "enum": [ + "primal", + "bound-mult", + "min", + "max", + "full", + "min-dual-infeas", + "safer-min-dual-infeas", + "primal-and-full", + "dual-and-full", + "acceptor" + ], + "type": "string" + }, + "alpha_for_y_tol": { + "$ref": "#/definitions/xs:double", + "description": "Tolerance for switching to full equality multiplier steps. \nThis is only relevant if \"alpha_for_y\" is chosen \"primal-and-full\" or \"dual-and-full\". The step size for the equality constraint multipliers is taken to be one if the max-norm of the primal step is less than this tolerance. The valid range for this real option is [0, inf] and its default value is 10." + }, + "recalc_y": { + "description": "Tells the algorithm to recalculate the equality and inequality multipliers as least square estimates. \nThis asks the algorithm to recompute the multipliers, whenever the current infeasibility is less than recalc_y_feas_tol. Choosing yes might be helpful in the quasi-Newton option. However, each recalculation requires an extra factorization of the linear system. If a limited memory quasi-Newton option is chosen, this is used by default. The default value for this string option is \"no\". \nPossible values:\nno: use the Newton step to update the multipliers\nyes: use least-square multiplier estimates", + "enum": [ + "no", + "yes" + ], + "type": "string" + }, + "recalc_y_feas_tol": { + "$ref": "#/definitions/xs:double", + "description": "Feasibility threshold for recomputation of multipliers. \nIf recalc_y is chosen and the current infeasibility is less than this value, then the multipliers are recomputed. The valid range for this real option is [0, inf] and its default value is 1e-6." + } + }, + "type": "object" + }, + "IPOPTNLPComplexType": { + "additionalProperties": false, + "properties": { + "bound_relax_factor": { + "description": "Factor for initial relaxation of the bounds", + "minimum": 0, + "type": "number" + }, + "check_derivatives_for_naninf": { + "description": "Indicates whether it is desired to check for Nan/Inf in derivative matrices [no/yes]", + "enum": [ + "yes", + "no" + ], + "type": "string" + }, + "fixed_variable_treatment": { + "description": "Determines how fixed variables should be handled", + "enum": [ + "make_parameter", + "make_constraint", + "relax_bounds" + ], + "type": "string" + }, + "honor_original_bounds": { + "description": "Indicates whether final points should be projected into original bounds [no/yes]", + "enum": [ + "yes", + "no" + ], + "type": "string" + }, + "jac_c_constant": { + "description": "Indicates whether all equality constraints are linear [no/yes]", + "enum": [ + "yes", + "no" + ], + "type": "string" + }, + "jac_d_constant": { + "description": "Indicates whether all inequality constraints are linear [no/yes]", + "enum": [ + "yes", + "no" + ], + "type": "string" + } + }, + "type": "object" + }, + "IPOPTNLPScalingComplexType": { + "additionalProperties": false, + "properties": { + "nlp_scaling_max_gradient": { + "description": "Maximum gradient after NLP scaling", + "exclusiveMinimum": 0, + "type": "number" + }, + "nlp_scaling_method": { + "description": "Select the technique used for scaling the NLP", + "enum": [ + "none", + "user-scaling", + "gradient-based" + ], + "type": "string" + }, + "nlp_scaling_min_value": { + "description": "Maximum gradient after NLP scaling", + "minimum": 0, + "type": "number" + }, + "obj_scaling_factor": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Scaling factor for the objective function" + } + }, + "type": "object" + }, + "IPOPTOutputComplexType": { + "additionalProperties": false, + "properties": { + "file_print_level": { + "description": "Verbosity level for output file 0-12 NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12", + "maximum": 12, + "minimum": 0, + "type": "integer" + }, + "print_level": { + "description": "Output verbosity level 0-12, NONE=0\n ERROR=1\n STRONGWARNING=2\n SUMMARY=3\n WARNING=4\n ITERSUMMARY=5\n DETAILED=6\n MOREDETAILED=7\n VECTOR=8\n MOREVECTOR=9\n MATRIX=10\n MOREMATRIX=11\n ALL=12", + "maximum": 12, + "minimum": 0, + "type": "integer" + }, + "print_options_documentation": { + "description": "Switch to print all algorithmic options [no/yes]", + "enum": [ + "yes", + "no" + ], + "type": "string" + }, + "print_timing_statistics": { + "description": "Switch to print timing statistics [no/yes]", + "enum": [ + "yes", + "no" + ], + "type": "string" + }, + "print_user_options": { + "description": "Print all options set by the user [no/yes]", + "enum": [ + "yes", + "no" + ], + "type": "string" + } + }, + "type": "object" + }, + "IPOPTQuasiNewtonComplexType": { + "additionalProperties": false, + "properties": { + "limited_memory_max_history": { + "$ref": "#/definitions/ExternalIntegerSimpleType", + "description": "Maximum size of the history for the limited quasi-Newton Hessian\napproximation" + }, + "limited_memory_max_skipping": { + "$ref": "#/definitions/ExternalIntegerSimpleType", + "description": "Threshold for successive iterations where update is skipped" + } + }, + "type": "object" + }, + "IPOPTRestorationPhaseComplexType": { + "additionalProperties": false, + "properties": { + "bound_mult_reset_threshold": { + "$ref": "#/definitions/xs:double", + "description": "Threshold for resetting bound multipliers after the restoration phase. \nAfter returning from the restoration phase, the bound multipliers are updated with a Newton step for complementarity. Here, the change in the primal variables during the entire restoration phase is taken to be the corresponding primal Newton step. However, if after the update the largest bound multiplier exceeds the threshold specified by this option, the multipliers are all reset to 1. The valid range for this real option is [0, inf] and its default value is 1000 ." + }, + "constr_mult_reset_threshold": { + "$ref": "#/definitions/xs:double", + "description": "Threshold for resetting equality and inequality multipliers after restoration phase. \nAfter returning from the restoration phase, the constraint multipliers are recomputed by a least square estimate. This option triggers when those least-square estimates should be ignored. The valid range for this real option is [0, inf] and its default value is 0 ." + }, + "evaluate_orig_obj_at_resto_trial": { + "description": "Determines if the original objective function should be evaluated at restoration phase trial points. \nSetting this option to \"yes\" makes the restoration phase algorithm evaluate the objective function of the original problem at every trial point encountered during the restoration phase, even if this value is not required. In this way, it is guaranteed that the original objective function can be evaluated without error at all accepted iterates; otherwise the algorithm might fail at a point where the restoration phase accepts an iterate that is good for the restoration phase problem, but not the original problem. On the other hand, if the evaluation of the original objective is expensive, this might be costly. The default value for this string option is \"yes\". \nPossible values:\nno: skip evaluation\nyes: evaluate at every trial point", + "enum": [ + "no", + "yes" + ], + "type": "string" + }, + "expect_infeasible_problem": { + "description": "Enable heuristics to quickly detect an infeasible problem. \nThis options is meant to activate heuristics that may speed up the infeasibility determination if you expect that there is a good chance for the problem to be infeasible. In the filter line search procedure, the restoration phase is called more quickly than usually, and more reduction in the constraint violation is enforced before the restoration phase is left. If the problem is square, this option is enabled automatically. The default value for this string option is \"no\". \nPossible values:\nno: the problem probably be feasible\nyes: the problem has a good chance to be infeasible", + "enum": [ + "no", + "yes" + ], + "type": "string" + }, + "expect_infeasible_problem_ctol": { + "$ref": "#/definitions/xs:double", + "description": "Threshold for disabling \"expect_infeasible_problem\" option. \nIf the constraint violation becomes smaller than this threshold, the \"expect_infeasible_problem\" heuristics in the filter line search are disabled. If the problem is square, this options is set to 0. The valid range for this real option is [0, inf] and its default value is 0.001." + }, + "expect_infeasible_problem_ytol": { + "$ref": "#/definitions/xs:double", + "description": "Multiplier threshold for activating \"expect_infeasible_problem\" option. \nIf the max norm of the constraint multipliers becomes larger than this value and \"expect_infeasible_problem\" is chosen, then the restoration phase is entered. The valid range for this real option is [0, inf] and its default value is 1e8." + }, + "required_infeasibility_reduction": { + "$ref": "#/definitions/xs:double", + "description": "Required reduction of infeasibility before leaving restoration phase. \nThe restoration phase algorithm is performed, until a point is found that is acceptable to the filter and the infeasibility has been reduced by at least the fraction given by this option. The valid range for this real option is [0, inf] and its default value is 0.9 ." + }, + "soft_resto_pderror_reduction_factor": { + "$ref": "#/definitions/xs:double", + "description": "Required reduction in primal-dual error in the soft restoration phase. \nThe soft restoration phase attempts to reduce the primal-dual error with regular steps. If the damped primal-dual step (damped only to satisfy the fraction-to-the-boundary rule) is not decreasing the primal-dual error by at least this factor, then the regular restoration phase is called. Choosing \"0\" here disables the soft restoration phase. The valid range for this real option is [0, inf] and its default value is 0.9999 ." + }, + "start_with_resto": { + "description": "Tells algorithm to switch to restoration phase in first iteration. \nSetting this option to \"yes\" forces the algorithm to switch to the feasibility restoration phase in the first iteration. If the initial point is feasible, the algorithm will abort with a failure. The default value for this string option is \"no\". \nPossible values:\nno: don't force start in restoration phase\nyes: force start in restoration phase", + "enum": [ + "no", + "yes" + ], + "type": "string" + } + }, + "type": "object" + }, + "IPOPTTerminationComplexType": { + "additionalProperties": false, + "properties": { + "acceptable_compl_inf_tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "\"Acceptance\" threshold for the complementarity conditions" + }, + "acceptable_constr_viol_tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "\"Acceptance\" threshold for the constraint violation" + }, + "acceptable_dual_inf_tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "\"Acceptance\" threshold for the dual infeasibility" + }, + "acceptable_iter": { + "$ref": "#/definitions/ExternalIntegerSimpleType", + "description": "Number of \"acceptable\" iterates before triggering termination" + }, + "acceptable_obj_change_tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "\"Acceptance\" stopping criterion based on objective function change" + }, + "acceptable_tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "\"Acceptable\" convergence tolerance (relative)" + }, + "compl_inf_tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Desired threshold for the complementarity conditions" + }, + "constr_viol_tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Desired threshold for the constraint violation" + }, + "diverging_iterates_tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Threshold for maximal value of primal iterates" + }, + "dual_inf_tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Desired threshold for the dual infeasibility" + }, + "max_cpu_time": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Maximum number of CPU seconds" + }, + "max_iter": { + "$ref": "#/definitions/ExternalIntegerSimpleType", + "description": "Maximum number of iterations" + }, + "tol": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "Desired convergence tolerance (relative)" + }, + "treat_unsuccess_as_error": { + "$ref": "#/definitions/ExternalBooleanSimpleType", + "description": "Other return codes than SUCESS are treated as error message" + } + }, + "type": "object" + }, + "IPOPTWarmStartComplexType": { + "additionalProperties": false, + "properties": { + "warm_start_bound_frac": { + "$ref": "#/definitions/xs:double", + "description": "same as bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001." + }, + "warm_start_bound_push": { + "$ref": "#/definitions/xs:double", + "description": "same as bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001." + }, + "warm_start_init_point": { + "description": "Warm-start for initial point \nIndicates whether this optimization should use a warm start initialization, where values of primal and dual variables are given (e.g., from a previous optimization of a related problem.) The default value for this string option is \"no\". \nPossible values:\nno: do not use the warm start initialization\nyes: use the warm start initialization", + "enum": [ + "no", + "yes" + ], + "type": "string" + }, + "warm_start_mult_bound_push": { + "$ref": "#/definitions/xs:double", + "description": "same as mult_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001." + }, + "warm_start_mult_init_max": { + "$ref": "#/definitions/xs:double", + "description": "Maximum initial value for the equality multipliers. \nThe valid range for this real option is [-inf, +inf] and its default value is 1e6." + }, + "warm_start_slack_bound_frac": { + "$ref": "#/definitions/xs:double", + "description": "same as slack_bound_frac for the regular initializer. \nThe valid range for this real option is [0,0.5] and its default value is 0.001." + }, + "warm_start_slack_bound_push": { + "$ref": "#/definitions/xs:double", + "description": "same as slack_bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001." + } + }, + "type": "object" + }, + "LoggingComplexType": { + "additionalProperties": false, + "properties": { + "constraintViolationTolerance": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "tolerance for scaled constraints for which a constraint violation is detected" + }, + "eventCode": { + "$ref": "#/definitions/ExternalBooleanSimpleType" + }, + "flushing": { + "$ref": "#/definitions/ExternalBooleanSimpleType", + "description": "set flushing of the diagnostics file after each new message (=true) or at the end of the program execution (=false)" + }, + "logLevel": { + "$ref": "#/definitions/ExternalIntegerSimpleType", + "description": "definition of the logging level, 0 = fatal error, 1 = error, 2 = warning, 3 = info, 4 = debug messages" + }, + "outputConstraints": { + "$ref": "#/definitions/FunctionOutputEnumStringType" + }, + "outputObjectiveFunction": { + "$ref": "#/definitions/FunctionOutputEnumStringType" + }, + "reportConstraintViolation": { + "additionalProperties": false, + "description": "report constraint violation in diagnostics", + "properties": { + "attr_level": { + "$ref": "#/definitions/ExternalIntegerSimpleType" + } + }, + "type": "object" + } + }, + "required": [ + "flushing", + "logLevel" + ], + "type": "object" + }, + "MA27ComplexType": { + "additionalProperties": false, + "properties": { + "ma27_la_init_factor": { + "$ref": "#/definitions/xs:double", + "description": "Real workspace memory for MA27. \nThe initial real workspace memory = la_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5." + }, + "ma27_liw_init_factor": { + "$ref": "#/definitions/xs:double", + "description": "Integer workspace memory for MA27. \nThe initial integer workspace memory = liw_init_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 5." + }, + "ma27_meminc_factor": { + "$ref": "#/definitions/xs:double", + "description": "Increment factor for workspace size for MA27. \nIf the integer or real workspace is not large enough, Ipopt will increase its size by this factor. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [1, inf] and its default value is 2." + }, + "ma27_pivtol": { + "$ref": "#/definitions/xs:double", + "description": "Pivot tolerance for the linear solver MA27. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 1e-8." + }, + "ma27_pivtolmax": { + "$ref": "#/definitions/xs:double", + "description": "Maximum pivot tolerance for the linear solver MA27. \nIpopt may increase pivtol as high as ma27_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is [0,1] and its default value is 0.0001." + } + }, + "type": "object" + }, + "MA57ComplexType": { + "additionalProperties": false, + "properties": { + "ma57_automatic_scaling": { + "description": "Controls MA57 automatic scaling \nThis option controls the internal scaling option of MA57. For higher reliability of the MA57 solver, you may want to set this option to yes. This is ICNTL(15) in MA57. The default value for this string option is \"no\". \nPossible values:\nno: Do not scale the linear system matrix\nyes: Scale the linear system matrix", + "enum": [ + "yes", + "no" + ], + "type": "string" + }, + "ma57_block_size": { + "$ref": "#/definitions/xs:int", + "description": "Controls block size used by Level 3 BLAS in MA57BD \nThis is ICNTL(11) in MA57. The valid range for this integer option is [1, inf] and its default value is 16. ." + }, + "ma57_node_amalgamation": { + "$ref": "#/definitions/xs:int", + "description": "Node amalgamation parameter \nThis is ICNTL(12) in MA57. The valid range for this integer option is [1, inf] and its default value is 16." + }, + "ma57_pivot_order": { + "$ref": "#/definitions/xs:int", + "description": "Controls pivot order in MA57 \nThis is ICNTL(6) in MA57. The valid range for this integer option is [0,5] and its default value is 5." + }, + "ma57_pivtol": { + "$ref": "#/definitions/xs:double", + "description": "Pivot tolerance for the linear solver MA57. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 1e-8." + }, + "ma57_pivtolmax": { + "$ref": "#/definitions/xs:double", + "description": "Maximum pivot tolerance for the linear solver MA57. \nIpopt may increase pivtol as high as ma57_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [0,1] and its default value is 0.0001." + }, + "ma57_pre_alloc": { + "$ref": "#/definitions/xs:double", + "description": "Safety factor for work space memory allocation for the linear solver MA57. \nIf 1 is chosen, the suggested amount of work space is used. However, choosing a larger number might avoid reallocation if the suggest values do not suffice. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is [1, inf] and its default value is 1.05." + }, + "ma57_small_pivot_flag": { + "$ref": "#/definitions/xs:int", + "description": "If set to 1, then when small entries defined by CNTL(2) are detected they are removed and the corresponding pivots placed at the end of the factorization. This can be particularly efficient if the matrix is highly rank deficient. \nThis is ICNTL(16) in MA57. The valid range for this integer option is [0,1] and its default value is 0." + } + }, + "type": "object" + }, + "MA77ComplexType": { + "additionalProperties": false, + "properties": { + "ma77_buffer_lpage": { + "$ref": "#/definitions/xs:int", + "description": "Number of scalars per MA77 buffer page \nNumber of scalars per an in-core buffer in the out-of-core solver MA77. Must be at most ma77_file_size. The valid range for this integer option is [1, inf] and its default value is 4096." + }, + "ma77_buffer_npage": { + "$ref": "#/definitions/xs:int", + "description": "Number of pages that make up MA77 buffer \nNumber of pages of size buffer_lpage that exist in-core for the out-of-core solver MA77. The valid range for this integer option is [1, inf] and its default value is 1600." + }, + "ma77_file_size": { + "$ref": "#/definitions/xs:int", + "description": "Target size of each temporary file for MA77, scalars per type \nMA77 uses many temporary files, this option controls the size of each one. It is measured in the number of entries (int or double), NOT bytes. The valid range for this integer option is [1, inf] and its default value is 2097152." + }, + "ma77_maxstore": { + "$ref": "#/definitions/xs:int", + "description": "Maximum storage size for MA77 in-core mode \nIf greater than zero, the maximum size of factors stored in core before out-of-core mode is invoked. The valid range for this integer option is [0, inf] and its default value is 0" + }, + "ma77_nemin": { + "$ref": "#/definitions/xs:int", + "description": "Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma77_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8." + }, + "ma77_order": { + "description": "Controls type of ordering used by HSL_MA77 \nThis option controls ordering for the solver HSL_MA77. The default value for this string option is \"metis\". \nPossible values:\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm (if available)", + "enum": [ + "amd", + "metis" + ], + "type": "string" + }, + "ma77_print_level": { + "$ref": "#/definitions/xs:int", + "description": "Debug printing level for the linear solver MA77 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1." + }, + "ma77_small": { + "$ref": "#/definitions/xs:double", + "description": "Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20." + }, + "ma77_static": { + "$ref": "#/definitions/xs:double", + "description": "Static Pivoting Threshold \nSee MA77 documentation. Either ma77_static=0.0 or ma77_static>ma77_small. ma77_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 ." + }, + "ma77_u": { + "$ref": "#/definitions/xs:double", + "description": "Pivoting Threshold \nSee MA77 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8." + }, + "ma77_umax": { + "$ref": "#/definitions/xs:double", + "description": "Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5]and its default value is 0.0001." + } + }, + "type": "object" + }, + "MA86ComplexType": { + "additionalProperties": false, + "properties": { + "ma86_nemin": { + "$ref": "#/definitions/xs:int", + "description": "Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma86_nemin variables. The valid range for this integer option is [1, inf] and its default value is 32." + }, + "ma86_order": { + "description": "CControls type of ordering used by HSL_MA86 \nThis option controls ordering for the solver HSL_MA86. The default value for this string option is \"auto\". \nPossible values:\nauto: Try both AMD and MeTiS, pick best\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm (if available)", + "enum": [ + "auto", + "amd", + "metis" + ], + "type": "string" + }, + "ma86_print_level": { + "$ref": "#/definitions/xs:int", + "description": "Debug printing level for the linear solver ma86 \nThe valid range for this integer option is [-inf, +inf] and its default value is -1." + }, + "ma86_scaling": { + "description": "Controls scaling of matrix \nThis option controls scaling for the solver HSL_MA86. The default value for this string option is \"mc64\". \nPossible values:\nnone: Do not scale the linear system matrix\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]", + "enum": [ + "mone", + "mc64", + "mc77" + ], + "type": "string" + }, + "ma86_small": { + "$ref": "#/definitions/xs:double", + "description": "Zero Pivot Threshold \nAny pivot less than ma86_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20." + }, + "ma86_static": { + "$ref": "#/definitions/xs:double", + "description": "Static Pivoting Threshold \nSee ma86 documentation. Either ma86_static=0.0 or ma86_static>ma86_small. ma86_static=0.0 disables static pivoting. The valid range for this real option is [0, inf] and its default value is 0 ." + }, + "ma86_u": { + "$ref": "#/definitions/xs:double", + "description": "Pivoting Threshold \nSee ma86 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8." + }, + "ma86_umax": { + "$ref": "#/definitions/xs:double", + "description": "Maximum Pivoting Threshold \nMaximum value to which u will be increased to improve quality. The valid range for this real option is [0, 0.5] and its default value is 0.0001." + } + }, + "type": "object" + }, + "MA97ComplexType": { + "additionalProperties": false, + "properties": { + "ma97_nemin": { + "$ref": "#/definitions/xs:int", + "description": "Node Amalgamation parameter \nTwo nodes in elimination tree are merged if result has fewer than ma97_nemin variables. The valid range for this integer option is [1, inf] and its default value is 8." + }, + "ma97_order": { + "description": "Controls type of ordering used by HSL_MA97 \nThe default value for this string option is \"auto\". \nPossible values:\nauto: Use HSL_MA97 heuristic to guess best of AMD and METIS\nbest: Try both AMD and MeTiS, pick best\namd: Use the HSL_MC68 approximate minimum degree algorithm\nmetis: Use the MeTiS nested dissection algorithm\nmatched-auto: Use the HSL_MC80 matching with heuristic choice of AMD or METIS\nmatched-metis: Use the HSL_MC80 matching based ordering with METIS\nmatched-amd: Use the HSL_MC80 matching based ordering with AMD", + "enum": [ + "auto", + "best", + "amd", + "metis", + "matched-auto", + "matched-metis", + "matched-amd" + ], + "type": "string" + }, + "ma97_print_level": { + "$ref": "#/definitions/xs:int", + "description": "Debug printing level for the linear solver MA97 \nThe valid range for this integer option is [-inf, +inf] and its default value is 0." + }, + "ma97_scaling": { + "description": "Specifies strategy for scaling in HSL_MA97 linear solver \nThe default value for this string option is \"dynamic\". \nPossible values:\nnone: Do not scale the linear system matrix\nmc30: Scale all linear system matrices using MC30\nmc64: Scale all linear system matrices using MC64\nmc77: Scale all linear system matrices using MC77 [1,3,0]\ndynamic: Dynamically select scaling according to rules specified by ma97_scalingX and ma97_switchX options.", + "enum": [ + "none", + "mc30", + "mc64", + "mc77", + "dynamic" + ], + "type": "string" + }, + "ma97_scaling1": { + "description": "First scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch1. If ma97_switch2 is triggered it is disabled. The default value for this string option is \"mc64\". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]", + "enum": [ + "none", + "mc30", + "mc64", + "mc77" + ], + "type": "string" + }, + "ma97_scaling2": { + "description": "Second scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch2. If ma97_switch3 is triggered it is disabled. The default value for this string option is \"mc64\". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]", + "enum": [ + "none", + "mc30", + "mc64", + "mc77" + ], + "type": "string" + }, + "ma97_scaling3": { + "description": "Third scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch3. The default value for this string option is \"mc64\". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]", + "enum": [ + "none", + "mc30", + "mc64", + "mc77" + ], + "type": "string" + }, + "ma97_small": { + "$ref": "#/definitions/xs:double", + "description": "Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20." + }, + "ma97_solve_blas3": { + "description": "Controls if blas2 or blas3 routines are used for solve \nThe default value for this string option is \"no\". \nPossible values:\nno: Use BLAS2 (faster, some implementations bit incompatible)\nyes: Use BLAS3 (slower)", + "enum": [ + "no", + "yes" + ], + "type": "string" + }, + "ma97_switch1": { + "description": "First switch, determine when ma97_scaling1 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling1 is enabled according to this condition. If ma97_switch2 occurs this option is henceforth ignored. The default value for this string option is \"od_hd_reuse\". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse", + "enum": [ + "never", + "at_start", + "at_start_reuse", + "on_demand", + "on_demand_reuse", + "high_delay", + "high_delay_reuse", + "od_hd", + "od_hd_reuse" + ], + "type": "string" + }, + "ma97_switch2": { + "description": "Second switch, determine when ma97_scaling2 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling2 is enabled according to this condition. If ma97_switch3 occurs this option is henceforth ignored. The default value for this string option is \"never\". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse", + "enum": [ + "never", + "at_start", + "at_start_reuse", + "on_demand", + "on_demand_reuse", + "high_delay", + "high_delay_reuse", + "od_hd", + "od_hd_reuse" + ], + "type": "string" + }, + "ma97_switch3": { + "description": "Third switch, determine when ma97_scaling3 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling3 is enabled according to this condition. The default value for this string option is \"never\". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse", + "enum": [ + "never", + "at_start", + "at_start_reuse", + "on_demand", + "on_demand_reuse", + "high_delay", + "high_delay_reuse", + "od_hd", + "od_hd_reuse" + ], + "type": "string" + }, + "ma97_u": { + "$ref": "#/definitions/xs:double", + "description": "Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 1e-8." + }, + "ma97_umax": { + "$ref": "#/definitions/xs:double", + "description": "Maximum Pivoting Threshold \nSee MA97 documentation. The valid range for this real option is [0, 0.5] and its default value is 0.0001." + } + }, + "type": "object" + }, + "MUMPSComplexType": { + "additionalProperties": false, + "properties": { + "mumps_mem_percent": { + "$ref": "#/definitions/xs:int", + "description": "Percentage increase in the estimated working space for MUMPS. \nIn MUMPS when significant extra fill-in is caused by numerical pivoting, larger values of mumps_mem_percent may help use the workspace more efficiently. On the other hand, if memory requirement are too large at the very beginning of the optimization, choosing a much smaller value for this option, such as 5, might reduce memory requirements. The valid range for this integer option is [0, inf] and its default value is 1000." + }, + "mumps_permuting_scaling": { + "$ref": "#/definitions/xs:int", + "description": "Controls permuting and scaling in MUMPS \nThis is ICNTL(6) in MUMPS. The valid range for this integer option is [0,7] and its default value is 7." + }, + "mumps_pivot_order": { + "$ref": "#/definitions/xs:int", + "description": "Controls pivot order in MUMPS \nThis is ICNTL(7) in MUMPS. The valid range for this integer option is [0, 7] and its default value is 7." + }, + "mumps_pivtol": { + "$ref": "#/definitions/xs:double", + "description": "Pivot tolerance for the linear solver MUMPS. \nA smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 1e-6." + }, + "mumps_pivtolmax": { + "$ref": "#/definitions/xs:double", + "description": "Maximum pivot tolerance for the linear solver MUMPS. \nIpopt may increase pivtol as high as pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is [0,1] and its default value is 0.1" + }, + "mumps_scaling": { + "$ref": "#/definitions/xs:int", + "description": "Controls scaling in MUMPS \nThis is ICNTL(8) in MUMPS. The valid range for this integer option is [-2,77] and its default value is 77." + } + }, + "type": "object" + }, + "ModeClosedLoopComplexType": { + "additionalProperties": false, + "properties": { + "forecastHorizon": { + "$ref": "#/definitions/xs:integer", + "description": "Number of time steps of forecasts in the predictive control mode" + }, + "optimization": { + "$ref": "#/definitions/ModeOptimizationComplexType" + }, + "recedingHorizon": { + "$ref": "#/definitions/xs:integer", + "description": "Number of time steps after which the optimization is repeated" + } + }, + "required": [ + "forecastHorizon", + "optimization", + "recedingHorizon" + ], + "type": "object" + }, + "ModeComplexType": { + "additionalProperties": false, + "properties": { + "closedLoop": { + "$ref": "#/definitions/ModeClosedLoopComplexType", + "description": "Closed loop mode with an alternating switch between simulation and optimization" + }, + "firstOrderSensitivity": { + "$ref": "#/definitions/xs:string", + "description": "Calculation of first-order model sensitivities of an objective function value with respect to inputs, states and outputs (requires the definition of an objective function in the rtcObjectiveConfig.xml)" + }, + "optimization": { + "$ref": "#/definitions/ModeOptimizationComplexType", + "description": "Optimization mode (requires the definition of an optimization problem in the rtcObjectiveConfig.xml)" + }, + "postprocessing": { + "$ref": "#/definitions/xs:string" + }, + "simulation": { + "$ref": "#/definitions/ModeSimulationComplexType", + "description": "Simulation mode (default)" + } + }, + "type": "object" + }, + "ModeOptimizationComplexType": { + "additionalProperties": false, + "properties": { + "optimizer": { + "items": { + "$ref": "#/definitions/OptimizerComplexType", + "description": "Selection of one or more optimizer settings for solving the optimization problem" + }, + "type": "array" + }, + "optimizerMode": { + "$ref": "#/definitions/OptimizerModeEnumStringType", + "description": "Mode for defining more robust hybrid optimizer settings for running optimizations sequentially (optimimum of the first is input for the next) or parallel (independent optimization, best one is returned), STILL NOT IMPLEMENTED" + }, + "period": { + "$ref": "#/definitions/PeriodEnumStringType" + } + }, + "type": "object" + }, + "ModeSimulationComplexType": { + "additionalProperties": false, + "properties": { + "executeConstraints": { + "$ref": "#/definitions/xs:boolean" + }, + "executeObjectiveFunction": { + "$ref": "#/definitions/xs:boolean" + }, + "limitedMemory": { + "$ref": "#/definitions/xs:boolean", + "description": "limited-memory option for time series matrix" + }, + "period": { + "$ref": "#/definitions/PeriodEnumStringType" + } + }, + "type": "object" + }, + "ModesComplexType": { + "additionalProperties": false, + "properties": { + "mode": { + "items": { + "$ref": "#/definitions/ModeComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "mode" + ], + "type": "object" + }, + "OptimizerComplexType": { + "additionalProperties": false, + "properties": { + "GAMS": { + "$ref": "#/definitions/GAMSComplexType", + "description": "This option generates a GAMS optimization problem with an external model in RTC-Tools. Note that you need to run the optimization in GAMS after executing the stand alone RTC-Tools." + }, + "IPOPT": { + "$ref": "#/definitions/IPOPTComplexType", + "description": "Optimization by the IPOPT optimizer, check also the related documentation on the COIN-OR website" + }, + "SA": { + "$ref": "#/definitions/SAComplexType", + "description": "Optimization by a simulated annealing optimizer (NOT FULLY IMPLEMENTED right now)" + } + }, + "type": "object" + }, + "OptimizerModeEnumStringType": { + "enum": [ + "SEQUENTIAL", + "PARALLEL" + ], + "type": "string" + }, + "PIInputRuntimeComplexType": { + "additionalProperties": false, + "properties": { + "file": { + "$ref": "#/definitions/xs:string" + }, + "numberEnsembles": { + "$ref": "#/definitions/xs:int", + "description": "optional number of ensemble, if not provides one ensemble member is assumed" + } + }, + "required": [ + "file" + ], + "type": "object" + }, + "PIRunFileRuntimeComplexType": { + "additionalProperties": false, + "properties": { + "file": { + "$ref": "#/definitions/xs:string" + }, + "numberEnsembles": { + "$ref": "#/definitions/xs:int", + "description": "optional number of ensemble, if not provides one ensemble member is assumed" + }, + "timeStep": { + "$ref": "#/definitions/TimeStepComplexType", + "description": "Time step of the simulation (till now, the model supports only equidistant time steps)" + } + }, + "required": [ + "file", + "timeStep" + ], + "type": "object" + }, + "ParallelModeEnumStringType": { + "enum": [ + "NONE", + "ENSEMBLE", + "INTERNAL", + "ENSEMBLE+INTERNAL" + ], + "type": "string" + }, + "ParallelizationComplexType": { + "additionalProperties": false, + "properties": { + "constraints": { + "$ref": "#/definitions/ParallelModeEnumStringType" + }, + "nThread": { + "$ref": "#/definitions/xs:int" + }, + "simulation": { + "$ref": "#/definitions/ParallelModeEnumStringType" + } + }, + "type": "object" + }, + "ParameterFilePrefixEnumStringType": { + "enum": [ + "NONE", + "LOCATIONID" + ], + "type": "string" + }, + "ParameterFileTypeEnumStringType": { + "enum": [ + "TREEVECTOR", + "PIMODELPARAMETERS" + ], + "type": "string" + }, + "PardisoComplexType": { + "additionalProperties": false, + "properties": { + "pardiso_matching_strategy": { + "description": "Matching strategy to be used by Pardiso \nThis is IPAR(13) in Pardiso manual. The default value for this string option is \"complete+2x2\". \nPossible values:\ncomplete: Match complete (IPAR(13)=1)\ncomplete+2x2: Match complete+2x2 (IPAR(13)=2)\nconstraints: Match constraints (IPAR(13)=3)", + "enum": [ + "complete", + "complete+2x2", + "constraints" + ], + "type": "string" + }, + "pardiso_max_iterative_refinement_steps": { + "$ref": "#/definitions/xs:int", + "description": "Limit on number of iterative refinement steps. \nThe solver does not perform more than the absolute value of this value steps of iterative refinement and stops the process if a satisfactory level of accuracy of the solution in terms of backward error is achieved. If negative, the accumulation of the residue uses extended precision real and complex data types. Perturbed pivots result in iterative refinement. The solver automatically performs two steps of iterative refinements when perturbed pivots are obtained during the numerical factorization and this option is set to 0. The valid range for this integer option is [-inf, inf] and its default value is 0 ." + }, + "pardiso_msglvl": { + "$ref": "#/definitions/xs:int", + "description": "Pardiso message level \nThis determines the amount of analysis output from the Pardiso solver. This is MSGLVL in the Pardiso manual. The valid range for this integer option is [0, inf] and its default value is 0 ." + }, + "pardiso_order": { + "description": "Controls the fill-in reduction ordering algorithm for the input matrix. \nThe default value for this string option is \"five\". \nPossible values:\namd: minimum degree algorithm\none: undocumented\nmetis: MeTiS nested dissection algorithm\npmetis: parallel (OpenMP) version of MeTiS nested dissection algorithm\nfour: undocumented\nfive: undocumented", + "enum": [ + "amd", + "one", + "metis", + "pmetis", + "four", + "five" + ], + "type": "string" + } + }, + "type": "object" + }, + "PeriodComplexType": { + "additionalProperties": false, + "properties": { + "PIInput": { + "$ref": "#/definitions/PIInputRuntimeComplexType", + "description": "The execution period is defined by the first time series of the referred PI-XML file." + }, + "PIRunFile": { + "$ref": "#/definitions/PIRunFileRuntimeComplexType", + "description": "The execution period is defined in the PI-XML run file." + }, + "userDefined": { + "$ref": "#/definitions/UserDefinedRuntimeComplexType", + "description": "The execution period is user-defined by start and end time, time step and optionally the number of ensembles." + } + }, + "type": "object" + }, + "PeriodEnumStringType": { + "enum": [ + "COMPLETE", + "UPDATE", + "FORECAST" + ], + "type": "string" + }, + "RtcRuntimeConfigComplexType": { + "additionalProperties": false, + "properties": { + "files": { + "$ref": "#/definitions/FileComplexType", + "description": "Optional provision of input files, if provided ALL relevant input files needs to be defined, if not, the program will check for files with default naming in the current working folder" + }, + "logging": { + "$ref": "#/definitions/LoggingComplexType", + "description": "Logging" + }, + "mode": { + "$ref": "#/definitions/ModeComplexType", + "description": "Optional definition of the execution mode of the application, default = simulation if not provided" + }, + "modes": { + "$ref": "#/definitions/ModesComplexType" + }, + "parallelization": { + "$ref": "#/definitions/ParallelizationComplexType", + "description": "Optional parallelization settings" + }, + "period": { + "$ref": "#/definitions/PeriodComplexType", + "description": "Execution period of the simulation or optimization" + }, + "stateFiles": { + "$ref": "#/definitions/UserDefinedStateExportComplexType", + "description": "Optional definition for saving periodic state files" + } + }, + "required": [ + "period" + ], + "type": "object" + }, + "SAComplexType": { + "additionalProperties": false, + "properties": { + "dels": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "???" + }, + "ftoll": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "???" + }, + "max_cpu_time": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "maximum cpu time for executing the optimization" + }, + "max_iter": { + "$ref": "#/definitions/xs:integer", + "description": "Maximum number of iterations" + } + }, + "type": "object" + }, + "TimeSeriesSimpleType": { + "minLength": 1, + "type": "string" + }, + "TimeStepComplexType": { + "additionalProperties": false, + "description": "The timeunit element has three attributes, unit and devider and multiplier.\n the unit is second, minute, hour, week, month year.\n The divider attribute is optional (default = 1).", + "properties": { + "attr_divider": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_multiplier": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_unit": { + "$ref": "#/definitions/timeStepUnitEnumStringType" + } + }, + "required": [ + "attr_unit" + ], + "type": "object" + }, + "TimeZoneSimpleType": { + "description": "The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", + "type": "number" + }, + "UserDefinedRuntimeComplexType": { + "additionalProperties": false, + "properties": { + "endDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "End date and time of the simulation." + }, + "forecastDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "Forecast date and time of the simulation." + }, + "numberEnsembles": { + "$ref": "#/definitions/xs:int", + "description": "Optional number of ensemble of the simulation. If not provided, one ensemble member is assumed." + }, + "startDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "Start date and time of the similation." + }, + "timeStep": { + "$ref": "#/definitions/TimeStepComplexType", + "description": "Time step of the simulation (till now, the model supports only equidistant time steps)" + } + }, + "required": [ + "endDate", + "startDate", + "timeStep" + ], + "type": "object" + }, + "UserDefinedStateExportComplexType": { + "additionalProperties": false, + "properties": { + "endDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "End date and time for exporting state files." + }, + "startDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "Start date and time for exporting state files." + }, + "stateTimeStep": { + "$ref": "#/definitions/xs:double", + "description": "Step in seconds for exporting state files" + } + }, + "required": [ + "endDate", + "startDate" + ], + "type": "object" + }, + "VariableTypeEnumStringType": { + "enum": [ + "CONTINUOUS", + "INTEGER", + "TIMEINSTANCE" + ], + "type": "string" + }, + "dateType": { + "pattern": "^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$", + "type": "string" + }, + "timeSeriesType": { + "description": "Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ", + "enum": [ + "accumulative", + "instantaneous" + ], + "type": "string" + }, + "timeStepUnitEnumStringType": { + "enum": [ + "second", + "minute", + "hour", + "day", + "week" + ], + "type": "string" + }, + "timeType": { + "pattern": "^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$", + "type": "string" + }, + "xs:boolean": { + "type": "boolean" + }, + "xs:double": { + "type": "number" + }, + "xs:int": { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "xs:integer": { + "type": "integer" + }, + "xs:positiveInteger": { + "minimum": 1, + "type": "integer" + }, + "xs:string": { + "type": "string" + } + }, + "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", + "properties": { + "attr_xmlns:rtc": { + "default": "http://www.wldelft.nl/fews" + }, + "attr_xmlns:xs": { + "default": "http://www.w3.org/2001/XMLSchema" + }, + "rtcRuntimeConfig": { + "$ref": "#/definitions/.rtcRuntimeConfig" + } + }, + "type": "object" +} \ No newline at end of file From 7596eb845125ba9ec3d725300f1029daf9671df2 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 16:46:54 +0200 Subject: [PATCH 17/22] #226: Update generated data --- hydrolib/core/io/rtc/pi_state/generated/_.py | 17 + .../io/rtc/pi_state/generated/__init__.py | 663 +++++++++ .../io/rtc/pi_state/generated/pi_state.json | 1075 ++++++++++++++ .../core/io/rtc/pi_timeseries/generated/_.py | 17 + .../rtc/pi_timeseries/generated/__init__.py | 759 ++++++++++ .../generated/pi_timeseries.json | 1260 +++++++++++++++++ .../core/io/rtc/rtcDataConfig/generated/_.py | 6 +- .../rtc/rtcDataConfig/generated/__init__.py | 38 +- .../generated/rtcDataConfig.json | 20 +- .../io/rtc/rtcObjectiveConfig/generated/_.py | 13 + .../rtcObjectiveConfig/generated/__init__.py | 707 +++++++++ .../generated/rtcObjectiveConfig.json | 1173 +++++++++++++++ .../io/rtc/rtcRuntimeConfig/generated/_.py | 2 +- .../rtcRuntimeConfig/generated/__init__.py | 332 ++++- .../core/io/rtc/rtcToolsConfig/generated/_.py | 2 +- .../_/_/ExternalParameterSimpleType.py | 2 +- .../generated/_/_/TimeSeriesSimpleType.py | 2 +- .../rtcToolsConfig/generated/_/_/__init__.py | 2 +- .../rtcToolsConfig/generated/_/_/xs_string.py | 2 +- .../rtc/rtcToolsConfig/generated/__init__.py | 2 +- 20 files changed, 6027 insertions(+), 67 deletions(-) create mode 100644 hydrolib/core/io/rtc/pi_state/generated/_.py create mode 100644 hydrolib/core/io/rtc/pi_state/generated/__init__.py create mode 100644 hydrolib/core/io/rtc/pi_state/generated/pi_state.json create mode 100644 hydrolib/core/io/rtc/pi_timeseries/generated/_.py create mode 100644 hydrolib/core/io/rtc/pi_timeseries/generated/__init__.py create mode 100644 hydrolib/core/io/rtc/pi_timeseries/generated/pi_timeseries.json create mode 100644 hydrolib/core/io/rtc/rtcObjectiveConfig/generated/_.py create mode 100644 hydrolib/core/io/rtc/rtcObjectiveConfig/generated/__init__.py create mode 100644 hydrolib/core/io/rtc/rtcObjectiveConfig/generated/rtcObjectiveConfig.json diff --git a/hydrolib/core/io/rtc/pi_state/generated/_.py b/hydrolib/core/io/rtc/pi_state/generated/_.py new file mode 100644 index 000000000..72d467f36 --- /dev/null +++ b/hydrolib/core/io/rtc/pi_state/generated/_.py @@ -0,0 +1,17 @@ +# generated by datamodel-codegen: +# filename: pi_state.json +# timestamp: 2022-09-27T14:37:49+00:00 + +from __future__ import annotations + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Field + +from . import StateComplexType + + +class State(RtcBaseModel): + __root__: StateComplexType = Field( + ..., + description='A state consists of a number of locations.\n from which FFS reads and writes the model state data.\n A such reading is reading by the FFS and writing is writing by the FFS. ', + ) diff --git a/hydrolib/core/io/rtc/pi_state/generated/__init__.py b/hydrolib/core/io/rtc/pi_state/generated/__init__.py new file mode 100644 index 000000000..ef833164d --- /dev/null +++ b/hydrolib/core/io/rtc/pi_state/generated/__init__.py @@ -0,0 +1,663 @@ +# generated by datamodel-codegen: +# filename: pi_state.json +# timestamp: 2022-09-27T14:37:49+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Extra, Field + +from . import _ + + +class GeoDatumEnumStringType(str, Enum): + """ + The geographical datum for the location data. Presently only WGS-1984, OS 1936 and LOCAL are recognised. LOCAL indicates a local grid. + """ + + LOCAL = 'LOCAL' + WGS_1984 = 'WGS 1984' + Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' + TWD_1967 = 'TWD 1967' + Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' + Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' + Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' + Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' + Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' + JRC = 'JRC' + DWD = 'DWD' + KNMI_Radar = 'KNMI Radar' + CH1903 = 'CH1903' + PAK1 = 'PAK1' + PAK2 = 'PAK2' + SVY21 = 'SVY21' + + +class GeoDatumStringTypeEnum(str, Enum): + """ + The geographical datum for the location data. Presently only WGS-1984, OS 1936 and LOCAL are recognised. LOCAL indicates a local grid. + """ + + LOCAL = 'LOCAL' + WGS_1984 = 'WGS 1984' + Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' + TWD_1967 = 'TWD 1967' + Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' + Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' + Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' + Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' + Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' + JRC = 'JRC' + DWD = 'DWD' + KNMI_Radar = 'KNMI Radar' + CH1903 = 'CH1903' + PAK1 = 'PAK1' + PAK2 = 'PAK2' + SVY21 = 'SVY21' + + +class GeoDatumStringTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$') + + +class GeoDatumStringType(RtcBaseModel): + __root__: Union[GeoDatumStringTypeEnum, GeoDatumStringTypeItem] + + +class LocationIdSimpleType(RtcBaseModel): + __root__: str = Field(..., description='Location ID, defined by the model') + + +class ParameterSimpleType(RtcBaseModel): + __root__: str = Field( + ..., + description='Content of the data (Discharge, Precipitation, VPD); defined by the model', + ) + + +class AttrType(str, Enum): + file = 'file' + directory = 'directory' + + +class AttrUnit(int, Enum): + integer_1 = 1 + integer_2 = 2 + integer_3 = 3 + integer_4 = 4 + + +class TimeZoneSimpleType(RtcBaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS', + ) + + +class UtmGeoDatumStringType(RtcBaseModel): + __root__: str = Field(..., regex='^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$') + + +class ValueTypeEnumStringType(str, Enum): + boolean = 'boolean' + int = 'int' + float = 'float' + double = 'double' + string = 'string' + + +class BooleanStringTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([\\w\\D]*[@][\\w\\D]*)$') + + +class BooleanStringType(RtcBaseModel): + __root__: Union[bool, BooleanStringTypeItem] = Field( + ..., description=' \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t' + ) + + +class CommentString(RtcBaseModel): + __root__: str + + +class DateType(RtcBaseModel): + __root__: str = Field( + ..., regex='^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$' + ) + + +class DoubleStringTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([\\w\\D]*[@][\\w\\D]*)$') + + +class DoubleStringType(RtcBaseModel): + __root__: Union[float, DoubleStringTypeItem] = Field( + ..., + description='\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t', + ) + + +class EventCodeString(RtcBaseModel): + __root__: str = Field(..., regex='^(\\^\\:)$') + + +class IdString(RtcBaseModel): + __root__: str + + +class IdStringType(RtcBaseModel): + __root__: str = Field(..., max_length=64, min_length=1) + + +class IntStringTypeItem(RtcBaseModel): + __root__: int = Field(..., ge=-2147483648, le=2147483647) + + +class IntStringTypeItem1(RtcBaseModel): + __root__: str = Field(..., regex='^([\\w\\D]*[@][\\w\\D]*)$') + + +class IntStringType(RtcBaseModel): + __root__: Union[IntStringTypeItem, IntStringTypeItem1] = Field( + ..., description='\n\t\t\t\tInteger that allows (global) properties\n\t\t\t' + ) + + +class NameString(RtcBaseModel): + __root__: str + + +class NonEmptyStringType(RtcBaseModel): + __root__: str = Field(..., min_length=1) + + +class PropertyReferenceString(RtcBaseModel): + __root__: str = Field(..., regex='^([\\w\\D]*[@][\\w\\D]*)$') + + +class TimeSeriesType(str, Enum): + """ + Type of data, either accumulative or instantaneous. For accumulative data the time/date of the event is the moment at which the data was gathered. + + """ + + accumulative = 'accumulative' + instantaneous = 'instantaneous' + mean = 'mean' + + +class TimeSeriesTypeEnumStringType(str, Enum): + external_historical = 'external historical' + external_forecasting = 'external forecasting' + simulated_historical = 'simulated historical' + simulated_forecasting = 'simulated forecasting' + temporary = 'temporary' + + +class TimeStepUnitEnumStringType(str, Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + month = 'month' + year = 'year' + nonequidistant = 'nonequidistant' + + +class TimeType(RtcBaseModel): + __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') + + +class VersionString(str, Enum): + field_1_2 = '1.2' + field_1_3 = '1.3' + field_1_4 = '1.4' + field_1_5 = '1.5' + field_1_6 = '1.6' + field_1_7 = '1.7' + field_1_8 = '1.8' + field_1_9 = '1.9' + field_1_10 = '1.10' + field_1_11 = '1.11' + field_1_12 = '1.12' + field_1_13 = '1.13' + field_1_14 = '1.14' + + +class XsAnyURI(RtcBaseModel): + __root__: str + + +class XsBoolean(RtcBaseModel): + __root__: bool + + +class XsDouble(RtcBaseModel): + __root__: float + + +class XsFloat(RtcBaseModel): + __root__: float + + +class XsGDay(RtcBaseModel): + __root__: str + + +class XsGMonth(RtcBaseModel): + __root__: str + + +class XsGMonthDay(RtcBaseModel): + __root__: str + + +class XsInt(RtcBaseModel): + __root__: int = Field(..., ge=-2147483648, le=2147483647) + + +class XsNonNegativeInteger(RtcBaseModel): + __root__: int = Field(..., ge=0) + + +class XsPositiveInteger(RtcBaseModel): + __root__: int = Field(..., ge=1) + + +class XsString(RtcBaseModel): + __root__: str + + +class BoolPropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsBoolean + description: Optional[XsString] = None + + +class ColumnIdsComplexType(RtcBaseModel): + """ + Column names for columns A through Z. + """ + + class Config: + extra = Extra.forbid + + attr_A: XsString + attr_B: Optional[XsString] = None + attr_C: Optional[XsString] = None + attr_D: Optional[XsString] = None + attr_E: Optional[XsString] = None + attr_F: Optional[XsString] = None + attr_G: Optional[XsString] = None + attr_H: Optional[XsString] = None + attr_I: Optional[XsString] = None + attr_J: Optional[XsString] = None + attr_K: Optional[XsString] = None + attr_L: Optional[XsString] = None + attr_M: Optional[XsString] = None + attr_N: Optional[XsString] = None + attr_O: Optional[XsString] = None + attr_P: Optional[XsString] = None + attr_Q: Optional[XsString] = None + attr_R: Optional[XsString] = None + attr_S: Optional[XsString] = None + attr_T: Optional[XsString] = None + attr_U: Optional[XsString] = None + attr_V: Optional[XsString] = None + attr_W: Optional[XsString] = None + attr_X: Optional[XsString] = None + attr_Y: Optional[XsString] = None + attr_Z: Optional[XsString] = None + + +class ColumnMetaDataComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_A: XsString + attr_B: Optional[XsString] = None + attr_C: Optional[XsString] = None + attr_D: Optional[XsString] = None + attr_E: Optional[XsString] = None + attr_F: Optional[XsString] = None + attr_G: Optional[XsString] = None + attr_H: Optional[XsString] = None + attr_I: Optional[XsString] = None + attr_J: Optional[XsString] = None + attr_K: Optional[XsString] = None + attr_L: Optional[XsString] = None + attr_M: Optional[XsString] = None + attr_N: Optional[XsString] = None + attr_O: Optional[XsString] = None + attr_P: Optional[XsString] = None + attr_Q: Optional[XsString] = None + attr_R: Optional[XsString] = None + attr_S: Optional[XsString] = None + attr_T: Optional[XsString] = None + attr_U: Optional[XsString] = None + attr_V: Optional[XsString] = None + attr_W: Optional[XsString] = None + attr_X: Optional[XsString] = None + attr_Y: Optional[XsString] = None + attr_Z: Optional[XsString] = None + attr_id: Optional[XsString] = None + attr_type: Optional[ValueTypeEnumStringType] = None + + +class ColumnTypesComplexType(RtcBaseModel): + """ + Value-types in the columns A through Z. If no type specified, type 'String' is assumed. + """ + + class Config: + extra = Extra.forbid + + attr_A: ValueTypeEnumStringType + attr_B: Optional[ValueTypeEnumStringType] = None + attr_C: Optional[ValueTypeEnumStringType] = None + attr_D: Optional[ValueTypeEnumStringType] = None + attr_E: Optional[ValueTypeEnumStringType] = None + attr_F: Optional[ValueTypeEnumStringType] = None + attr_G: Optional[ValueTypeEnumStringType] = None + attr_H: Optional[ValueTypeEnumStringType] = None + attr_I: Optional[ValueTypeEnumStringType] = None + attr_J: Optional[ValueTypeEnumStringType] = None + attr_K: Optional[ValueTypeEnumStringType] = None + attr_L: Optional[ValueTypeEnumStringType] = None + attr_M: Optional[ValueTypeEnumStringType] = None + attr_N: Optional[ValueTypeEnumStringType] = None + attr_O: Optional[ValueTypeEnumStringType] = None + attr_P: Optional[ValueTypeEnumStringType] = None + attr_Q: Optional[ValueTypeEnumStringType] = None + attr_R: Optional[ValueTypeEnumStringType] = None + attr_S: Optional[ValueTypeEnumStringType] = None + attr_T: Optional[ValueTypeEnumStringType] = None + attr_U: Optional[ValueTypeEnumStringType] = None + attr_V: Optional[ValueTypeEnumStringType] = None + attr_W: Optional[ValueTypeEnumStringType] = None + attr_X: Optional[ValueTypeEnumStringType] = None + attr_Y: Optional[ValueTypeEnumStringType] = None + attr_Z: Optional[ValueTypeEnumStringType] = None + + +class DateTimeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_date: DateType + attr_time: TimeType + + +class DateTimePropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_date: DateType + attr_key: XsString + attr_time: TimeType + description: Optional[XsString] = None + + +class DoublePropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsDouble + description: Optional[XsString] = None + + +class EnsembleMemberComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_index: XsNonNegativeInteger + attr_weight: Optional[XsDouble] = None + + +class EnsembleMemberRangeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_end: Optional[XsNonNegativeInteger] = None + attr_start: XsNonNegativeInteger + attr_weight: Optional[XsDouble] = None + + +class FloatPropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsFloat + description: Optional[XsString] = None + + +class IntPropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsInt + description: Optional[XsString] = None + + +class PeriodConditionComplexType(RtcBaseModel): + """ + A period condition. If a date is specified without a timezone, e.g. 2002-10-10T12:00:00, then it is assumed to be in UTC. + """ + + class Config: + extra = Extra.forbid + + day: Optional[List[XsGDay]] = None + endDate: Optional[DateTimeComplexType] = Field( + None, description='End date and time for this period.' + ) + endMonthDay: Optional[XsGMonthDay] = Field( + None, description='End month and day of this season.' + ) + month: Optional[List[XsGMonth]] = None + monthDay: Optional[List[XsGMonthDay]] = None + startDate: Optional[DateTimeComplexType] = Field( + None, description='Start date and time for this period.' + ) + startMonthDay: Optional[XsGMonthDay] = Field( + None, description='Start month and day of this season.' + ) + timeZone: Optional[TimeZoneSimpleType] = Field(None, description='Timezone') + validAfterDate: Optional[DateTimeComplexType] = Field( + None, description='Valid for entire period after this date and time.' + ) + validBeforeDate: Optional[DateTimeComplexType] = Field( + None, description='Valid for entire period prior to this date and time.' + ) + + +class RowComplexType(RtcBaseModel): + """ + Values in the columns A through Z. The values are entered as strings, however the value-type in each column should match the type as specified with columnTypes for this column. This wil be checked while reading the xml-file. If no column-type specified, 'String' type is assumed. + """ + + class Config: + extra = Extra.forbid + + attr_A: XsString + attr_B: Optional[XsString] = None + attr_C: Optional[XsString] = None + attr_D: Optional[XsString] = None + attr_E: Optional[XsString] = None + attr_F: Optional[XsString] = None + attr_G: Optional[XsString] = None + attr_H: Optional[XsString] = None + attr_I: Optional[XsString] = None + attr_J: Optional[XsString] = None + attr_K: Optional[XsString] = None + attr_L: Optional[XsString] = None + attr_M: Optional[XsString] = None + attr_N: Optional[XsString] = None + attr_O: Optional[XsString] = None + attr_P: Optional[XsString] = None + attr_Q: Optional[XsString] = None + attr_R: Optional[XsString] = None + attr_S: Optional[XsString] = None + attr_T: Optional[XsString] = None + attr_U: Optional[XsString] = None + attr_V: Optional[XsString] = None + attr_W: Optional[XsString] = None + attr_X: Optional[XsString] = None + attr_Y: Optional[XsString] = None + attr_Z: Optional[XsString] = None + + +class StateReadWriteDirectoryComplexType(RtcBaseModel): + """ + Each state location consists of a read and a write location. + The type attribute indicates whether this points to a file or a directory. + """ + + class Config: + extra = Extra.forbid + + attr_type: AttrType + readLocation: XsAnyURI = Field( + ..., + description='The name of the input state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally', + ) + writeLocation: XsAnyURI = Field( + ..., + description='The name of the output state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally', + ) + + +class StringPropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsString + description: Optional[XsString] = None + + +class TimeStepComplexType(RtcBaseModel): + """ + The time unit element has three attributes, unit and divider and multiplier. the unit is second, minute, hour, week, month year. The divider attribute is optional (default = 1). + """ + + class Config: + extra = Extra.forbid + + attr_divider: Optional[XsPositiveInteger] = None + attr_multiplier: Optional[XsNonNegativeInteger] = None + attr_unit: TimeStepUnitEnumStringType + + +class TimeStepUnitComplexType(RtcBaseModel): + """ + The time unit element has two attributes, unit and divider. the unit is required and can be 1, 2, 3, or 4 meaning: year, month, day and hour. The divider attribute is optional (default = 1). + """ + + class Config: + extra = Extra.forbid + + attr_divider: Optional[XsInt] = None + attr_unit: AttrUnit + + +class ArchiveTimeSeriesSetComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + ensembleId: Optional[IdStringType] = Field( + None, + description="Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow.", + ) + locationId: List[IdStringType] = Field(..., min_items=1) + moduleInstanceId: IdStringType + parameterId: IdStringType + qualifierId: Optional[List[IdStringType]] = None + timeSeriesType: TimeSeriesTypeEnumStringType + timeStep: TimeStepComplexType + + +class GlobalTableComplexType(RtcBaseModel): + """ + Intended for the configuration of any table + """ + + class Config: + extra = Extra.forbid + + columnIds: Optional[ColumnIdsComplexType] = None + columnMetaData: Optional[List[ColumnMetaDataComplexType]] = None + columnTypes: Optional[ColumnTypesComplexType] = None + columnUnits: Optional[ColumnIdsComplexType] = None + row: List[RowComplexType] = Field(..., min_items=1) + + +class PropertiesComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + bool: Optional[List[BoolPropertyComplexType]] = None + dateTime: Optional[List[DateTimePropertyComplexType]] = None + description: Optional[XsString] = None + double: Optional[List[DoublePropertyComplexType]] = None + float: Optional[List[FloatPropertyComplexType]] = None + int: Optional[List[IntPropertyComplexType]] = None + string: Optional[List[StringPropertyComplexType]] = None + + +class StateComplexType(RtcBaseModel): + """ + A state consists of a number of locations. + from which FFS reads and writes the model state data. + A such reading is reading by the FFS and writing is writing by the FFS. + """ + + class Config: + extra = Extra.forbid + + attr_version: VersionString + comment: Optional[CommentString] = Field( + None, + description='use this field as a notebook to add comments, suggestions\n description of data entered etc.', + ) + dateTime: Optional[DateTimeComplexType] = Field( + None, description='date and time this state is valid for/was taken' + ) + stateId: IdString = Field( + ..., description='id of this state, defined by the module' + ) + stateLoc: List[StateReadWriteDirectoryComplexType] = Field(..., min_items=1) + stateName: Optional[NameString] = Field( + None, description='optional descriptive name of this state' + ) + timeZone: Optional[TimeZoneSimpleType] = Field( + None, + description='the time zone of the pi input files is assumed when the time zone in a pi output file is missing', + ) + + +class Model(RtcBaseModel): + """ + JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com) + """ + + class Config: + extra = Extra.forbid + + attr_xmlns_fews: Optional[Any] = Field( + 'http://www.wldelft.nl/fews/PI', alias='attr_xmlns:fews' + ) + attr_xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' + ) + State: Optional[_.State] = None diff --git a/hydrolib/core/io/rtc/pi_state/generated/pi_state.json b/hydrolib/core/io/rtc/pi_state/generated/pi_state.json new file mode 100644 index 000000000..c88b39675 --- /dev/null +++ b/hydrolib/core/io/rtc/pi_state/generated/pi_state.json @@ -0,0 +1,1075 @@ +{ + "$schema": "http://json-schema.org/schema#", + "additionalProperties": false, + "definitions": { + ".State": { + "$ref": "#/definitions/StateComplexType", + "description": "A state consists of a number of locations.\n from which FFS reads and writes the model state data.\n A such reading is reading by the FFS and writing is writing by the FFS. " + }, + "ArchiveTimeSeriesSetComplexType": { + "additionalProperties": false, + "properties": { + "ensembleId": { + "$ref": "#/definitions/idStringType", + "description": "Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow." + }, + "locationId": { + "items": { + "$ref": "#/definitions/idStringType" + }, + "minItems": 1, + "type": "array" + }, + "moduleInstanceId": { + "$ref": "#/definitions/idStringType" + }, + "parameterId": { + "$ref": "#/definitions/idStringType" + }, + "qualifierId": { + "items": { + "$ref": "#/definitions/idStringType", + "description": "Id that references an qualifier listed in the regionConfigFiles/Qualifiers.xsd\n\t\t\t\t\t" + }, + "type": "array" + }, + "timeSeriesType": { + "$ref": "#/definitions/timeSeriesTypeEnumStringType" + }, + "timeStep": { + "$ref": "#/definitions/TimeStepComplexType" + } + }, + "required": [ + "locationId", + "moduleInstanceId", + "parameterId", + "timeSeriesType", + "timeStep" + ], + "type": "object" + }, + "BoolPropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:boolean" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "ColumnIdsComplexType": { + "additionalProperties": false, + "description": "Column names for columns A through Z.", + "properties": { + "attr_A": { + "$ref": "#/definitions/xs:string" + }, + "attr_B": { + "$ref": "#/definitions/xs:string" + }, + "attr_C": { + "$ref": "#/definitions/xs:string" + }, + "attr_D": { + "$ref": "#/definitions/xs:string" + }, + "attr_E": { + "$ref": "#/definitions/xs:string" + }, + "attr_F": { + "$ref": "#/definitions/xs:string" + }, + "attr_G": { + "$ref": "#/definitions/xs:string" + }, + "attr_H": { + "$ref": "#/definitions/xs:string" + }, + "attr_I": { + "$ref": "#/definitions/xs:string" + }, + "attr_J": { + "$ref": "#/definitions/xs:string" + }, + "attr_K": { + "$ref": "#/definitions/xs:string" + }, + "attr_L": { + "$ref": "#/definitions/xs:string" + }, + "attr_M": { + "$ref": "#/definitions/xs:string" + }, + "attr_N": { + "$ref": "#/definitions/xs:string" + }, + "attr_O": { + "$ref": "#/definitions/xs:string" + }, + "attr_P": { + "$ref": "#/definitions/xs:string" + }, + "attr_Q": { + "$ref": "#/definitions/xs:string" + }, + "attr_R": { + "$ref": "#/definitions/xs:string" + }, + "attr_S": { + "$ref": "#/definitions/xs:string" + }, + "attr_T": { + "$ref": "#/definitions/xs:string" + }, + "attr_U": { + "$ref": "#/definitions/xs:string" + }, + "attr_V": { + "$ref": "#/definitions/xs:string" + }, + "attr_W": { + "$ref": "#/definitions/xs:string" + }, + "attr_X": { + "$ref": "#/definitions/xs:string" + }, + "attr_Y": { + "$ref": "#/definitions/xs:string" + }, + "attr_Z": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_A" + ], + "type": "object" + }, + "ColumnMetaDataComplexType": { + "additionalProperties": false, + "properties": { + "attr_A": { + "$ref": "#/definitions/xs:string" + }, + "attr_B": { + "$ref": "#/definitions/xs:string" + }, + "attr_C": { + "$ref": "#/definitions/xs:string" + }, + "attr_D": { + "$ref": "#/definitions/xs:string" + }, + "attr_E": { + "$ref": "#/definitions/xs:string" + }, + "attr_F": { + "$ref": "#/definitions/xs:string" + }, + "attr_G": { + "$ref": "#/definitions/xs:string" + }, + "attr_H": { + "$ref": "#/definitions/xs:string" + }, + "attr_I": { + "$ref": "#/definitions/xs:string" + }, + "attr_J": { + "$ref": "#/definitions/xs:string" + }, + "attr_K": { + "$ref": "#/definitions/xs:string" + }, + "attr_L": { + "$ref": "#/definitions/xs:string" + }, + "attr_M": { + "$ref": "#/definitions/xs:string" + }, + "attr_N": { + "$ref": "#/definitions/xs:string" + }, + "attr_O": { + "$ref": "#/definitions/xs:string" + }, + "attr_P": { + "$ref": "#/definitions/xs:string" + }, + "attr_Q": { + "$ref": "#/definitions/xs:string" + }, + "attr_R": { + "$ref": "#/definitions/xs:string" + }, + "attr_S": { + "$ref": "#/definitions/xs:string" + }, + "attr_T": { + "$ref": "#/definitions/xs:string" + }, + "attr_U": { + "$ref": "#/definitions/xs:string" + }, + "attr_V": { + "$ref": "#/definitions/xs:string" + }, + "attr_W": { + "$ref": "#/definitions/xs:string" + }, + "attr_X": { + "$ref": "#/definitions/xs:string" + }, + "attr_Y": { + "$ref": "#/definitions/xs:string" + }, + "attr_Z": { + "$ref": "#/definitions/xs:string" + }, + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_type": { + "$ref": "#/definitions/ValueTypeEnumStringType" + } + }, + "required": [ + "attr_A" + ], + "type": "object" + }, + "ColumnTypesComplexType": { + "additionalProperties": false, + "description": "Value-types in the columns A through Z. If no type specified, type 'String' is assumed.", + "properties": { + "attr_A": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_B": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_C": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_D": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_E": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_F": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_G": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_H": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_I": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_J": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_K": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_L": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_M": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_N": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_O": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_P": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_Q": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_R": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_S": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_T": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_U": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_V": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_W": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_X": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_Y": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_Z": { + "$ref": "#/definitions/ValueTypeEnumStringType" + } + }, + "required": [ + "attr_A" + ], + "type": "object" + }, + "DateTimeComplexType": { + "additionalProperties": false, + "properties": { + "attr_date": { + "$ref": "#/definitions/dateType" + }, + "attr_time": { + "$ref": "#/definitions/timeType" + } + }, + "required": [ + "attr_date", + "attr_time" + ], + "type": "object" + }, + "DateTimePropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_date": { + "$ref": "#/definitions/dateType" + }, + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_time": { + "$ref": "#/definitions/timeType" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_time", + "attr_key", + "attr_date" + ], + "type": "object" + }, + "DoublePropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:double" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "EnsembleMemberComplexType": { + "additionalProperties": false, + "properties": { + "attr_index": { + "$ref": "#/definitions/xs:nonNegativeInteger" + }, + "attr_weight": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_index" + ], + "type": "object" + }, + "EnsembleMemberRangeComplexType": { + "additionalProperties": false, + "properties": { + "attr_end": { + "$ref": "#/definitions/xs:nonNegativeInteger" + }, + "attr_start": { + "$ref": "#/definitions/xs:nonNegativeInteger" + }, + "attr_weight": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_start" + ], + "type": "object" + }, + "FloatPropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:float" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "GeoDatumEnumStringType": { + "description": "The geographical datum for the location data. Presently only WGS-1984, OS 1936 and LOCAL are recognised. LOCAL indicates a local grid.", + "enum": [ + "LOCAL", + "WGS 1984", + "Ordnance Survey Great Britain 1936", + "TWD 1967", + "Gauss Krueger Meridian2", + "Gauss Krueger Meridian3", + "Gauss Krueger Austria M34", + "Gauss Krueger Austria M31", + "Rijks Driehoekstelsel", + "JRC", + "DWD", + "KNMI Radar", + "CH1903", + "PAK1", + "PAK2", + "SVY21" + ], + "type": "string" + }, + "GeoDatumStringType": { + "anyOf": [ + { + "description": "The geographical datum for the location data. Presently only WGS-1984, OS 1936 and LOCAL are recognised. LOCAL indicates a local grid.", + "enum": [ + "LOCAL", + "WGS 1984", + "Ordnance Survey Great Britain 1936", + "TWD 1967", + "Gauss Krueger Meridian2", + "Gauss Krueger Meridian3", + "Gauss Krueger Austria M34", + "Gauss Krueger Austria M31", + "Rijks Driehoekstelsel", + "JRC", + "DWD", + "KNMI Radar", + "CH1903", + "PAK1", + "PAK2", + "SVY21" + ], + "type": "string" + }, + { + "pattern": "^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$", + "type": "string" + } + ] + }, + "GlobalTableComplexType": { + "additionalProperties": false, + "description": "Intended for the configuration of any table", + "properties": { + "columnIds": { + "$ref": "#/definitions/ColumnIdsComplexType" + }, + "columnMetaData": { + "items": { + "$ref": "#/definitions/ColumnMetaDataComplexType" + }, + "type": "array" + }, + "columnTypes": { + "$ref": "#/definitions/ColumnTypesComplexType" + }, + "columnUnits": { + "$ref": "#/definitions/ColumnIdsComplexType" + }, + "row": { + "items": { + "$ref": "#/definitions/RowComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "row" + ], + "type": "object" + }, + "IntPropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:int" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "LocationIdSimpleType": { + "description": "Location ID, defined by the model", + "type": "string" + }, + "ParameterSimpleType": { + "description": "Content of the data (Discharge, Precipitation, VPD); defined by the model", + "type": "string" + }, + "PeriodConditionComplexType": { + "additionalProperties": false, + "description": "A period condition. If a date is specified without a timezone, e.g. 2002-10-10T12:00:00, then it is assumed to be in UTC.", + "properties": { + "day": { + "items": { + "$ref": "#/definitions/xs:gDay", + "description": "Day of the month such as the 5th of the month that is repeated every year\n\t\t\t\t\t\t" + }, + "type": "array" + }, + "endDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "End date and time for this period." + }, + "endMonthDay": { + "$ref": "#/definitions/xs:gMonthDay", + "description": "End month and day of this season." + }, + "month": { + "items": { + "$ref": "#/definitions/xs:gMonth", + "description": "Month that is repeated every year" + }, + "type": "array" + }, + "monthDay": { + "items": { + "$ref": "#/definitions/xs:gMonthDay", + "description": "Day of the year (e.g. third of May) that is repeated every year" + }, + "type": "array" + }, + "startDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "Start date and time for this period." + }, + "startMonthDay": { + "$ref": "#/definitions/xs:gMonthDay", + "description": "Start month and day of this season." + }, + "timeZone": { + "$ref": "#/definitions/TimeZoneSimpleType", + "description": "Timezone" + }, + "validAfterDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "Valid for entire period after this date and time." + }, + "validBeforeDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "Valid for entire period prior to this date and time." + } + }, + "type": "object" + }, + "PropertiesComplexType": { + "additionalProperties": false, + "properties": { + "bool": { + "items": { + "$ref": "#/definitions/BoolPropertyComplexType" + }, + "type": "array" + }, + "dateTime": { + "items": { + "$ref": "#/definitions/DateTimePropertyComplexType", + "description": "Since 2014.01" + }, + "type": "array" + }, + "description": { + "$ref": "#/definitions/xs:string" + }, + "double": { + "items": { + "$ref": "#/definitions/DoublePropertyComplexType", + "description": "Since 2014.01" + }, + "type": "array" + }, + "float": { + "items": { + "$ref": "#/definitions/FloatPropertyComplexType" + }, + "type": "array" + }, + "int": { + "items": { + "$ref": "#/definitions/IntPropertyComplexType" + }, + "type": "array" + }, + "string": { + "items": { + "$ref": "#/definitions/StringPropertyComplexType" + }, + "type": "array" + } + }, + "type": "object" + }, + "RowComplexType": { + "additionalProperties": false, + "description": "Values in the columns A through Z. The values are entered as strings, however the value-type in each column should match the type as specified with columnTypes for this column. This wil be checked while reading the xml-file. If no column-type specified, 'String' type is assumed.", + "properties": { + "attr_A": { + "$ref": "#/definitions/xs:string" + }, + "attr_B": { + "$ref": "#/definitions/xs:string" + }, + "attr_C": { + "$ref": "#/definitions/xs:string" + }, + "attr_D": { + "$ref": "#/definitions/xs:string" + }, + "attr_E": { + "$ref": "#/definitions/xs:string" + }, + "attr_F": { + "$ref": "#/definitions/xs:string" + }, + "attr_G": { + "$ref": "#/definitions/xs:string" + }, + "attr_H": { + "$ref": "#/definitions/xs:string" + }, + "attr_I": { + "$ref": "#/definitions/xs:string" + }, + "attr_J": { + "$ref": "#/definitions/xs:string" + }, + "attr_K": { + "$ref": "#/definitions/xs:string" + }, + "attr_L": { + "$ref": "#/definitions/xs:string" + }, + "attr_M": { + "$ref": "#/definitions/xs:string" + }, + "attr_N": { + "$ref": "#/definitions/xs:string" + }, + "attr_O": { + "$ref": "#/definitions/xs:string" + }, + "attr_P": { + "$ref": "#/definitions/xs:string" + }, + "attr_Q": { + "$ref": "#/definitions/xs:string" + }, + "attr_R": { + "$ref": "#/definitions/xs:string" + }, + "attr_S": { + "$ref": "#/definitions/xs:string" + }, + "attr_T": { + "$ref": "#/definitions/xs:string" + }, + "attr_U": { + "$ref": "#/definitions/xs:string" + }, + "attr_V": { + "$ref": "#/definitions/xs:string" + }, + "attr_W": { + "$ref": "#/definitions/xs:string" + }, + "attr_X": { + "$ref": "#/definitions/xs:string" + }, + "attr_Y": { + "$ref": "#/definitions/xs:string" + }, + "attr_Z": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_A" + ], + "type": "object" + }, + "StateComplexType": { + "additionalProperties": false, + "description": "A state consists of a number of locations.\n from which FFS reads and writes the model state data.\n A such reading is reading by the FFS and writing is writing by the FFS. ", + "properties": { + "attr_version": { + "$ref": "#/definitions/versionString" + }, + "comment": { + "$ref": "#/definitions/commentString", + "description": "use this field as a notebook to add comments, suggestions\n description of data entered etc." + }, + "dateTime": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "date and time this state is valid for/was taken" + }, + "stateId": { + "$ref": "#/definitions/idString", + "description": "id of this state, defined by the module" + }, + "stateLoc": { + "items": { + "$ref": "#/definitions/StateReadWriteDirectoryComplexType", + "description": "Each state location consists of a read and a write location.\n The type attribute indicates whether this points to a file or a directory." + }, + "minItems": 1, + "type": "array" + }, + "stateName": { + "$ref": "#/definitions/nameString", + "description": "optional descriptive name of this state" + }, + "timeZone": { + "$ref": "#/definitions/TimeZoneSimpleType", + "description": "the time zone of the pi input files is assumed when the time zone in a pi output file is missing" + } + }, + "required": [ + "stateId", + "stateLoc", + "attr_version" + ], + "type": "object" + }, + "StateReadWriteDirectoryComplexType": { + "additionalProperties": false, + "description": "Each state location consists of a read and a write location.\n The type attribute indicates whether this points to a file or a directory.", + "properties": { + "attr_type": { + "enum": [ + "file", + "directory" + ], + "type": "string" + }, + "readLocation": { + "$ref": "#/definitions/xs:anyURI", + "description": "The name of the input state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally" + }, + "writeLocation": { + "$ref": "#/definitions/xs:anyURI", + "description": "The name of the output state of the model. The write location is imported by the general adapter. This imported file is renamed to the read location internally" + } + }, + "required": [ + "readLocation", + "writeLocation", + "attr_type" + ], + "type": "object" + }, + "StringPropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:string" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "TimeStepComplexType": { + "additionalProperties": false, + "description": "The time unit element has three attributes, unit and divider and multiplier. the unit is second, minute, hour, week, month year. The divider attribute is optional (default = 1).", + "properties": { + "attr_divider": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_multiplier": { + "$ref": "#/definitions/xs:nonNegativeInteger" + }, + "attr_unit": { + "$ref": "#/definitions/timeStepUnitEnumStringType" + } + }, + "required": [ + "attr_unit" + ], + "type": "object" + }, + "TimeStepUnitComplexType": { + "additionalProperties": false, + "description": "The time unit element has two attributes, unit and divider. the unit is required and can be 1, 2, 3, or 4 meaning: year, month, day and hour. The divider attribute is optional (default = 1).", + "properties": { + "attr_divider": { + "$ref": "#/definitions/xs:int" + }, + "attr_unit": { + "enum": [ + 1, + 2, + 3, + 4 + ], + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + }, + "required": [ + "attr_unit" + ], + "type": "object" + }, + "TimeZoneSimpleType": { + "description": "The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS", + "type": "number" + }, + "UtmGeoDatumStringType": { + "pattern": "^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$", + "type": "string" + }, + "ValueTypeEnumStringType": { + "enum": [ + "boolean", + "int", + "float", + "double", + "string" + ], + "type": "string" + }, + "booleanStringType": { + "anyOf": [ + { + "type": "boolean" + }, + { + "pattern": "^([\\w\\D]*[@][\\w\\D]*)$", + "type": "string" + } + ], + "description": " \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t" + }, + "commentString": { + "type": "string" + }, + "dateType": { + "pattern": "^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$", + "type": "string" + }, + "doubleStringType": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^([\\w\\D]*[@][\\w\\D]*)$", + "type": "string" + } + ], + "description": "\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t" + }, + "eventCodeString": { + "pattern": "^(\\^\\:)$", + "type": "string" + }, + "idString": { + "type": "string" + }, + "idStringType": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "intStringType": { + "anyOf": [ + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + { + "pattern": "^([\\w\\D]*[@][\\w\\D]*)$", + "type": "string" + } + ], + "description": "\n\t\t\t\tInteger that allows (global) properties\n\t\t\t" + }, + "nameString": { + "type": "string" + }, + "nonEmptyStringType": { + "minLength": 1, + "type": "string" + }, + "propertyReferenceString": { + "pattern": "^([\\w\\D]*[@][\\w\\D]*)$", + "type": "string" + }, + "timeSeriesType": { + "description": "Type of data, either accumulative or instantaneous. For accumulative data the time/date of the event is the moment at which the data was gathered.\n\t\t\t", + "enum": [ + "accumulative", + "instantaneous", + "mean" + ], + "type": "string" + }, + "timeSeriesTypeEnumStringType": { + "enum": [ + "external historical", + "external forecasting", + "simulated historical", + "simulated forecasting", + "temporary" + ], + "type": "string" + }, + "timeStepUnitEnumStringType": { + "enum": [ + "second", + "minute", + "hour", + "day", + "week", + "month", + "year", + "nonequidistant" + ], + "type": "string" + }, + "timeType": { + "pattern": "^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$", + "type": "string" + }, + "versionString": { + "enum": [ + "1.2", + "1.3", + "1.4", + "1.5", + "1.6", + "1.7", + "1.8", + "1.9", + "1.10", + "1.11", + "1.12", + "1.13", + "1.14" + ], + "type": "string" + }, + "xs:anyURI": { + "type": "string" + }, + "xs:boolean": { + "type": "boolean" + }, + "xs:double": { + "type": "number" + }, + "xs:float": { + "type": "number" + }, + "xs:gDay": { + "type": "string" + }, + "xs:gMonth": { + "type": "string" + }, + "xs:gMonthDay": { + "type": "string" + }, + "xs:int": { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "xs:nonNegativeInteger": { + "minimum": 0, + "type": "integer" + }, + "xs:positiveInteger": { + "minimum": 1, + "type": "integer" + }, + "xs:string": { + "type": "string" + } + }, + "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", + "properties": { + "attr_xmlns:fews": { + "default": "http://www.wldelft.nl/fews/PI" + }, + "attr_xmlns:xs": { + "default": "http://www.w3.org/2001/XMLSchema" + }, + "State": { + "$ref": "#/definitions/.State" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/hydrolib/core/io/rtc/pi_timeseries/generated/_.py b/hydrolib/core/io/rtc/pi_timeseries/generated/_.py new file mode 100644 index 000000000..16793ea65 --- /dev/null +++ b/hydrolib/core/io/rtc/pi_timeseries/generated/_.py @@ -0,0 +1,17 @@ +# generated by datamodel-codegen: +# filename: pi_timeseries.json +# timestamp: 2022-09-27T14:37:51+00:00 + +from __future__ import annotations + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Field + +from . import TimeSeriesCollectionComplexType + + +class TimeSeries(RtcBaseModel): + __root__: TimeSeriesCollectionComplexType = Field( + ..., + description='Time series data represent data collected over a given period of time at a specific location', + ) diff --git a/hydrolib/core/io/rtc/pi_timeseries/generated/__init__.py b/hydrolib/core/io/rtc/pi_timeseries/generated/__init__.py new file mode 100644 index 000000000..13d441b69 --- /dev/null +++ b/hydrolib/core/io/rtc/pi_timeseries/generated/__init__.py @@ -0,0 +1,759 @@ +# generated by datamodel-codegen: +# filename: pi_timeseries.json +# timestamp: 2022-09-27T14:37:51+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Extra, Field + +from . import _ + + +class GeoDatumEnumStringType(str, Enum): + """ + The geographical datum for the location data. Presently only WGS-1984, OS 1936 and LOCAL are recognised. LOCAL indicates a local grid. + """ + + LOCAL = 'LOCAL' + WGS_1984 = 'WGS 1984' + Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' + TWD_1967 = 'TWD 1967' + Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' + Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' + Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' + Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' + Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' + JRC = 'JRC' + DWD = 'DWD' + KNMI_Radar = 'KNMI Radar' + CH1903 = 'CH1903' + PAK1 = 'PAK1' + PAK2 = 'PAK2' + SVY21 = 'SVY21' + + +class GeoDatumStringTypeEnum(str, Enum): + """ + The geographical datum for the location data. Presently only WGS-1984, OS 1936 and LOCAL are recognised. LOCAL indicates a local grid. + """ + + LOCAL = 'LOCAL' + WGS_1984 = 'WGS 1984' + Ordnance_Survey_Great_Britain_1936 = 'Ordnance Survey Great Britain 1936' + TWD_1967 = 'TWD 1967' + Gauss_Krueger_Meridian2 = 'Gauss Krueger Meridian2' + Gauss_Krueger_Meridian3 = 'Gauss Krueger Meridian3' + Gauss_Krueger_Austria_M34 = 'Gauss Krueger Austria M34' + Gauss_Krueger_Austria_M31 = 'Gauss Krueger Austria M31' + Rijks_Driehoekstelsel = 'Rijks Driehoekstelsel' + JRC = 'JRC' + DWD = 'DWD' + KNMI_Radar = 'KNMI Radar' + CH1903 = 'CH1903' + PAK1 = 'PAK1' + PAK2 = 'PAK2' + SVY21 = 'SVY21' + + +class GeoDatumStringTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$') + + +class GeoDatumStringType(RtcBaseModel): + __root__: Union[GeoDatumStringTypeEnum, GeoDatumStringTypeItem] + + +class LocationIdSimpleType(RtcBaseModel): + __root__: str = Field(..., description='Location ID, defined by the model') + + +class ParameterSimpleType(RtcBaseModel): + __root__: str = Field( + ..., + description='Content of the data (Discharge, Precipitation, VPD); defined by the model', + ) + + +class AttrUnit(int, Enum): + integer_1 = 1 + integer_2 = 2 + integer_3 = 3 + integer_4 = 4 + + +class TimeZoneSimpleType(RtcBaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS', + ) + + +class UtmGeoDatumStringType(RtcBaseModel): + __root__: str = Field(..., regex='^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$') + + +class ValueTypeEnumStringType(str, Enum): + boolean = 'boolean' + int = 'int' + float = 'float' + double = 'double' + string = 'string' + + +class BooleanStringTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([\\w\\D]*[@][\\w\\D]*)$') + + +class BooleanStringType(RtcBaseModel): + __root__: Union[bool, BooleanStringTypeItem] = Field( + ..., description=' \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t' + ) + + +class CommentString(RtcBaseModel): + __root__: str + + +class DateType(RtcBaseModel): + __root__: str = Field( + ..., regex='^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$' + ) + + +class DoubleStringTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([\\w\\D]*[@][\\w\\D]*)$') + + +class DoubleStringType(RtcBaseModel): + __root__: Union[float, DoubleStringTypeItem] = Field( + ..., + description='\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t', + ) + + +class EventCodeString(RtcBaseModel): + __root__: str = Field(..., regex='^(\\^\\:)$') + + +class IdString(RtcBaseModel): + __root__: str + + +class IdStringType(RtcBaseModel): + __root__: str = Field(..., max_length=64, min_length=1) + + +class IntStringTypeItem(RtcBaseModel): + __root__: int = Field(..., ge=-2147483648, le=2147483647) + + +class IntStringTypeItem1(RtcBaseModel): + __root__: str = Field(..., regex='^([\\w\\D]*[@][\\w\\D]*)$') + + +class IntStringType(RtcBaseModel): + __root__: Union[IntStringTypeItem, IntStringTypeItem1] = Field( + ..., description='\n\t\t\t\tInteger that allows (global) properties\n\t\t\t' + ) + + +class NameString(RtcBaseModel): + __root__: str + + +class NonEmptyStringType(RtcBaseModel): + __root__: str = Field(..., min_length=1) + + +class PropertyReferenceString(RtcBaseModel): + __root__: str = Field(..., regex='^([\\w\\D]*[@][\\w\\D]*)$') + + +class TimeSeriesType(str, Enum): + """ + Type of data, either accumulative or instantaneous. For accumulative data the time/date of the event is the moment at which the data was gathered. + + """ + + accumulative = 'accumulative' + instantaneous = 'instantaneous' + mean = 'mean' + + +class TimeSeriesTypeEnumStringType(str, Enum): + external_historical = 'external historical' + external_forecasting = 'external forecasting' + simulated_historical = 'simulated historical' + simulated_forecasting = 'simulated forecasting' + temporary = 'temporary' + + +class TimeStepUnitEnumStringType(str, Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + month = 'month' + year = 'year' + nonequidistant = 'nonequidistant' + + +class TimeType(RtcBaseModel): + __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') + + +class VersionString(str, Enum): + field_1_2 = '1.2' + field_1_3 = '1.3' + field_1_4 = '1.4' + field_1_5 = '1.5' + field_1_6 = '1.6' + field_1_7 = '1.7' + field_1_8 = '1.8' + field_1_9 = '1.9' + field_1_10 = '1.10' + field_1_11 = '1.11' + field_1_12 = '1.12' + field_1_13 = '1.13' + field_1_14 = '1.14' + + +class XsBoolean(RtcBaseModel): + __root__: bool + + +class XsDate(RtcBaseModel): + __root__: str + + +class XsDouble(RtcBaseModel): + __root__: float + + +class XsFloat(RtcBaseModel): + __root__: float + + +class XsGDay(RtcBaseModel): + __root__: str + + +class XsGMonth(RtcBaseModel): + __root__: str + + +class XsGMonthDay(RtcBaseModel): + __root__: str + + +class XsInt(RtcBaseModel): + __root__: int = Field(..., ge=-2147483648, le=2147483647) + + +class XsNonNegativeInteger(RtcBaseModel): + __root__: int = Field(..., ge=0) + + +class XsPositiveInteger(RtcBaseModel): + __root__: int = Field(..., ge=1) + + +class XsString(RtcBaseModel): + __root__: str + + +class XsTime(RtcBaseModel): + __root__: str + + +class BoolPropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsBoolean + description: Optional[XsString] = None + + +class ColumnIdsComplexType(RtcBaseModel): + """ + Column names for columns A through Z. + """ + + class Config: + extra = Extra.forbid + + attr_A: XsString + attr_B: Optional[XsString] = None + attr_C: Optional[XsString] = None + attr_D: Optional[XsString] = None + attr_E: Optional[XsString] = None + attr_F: Optional[XsString] = None + attr_G: Optional[XsString] = None + attr_H: Optional[XsString] = None + attr_I: Optional[XsString] = None + attr_J: Optional[XsString] = None + attr_K: Optional[XsString] = None + attr_L: Optional[XsString] = None + attr_M: Optional[XsString] = None + attr_N: Optional[XsString] = None + attr_O: Optional[XsString] = None + attr_P: Optional[XsString] = None + attr_Q: Optional[XsString] = None + attr_R: Optional[XsString] = None + attr_S: Optional[XsString] = None + attr_T: Optional[XsString] = None + attr_U: Optional[XsString] = None + attr_V: Optional[XsString] = None + attr_W: Optional[XsString] = None + attr_X: Optional[XsString] = None + attr_Y: Optional[XsString] = None + attr_Z: Optional[XsString] = None + + +class ColumnMetaDataComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_A: XsString + attr_B: Optional[XsString] = None + attr_C: Optional[XsString] = None + attr_D: Optional[XsString] = None + attr_E: Optional[XsString] = None + attr_F: Optional[XsString] = None + attr_G: Optional[XsString] = None + attr_H: Optional[XsString] = None + attr_I: Optional[XsString] = None + attr_J: Optional[XsString] = None + attr_K: Optional[XsString] = None + attr_L: Optional[XsString] = None + attr_M: Optional[XsString] = None + attr_N: Optional[XsString] = None + attr_O: Optional[XsString] = None + attr_P: Optional[XsString] = None + attr_Q: Optional[XsString] = None + attr_R: Optional[XsString] = None + attr_S: Optional[XsString] = None + attr_T: Optional[XsString] = None + attr_U: Optional[XsString] = None + attr_V: Optional[XsString] = None + attr_W: Optional[XsString] = None + attr_X: Optional[XsString] = None + attr_Y: Optional[XsString] = None + attr_Z: Optional[XsString] = None + attr_id: Optional[XsString] = None + attr_type: Optional[ValueTypeEnumStringType] = None + + +class ColumnTypesComplexType(RtcBaseModel): + """ + Value-types in the columns A through Z. If no type specified, type 'String' is assumed. + """ + + class Config: + extra = Extra.forbid + + attr_A: ValueTypeEnumStringType + attr_B: Optional[ValueTypeEnumStringType] = None + attr_C: Optional[ValueTypeEnumStringType] = None + attr_D: Optional[ValueTypeEnumStringType] = None + attr_E: Optional[ValueTypeEnumStringType] = None + attr_F: Optional[ValueTypeEnumStringType] = None + attr_G: Optional[ValueTypeEnumStringType] = None + attr_H: Optional[ValueTypeEnumStringType] = None + attr_I: Optional[ValueTypeEnumStringType] = None + attr_J: Optional[ValueTypeEnumStringType] = None + attr_K: Optional[ValueTypeEnumStringType] = None + attr_L: Optional[ValueTypeEnumStringType] = None + attr_M: Optional[ValueTypeEnumStringType] = None + attr_N: Optional[ValueTypeEnumStringType] = None + attr_O: Optional[ValueTypeEnumStringType] = None + attr_P: Optional[ValueTypeEnumStringType] = None + attr_Q: Optional[ValueTypeEnumStringType] = None + attr_R: Optional[ValueTypeEnumStringType] = None + attr_S: Optional[ValueTypeEnumStringType] = None + attr_T: Optional[ValueTypeEnumStringType] = None + attr_U: Optional[ValueTypeEnumStringType] = None + attr_V: Optional[ValueTypeEnumStringType] = None + attr_W: Optional[ValueTypeEnumStringType] = None + attr_X: Optional[ValueTypeEnumStringType] = None + attr_Y: Optional[ValueTypeEnumStringType] = None + attr_Z: Optional[ValueTypeEnumStringType] = None + + +class DateTimeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_date: DateType + attr_time: TimeType + + +class DateTimePropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_date: DateType + attr_key: XsString + attr_time: TimeType + description: Optional[XsString] = None + + +class DoublePropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsDouble + description: Optional[XsString] = None + + +class EnsembleMemberComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_index: XsNonNegativeInteger + attr_weight: Optional[XsDouble] = None + + +class EnsembleMemberRangeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_end: Optional[XsNonNegativeInteger] = None + attr_start: XsNonNegativeInteger + attr_weight: Optional[XsDouble] = None + + +class EventComplexType(RtcBaseModel): + """ + unlimited number of events with a constant timeStep. + Each TimeSeries should contain at least one element (records). + The date, time and value attributes are required, the + quality flag is optional. + """ + + class Config: + extra = Extra.forbid + + attr_comment: Optional[XsString] = None + attr_date: DateType + attr_flag: Optional[XsInt] = None + attr_flagSource: Optional[XsString] = None + attr_time: TimeType + attr_user: Optional[XsString] = None + attr_value: XsDouble + + +class FloatPropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsFloat + description: Optional[XsString] = None + + +class HighLevelThresholdsComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_groupId: Optional[XsString] = None + attr_groupName: Optional[XsString] = None + attr_id: XsString + attr_name: Optional[XsString] = None + attr_value: XsFloat + + +class IntPropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsInt + description: Optional[XsString] = None + + +class PeriodConditionComplexType(RtcBaseModel): + """ + A period condition. If a date is specified without a timezone, e.g. 2002-10-10T12:00:00, then it is assumed to be in UTC. + """ + + class Config: + extra = Extra.forbid + + day: Optional[List[XsGDay]] = None + endDate: Optional[DateTimeComplexType] = Field( + None, description='End date and time for this period.' + ) + endMonthDay: Optional[XsGMonthDay] = Field( + None, description='End month and day of this season.' + ) + month: Optional[List[XsGMonth]] = None + monthDay: Optional[List[XsGMonthDay]] = None + startDate: Optional[DateTimeComplexType] = Field( + None, description='Start date and time for this period.' + ) + startMonthDay: Optional[XsGMonthDay] = Field( + None, description='Start month and day of this season.' + ) + timeZone: Optional[TimeZoneSimpleType] = Field(None, description='Timezone') + validAfterDate: Optional[DateTimeComplexType] = Field( + None, description='Valid for entire period after this date and time.' + ) + validBeforeDate: Optional[DateTimeComplexType] = Field( + None, description='Valid for entire period prior to this date and time.' + ) + + +class RowComplexType(RtcBaseModel): + """ + Values in the columns A through Z. The values are entered as strings, however the value-type in each column should match the type as specified with columnTypes for this column. This wil be checked while reading the xml-file. If no column-type specified, 'String' type is assumed. + """ + + class Config: + extra = Extra.forbid + + attr_A: XsString + attr_B: Optional[XsString] = None + attr_C: Optional[XsString] = None + attr_D: Optional[XsString] = None + attr_E: Optional[XsString] = None + attr_F: Optional[XsString] = None + attr_G: Optional[XsString] = None + attr_H: Optional[XsString] = None + attr_I: Optional[XsString] = None + attr_J: Optional[XsString] = None + attr_K: Optional[XsString] = None + attr_L: Optional[XsString] = None + attr_M: Optional[XsString] = None + attr_N: Optional[XsString] = None + attr_O: Optional[XsString] = None + attr_P: Optional[XsString] = None + attr_Q: Optional[XsString] = None + attr_R: Optional[XsString] = None + attr_S: Optional[XsString] = None + attr_T: Optional[XsString] = None + attr_U: Optional[XsString] = None + attr_V: Optional[XsString] = None + attr_W: Optional[XsString] = None + attr_X: Optional[XsString] = None + attr_Y: Optional[XsString] = None + attr_Z: Optional[XsString] = None + + +class StringPropertyComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_key: XsString + attr_value: XsString + description: Optional[XsString] = None + + +class ThresholdComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + highLevelThreshold: List[HighLevelThresholdsComplexType] = Field(..., min_items=1) + + +class TimeStepComplexType(RtcBaseModel): + """ + The time unit element has three attributes, unit and divider and multiplier. the unit is second, minute, hour, week, month year. The divider attribute is optional (default = 1). + """ + + class Config: + extra = Extra.forbid + + attr_divider: Optional[XsPositiveInteger] = None + attr_multiplier: Optional[XsNonNegativeInteger] = None + attr_unit: TimeStepUnitEnumStringType + + +class TimeStepUnitComplexType(RtcBaseModel): + """ + The time unit element has two attributes, unit and divider. the unit is required and can be 1, 2, 3, or 4 meaning: year, month, day and hour. The divider attribute is optional (default = 1). + """ + + class Config: + extra = Extra.forbid + + attr_divider: Optional[XsInt] = None + attr_unit: AttrUnit + + +class ArchiveTimeSeriesSetComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + ensembleId: Optional[IdStringType] = Field( + None, + description="Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow.", + ) + locationId: List[IdStringType] = Field(..., min_items=1) + moduleInstanceId: IdStringType + parameterId: IdStringType + qualifierId: Optional[List[IdStringType]] = None + timeSeriesType: TimeSeriesTypeEnumStringType + timeStep: TimeStepComplexType + + +class GlobalTableComplexType(RtcBaseModel): + """ + Intended for the configuration of any table + """ + + class Config: + extra = Extra.forbid + + columnIds: Optional[ColumnIdsComplexType] = None + columnMetaData: Optional[List[ColumnMetaDataComplexType]] = None + columnTypes: Optional[ColumnTypesComplexType] = None + columnUnits: Optional[ColumnIdsComplexType] = None + row: List[RowComplexType] = Field(..., min_items=1) + + +class HeaderComplexType(RtcBaseModel): + """ + The header is used to specify the link to the location + and the contents + """ + + class Config: + extra = Extra.forbid + + creationDate: Optional[XsDate] = Field( + None, + description='Date on which this TimeSeries was\n created', + ) + creationTime: Optional[XsTime] = Field( + None, + description='Time on which this TimeSeries was\n created', + ) + endDate: DateTimeComplexType = Field(..., description='date/time of the last event') + ensembleId: Optional[IdString] = Field( + None, + description="\n\t\t\t\t\t\t\tSince version 1.4\n\t\t\t\t\t\t\tAn ensemble forecast consists of a number of simulations made by making small changes to the\n\t\t\t\t\t\t\testimate of the current state used to initialize the simulation. These small changes are\n\t\t\t\t\t\t\tdesigned to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberIndex\n\t\t\t\t\t\t\tWhen specified the ensembleMemberIndex is required\n\t\t\t\t\t\t", + ) + ensembleMemberId: Optional[IdString] = Field( + None, + description="\n\t\t\t\t\t\t\t\tSince version 1.10 An ensemble forecast consists of a number of simulations made by making small changes to the estimate of the current state used to initialize the simulation. These small changes are designed to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberId. Ensemble id is not required when the ensembleMemberId is specified\n\t\t\t\t\t\t\t", + ) + ensembleMemberIndex: Optional[XsNonNegativeInteger] = Field( + None, + description="\n\t\t\t\t\t\t\t\tSince version 1.4 An ensemble forecast consists of a number of simulations made by making small changes to the estimate of the current state used to initialize the simulation. These small changes are designed to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberIndex. Ensemble id is not required when the ensembleMemberIndex is specified\n\t\t\t\t\t\t\t", + ) + fileDescription: Optional[XsString] = Field( + None, + description='Description of (the content of)\n this file', + ) + forecastDate: Optional[DateTimeComplexType] = Field( + None, + description='\n\t\t\t\t\t\tSince version 1.5\n\t\t\t\t\t\tdate/time of the forecast. By default the forecastDate equals the start time', + ) + lat: Optional[XsDouble] = Field(None, description='Latitude of station') + locationId: LocationIdSimpleType + lon: Optional[XsDouble] = Field(None, description='Longitude of station') + longName: Optional[XsString] = Field( + None, description='Optional long (descriptive) name' + ) + missVal: XsDouble = Field( + ..., + description='Missing value definition for this TimeSeries. Defaults to NaN if left empty', + ) + parameterId: ParameterSimpleType + qualifierId: Optional[List[IdString]] = None + region: Optional[XsString] = Field( + None, + description="code/description of the region. Needed if the id's\n can be the same in different regions.", + ) + sourceOrganisation: Optional[XsString] = None + sourceSystem: Optional[XsString] = None + startDate: DateTimeComplexType = Field( + ..., description='date/time of the first event' + ) + stationName: Optional[NameString] = Field(None, description='Station name') + thresholds: Optional[ThresholdComplexType] = None + timeStep: TimeStepComplexType = Field( + ..., description='The timeStep element provides three choices' + ) + type: TimeSeriesType = Field( + ..., + description='\n Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ', + ) + units: Optional[XsString] = Field( + None, description='Optional string that identifies the units used' + ) + x: Optional[XsDouble] = Field(None, description='X coordinate of station') + y: Optional[XsDouble] = Field(None, description='Y coordinate of station') + z: Optional[XsDouble] = Field(None, description='Z coordinate of station') + + +class PropertiesComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + bool: Optional[List[BoolPropertyComplexType]] = None + dateTime: Optional[List[DateTimePropertyComplexType]] = None + description: Optional[XsString] = None + double: Optional[List[DoublePropertyComplexType]] = None + float: Optional[List[FloatPropertyComplexType]] = None + int: Optional[List[IntPropertyComplexType]] = None + string: Optional[List[StringPropertyComplexType]] = None + + +class TimeSeriesComplexType(RtcBaseModel): + """ + Time series data represent data collected over a given + period of time at a specific location + """ + + class Config: + extra = Extra.forbid + + comment: Optional[CommentString] = Field( + None, + description='use this field as a notebook to add comments, suggestions\n description of data entered etc.', + ) + event: Optional[List[EventComplexType]] = None + header: HeaderComplexType = Field( + ..., + description='\n The header is used to specify the link to the location\n and the contents', + ) + properties: Optional[List[PropertiesComplexType]] = None + + +class TimeSeriesCollectionComplexType(RtcBaseModel): + """ + Time series data represent data collected over a given period of time at a specific location + """ + + class Config: + extra = Extra.forbid + + attr_version: Optional[VersionString] = None + series: List[TimeSeriesComplexType] = Field(..., min_items=1) + timeZone: Optional[TimeZoneSimpleType] = None + + +class Model(RtcBaseModel): + """ + JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com) + """ + + class Config: + extra = Extra.forbid + + attr_xmlns_fews: Optional[Any] = Field( + 'http://www.wldelft.nl/fews/PI', alias='attr_xmlns:fews' + ) + attr_xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' + ) + TimeSeries: Optional[_.TimeSeries] = None diff --git a/hydrolib/core/io/rtc/pi_timeseries/generated/pi_timeseries.json b/hydrolib/core/io/rtc/pi_timeseries/generated/pi_timeseries.json new file mode 100644 index 000000000..9ea4071c5 --- /dev/null +++ b/hydrolib/core/io/rtc/pi_timeseries/generated/pi_timeseries.json @@ -0,0 +1,1260 @@ +{ + "$schema": "http://json-schema.org/schema#", + "additionalProperties": false, + "definitions": { + ".TimeSeries": { + "$ref": "#/definitions/TimeSeriesCollectionComplexType", + "description": "Time series data represent data collected over a given period of time at a specific location" + }, + "ArchiveTimeSeriesSetComplexType": { + "additionalProperties": false, + "properties": { + "ensembleId": { + "$ref": "#/definitions/idStringType", + "description": "Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow." + }, + "locationId": { + "items": { + "$ref": "#/definitions/idStringType" + }, + "minItems": 1, + "type": "array" + }, + "moduleInstanceId": { + "$ref": "#/definitions/idStringType" + }, + "parameterId": { + "$ref": "#/definitions/idStringType" + }, + "qualifierId": { + "items": { + "$ref": "#/definitions/idStringType", + "description": "Id that references an qualifier listed in the regionConfigFiles/Qualifiers.xsd\n\t\t\t\t\t" + }, + "type": "array" + }, + "timeSeriesType": { + "$ref": "#/definitions/timeSeriesTypeEnumStringType" + }, + "timeStep": { + "$ref": "#/definitions/TimeStepComplexType" + } + }, + "required": [ + "locationId", + "moduleInstanceId", + "parameterId", + "timeSeriesType", + "timeStep" + ], + "type": "object" + }, + "BoolPropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:boolean" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "ColumnIdsComplexType": { + "additionalProperties": false, + "description": "Column names for columns A through Z.", + "properties": { + "attr_A": { + "$ref": "#/definitions/xs:string" + }, + "attr_B": { + "$ref": "#/definitions/xs:string" + }, + "attr_C": { + "$ref": "#/definitions/xs:string" + }, + "attr_D": { + "$ref": "#/definitions/xs:string" + }, + "attr_E": { + "$ref": "#/definitions/xs:string" + }, + "attr_F": { + "$ref": "#/definitions/xs:string" + }, + "attr_G": { + "$ref": "#/definitions/xs:string" + }, + "attr_H": { + "$ref": "#/definitions/xs:string" + }, + "attr_I": { + "$ref": "#/definitions/xs:string" + }, + "attr_J": { + "$ref": "#/definitions/xs:string" + }, + "attr_K": { + "$ref": "#/definitions/xs:string" + }, + "attr_L": { + "$ref": "#/definitions/xs:string" + }, + "attr_M": { + "$ref": "#/definitions/xs:string" + }, + "attr_N": { + "$ref": "#/definitions/xs:string" + }, + "attr_O": { + "$ref": "#/definitions/xs:string" + }, + "attr_P": { + "$ref": "#/definitions/xs:string" + }, + "attr_Q": { + "$ref": "#/definitions/xs:string" + }, + "attr_R": { + "$ref": "#/definitions/xs:string" + }, + "attr_S": { + "$ref": "#/definitions/xs:string" + }, + "attr_T": { + "$ref": "#/definitions/xs:string" + }, + "attr_U": { + "$ref": "#/definitions/xs:string" + }, + "attr_V": { + "$ref": "#/definitions/xs:string" + }, + "attr_W": { + "$ref": "#/definitions/xs:string" + }, + "attr_X": { + "$ref": "#/definitions/xs:string" + }, + "attr_Y": { + "$ref": "#/definitions/xs:string" + }, + "attr_Z": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_A" + ], + "type": "object" + }, + "ColumnMetaDataComplexType": { + "additionalProperties": false, + "properties": { + "attr_A": { + "$ref": "#/definitions/xs:string" + }, + "attr_B": { + "$ref": "#/definitions/xs:string" + }, + "attr_C": { + "$ref": "#/definitions/xs:string" + }, + "attr_D": { + "$ref": "#/definitions/xs:string" + }, + "attr_E": { + "$ref": "#/definitions/xs:string" + }, + "attr_F": { + "$ref": "#/definitions/xs:string" + }, + "attr_G": { + "$ref": "#/definitions/xs:string" + }, + "attr_H": { + "$ref": "#/definitions/xs:string" + }, + "attr_I": { + "$ref": "#/definitions/xs:string" + }, + "attr_J": { + "$ref": "#/definitions/xs:string" + }, + "attr_K": { + "$ref": "#/definitions/xs:string" + }, + "attr_L": { + "$ref": "#/definitions/xs:string" + }, + "attr_M": { + "$ref": "#/definitions/xs:string" + }, + "attr_N": { + "$ref": "#/definitions/xs:string" + }, + "attr_O": { + "$ref": "#/definitions/xs:string" + }, + "attr_P": { + "$ref": "#/definitions/xs:string" + }, + "attr_Q": { + "$ref": "#/definitions/xs:string" + }, + "attr_R": { + "$ref": "#/definitions/xs:string" + }, + "attr_S": { + "$ref": "#/definitions/xs:string" + }, + "attr_T": { + "$ref": "#/definitions/xs:string" + }, + "attr_U": { + "$ref": "#/definitions/xs:string" + }, + "attr_V": { + "$ref": "#/definitions/xs:string" + }, + "attr_W": { + "$ref": "#/definitions/xs:string" + }, + "attr_X": { + "$ref": "#/definitions/xs:string" + }, + "attr_Y": { + "$ref": "#/definitions/xs:string" + }, + "attr_Z": { + "$ref": "#/definitions/xs:string" + }, + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_type": { + "$ref": "#/definitions/ValueTypeEnumStringType" + } + }, + "required": [ + "attr_A" + ], + "type": "object" + }, + "ColumnTypesComplexType": { + "additionalProperties": false, + "description": "Value-types in the columns A through Z. If no type specified, type 'String' is assumed.", + "properties": { + "attr_A": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_B": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_C": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_D": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_E": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_F": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_G": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_H": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_I": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_J": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_K": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_L": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_M": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_N": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_O": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_P": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_Q": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_R": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_S": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_T": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_U": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_V": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_W": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_X": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_Y": { + "$ref": "#/definitions/ValueTypeEnumStringType" + }, + "attr_Z": { + "$ref": "#/definitions/ValueTypeEnumStringType" + } + }, + "required": [ + "attr_A" + ], + "type": "object" + }, + "DateTimeComplexType": { + "additionalProperties": false, + "properties": { + "attr_date": { + "$ref": "#/definitions/dateType" + }, + "attr_time": { + "$ref": "#/definitions/timeType" + } + }, + "required": [ + "attr_date", + "attr_time" + ], + "type": "object" + }, + "DateTimePropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_date": { + "$ref": "#/definitions/dateType" + }, + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_time": { + "$ref": "#/definitions/timeType" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_time", + "attr_key", + "attr_date" + ], + "type": "object" + }, + "DoublePropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:double" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "EnsembleMemberComplexType": { + "additionalProperties": false, + "properties": { + "attr_index": { + "$ref": "#/definitions/xs:nonNegativeInteger" + }, + "attr_weight": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_index" + ], + "type": "object" + }, + "EnsembleMemberRangeComplexType": { + "additionalProperties": false, + "properties": { + "attr_end": { + "$ref": "#/definitions/xs:nonNegativeInteger" + }, + "attr_start": { + "$ref": "#/definitions/xs:nonNegativeInteger" + }, + "attr_weight": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_start" + ], + "type": "object" + }, + "EventComplexType": { + "additionalProperties": false, + "description": "unlimited number of events with a constant timeStep.\n Each TimeSeries should contain at least one element (records).\n The date, time and value attributes are required, the\n quality flag is optional. ", + "properties": { + "attr_comment": { + "$ref": "#/definitions/xs:string" + }, + "attr_date": { + "$ref": "#/definitions/dateType" + }, + "attr_flag": { + "$ref": "#/definitions/xs:int" + }, + "attr_flagSource": { + "$ref": "#/definitions/xs:string" + }, + "attr_time": { + "$ref": "#/definitions/timeType" + }, + "attr_user": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "attr_date", + "attr_time", + "attr_value" + ], + "type": "object" + }, + "FloatPropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:float" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "GeoDatumEnumStringType": { + "description": "The geographical datum for the location data. Presently only WGS-1984, OS 1936 and LOCAL are recognised. LOCAL indicates a local grid.", + "enum": [ + "LOCAL", + "WGS 1984", + "Ordnance Survey Great Britain 1936", + "TWD 1967", + "Gauss Krueger Meridian2", + "Gauss Krueger Meridian3", + "Gauss Krueger Austria M34", + "Gauss Krueger Austria M31", + "Rijks Driehoekstelsel", + "JRC", + "DWD", + "KNMI Radar", + "CH1903", + "PAK1", + "PAK2", + "SVY21" + ], + "type": "string" + }, + "GeoDatumStringType": { + "anyOf": [ + { + "description": "The geographical datum for the location data. Presently only WGS-1984, OS 1936 and LOCAL are recognised. LOCAL indicates a local grid.", + "enum": [ + "LOCAL", + "WGS 1984", + "Ordnance Survey Great Britain 1936", + "TWD 1967", + "Gauss Krueger Meridian2", + "Gauss Krueger Meridian3", + "Gauss Krueger Austria M34", + "Gauss Krueger Austria M31", + "Rijks Driehoekstelsel", + "JRC", + "DWD", + "KNMI Radar", + "CH1903", + "PAK1", + "PAK2", + "SVY21" + ], + "type": "string" + }, + { + "pattern": "^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$", + "type": "string" + } + ] + }, + "GlobalTableComplexType": { + "additionalProperties": false, + "description": "Intended for the configuration of any table", + "properties": { + "columnIds": { + "$ref": "#/definitions/ColumnIdsComplexType" + }, + "columnMetaData": { + "items": { + "$ref": "#/definitions/ColumnMetaDataComplexType" + }, + "type": "array" + }, + "columnTypes": { + "$ref": "#/definitions/ColumnTypesComplexType" + }, + "columnUnits": { + "$ref": "#/definitions/ColumnIdsComplexType" + }, + "row": { + "items": { + "$ref": "#/definitions/RowComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "row" + ], + "type": "object" + }, + "HeaderComplexType": { + "additionalProperties": false, + "description": "The header is used to specify the link to the location\n and the contents", + "properties": { + "creationDate": { + "$ref": "#/definitions/xs:date", + "description": "Date on which this TimeSeries was\n created" + }, + "creationTime": { + "$ref": "#/definitions/xs:time", + "description": "Time on which this TimeSeries was\n created" + }, + "endDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "date/time of the last event" + }, + "ensembleId": { + "$ref": "#/definitions/idString", + "description": "\n\t\t\t\t\t\t\tSince version 1.4\n\t\t\t\t\t\t\tAn ensemble forecast consists of a number of simulations made by making small changes to the\n\t\t\t\t\t\t\testimate of the current state used to initialize the simulation. These small changes are\n\t\t\t\t\t\t\tdesigned to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberIndex\n\t\t\t\t\t\t\tWhen specified the ensembleMemberIndex is required\n\t\t\t\t\t\t" + }, + "ensembleMemberId": { + "$ref": "#/definitions/idString", + "description": "\n\t\t\t\t\t\t\t\tSince version 1.10 An ensemble forecast consists of a number of simulations made by making small changes to the estimate of the current state used to initialize the simulation. These small changes are designed to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberId. Ensemble id is not required when the ensembleMemberId is specified\n\t\t\t\t\t\t\t" + }, + "ensembleMemberIndex": { + "$ref": "#/definitions/xs:nonNegativeInteger", + "description": "\n\t\t\t\t\t\t\t\tSince version 1.4 An ensemble forecast consists of a number of simulations made by making small changes to the estimate of the current state used to initialize the simulation. These small changes are designed to reflect the uncertainty in the estimate. Every simulation has it's own ensembleMemberIndex. Ensemble id is not required when the ensembleMemberIndex is specified\n\t\t\t\t\t\t\t" + }, + "fileDescription": { + "$ref": "#/definitions/xs:string", + "description": "Description of (the content of)\n this file" + }, + "forecastDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "\n\t\t\t\t\t\tSince version 1.5\n\t\t\t\t\t\tdate/time of the forecast. By default the forecastDate equals the start time" + }, + "lat": { + "$ref": "#/definitions/xs:double", + "description": "Latitude of station" + }, + "locationId": { + "$ref": "#/definitions/LocationIdSimpleType" + }, + "lon": { + "$ref": "#/definitions/xs:double", + "description": "Longitude of station" + }, + "longName": { + "$ref": "#/definitions/xs:string", + "description": "Optional long (descriptive) name" + }, + "missVal": { + "$ref": "#/definitions/xs:double", + "description": "Missing value definition for this TimeSeries. Defaults to NaN if left empty" + }, + "parameterId": { + "$ref": "#/definitions/ParameterSimpleType" + }, + "qualifierId": { + "items": { + "$ref": "#/definitions/idString", + "description": "\n\t\t\t\t\t\tSince version 1.4\n\t\t\t\t\t\tFurther clarification of the time series, when the parameter, location and time step are not enough to\n\t\t\t\t\t\tidentify a time series.\n\t\t\t\t\t\tMultiple qualifiers are allowed, the order of the qualifiers is insignificant.\n\t\t\t\t\t\tA different order of the qualifier ids should not map to the an other time series.\n\t\t\t\t\t" + }, + "type": "array" + }, + "region": { + "$ref": "#/definitions/xs:string", + "description": "code/description of the region. Needed if the id's\n can be the same in different regions." + }, + "sourceOrganisation": { + "$ref": "#/definitions/xs:string" + }, + "sourceSystem": { + "$ref": "#/definitions/xs:string" + }, + "startDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "date/time of the first event" + }, + "stationName": { + "$ref": "#/definitions/nameString", + "description": "Station name" + }, + "thresholds": { + "$ref": "#/definitions/ThresholdComplexType" + }, + "timeStep": { + "$ref": "#/definitions/TimeStepComplexType", + "description": "The timeStep element provides three choices" + }, + "type": { + "$ref": "#/definitions/timeSeriesType", + "description": "\n Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n " + }, + "units": { + "$ref": "#/definitions/xs:string", + "description": "Optional string that identifies the units used" + }, + "x": { + "$ref": "#/definitions/xs:double", + "description": "X coordinate of station" + }, + "y": { + "$ref": "#/definitions/xs:double", + "description": "Y coordinate of station" + }, + "z": { + "$ref": "#/definitions/xs:double", + "description": "Z coordinate of station" + } + }, + "required": [ + "endDate", + "locationId", + "missVal", + "parameterId", + "startDate", + "timeStep", + "type" + ], + "type": "object" + }, + "HighLevelThresholdsComplexType": { + "additionalProperties": false, + "properties": { + "attr_groupId": { + "$ref": "#/definitions/xs:string" + }, + "attr_groupName": { + "$ref": "#/definitions/xs:string" + }, + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:float" + } + }, + "required": [ + "attr_id", + "attr_value" + ], + "type": "object" + }, + "IntPropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:int" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "LocationIdSimpleType": { + "description": "Location ID, defined by the model", + "type": "string" + }, + "ParameterSimpleType": { + "description": "Content of the data (Discharge, Precipitation, VPD); defined by the model", + "type": "string" + }, + "PeriodConditionComplexType": { + "additionalProperties": false, + "description": "A period condition. If a date is specified without a timezone, e.g. 2002-10-10T12:00:00, then it is assumed to be in UTC.", + "properties": { + "day": { + "items": { + "$ref": "#/definitions/xs:gDay", + "description": "Day of the month such as the 5th of the month that is repeated every year\n\t\t\t\t\t\t" + }, + "type": "array" + }, + "endDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "End date and time for this period." + }, + "endMonthDay": { + "$ref": "#/definitions/xs:gMonthDay", + "description": "End month and day of this season." + }, + "month": { + "items": { + "$ref": "#/definitions/xs:gMonth", + "description": "Month that is repeated every year" + }, + "type": "array" + }, + "monthDay": { + "items": { + "$ref": "#/definitions/xs:gMonthDay", + "description": "Day of the year (e.g. third of May) that is repeated every year" + }, + "type": "array" + }, + "startDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "Start date and time for this period." + }, + "startMonthDay": { + "$ref": "#/definitions/xs:gMonthDay", + "description": "Start month and day of this season." + }, + "timeZone": { + "$ref": "#/definitions/TimeZoneSimpleType", + "description": "Timezone" + }, + "validAfterDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "Valid for entire period after this date and time." + }, + "validBeforeDate": { + "$ref": "#/definitions/DateTimeComplexType", + "description": "Valid for entire period prior to this date and time." + } + }, + "type": "object" + }, + "PropertiesComplexType": { + "additionalProperties": false, + "properties": { + "bool": { + "items": { + "$ref": "#/definitions/BoolPropertyComplexType" + }, + "type": "array" + }, + "dateTime": { + "items": { + "$ref": "#/definitions/DateTimePropertyComplexType", + "description": "Since 2014.01" + }, + "type": "array" + }, + "description": { + "$ref": "#/definitions/xs:string" + }, + "double": { + "items": { + "$ref": "#/definitions/DoublePropertyComplexType", + "description": "Since 2014.01" + }, + "type": "array" + }, + "float": { + "items": { + "$ref": "#/definitions/FloatPropertyComplexType" + }, + "type": "array" + }, + "int": { + "items": { + "$ref": "#/definitions/IntPropertyComplexType" + }, + "type": "array" + }, + "string": { + "items": { + "$ref": "#/definitions/StringPropertyComplexType" + }, + "type": "array" + } + }, + "type": "object" + }, + "RowComplexType": { + "additionalProperties": false, + "description": "Values in the columns A through Z. The values are entered as strings, however the value-type in each column should match the type as specified with columnTypes for this column. This wil be checked while reading the xml-file. If no column-type specified, 'String' type is assumed.", + "properties": { + "attr_A": { + "$ref": "#/definitions/xs:string" + }, + "attr_B": { + "$ref": "#/definitions/xs:string" + }, + "attr_C": { + "$ref": "#/definitions/xs:string" + }, + "attr_D": { + "$ref": "#/definitions/xs:string" + }, + "attr_E": { + "$ref": "#/definitions/xs:string" + }, + "attr_F": { + "$ref": "#/definitions/xs:string" + }, + "attr_G": { + "$ref": "#/definitions/xs:string" + }, + "attr_H": { + "$ref": "#/definitions/xs:string" + }, + "attr_I": { + "$ref": "#/definitions/xs:string" + }, + "attr_J": { + "$ref": "#/definitions/xs:string" + }, + "attr_K": { + "$ref": "#/definitions/xs:string" + }, + "attr_L": { + "$ref": "#/definitions/xs:string" + }, + "attr_M": { + "$ref": "#/definitions/xs:string" + }, + "attr_N": { + "$ref": "#/definitions/xs:string" + }, + "attr_O": { + "$ref": "#/definitions/xs:string" + }, + "attr_P": { + "$ref": "#/definitions/xs:string" + }, + "attr_Q": { + "$ref": "#/definitions/xs:string" + }, + "attr_R": { + "$ref": "#/definitions/xs:string" + }, + "attr_S": { + "$ref": "#/definitions/xs:string" + }, + "attr_T": { + "$ref": "#/definitions/xs:string" + }, + "attr_U": { + "$ref": "#/definitions/xs:string" + }, + "attr_V": { + "$ref": "#/definitions/xs:string" + }, + "attr_W": { + "$ref": "#/definitions/xs:string" + }, + "attr_X": { + "$ref": "#/definitions/xs:string" + }, + "attr_Y": { + "$ref": "#/definitions/xs:string" + }, + "attr_Z": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_A" + ], + "type": "object" + }, + "StringPropertyComplexType": { + "additionalProperties": false, + "properties": { + "attr_key": { + "$ref": "#/definitions/xs:string" + }, + "attr_value": { + "$ref": "#/definitions/xs:string" + }, + "description": { + "$ref": "#/definitions/xs:string" + } + }, + "required": [ + "attr_key", + "attr_value" + ], + "type": "object" + }, + "ThresholdComplexType": { + "additionalProperties": false, + "properties": { + "highLevelThreshold": { + "items": { + "$ref": "#/definitions/HighLevelThresholdsComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "highLevelThreshold" + ], + "type": "object" + }, + "TimeSeriesCollectionComplexType": { + "additionalProperties": false, + "description": "Time series data represent data collected over a given period of time at a specific location", + "properties": { + "attr_version": { + "$ref": "#/definitions/versionString" + }, + "series": { + "items": { + "$ref": "#/definitions/TimeSeriesComplexType", + "description": "Time series data represent data collected over a given\n period of time at a specific location" + }, + "minItems": 1, + "type": "array" + }, + "timeZone": { + "$ref": "#/definitions/TimeZoneSimpleType" + } + }, + "required": [ + "series" + ], + "type": "object" + }, + "TimeSeriesComplexType": { + "additionalProperties": false, + "description": "Time series data represent data collected over a given\n period of time at a specific location", + "properties": { + "comment": { + "$ref": "#/definitions/commentString", + "description": "use this field as a notebook to add comments, suggestions\n description of data entered etc." + }, + "event": { + "items": { + "$ref": "#/definitions/EventComplexType", + "description": "unlimited number of events with a constant timeStep.\n The date, time and value attributes are required, the\n quality flag is optional. When no events exists the event values are stored in a bin file.\n The binary file has the same name as the xml file only the extension is \"bin\" instead of \"xml\".\n The bin file contains only IEEE 32 bit reals. The length of the bin file is 4 times the number of events for all time series in the file.\n The byte order in the bin file is always Intel x86. The bin file is only allowed for equidistant time steps.\n " + }, + "type": "array" + }, + "header": { + "$ref": "#/definitions/HeaderComplexType", + "description": "\n The header is used to specify the link to the location\n and the contents" + }, + "properties": { + "items": { + "$ref": "#/definitions/PropertiesComplexType", + "description": "Since 2014.01. Properties that are applicable to the events following\n " + }, + "type": "array" + } + }, + "required": [ + "header" + ], + "type": "object" + }, + "TimeStepComplexType": { + "additionalProperties": false, + "description": "The time unit element has three attributes, unit and divider and multiplier. the unit is second, minute, hour, week, month year. The divider attribute is optional (default = 1).", + "properties": { + "attr_divider": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_multiplier": { + "$ref": "#/definitions/xs:nonNegativeInteger" + }, + "attr_unit": { + "$ref": "#/definitions/timeStepUnitEnumStringType" + } + }, + "required": [ + "attr_unit" + ], + "type": "object" + }, + "TimeStepUnitComplexType": { + "additionalProperties": false, + "description": "The time unit element has two attributes, unit and divider. the unit is required and can be 1, 2, 3, or 4 meaning: year, month, day and hour. The divider attribute is optional (default = 1).", + "properties": { + "attr_divider": { + "$ref": "#/definitions/xs:int" + }, + "attr_unit": { + "enum": [ + 1, + 2, + 3, + 4 + ], + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + }, + "required": [ + "attr_unit" + ], + "type": "object" + }, + "TimeZoneSimpleType": { + "description": "The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS", + "type": "number" + }, + "UtmGeoDatumStringType": { + "pattern": "^(UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS])$", + "type": "string" + }, + "ValueTypeEnumStringType": { + "enum": [ + "boolean", + "int", + "float", + "double", + "string" + ], + "type": "string" + }, + "booleanStringType": { + "anyOf": [ + { + "type": "boolean" + }, + { + "pattern": "^([\\w\\D]*[@][\\w\\D]*)$", + "type": "string" + } + ], + "description": " \n\t\t\t\tBoolean that allows (global) properties\n\t\t\t" + }, + "commentString": { + "type": "string" + }, + "dateType": { + "pattern": "^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$", + "type": "string" + }, + "doubleStringType": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^([\\w\\D]*[@][\\w\\D]*)$", + "type": "string" + } + ], + "description": "\n\t\t\t\tDouble that allows use of location attributes\n\t\t\t" + }, + "eventCodeString": { + "pattern": "^(\\^\\:)$", + "type": "string" + }, + "idString": { + "type": "string" + }, + "idStringType": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "intStringType": { + "anyOf": [ + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + { + "pattern": "^([\\w\\D]*[@][\\w\\D]*)$", + "type": "string" + } + ], + "description": "\n\t\t\t\tInteger that allows (global) properties\n\t\t\t" + }, + "nameString": { + "type": "string" + }, + "nonEmptyStringType": { + "minLength": 1, + "type": "string" + }, + "propertyReferenceString": { + "pattern": "^([\\w\\D]*[@][\\w\\D]*)$", + "type": "string" + }, + "timeSeriesType": { + "description": "Type of data, either accumulative or instantaneous. For accumulative data the time/date of the event is the moment at which the data was gathered.\n\t\t\t", + "enum": [ + "accumulative", + "instantaneous", + "mean" + ], + "type": "string" + }, + "timeSeriesTypeEnumStringType": { + "enum": [ + "external historical", + "external forecasting", + "simulated historical", + "simulated forecasting", + "temporary" + ], + "type": "string" + }, + "timeStepUnitEnumStringType": { + "enum": [ + "second", + "minute", + "hour", + "day", + "week", + "month", + "year", + "nonequidistant" + ], + "type": "string" + }, + "timeType": { + "pattern": "^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$", + "type": "string" + }, + "versionString": { + "enum": [ + "1.2", + "1.3", + "1.4", + "1.5", + "1.6", + "1.7", + "1.8", + "1.9", + "1.10", + "1.11", + "1.12", + "1.13", + "1.14" + ], + "type": "string" + }, + "xs:boolean": { + "type": "boolean" + }, + "xs:date": { + "type": "string" + }, + "xs:double": { + "type": "number" + }, + "xs:float": { + "type": "number" + }, + "xs:gDay": { + "type": "string" + }, + "xs:gMonth": { + "type": "string" + }, + "xs:gMonthDay": { + "type": "string" + }, + "xs:int": { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "xs:nonNegativeInteger": { + "minimum": 0, + "type": "integer" + }, + "xs:positiveInteger": { + "minimum": 1, + "type": "integer" + }, + "xs:string": { + "type": "string" + }, + "xs:time": { + "type": "string" + } + }, + "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", + "properties": { + "attr_xmlns:fews": { + "default": "http://www.wldelft.nl/fews/PI" + }, + "attr_xmlns:xs": { + "default": "http://www.w3.org/2001/XMLSchema" + }, + "TimeSeries": { + "$ref": "#/definitions/.TimeSeries" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py index 9ac4c6cae..0cab9adf4 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py @@ -1,13 +1,13 @@ # generated by datamodel-codegen: # filename: rtcDataConfig.json -# timestamp: 2022-09-27T13:33:22+00:00 +# timestamp: 2022-09-27T14:37:51+00:00 from __future__ import annotations from hydrolib.core.io.rtc.basemodel import RtcBaseModel -from . import RtcDataConfigComplexType +from . import RTCDataConfigComplexType class RtcDataConfig(RtcBaseModel): - __root__: RtcDataConfigComplexType + __root__: RTCDataConfigComplexType diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py index c7ac4169f..95d85bbce 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcDataConfig.json -# timestamp: 2022-09-27T13:33:22+00:00 +# timestamp: 2022-09-27T14:37:51+00:00 from __future__ import annotations @@ -223,18 +223,18 @@ class PITimeSeriesComplexType(RtcBaseModel): class Config: extra = Extra.forbid + extrapolationOption: Optional[PIExtrapolationOptionEnumStringType] = Field( + None, description='Extrapolation option in data import' + ) + interpolationOption: Optional[PIInterpolationOptionEnumStringType] = Field( + None, description='Interpolation option in data import' + ) locationId: XsString = Field( ..., description='Location ID in Delft-FEWS PI-XML file' ) parameterId: XsString = Field( ..., description='Parameter ID in Delft-FEWS PI-XML file' ) - interpolationOption: Optional[PIInterpolationOptionEnumStringType] = Field( - None, description='Interpolation option in data import' - ) - extrapolationOption: Optional[PIExtrapolationOptionEnumStringType] = Field( - None, description='Extrapolation option in data import' - ) qualifierId: Optional[List[XsString]] = None timeStep: Optional[TimeStepComplexType] = Field( None, @@ -246,7 +246,7 @@ class Config: ) -class RtcTimeSeriesComplexType(RtcBaseModel): +class RTCTimeSeriesComplexType(RtcBaseModel): """ The header is used to specify the link to the location and the contents @@ -268,7 +268,7 @@ class Config: ) -class RtcSeriesExportComplexType(RtcBaseModel): +class RTCSeriesExportComplexType(RtcBaseModel): class Config: extra = Extra.forbid @@ -277,28 +277,28 @@ class Config: description='Comma-separated file for data exports. Note that this option is only used in the exportSeries element. If selected, all available time series will be exported.', ) PITimeSeriesFile: Optional[PITimeSeriesExportFileComplexType] = None - timeSeries: List[RtcTimeSeriesComplexType] = Field(..., min_items=1) + timeSeries: List[RTCTimeSeriesComplexType] = Field(..., min_items=1) -class RtcSeriesImportComplexType(RtcBaseModel): +class RTCSeriesImportComplexType(RtcBaseModel): class Config: extra = Extra.forbid PITimeSeriesFile: Optional[PITimeSeriesImportFileComplexType] = None - timeSeries: List[RtcTimeSeriesComplexType] = Field(..., min_items=1) + timeSeries: List[RTCTimeSeriesComplexType] = Field(..., min_items=1) -class RtcDataConfigComplexType(RtcBaseModel): +class RTCDataConfigComplexType(RtcBaseModel): class Config: extra = Extra.forbid - importSeries: RtcSeriesImportComplexType = Field( + exportSeries: RTCSeriesExportComplexType = Field( ..., - description='Import time series RTC-Tools imports from XML files or other interfaces', + description='Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces', ) - exportSeries: RtcSeriesExportComplexType = Field( + importSeries: RTCSeriesImportComplexType = Field( ..., - description='Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces', + description='Import time series RTC-Tools imports from XML files or other interfaces', ) @@ -310,7 +310,9 @@ class Model(RtcBaseModel): class Config: extra = Extra.forbid - attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews' + attr_xmlns_rtc: Optional[Any] = Field( + 'http://www.wldelft.nl/fews', alias='attr_xmlns:rtc' + ) attr_xmlns_xs: Optional[Any] = Field( 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' ) diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json b/hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json index e0cad3ea3..4e98c44b2 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json @@ -3,7 +3,7 @@ "additionalProperties": false, "definitions": { ".rtcDataConfig": { - "$ref": "#/definitions/rtcDataConfigComplexType" + "$ref": "#/definitions/RTCDataConfigComplexType" }, "AggregationTypeEnumStringType": { "enum": [ @@ -200,15 +200,15 @@ ], "type": "object" }, - "rtcDataConfigComplexType": { + "RTCDataConfigComplexType": { "additionalProperties": false, "properties": { "exportSeries": { - "$ref": "#/definitions/rtcSeriesExportComplexType", + "$ref": "#/definitions/RTCSeriesExportComplexType", "description": "Export time series RTC-Tools genenerates and exports to XML or csv files or supplies to other applications via other interfaces" }, "importSeries": { - "$ref": "#/definitions/rtcSeriesImportComplexType", + "$ref": "#/definitions/RTCSeriesImportComplexType", "description": "Import time series RTC-Tools imports from XML files or other interfaces" } }, @@ -218,7 +218,7 @@ ], "type": "object" }, - "rtcSeriesExportComplexType": { + "RTCSeriesExportComplexType": { "additionalProperties": false, "properties": { "CSVTimeSeriesFile": { @@ -230,7 +230,7 @@ }, "timeSeries": { "items": { - "$ref": "#/definitions/rtcTimeSeriesComplexType", + "$ref": "#/definitions/RTCTimeSeriesComplexType", "description": "Time series for importing and exporting optionally including the mapping from to Delft-FEWS or OpenMI " }, "minItems": 1, @@ -242,7 +242,7 @@ ], "type": "object" }, - "rtcSeriesImportComplexType": { + "RTCSeriesImportComplexType": { "additionalProperties": false, "properties": { "PITimeSeriesFile": { @@ -250,7 +250,7 @@ }, "timeSeries": { "items": { - "$ref": "#/definitions/rtcTimeSeriesComplexType", + "$ref": "#/definitions/RTCTimeSeriesComplexType", "description": "Time series for importing and exporting optionally including the mapping from to Delft-FEWS or OpenMI " }, "minItems": 1, @@ -262,7 +262,7 @@ ], "type": "object" }, - "rtcTimeSeriesComplexType": { + "RTCTimeSeriesComplexType": { "additionalProperties": false, "description": "The header is used to specify the link to the location\n and the contents", "properties": { @@ -394,7 +394,7 @@ }, "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", "properties": { - "attr_xmlns": { + "attr_xmlns:rtc": { "default": "http://www.wldelft.nl/fews" }, "attr_xmlns:xs": { diff --git a/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/_.py b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/_.py new file mode 100644 index 000000000..c9adcc405 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/_.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: rtcObjectiveConfig.json +# timestamp: 2022-09-27T14:37:52+00:00 + +from __future__ import annotations + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + +from . import RtcObjectiveConfigComplexType + + +class RtcObjectiveConfig(RtcBaseModel): + __root__: RtcObjectiveConfigComplexType diff --git a/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/__init__.py new file mode 100644 index 000000000..5886f950f --- /dev/null +++ b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/__init__.py @@ -0,0 +1,707 @@ +# generated by datamodel-codegen: +# filename: rtcObjectiveConfig.json +# timestamp: 2022-09-27T14:37:52+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from hydrolib.core.io.rtc.basemodel import RtcBaseModel +from pydantic import Extra, Field + +from . import _ + + +class AggregationTypeEnumStringType(str, Enum): + BLOCK = 'BLOCK' + LINEAR = 'LINEAR' + + +class StepIndexItem(RtcBaseModel): + __root__: int = Field(..., ge=0, le=2147483647) + + +class BoundStateStepIndicesComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + stepIndex: List[StepIndexItem] = Field(..., min_items=1) + + +class EnsembleModeEnumStringType(str, Enum): + JOINT = 'JOINT' + TREE = 'TREE' + INDEPENDENT = 'INDEPENDENT' + + +class ExternalBooleanSimpleTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') + + +class ExternalBooleanSimpleType(RtcBaseModel): + __root__: Union[bool, ExternalBooleanSimpleTypeItem] + + +class ExternalIntegerSimpleTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') + + +class ExternalIntegerSimpleType(RtcBaseModel): + __root__: Union[int, ExternalIntegerSimpleTypeItem] + + +class ExternalParameterSimpleTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([#-\\$][\\(-_a-z]+[#-\\$])$') + + +class ExternalParameterSimpleType(RtcBaseModel): + __root__: Union[float, ExternalParameterSimpleTypeItem] + + +class TimeSeriesSimpleType(RtcBaseModel): + __root__: str = Field(..., min_length=1) + + +class TimeZoneSimpleType(RtcBaseModel): + __root__: float = Field( + ..., + description='The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed', + ) + + +class VariableTypeEnumStringType(str, Enum): + CONTINUOUS = 'CONTINUOUS' + INTEGER = 'INTEGER' + TIMEINSTANCE = 'TIMEINSTANCE' + + +class DateType(RtcBaseModel): + __root__: str = Field( + ..., regex='^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$' + ) + + +class NStepModeEnum(str, Enum): + CONTINUOUS = 'CONTINUOUS' + STEP = 'STEP' + + +class TimeSeriesType(str, Enum): + """ + Type of data, either accumulative or instantaneous. + For accumulative data the time/date of the event is + the moment at which the data was gathered. + + """ + + accumulative = 'accumulative' + instantaneous = 'instantaneous' + + +class TimeStepUnitEnumStringType(str, Enum): + second = 'second' + minute = 'minute' + hour = 'hour' + day = 'day' + week = 'week' + + +class TimeType(RtcBaseModel): + __root__: str = Field(..., regex='^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$') + + +class XsAnySimpleType(RtcBaseModel): + __root__: Union[str, float, bool] + + +class XsBoolean(RtcBaseModel): + __root__: bool + + +class XsDouble(RtcBaseModel): + __root__: float + + +class XsInt(RtcBaseModel): + __root__: int = Field(..., ge=-2147483648, le=2147483647) + + +class XsInteger(RtcBaseModel): + __root__: int + + +class XsPositiveInteger(RtcBaseModel): + __root__: int = Field(..., ge=1) + + +class XsString(RtcBaseModel): + __root__: str + + +class AggregationEquidistantComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + nAggregationSteps: XsInteger = Field( + ..., + description='aggregation, simulation time nOutputSteps (simulation) = nInputSteps (optimizer) * nAggregationSteps', + ) + type: AggregationTypeEnumStringType = Field( + ..., description='interpolation type: block or linear' + ) + + +class AggregationNonEquidistantComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + nInputSteps: XsInteger = Field(..., description='number of input time steps') + nOutputSteps: XsInteger = Field(..., description='number of output time steps') + stepIndex: List[XsInteger] = Field(..., min_items=1) + type: AggregationTypeEnumStringType = Field( + ..., description='interpolation type: block or linear' + ) + + +class AverageComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + inputDelayVector: Optional[XsString] = None + nStep: Optional[int] = Field(None, description='fixed value for nStep', ge=1) + nStepSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='nStep value is provided as a time series, the average is computed if the value is a positive integer', + ) + + +class BoundAverageComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + nStep: Optional[int] = Field(None, description='fixed value for nStep', ge=1) + nStepSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer', + ) + variableDelayVector: Optional[TimeSeriesSimpleType] = Field( + None, + description='optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ', + ) + + +class BoundStateComponentsComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + component: List[XsString] = Field(..., min_items=1) + + +class BoundStateVariablesComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + variable: List[TimeSeriesSimpleType] = Field(..., min_items=1) + + +class BoundVariableAverageComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + attr_name: Optional[XsString] = None + average: BoundAverageComplexType + lowerBound: Optional[ExternalParameterSimpleType] = Field( + None, description='lower bound as a scalar' + ) + lowerBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + upperBound: Optional[ExternalParameterSimpleType] = Field( + None, description='upper bound as a scalar value' + ) + upperBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + variable: TimeSeriesSimpleType = Field( + ..., + description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", + ) + + +class BoundVariableComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + attr_name: Optional[XsString] = None + lowerBound: Optional[ExternalParameterSimpleType] = Field( + None, description='lower bound as a scalar' + ) + lowerBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + upperBound: Optional[ExternalParameterSimpleType] = Field( + None, description='upper bound as a scalar value' + ) + upperBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + variable: TimeSeriesSimpleType = Field( + ..., + description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", + ) + + +class ChanceConstraintComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + f: XsDouble + input: TimeSeriesSimpleType + lowerBound: Optional[ExternalParameterSimpleType] = Field( + None, description='lower bound as a scalar' + ) + lowerBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + order: XsDouble + upperBound: Optional[ExternalParameterSimpleType] = Field( + None, description='upper bound as a scalar value' + ) + upperBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + weightingFactor: Optional[List[ExternalParameterSimpleType]] = None + weightingFactorFinal: Optional[List[ExternalParameterSimpleType]] = None + weightingFactorSeries: Optional[TimeSeriesSimpleType] = None + + +class ChanceVariableComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + attr_name: Optional[XsString] = None + f: XsDouble + lowerBound: Optional[ExternalParameterSimpleType] = Field( + None, description='lower bound as a scalar' + ) + lowerBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + upperBound: Optional[ExternalParameterSimpleType] = Field( + None, description='upper bound as a scalar value' + ) + upperBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + variable: TimeSeriesSimpleType = Field( + ..., + description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", + ) + + +class DateTimeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_date: DateType + attr_time: TimeType + + +class MultipleDelayComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + nStep: Optional[int] = Field(None, description='fixed value for nStep', ge=1) + nStepCorrection: Optional[XsBoolean] = Field( + None, + description='if TRUE, the rate-of-change bounds are given as change per time step, if FALSE, the bounds represent the total change over all time steps, default is FALSE ', + ) + nStepMode: Optional[NStepModeEnum] = Field( + None, + description='STEP only computes the difference between T0-nStep and T0, CONTINUOUS computes the differences also at all intermediate steps', + ) + nStepSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer', + ) + variableDelayVector: Optional[TimeSeriesSimpleType] = Field( + None, + description='optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ', + ) + + +class OutputComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + JAcc: TimeSeriesSimpleType = Field( + ..., + description='time series reference for accumulating objective function value', + ) + JInc: TimeSeriesSimpleType = Field( + ..., + description='time series reference for incremental objective function value', + ) + + +class StateAverageComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + nStep: Optional[int] = Field(None, description='fixed value for nStep', ge=1) + nStepSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer', + ) + stateDelayVector: TimeSeriesSimpleType = Field( + ..., + description='optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element ', + ) + + +class TermAbsoluteComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + average: Optional[AverageComplexType] = Field( + None, + description='optional definition of an aggregation period over several time steps', + ) + input: TimeSeriesSimpleType + lowerBranch: Optional[XsBoolean] = None + order: XsDouble + setPoint: Optional[ExternalParameterSimpleType] = None + setPointSeries: Optional[TimeSeriesSimpleType] = None + upperBranch: Optional[XsBoolean] = None + weightingFactor: Optional[List[ExternalParameterSimpleType]] = None + weightingFactorFinal: Optional[List[ExternalParameterSimpleType]] = None + weightingFactorSeries: Optional[TimeSeriesSimpleType] = None + + +class TermEnsembleChoiceComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_active: Optional[ExternalBooleanSimpleType] = None + chanceConstraint: Optional[ChanceConstraintComplexType] = None + + +class TermEnsembleComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + termEnsemble: List[TermEnsembleChoiceComplexType] = Field(..., min_items=1) + + +class TermLinearComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + input: TimeSeriesSimpleType + setPoint: Optional[ExternalParameterSimpleType] = None + setPointSeries: Optional[TimeSeriesSimpleType] = None + weightingFactor: Optional[List[ExternalParameterSimpleType]] = None + weightingFactorFinal: Optional[List[ExternalParameterSimpleType]] = None + weightingFactorSeries: Optional[TimeSeriesSimpleType] = None + + +class TermMSEComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + flag: Optional[TimeSeriesSimpleType] = None + observation: TimeSeriesSimpleType + simulation: TimeSeriesSimpleType + + +class TermMaxComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + input: TimeSeriesSimpleType + + +class TermNSEComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + flag: Optional[TimeSeriesSimpleType] = None + observation: TimeSeriesSimpleType + simulation: TimeSeriesSimpleType + skipNFirstSteps: Optional[XsInt] = None + + +class TermRMSEComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + flag: Optional[TimeSeriesSimpleType] = None + observation: TimeSeriesSimpleType + simulation: TimeSeriesSimpleType + + +class TermRVComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + flag: Optional[TimeSeriesSimpleType] = None + observation: TimeSeriesSimpleType + simulation: TimeSeriesSimpleType + skipNFirstSteps: Optional[XsInt] = None + w: XsDouble + + +class TermRateOfChangeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + input: TimeSeriesSimpleType + lowerBranch: Optional[XsBoolean] = None + multipleDelay: Optional[MultipleDelayComplexType] = None + order: XsDouble + setPoint: Optional[XsDouble] = None + setPointSeries: Optional[TimeSeriesSimpleType] = None + upperBranch: Optional[XsBoolean] = None + weightingFactor: Optional[List[ExternalParameterSimpleType]] = None + weightingFactorSeries: Optional[TimeSeriesSimpleType] = None + + +class TermRelativeVolumeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + flag: Optional[TimeSeriesSimpleType] = None + observation: TimeSeriesSimpleType + simulation: TimeSeriesSimpleType + skipNFirstSteps: Optional[XsInt] = None + + +class TermSumComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + flag: Optional[TimeSeriesSimpleType] = None + simulation: TimeSeriesSimpleType + + +class TimeStepComplexType(RtcBaseModel): + """ + The timeunit element has three attributes, unit and devider and multiplier. + the unit is second, minute, hour, week, month year. + The divider attribute is optional (default = 1). + """ + + class Config: + extra = Extra.forbid + + attr_divider: Optional[XsPositiveInteger] = None + attr_multiplier: Optional[XsPositiveInteger] = None + attr_unit: TimeStepUnitEnumStringType + + +class AggregationComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + constant: Optional[XsAnySimpleType] = None + equidistant: Optional[AggregationEquidistantComplexType] = Field( + None, + description='aggregation with equidistent steps, note that the number of time steps in the model needs to be a multiple of the aggregation step, i.e. 2,4,6,8 steps in case of an aggregation step of 2', + ) + non_equidistant: Optional[AggregationNonEquidistantComplexType] = Field( + None, alias='non-equidistant', description='still not implemented' + ) + + +class BoundStateComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + attr_name: Optional[XsString] = None + attr_scalingFactor: Optional[XsDouble] = None + average: Optional[StateAverageComplexType] = None + components: BoundStateComponentsComplexType = Field( + ..., + description='simulation components (in the order of the simulation model) which compute the state based on the variables (both defined below)', + ) + lowerBound: Optional[ExternalParameterSimpleType] = Field( + None, description='lower bound as a scalar' + ) + lowerBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + nStep: Optional[int] = Field(None, ge=1) + state: TimeSeriesSimpleType = Field( + ..., description='reference to the state to constrain' + ) + stepIndices: Optional[BoundStateStepIndicesComplexType] = None + upperBound: Optional[ExternalParameterSimpleType] = Field( + None, description='upper bound as a scalar value' + ) + upperBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + variables: BoundStateVariablesComplexType = Field( + ..., + description='references to the optimization variable which contribute to the computation of the state', + ) + + +class BoundVariableRateOfChangeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_id: XsString + attr_name: Optional[XsString] = None + lowerBound: Optional[ExternalParameterSimpleType] = Field( + None, description='lower bound as a scalar' + ) + lowerBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='lower bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + multipleDelay: Optional[MultipleDelayComplexType] = Field( + None, description='option to look back more than a single time step' + ) + upperBound: Optional[ExternalParameterSimpleType] = Field( + None, description='upper bound as a scalar value' + ) + upperBoundSeries: Optional[TimeSeriesSimpleType] = Field( + None, + description='upper bound from a times series, a missing value will switch out the constraint for this specific time step', + ) + variable: TimeSeriesSimpleType = Field( + ..., + description="reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')", + ) + + +class ConstraintChoiceComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_active: Optional[ExternalBooleanSimpleType] = None + boundState: Optional[BoundStateComplexType] = Field( + None, description='implements bounds on states or model outputs' + ) + boundVariable: Optional[BoundVariableComplexType] = Field( + None, description='implement bounds on the optimization variable' + ) + boundVariableAverage: Optional[BoundVariableAverageComplexType] = Field( + None, + description='defines a bound on an average value of an optimization variable for example to enable min/max bounds on aggregated time series', + ) + boundVariableRateOfChange: Optional[BoundVariableRateOfChangeComplexType] = Field( + None, + description='implements bounds on the rate-of-change of an optimization variable', + ) + chanceBoundVariable: Optional[ChanceVariableComplexType] = Field( + None, description='implement chance constraints on the optimization variable' + ) + + +class ConstraintsComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + constraint: List[ConstraintChoiceComplexType] = Field(..., min_items=1) + + +class TermChoiceComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_active: Optional[ExternalBooleanSimpleType] = None + absolute: Optional[TermAbsoluteComplexType] = None + linear: Optional[TermLinearComplexType] = None + max: Optional[TermMaxComplexType] = None + mse: Optional[TermMSEComplexType] = None + nse: Optional[TermNSEComplexType] = None + rateOfChange: Optional[TermRateOfChangeComplexType] = None + relativeVolume: Optional[TermRelativeVolumeComplexType] = None + rmse: Optional[TermRMSEComplexType] = None + rv: Optional[TermRVComplexType] = None + sum: Optional[TermSumComplexType] = None + + +class TermComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + term: List[TermChoiceComplexType] = Field(..., min_items=1) + + +class VariableComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_active: Optional[ExternalBooleanSimpleType] = None + attr_ensembleMode: Optional[EnsembleModeEnumStringType] = None + attr_id: TimeSeriesSimpleType + attr_max: Optional[ExternalParameterSimpleType] = None + attr_min: Optional[ExternalParameterSimpleType] = None + attr_scalingFactor: Optional[XsDouble] = None + attr_type: VariableTypeEnumStringType + aggregation: Optional[AggregationComplexType] = None + + +class VariablesComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + aggregation: Optional[AggregationComplexType] = None + variable: List[VariableComplexType] = Field(..., min_items=1) + + +class RtcObjectiveConfigComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + constraints: Optional[ConstraintsComplexType] = None + output: Optional[OutputComplexType] = None + terms: Optional[TermComplexType] = None + termsEnsemble: Optional[TermEnsembleComplexType] = None + variables: Optional[VariablesComplexType] = None + + +class Model(RtcBaseModel): + """ + JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com) + """ + + class Config: + extra = Extra.forbid + + attr_xmlns_rtc: Optional[Any] = Field( + 'http://www.wldelft.nl/fews', alias='attr_xmlns:rtc' + ) + attr_xmlns_xs: Optional[Any] = Field( + 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' + ) + rtcObjectiveConfig: Optional[_.RtcObjectiveConfig] = None diff --git a/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/rtcObjectiveConfig.json b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/rtcObjectiveConfig.json new file mode 100644 index 000000000..941a126b8 --- /dev/null +++ b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/rtcObjectiveConfig.json @@ -0,0 +1,1173 @@ +{ + "$schema": "http://json-schema.org/schema#", + "additionalProperties": false, + "definitions": { + ".rtcObjectiveConfig": { + "$ref": "#/definitions/RtcObjectiveConfigComplexType" + }, + "AggregationComplexType": { + "additionalProperties": false, + "properties": { + "constant": { + "$ref": "#/definitions/xs:anySimpleType" + }, + "equidistant": { + "$ref": "#/definitions/AggregationEquidistantComplexType", + "description": "aggregation with equidistent steps, note that the number of time steps in the model needs to be a multiple of the aggregation step, i.e. 2,4,6,8 steps in case of an aggregation step of 2" + }, + "non-equidistant": { + "$ref": "#/definitions/AggregationNonEquidistantComplexType", + "description": "still not implemented" + } + }, + "type": "object" + }, + "AggregationEquidistantComplexType": { + "additionalProperties": false, + "properties": { + "nAggregationSteps": { + "$ref": "#/definitions/xs:integer", + "description": "aggregation, simulation time nOutputSteps (simulation) = nInputSteps (optimizer) * nAggregationSteps" + }, + "type": { + "$ref": "#/definitions/AggregationTypeEnumStringType", + "description": "interpolation type: block or linear" + } + }, + "required": [ + "nAggregationSteps", + "type" + ], + "type": "object" + }, + "AggregationNonEquidistantComplexType": { + "additionalProperties": false, + "properties": { + "nInputSteps": { + "$ref": "#/definitions/xs:integer", + "description": "number of input time steps" + }, + "nOutputSteps": { + "$ref": "#/definitions/xs:integer", + "description": "number of output time steps" + }, + "stepIndex": { + "items": { + "$ref": "#/definitions/xs:integer", + "description": "time step indices (indexing starts from 1) on which input data is located, the has to be data on the last time step!" + }, + "minItems": 1, + "type": "array" + }, + "type": { + "$ref": "#/definitions/AggregationTypeEnumStringType", + "description": "interpolation type: block or linear" + } + }, + "required": [ + "nInputSteps", + "nOutputSteps", + "stepIndex", + "type" + ], + "type": "object" + }, + "AggregationTypeEnumStringType": { + "enum": [ + "BLOCK", + "LINEAR" + ], + "type": "string" + }, + "AverageComplexType": { + "additionalProperties": false, + "properties": { + "inputDelayVector": { + "$ref": "#/definitions/xs:string" + }, + "nStep": { + "description": "fixed value for nStep", + "minimum": 1, + "type": "integer" + }, + "nStepSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "nStep value is provided as a time series, the average is computed if the value is a positive integer" + } + }, + "type": "object" + }, + "BoundAverageComplexType": { + "additionalProperties": false, + "properties": { + "nStep": { + "description": "fixed value for nStep", + "minimum": 1, + "type": "integer" + }, + "nStepSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer" + }, + "variableDelayVector": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element " + } + }, + "type": "object" + }, + "BoundStateComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "attr_scalingFactor": { + "$ref": "#/definitions/xs:double" + }, + "average": { + "$ref": "#/definitions/StateAverageComplexType" + }, + "components": { + "$ref": "#/definitions/BoundStateComponentsComplexType", + "description": "simulation components (in the order of the simulation model) which compute the state based on the variables (both defined below)" + }, + "lowerBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "lower bound as a scalar" + }, + "lowerBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "lower bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "nStep": { + "minimum": 1, + "type": "integer" + }, + "state": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "reference to the state to constrain" + }, + "stepIndices": { + "$ref": "#/definitions/BoundStateStepIndicesComplexType" + }, + "upperBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "upper bound as a scalar value" + }, + "upperBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upper bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "variables": { + "$ref": "#/definitions/BoundStateVariablesComplexType", + "description": "references to the optimization variable which contribute to the computation of the state" + } + }, + "required": [ + "components", + "state", + "variables", + "attr_id" + ], + "type": "object" + }, + "BoundStateComponentsComplexType": { + "additionalProperties": false, + "properties": { + "component": { + "items": { + "$ref": "#/definitions/xs:string" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "component" + ], + "type": "object" + }, + "BoundStateStepIndicesComplexType": { + "additionalProperties": false, + "properties": { + "stepIndex": { + "items": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "stepIndex" + ], + "type": "object" + }, + "BoundStateVariablesComplexType": { + "additionalProperties": false, + "properties": { + "variable": { + "items": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "variable" + ], + "type": "object" + }, + "BoundVariableAverageComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "average": { + "$ref": "#/definitions/BoundAverageComplexType" + }, + "lowerBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "lower bound as a scalar" + }, + "lowerBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "lower bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "upperBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "upper bound as a scalar value" + }, + "upperBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upper bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "variable": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')" + } + }, + "required": [ + "average", + "variable", + "attr_id" + ], + "type": "object" + }, + "BoundVariableComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "lowerBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "lower bound as a scalar" + }, + "lowerBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "lower bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "upperBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "upper bound as a scalar value" + }, + "upperBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upper bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "variable": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')" + } + }, + "required": [ + "variable", + "attr_id" + ], + "type": "object" + }, + "BoundVariableRateOfChangeComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "lowerBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "lower bound as a scalar" + }, + "lowerBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "lower bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "multipleDelay": { + "$ref": "#/definitions/MultipleDelayComplexType", + "description": "option to look back more than a single time step" + }, + "upperBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "upper bound as a scalar value" + }, + "upperBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upper bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "variable": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')" + } + }, + "required": [ + "variable", + "attr_id" + ], + "type": "object" + }, + "ChanceConstraintComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "f": { + "$ref": "#/definitions/xs:double" + }, + "input": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "lowerBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "lower bound as a scalar" + }, + "lowerBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "lower bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "order": { + "$ref": "#/definitions/xs:double" + }, + "upperBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "upper bound as a scalar value" + }, + "upperBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upper bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "weightingFactor": { + "items": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "type": "array" + }, + "weightingFactorFinal": { + "items": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "optional final weighting factor, only considered if a weighting factor is defined, works NOT in combination with the weighting factor time series" + }, + "type": "array" + }, + "weightingFactorSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "f", + "input", + "order", + "attr_id" + ], + "type": "object" + }, + "ChanceVariableComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "attr_name": { + "$ref": "#/definitions/xs:string" + }, + "f": { + "$ref": "#/definitions/xs:double" + }, + "lowerBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "lower bound as a scalar" + }, + "lowerBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "lower bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "upperBound": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "upper bound as a scalar value" + }, + "upperBoundSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "upper bound from a times series, a missing value will switch out the constraint for this specific time step" + }, + "variable": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "reference to the time series in the time series database (refers to the file 'rtcDataConfig.xml')" + } + }, + "required": [ + "f", + "variable", + "attr_id" + ], + "type": "object" + }, + "ConstraintChoiceComplexType": { + "additionalProperties": false, + "properties": { + "attr_active": { + "$ref": "#/definitions/ExternalBooleanSimpleType" + }, + "boundState": { + "$ref": "#/definitions/BoundStateComplexType", + "description": "implements bounds on states or model outputs" + }, + "boundVariable": { + "$ref": "#/definitions/BoundVariableComplexType", + "description": "implement bounds on the optimization variable" + }, + "boundVariableAverage": { + "$ref": "#/definitions/BoundVariableAverageComplexType", + "description": "defines a bound on an average value of an optimization variable for example to enable min/max bounds on aggregated time series" + }, + "boundVariableRateOfChange": { + "$ref": "#/definitions/BoundVariableRateOfChangeComplexType", + "description": "implements bounds on the rate-of-change of an optimization variable" + }, + "chanceBoundVariable": { + "$ref": "#/definitions/ChanceVariableComplexType", + "description": "implement chance constraints on the optimization variable" + } + }, + "type": "object" + }, + "ConstraintsComplexType": { + "additionalProperties": false, + "properties": { + "constraint": { + "items": { + "$ref": "#/definitions/ConstraintChoiceComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "constraint" + ], + "type": "object" + }, + "DateTimeComplexType": { + "additionalProperties": false, + "properties": { + "attr_date": { + "$ref": "#/definitions/dateType" + }, + "attr_time": { + "$ref": "#/definitions/timeType" + } + }, + "required": [ + "attr_date", + "attr_time" + ], + "type": "object" + }, + "EnsembleModeEnumStringType": { + "enum": [ + "JOINT", + "TREE", + "INDEPENDENT" + ], + "type": "string" + }, + "ExternalBooleanSimpleType": { + "anyOf": [ + { + "type": "boolean" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "ExternalIntegerSimpleType": { + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^([\\$][\\(-_a-z]+[\\$])$", + "type": "string" + } + ] + }, + "ExternalParameterSimpleType": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^([#-\\$][\\(-_a-z]+[#-\\$])$", + "type": "string" + } + ] + }, + "MultipleDelayComplexType": { + "additionalProperties": false, + "properties": { + "nStep": { + "description": "fixed value for nStep", + "minimum": 1, + "type": "integer" + }, + "nStepCorrection": { + "$ref": "#/definitions/xs:boolean", + "description": "if TRUE, the rate-of-change bounds are given as change per time step, if FALSE, the bounds represent the total change over all time steps, default is FALSE " + }, + "nStepMode": { + "$ref": "#/definitions/nStepModeEnum", + "description": "STEP only computes the difference between T0-nStep and T0, CONTINUOUS computes the differences also at all intermediate steps" + }, + "nStepSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer" + }, + "variableDelayVector": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element " + } + }, + "type": "object" + }, + "OutputComplexType": { + "additionalProperties": false, + "properties": { + "JAcc": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "time series reference for accumulating objective function value" + }, + "JInc": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "time series reference for incremental objective function value" + } + }, + "required": [ + "JAcc", + "JInc" + ], + "type": "object" + }, + "RtcObjectiveConfigComplexType": { + "additionalProperties": false, + "properties": { + "constraints": { + "$ref": "#/definitions/ConstraintsComplexType" + }, + "output": { + "$ref": "#/definitions/OutputComplexType" + }, + "terms": { + "$ref": "#/definitions/TermComplexType" + }, + "termsEnsemble": { + "$ref": "#/definitions/TermEnsembleComplexType" + }, + "variables": { + "$ref": "#/definitions/VariablesComplexType" + } + }, + "type": "object" + }, + "StateAverageComplexType": { + "additionalProperties": false, + "properties": { + "nStep": { + "description": "fixed value for nStep", + "minimum": 1, + "type": "integer" + }, + "nStepSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "nStep value is provided as a time series, the rate-of-change is computed if the value is a positive integer" + }, + "stateDelayVector": { + "$ref": "#/definitions/TimeSeriesSimpleType", + "description": "optional vector with historical values (t less T0) to look into the past, it is required for nStep>1, in case of the nStepSeries the user may ensure to not refer to historical value and omit this element " + } + }, + "required": [ + "stateDelayVector" + ], + "type": "object" + }, + "TermAbsoluteComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "average": { + "$ref": "#/definitions/AverageComplexType", + "description": "optional definition of an aggregation period over several time steps" + }, + "input": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "lowerBranch": { + "$ref": "#/definitions/xs:boolean" + }, + "order": { + "$ref": "#/definitions/xs:double" + }, + "setPoint": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "setPointSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "upperBranch": { + "$ref": "#/definitions/xs:boolean" + }, + "weightingFactor": { + "items": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "type": "array" + }, + "weightingFactorFinal": { + "items": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "optional final weighting factor, only considered if a weighting factor is defined, works NOT in combination with the weighting factor time series" + }, + "type": "array" + }, + "weightingFactorSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "input", + "order", + "attr_id" + ], + "type": "object" + }, + "TermChoiceComplexType": { + "additionalProperties": false, + "properties": { + "attr_active": { + "$ref": "#/definitions/ExternalBooleanSimpleType" + }, + "absolute": { + "$ref": "#/definitions/TermAbsoluteComplexType" + }, + "linear": { + "$ref": "#/definitions/TermLinearComplexType" + }, + "max": { + "$ref": "#/definitions/TermMaxComplexType" + }, + "mse": { + "$ref": "#/definitions/TermMSEComplexType" + }, + "nse": { + "$ref": "#/definitions/TermNSEComplexType" + }, + "rateOfChange": { + "$ref": "#/definitions/TermRateOfChangeComplexType" + }, + "relativeVolume": { + "$ref": "#/definitions/TermRelativeVolumeComplexType" + }, + "rmse": { + "$ref": "#/definitions/TermRMSEComplexType" + }, + "rv": { + "$ref": "#/definitions/TermRVComplexType" + }, + "sum": { + "$ref": "#/definitions/TermSumComplexType" + } + }, + "type": "object" + }, + "TermComplexType": { + "additionalProperties": false, + "properties": { + "term": { + "items": { + "$ref": "#/definitions/TermChoiceComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "term" + ], + "type": "object" + }, + "TermEnsembleChoiceComplexType": { + "additionalProperties": false, + "properties": { + "attr_active": { + "$ref": "#/definitions/ExternalBooleanSimpleType" + }, + "chanceConstraint": { + "$ref": "#/definitions/ChanceConstraintComplexType" + } + }, + "type": "object" + }, + "TermEnsembleComplexType": { + "additionalProperties": false, + "properties": { + "termEnsemble": { + "items": { + "$ref": "#/definitions/TermEnsembleChoiceComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "termEnsemble" + ], + "type": "object" + }, + "TermLinearComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "setPoint": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "setPointSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "weightingFactor": { + "items": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "type": "array" + }, + "weightingFactorFinal": { + "items": { + "$ref": "#/definitions/ExternalParameterSimpleType", + "description": "optional final weighting factor, only considered if a weighting factor is defined, works NOT in combination with the weighting factor time series" + }, + "type": "array" + }, + "weightingFactorSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "input", + "attr_id" + ], + "type": "object" + }, + "TermMSEComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "flag": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "observation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "simulation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "observation", + "simulation", + "attr_id" + ], + "type": "object" + }, + "TermMaxComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "input", + "attr_id" + ], + "type": "object" + }, + "TermNSEComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "flag": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "observation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "simulation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "skipNFirstSteps": { + "$ref": "#/definitions/xs:int" + } + }, + "required": [ + "observation", + "simulation", + "attr_id" + ], + "type": "object" + }, + "TermRMSEComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "flag": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "observation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "simulation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "observation", + "simulation", + "attr_id" + ], + "type": "object" + }, + "TermRVComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "flag": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "observation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "simulation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "skipNFirstSteps": { + "$ref": "#/definitions/xs:int" + }, + "w": { + "$ref": "#/definitions/xs:double" + } + }, + "required": [ + "observation", + "simulation", + "w", + "attr_id" + ], + "type": "object" + }, + "TermRateOfChangeComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "input": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "lowerBranch": { + "$ref": "#/definitions/xs:boolean" + }, + "multipleDelay": { + "$ref": "#/definitions/MultipleDelayComplexType" + }, + "order": { + "$ref": "#/definitions/xs:double" + }, + "setPoint": { + "$ref": "#/definitions/xs:double" + }, + "setPointSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "upperBranch": { + "$ref": "#/definitions/xs:boolean" + }, + "weightingFactor": { + "items": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "type": "array" + }, + "weightingFactorSeries": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "input", + "order", + "attr_id" + ], + "type": "object" + }, + "TermRelativeVolumeComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "flag": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "observation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "simulation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "skipNFirstSteps": { + "$ref": "#/definitions/xs:int" + } + }, + "required": [ + "observation", + "simulation", + "attr_id" + ], + "type": "object" + }, + "TermSumComplexType": { + "additionalProperties": false, + "properties": { + "attr_id": { + "$ref": "#/definitions/xs:string" + }, + "flag": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "simulation": { + "$ref": "#/definitions/TimeSeriesSimpleType" + } + }, + "required": [ + "simulation", + "attr_id" + ], + "type": "object" + }, + "TimeSeriesSimpleType": { + "minLength": 1, + "type": "string" + }, + "TimeStepComplexType": { + "additionalProperties": false, + "description": "The timeunit element has three attributes, unit and devider and multiplier.\n the unit is second, minute, hour, week, month year.\n The divider attribute is optional (default = 1).", + "properties": { + "attr_divider": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_multiplier": { + "$ref": "#/definitions/xs:positiveInteger" + }, + "attr_unit": { + "$ref": "#/definitions/timeStepUnitEnumStringType" + } + }, + "required": [ + "attr_unit" + ], + "type": "object" + }, + "TimeZoneSimpleType": { + "description": "The timeZone (in decimal hours shift from GMT)\n e.g. -1.0 or 3.5. If not present GMT is assumed", + "type": "number" + }, + "VariableComplexType": { + "additionalProperties": false, + "properties": { + "attr_active": { + "$ref": "#/definitions/ExternalBooleanSimpleType" + }, + "attr_ensembleMode": { + "$ref": "#/definitions/EnsembleModeEnumStringType" + }, + "attr_id": { + "$ref": "#/definitions/TimeSeriesSimpleType" + }, + "attr_max": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "attr_min": { + "$ref": "#/definitions/ExternalParameterSimpleType" + }, + "attr_scalingFactor": { + "$ref": "#/definitions/xs:double" + }, + "attr_type": { + "$ref": "#/definitions/VariableTypeEnumStringType" + }, + "aggregation": { + "$ref": "#/definitions/AggregationComplexType" + } + }, + "required": [ + "attr_type", + "attr_id" + ], + "type": "object" + }, + "VariableTypeEnumStringType": { + "enum": [ + "CONTINUOUS", + "INTEGER", + "TIMEINSTANCE" + ], + "type": "string" + }, + "VariablesComplexType": { + "additionalProperties": false, + "properties": { + "aggregation": { + "$ref": "#/definitions/AggregationComplexType" + }, + "variable": { + "items": { + "$ref": "#/definitions/VariableComplexType" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "variable" + ], + "type": "object" + }, + "dateType": { + "pattern": "^([\\d][\\d][\\d][\\d]\\-[\\d][\\d]\\-[\\d][\\d])$", + "type": "string" + }, + "nStepModeEnum": { + "enum": [ + "CONTINUOUS", + "STEP" + ], + "type": "string" + }, + "timeSeriesType": { + "description": "Type of data, either accumulative or instantaneous.\n For accumulative data the time/date of the event is\n the moment at which the data was gathered.\n ", + "enum": [ + "accumulative", + "instantaneous" + ], + "type": "string" + }, + "timeStepUnitEnumStringType": { + "enum": [ + "second", + "minute", + "hour", + "day", + "week" + ], + "type": "string" + }, + "timeType": { + "pattern": "^([\\d][\\d]\\:[\\d][\\d]\\:[\\d][\\d])$", + "type": "string" + }, + "xs:anySimpleType": { + "type": [ + "string", + "number", + "boolean" + ] + }, + "xs:boolean": { + "type": "boolean" + }, + "xs:double": { + "type": "number" + }, + "xs:int": { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "xs:integer": { + "type": "integer" + }, + "xs:positiveInteger": { + "minimum": 1, + "type": "integer" + }, + "xs:string": { + "type": "string" + } + }, + "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", + "properties": { + "attr_xmlns:rtc": { + "default": "http://www.wldelft.nl/fews" + }, + "attr_xmlns:xs": { + "default": "http://www.w3.org/2001/XMLSchema" + }, + "rtcObjectiveConfig": { + "$ref": "#/definitions/.rtcObjectiveConfig" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py index e0e551040..63844ecc8 100644 --- a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcRuntimeConfig.json -# timestamp: 2022-09-27T14:08:30+00:00 +# timestamp: 2022-09-27T14:37:54+00:00 from __future__ import annotations diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py index 5f42d37cc..7758fc031 100644 --- a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcRuntimeConfig.json -# timestamp: 2022-09-27T14:08:30+00:00 +# timestamp: 2022-09-27T14:37:54+00:00 from __future__ import annotations @@ -32,8 +32,8 @@ class ExternalBooleanSimpleType(RtcBaseModel): __root__: Union[bool, ExternalBooleanSimpleTypeItem] -class ExternalIntegerSimpleTypeItem(ExternalBooleanSimpleTypeItem): - pass +class ExternalIntegerSimpleTypeItem(RtcBaseModel): + __root__: str = Field(..., regex='^([\\$][\\(-_a-z]+[\\$])$') class ExternalIntegerSimpleType(RtcBaseModel): @@ -211,6 +211,29 @@ class BoundMultInitMethod(str, Enum): mu_based = 'mu-based' +class AcceptEveryTrialStep(str, Enum): + """ + Always accept the first trial step. +Setting this option to "yes" essentially disables the line search and makes the algorithm take aggressive steps, without global convergence guarantees. The default value for this string option is "no". +Possible values: +no: don't arbitrarily accept the full step +yes: always accept the full step + """ + + no = 'no' + yes = 'yes' + + +class LinearScalingOnDemand(str, Enum): + """ + Flag indicating that linear scaling is only done if it seems required. +This option is only important if a linear scaling method (e.g., mc19) is used. If you choose "no", then the scaling factors are computed for every linear system from the start. This can be quite expensive. Choosing "yes" means that the algorithm will start the scaling method only when the solutions to the linear system seem not good, and then use it until the end. The default value for this string option is "yes". + """ + + yes = 'yes' + no = 'no' + + class LinearSolver(str, Enum): """ Linear solver used for step computations @@ -265,6 +288,28 @@ class AlphaForY(str, Enum): acceptor = 'acceptor' +class RecalcY(str, Enum): + """ + Tells the algorithm to recalculate the equality and inequality multipliers as least square estimates. +This asks the algorithm to recompute the multipliers, whenever the current infeasibility is less than recalc_y_feas_tol. Choosing yes might be helpful in the quasi-Newton option. However, each recalculation requires an extra factorization of the linear system. If a limited memory quasi-Newton option is chosen, this is used by default. The default value for this string option is "no". +Possible values: +no: use the Newton step to update the multipliers +yes: use least-square multiplier estimates + """ + + no = 'no' + yes = 'yes' + + +class CheckDerivativesForNaninf(str, Enum): + """ + Indicates whether it is desired to check for Nan/Inf in derivative matrices [no/yes] + """ + + yes = 'yes' + no = 'no' + + class FixedVariableTreatment(str, Enum): """ Determines how fixed variables should be handled @@ -275,6 +320,33 @@ class FixedVariableTreatment(str, Enum): relax_bounds = 'relax_bounds' +class HonorOriginalBounds(str, Enum): + """ + Indicates whether final points should be projected into original bounds [no/yes] + """ + + yes = 'yes' + no = 'no' + + +class JacCConstant(str, Enum): + """ + Indicates whether all equality constraints are linear [no/yes] + """ + + yes = 'yes' + no = 'no' + + +class JacDConstant(str, Enum): + """ + Indicates whether all inequality constraints are linear [no/yes] + """ + + yes = 'yes' + no = 'no' + + class IPOPTNLPComplexType(RtcBaseModel): class Config: extra = Extra.forbid @@ -282,22 +354,22 @@ class Config: bound_relax_factor: Optional[float] = Field( None, description='Factor for initial relaxation of the bounds', ge=0.0 ) - check_derivatives_for_naninf: Optional[DerivativeTestPrintAll] = Field( + check_derivatives_for_naninf: Optional[CheckDerivativesForNaninf] = Field( None, description='Indicates whether it is desired to check for Nan/Inf in derivative matrices [no/yes]', ) fixed_variable_treatment: Optional[FixedVariableTreatment] = Field( None, description='Determines how fixed variables should be handled' ) - honor_original_bounds: Optional[DerivativeTestPrintAll] = Field( + honor_original_bounds: Optional[HonorOriginalBounds] = Field( None, description='Indicates whether final points should be projected into original bounds [no/yes]', ) - jac_c_constant: Optional[DerivativeTestPrintAll] = Field( + jac_c_constant: Optional[JacCConstant] = Field( None, description='Indicates whether all equality constraints are linear [no/yes]', ) - jac_d_constant: Optional[DerivativeTestPrintAll] = Field( + jac_d_constant: Optional[JacDConstant] = Field( None, description='Indicates whether all inequality constraints are linear [no/yes]', ) @@ -331,6 +403,33 @@ class Config: ) +class PrintOptionsDocumentation(str, Enum): + """ + Switch to print all algorithmic options [no/yes] + """ + + yes = 'yes' + no = 'no' + + +class PrintTimingStatistics(str, Enum): + """ + Switch to print timing statistics [no/yes] + """ + + yes = 'yes' + no = 'no' + + +class PrintUserOptions(str, Enum): + """ + Print all options set by the user [no/yes] + """ + + yes = 'yes' + no = 'no' + + class IPOPTOutputComplexType(RtcBaseModel): class Config: extra = Extra.forbid @@ -347,13 +446,13 @@ class Config: ge=0, le=12, ) - print_options_documentation: Optional[DerivativeTestPrintAll] = Field( + print_options_documentation: Optional[PrintOptionsDocumentation] = Field( None, description='Switch to print all algorithmic options [no/yes]' ) - print_timing_statistics: Optional[DerivativeTestPrintAll] = Field( + print_timing_statistics: Optional[PrintTimingStatistics] = Field( None, description='Switch to print timing statistics [no/yes]' ) - print_user_options: Optional[DerivativeTestPrintAll] = Field( + print_user_options: Optional[PrintUserOptions] = Field( None, description='Print all options set by the user [no/yes]' ) @@ -371,6 +470,45 @@ class Config: ) +class EvaluateOrigObjAtRestoTrial(str, Enum): + """ + Determines if the original objective function should be evaluated at restoration phase trial points. +Setting this option to "yes" makes the restoration phase algorithm evaluate the objective function of the original problem at every trial point encountered during the restoration phase, even if this value is not required. In this way, it is guaranteed that the original objective function can be evaluated without error at all accepted iterates; otherwise the algorithm might fail at a point where the restoration phase accepts an iterate that is good for the restoration phase problem, but not the original problem. On the other hand, if the evaluation of the original objective is expensive, this might be costly. The default value for this string option is "yes". +Possible values: +no: skip evaluation +yes: evaluate at every trial point + """ + + no = 'no' + yes = 'yes' + + +class ExpectInfeasibleProblem(str, Enum): + """ + Enable heuristics to quickly detect an infeasible problem. +This options is meant to activate heuristics that may speed up the infeasibility determination if you expect that there is a good chance for the problem to be infeasible. In the filter line search procedure, the restoration phase is called more quickly than usually, and more reduction in the constraint violation is enforced before the restoration phase is left. If the problem is square, this option is enabled automatically. The default value for this string option is "no". +Possible values: +no: the problem probably be feasible +yes: the problem has a good chance to be infeasible + """ + + no = 'no' + yes = 'yes' + + +class StartWithResto(str, Enum): + """ + Tells algorithm to switch to restoration phase in first iteration. +Setting this option to "yes" forces the algorithm to switch to the feasibility restoration phase in the first iteration. If the initial point is feasible, the algorithm will abort with a failure. The default value for this string option is "no". +Possible values: +no: don't force start in restoration phase +yes: force start in restoration phase + """ + + no = 'no' + yes = 'yes' + + class IPOPTTerminationComplexType(RtcBaseModel): class Config: extra = Extra.forbid @@ -421,6 +559,19 @@ class Config: ) +class WarmStartInitPoint(str, Enum): + """ + Warm-start for initial point +Indicates whether this optimization should use a warm start initialization, where values of primal and dual variables are given (e.g., from a previous optimization of a related problem.) The default value for this string option is "no". +Possible values: +no: do not use the warm start initialization +yes: use the warm start initialization + """ + + no = 'no' + yes = 'yes' + + class ReportConstraintViolation(RtcBaseModel): """ report constraint violation in diagnostics @@ -456,6 +607,19 @@ class Config: ) +class Ma57AutomaticScaling(str, Enum): + """ + Controls MA57 automatic scaling +This option controls the internal scaling option of MA57. For higher reliability of the MA57 solver, you may want to set this option to yes. This is ICNTL(15) in MA57. The default value for this string option is "no". +Possible values: +no: Do not scale the linear system matrix +yes: Scale the linear system matrix + """ + + yes = 'yes' + no = 'no' + + class Ma77Order(str, Enum): """ Controls type of ordering used by HSL_MA77 @@ -558,6 +722,53 @@ class Ma97Scaling1(str, Enum): mc77 = 'mc77' +class Ma97Scaling2(str, Enum): + """ + Second scaling. +If ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch2. If ma97_switch3 is triggered it is disabled. The default value for this string option is "mc64". +Possible values: +none: No scaling +mc30: Scale linear system matrix using MC30 +mc64: Scale linear system matrix using MC64 +mc77: Scale linear system matrix using MC77 [1,3,0] + """ + + none = 'none' + mc30 = 'mc30' + mc64 = 'mc64' + mc77 = 'mc77' + + +class Ma97Scaling3(str, Enum): + """ + Third scaling. +If ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch3. The default value for this string option is "mc64". +Possible values: +none: No scaling +mc30: Scale linear system matrix using MC30 +mc64: Scale linear system matrix using MC64 +mc77: Scale linear system matrix using MC77 [1,3,0] + """ + + none = 'none' + mc30 = 'mc30' + mc64 = 'mc64' + mc77 = 'mc77' + + +class Ma97SolveBlas3(str, Enum): + """ + Controls if blas2 or blas3 routines are used for solve +The default value for this string option is "no". +Possible values: +no: Use BLAS2 (faster, some implementations bit incompatible) +yes: Use BLAS3 (slower) + """ + + no = 'no' + yes = 'yes' + + class Ma97Switch1(str, Enum): """ First switch, determine when ma97_scaling1 is enabled. @@ -585,6 +796,60 @@ class Ma97Switch1(str, Enum): od_hd_reuse = 'od_hd_reuse' +class Ma97Switch2(str, Enum): + """ + Second switch, determine when ma97_scaling2 is enabled. +If ma97_scaling=dynamic, ma97_scaling2 is enabled according to this condition. If ma97_switch3 occurs this option is henceforth ignored. The default value for this string option is "never". +Possible values: +never: Scaling is never enabled. +at_start: Scaling to be used from the very start. +at_start_reuse: Scaling to be used on first iteration, then reused thereafter. +on_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed). +on_demand_reuse: As on_demand, but reuse scaling from previous itr +high_delay: Scaling to be used after more than 0.05*n delays are present +high_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr +od_hd: Combination of on_demand and high_delay +od_hd_reuse: Combination of on_demand_reuse and high_delay_reuse + """ + + never = 'never' + at_start = 'at_start' + at_start_reuse = 'at_start_reuse' + on_demand = 'on_demand' + on_demand_reuse = 'on_demand_reuse' + high_delay = 'high_delay' + high_delay_reuse = 'high_delay_reuse' + od_hd = 'od_hd' + od_hd_reuse = 'od_hd_reuse' + + +class Ma97Switch3(str, Enum): + """ + Third switch, determine when ma97_scaling3 is enabled. +If ma97_scaling=dynamic, ma97_scaling3 is enabled according to this condition. The default value for this string option is "never". +Possible values: +never: Scaling is never enabled. +at_start: Scaling to be used from the very start. +at_start_reuse: Scaling to be used on first iteration, then reused thereafter. +on_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed). +on_demand_reuse: As on_demand, but reuse scaling from previous itr +high_delay: Scaling to be used after more than 0.05*n delays are present +high_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr +od_hd: Combination of on_demand and high_delay +od_hd_reuse: Combination of on_demand_reuse and high_delay_reuse + """ + + never = 'never' + at_start = 'at_start' + at_start_reuse = 'at_start_reuse' + on_demand = 'on_demand' + on_demand_reuse = 'on_demand_reuse' + high_delay = 'high_delay' + high_delay_reuse = 'high_delay_reuse' + od_hd = 'od_hd' + od_hd_reuse = 'od_hd_reuse' + + class OptimizerModeEnumStringType(str, Enum): SEQUENTIAL = 'SEQUENTIAL' PARALLEL = 'PARALLEL' @@ -735,8 +1000,11 @@ class Config: attr_name: XsString -class FileObjectiveComplexType(FileDataComplexType): - pass +class FileObjectiveComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + + attr_name: XsString class FileParameterComplexType(RtcBaseModel): @@ -748,12 +1016,18 @@ class Config: attr_type: ParameterFileTypeEnumStringType -class FileScenarioTreeComplexType(FileDataComplexType): - pass +class FileScenarioTreeComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid + attr_name: XsString + + +class FileToolsComplexType(RtcBaseModel): + class Config: + extra = Extra.forbid -class FileToolsComplexType(FileDataComplexType): - pass + attr_name: XsString class IPOPTBarrierParameterComplexType(RtcBaseModel): @@ -890,7 +1164,7 @@ class IPOPTLineSearchComplexType(RtcBaseModel): class Config: extra = Extra.forbid - accept_every_trial_step: Optional[MehrotraAlgorithm] = Field( + accept_every_trial_step: Optional[AcceptEveryTrialStep] = Field( None, description='Always accept the first trial step. \nSetting this option to "yes" essentially disables the line search and makes the algorithm take aggressive steps, without global convergence guarantees. The default value for this string option is "no". \nPossible values:\nno: don\'t arbitrarily accept the full step\nyes: always accept the full step', ) @@ -920,7 +1194,7 @@ class Config: None, description='Tolerance for switching to full equality multiplier steps. \nThis is only relevant if "alpha_for_y" is chosen "primal-and-full" or "dual-and-full". The step size for the equality constraint multipliers is taken to be one if the max-norm of the primal step is less than this tolerance. The valid range for this real option is [0, inf] and its default value is 10.', ) - recalc_y: Optional[MehrotraAlgorithm] = Field( + recalc_y: Optional[RecalcY] = Field( None, description='Tells the algorithm to recalculate the equality and inequality multipliers as least square estimates. \nThis asks the algorithm to recompute the multipliers, whenever the current infeasibility is less than recalc_y_feas_tol. Choosing yes might be helpful in the quasi-Newton option. However, each recalculation requires an extra factorization of the linear system. If a limited memory quasi-Newton option is chosen, this is used by default. The default value for this string option is "no". \nPossible values:\nno: use the Newton step to update the multipliers\nyes: use least-square multiplier estimates', ) @@ -942,11 +1216,11 @@ class Config: None, description='Threshold for resetting equality and inequality multipliers after restoration phase. \nAfter returning from the restoration phase, the constraint multipliers are recomputed by a least square estimate. This option triggers when those least-square estimates should be ignored. The valid range for this real option is [0, inf] and its default value is 0 .', ) - evaluate_orig_obj_at_resto_trial: Optional[MehrotraAlgorithm] = Field( + evaluate_orig_obj_at_resto_trial: Optional[EvaluateOrigObjAtRestoTrial] = Field( None, description='Determines if the original objective function should be evaluated at restoration phase trial points. \nSetting this option to "yes" makes the restoration phase algorithm evaluate the objective function of the original problem at every trial point encountered during the restoration phase, even if this value is not required. In this way, it is guaranteed that the original objective function can be evaluated without error at all accepted iterates; otherwise the algorithm might fail at a point where the restoration phase accepts an iterate that is good for the restoration phase problem, but not the original problem. On the other hand, if the evaluation of the original objective is expensive, this might be costly. The default value for this string option is "yes". \nPossible values:\nno: skip evaluation\nyes: evaluate at every trial point', ) - expect_infeasible_problem: Optional[MehrotraAlgorithm] = Field( + expect_infeasible_problem: Optional[ExpectInfeasibleProblem] = Field( None, description='Enable heuristics to quickly detect an infeasible problem. \nThis options is meant to activate heuristics that may speed up the infeasibility determination if you expect that there is a good chance for the problem to be infeasible. In the filter line search procedure, the restoration phase is called more quickly than usually, and more reduction in the constraint violation is enforced before the restoration phase is left. If the problem is square, this option is enabled automatically. The default value for this string option is "no". \nPossible values:\nno: the problem probably be feasible\nyes: the problem has a good chance to be infeasible', ) @@ -966,7 +1240,7 @@ class Config: None, description='Required reduction in primal-dual error in the soft restoration phase. \nThe soft restoration phase attempts to reduce the primal-dual error with regular steps. If the damped primal-dual step (damped only to satisfy the fraction-to-the-boundary rule) is not decreasing the primal-dual error by at least this factor, then the regular restoration phase is called. Choosing "0" here disables the soft restoration phase. The valid range for this real option is [0, inf] and its default value is 0.9999 .', ) - start_with_resto: Optional[MehrotraAlgorithm] = Field( + start_with_resto: Optional[StartWithResto] = Field( None, description='Tells algorithm to switch to restoration phase in first iteration. \nSetting this option to "yes" forces the algorithm to switch to the feasibility restoration phase in the first iteration. If the initial point is feasible, the algorithm will abort with a failure. The default value for this string option is "no". \nPossible values:\nno: don\'t force start in restoration phase\nyes: force start in restoration phase', ) @@ -984,7 +1258,7 @@ class Config: None, description='same as bound_push for the regular initializer. \nThe valid range for this real option is [0, inf] and its default value is 0.001.', ) - warm_start_init_point: Optional[MehrotraAlgorithm] = Field( + warm_start_init_point: Optional[WarmStartInitPoint] = Field( None, description='Warm-start for initial point \nIndicates whether this optimization should use a warm start initialization, where values of primal and dual variables are given (e.g., from a previous optimization of a related problem.) The default value for this string option is "no". \nPossible values:\nno: do not use the warm start initialization\nyes: use the warm start initialization', ) @@ -1036,7 +1310,7 @@ class MA57ComplexType(RtcBaseModel): class Config: extra = Extra.forbid - ma57_automatic_scaling: Optional[DerivativeTestPrintAll] = Field( + ma57_automatic_scaling: Optional[Ma57AutomaticScaling] = Field( None, description='Controls MA57 automatic scaling \nThis option controls the internal scaling option of MA57. For higher reliability of the MA57 solver, you may want to set this option to yes. This is ICNTL(15) in MA57. The default value for this string option is "no". \nPossible values:\nno: Do not scale the linear system matrix\nyes: Scale the linear system matrix', ) @@ -1182,11 +1456,11 @@ class Config: None, description='First scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch1. If ma97_switch2 is triggered it is disabled. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', ) - ma97_scaling2: Optional[Ma97Scaling1] = Field( + ma97_scaling2: Optional[Ma97Scaling2] = Field( None, description='Second scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch2. If ma97_switch3 is triggered it is disabled. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', ) - ma97_scaling3: Optional[Ma97Scaling1] = Field( + ma97_scaling3: Optional[Ma97Scaling3] = Field( None, description='Third scaling. \nIf ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch3. The default value for this string option is "mc64". \nPossible values:\nnone: No scaling\nmc30: Scale linear system matrix using MC30\nmc64: Scale linear system matrix using MC64\nmc77: Scale linear system matrix using MC77 [1,3,0]', ) @@ -1194,7 +1468,7 @@ class Config: None, description='Zero Pivot Threshold \nAny pivot less than ma77_small is treated as zero. The valid range for this real option is [0, inf] and its default value is 1e-20.', ) - ma97_solve_blas3: Optional[MehrotraAlgorithm] = Field( + ma97_solve_blas3: Optional[Ma97SolveBlas3] = Field( None, description='Controls if blas2 or blas3 routines are used for solve \nThe default value for this string option is "no". \nPossible values:\nno: Use BLAS2 (faster, some implementations bit incompatible)\nyes: Use BLAS3 (slower)', ) @@ -1202,11 +1476,11 @@ class Config: None, description='First switch, determine when ma97_scaling1 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling1 is enabled according to this condition. If ma97_switch2 occurs this option is henceforth ignored. The default value for this string option is "od_hd_reuse". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', ) - ma97_switch2: Optional[Ma97Switch1] = Field( + ma97_switch2: Optional[Ma97Switch2] = Field( None, description='Second switch, determine when ma97_scaling2 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling2 is enabled according to this condition. If ma97_switch3 occurs this option is henceforth ignored. The default value for this string option is "never". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', ) - ma97_switch3: Optional[Ma97Switch1] = Field( + ma97_switch3: Optional[Ma97Switch3] = Field( None, description='Third switch, determine when ma97_scaling3 is enabled. \nIf ma97_scaling=dynamic, ma97_scaling3 is enabled according to this condition. The default value for this string option is "never". \nPossible values:\nnever: Scaling is never enabled.\nat_start: Scaling to be used from the very start.\nat_start_reuse: Scaling to be used on first iteration, then reused thereafter.\non_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).\non_demand_reuse: As on_demand, but reuse scaling from previous itr\nhigh_delay: Scaling to be used after more than 0.05*n delays are present\nhigh_delay_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr\nod_hd: Combination of on_demand and high_delay\nod_hd_reuse: Combination of on_demand_reuse and high_delay_reuse', ) @@ -1397,7 +1671,7 @@ class IPOPTLinearSolverComplexType(RtcBaseModel): class Config: extra = Extra.forbid - linear_scaling_on_demand: Optional[DerivativeTestPrintAll] = Field( + linear_scaling_on_demand: Optional[LinearScalingOnDemand] = Field( None, description='Flag indicating that linear scaling is only done if it seems required. \nThis option is only important if a linear scaling method (e.g., mc19) is used. If you choose "no", then the scaling factors are computed for every linear system from the start. This can be quite expensive. Choosing "yes" means that the algorithm will start the scaling method only when the solutions to the linear system seem not good, and then use it until the end. The default value for this string option is "yes". ', ) diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py index a8ef4b95e..f30d3c3a7 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:34:13+00:00 +# timestamp: 2022-09-27T14:37:56+00:00 from __future__ import annotations diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py index 8ae9ab731..4e4f343a1 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:34:13+00:00 +# timestamp: 2022-09-27T14:37:56+00:00 from __future__ import annotations diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py index a0df88341..c522e24aa 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:34:13+00:00 +# timestamp: 2022-09-27T14:37:56+00:00 from __future__ import annotations diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py index 11ab00a35..063d6ab9a 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py @@ -1,3 +1,3 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:34:13+00:00 +# timestamp: 2022-09-27T14:37:56+00:00 diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py index 42d50620d..e822305e5 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:34:13+00:00 +# timestamp: 2022-09-27T14:37:56+00:00 from __future__ import annotations diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py index 6e1631535..1ed049742 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T13:34:13+00:00 +# timestamp: 2022-09-27T14:37:56+00:00 from __future__ import annotations From 07354c649be451d1aa35a424b376a913ae7f1597 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 16:50:33 +0200 Subject: [PATCH 18/22] #226: Add temporary bat script. --- hydrolib/core/io/rtc/generate_models.bat | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 hydrolib/core/io/rtc/generate_models.bat diff --git a/hydrolib/core/io/rtc/generate_models.bat b/hydrolib/core/io/rtc/generate_models.bat new file mode 100644 index 000000000..28589927f --- /dev/null +++ b/hydrolib/core/io/rtc/generate_models.bat @@ -0,0 +1,15 @@ +CALL :CONVERT pi_state +CALL :CONVERT pi_timeseries +CALL :CONVERT rtcDataConfig +CALL :CONVERT rtcObjectiveConfig +CALL :CONVERT rtcRuntimeConfig +CALL :CONVERT rtcToolsConfig + +pause +EXIT /B + +:CONVERT + SET file_to_convert=%~1 + datamodel-codegen --input %file_to_convert%\generated\%file_to_convert%.json --input-file-type jsonschema --output %file_to_convert% --field-constraints --use-subclass-enum --use-schema-description --base-class hydrolib.core.io.rtc.basemodel.RtcBaseModel + + EXIT /B \ No newline at end of file From 96696dedd21c66f2555cc31450cc2994e87aeade Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 16:54:43 +0200 Subject: [PATCH 19/22] #226: Add temporary bat script. --- hydrolib/core/io/rtc/generate_models.bat | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hydrolib/core/io/rtc/generate_models.bat b/hydrolib/core/io/rtc/generate_models.bat index 28589927f..c29a6bb72 100644 --- a/hydrolib/core/io/rtc/generate_models.bat +++ b/hydrolib/core/io/rtc/generate_models.bat @@ -9,7 +9,8 @@ pause EXIT /B :CONVERT - SET file_to_convert=%~1 - datamodel-codegen --input %file_to_convert%\generated\%file_to_convert%.json --input-file-type jsonschema --output %file_to_convert% --field-constraints --use-subclass-enum --use-schema-description --base-class hydrolib.core.io.rtc.basemodel.RtcBaseModel + SET file=%~1 + SET folder=%rtc_file%\generated + datamodel-codegen --input %folder%\%file%.json --input-file-type jsonschema --output %file% --field-constraints --use-subclass-enum --use-schema-description --base-class hydrolib.core.io.rtc.basemodel.RtcBaseModel EXIT /B \ No newline at end of file From 474622a58fdbd021018f9fe4bcf470dcd73d10f5 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 20:42:49 +0200 Subject: [PATCH 20/22] #226: Update namspaces --- hydrolib/core/io/rtc/pi_state/generated/pi_state.json | 2 +- hydrolib/core/io/rtc/pi_timeseries/generated/pi_timeseries.json | 2 +- hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json | 2 +- .../io/rtc/rtcObjectiveConfig/generated/rtcObjectiveConfig.json | 2 +- .../io/rtc/rtcRuntimeConfig/generated/rtcRuntimeConfig.json | 2 +- .../core/io/rtc/rtcToolsConfig/generated/rtcToolsConfig.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/hydrolib/core/io/rtc/pi_state/generated/pi_state.json b/hydrolib/core/io/rtc/pi_state/generated/pi_state.json index c88b39675..d37444835 100644 --- a/hydrolib/core/io/rtc/pi_state/generated/pi_state.json +++ b/hydrolib/core/io/rtc/pi_state/generated/pi_state.json @@ -1061,7 +1061,7 @@ }, "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", "properties": { - "attr_xmlns:fews": { + "attr_xmlns": { "default": "http://www.wldelft.nl/fews/PI" }, "attr_xmlns:xs": { diff --git a/hydrolib/core/io/rtc/pi_timeseries/generated/pi_timeseries.json b/hydrolib/core/io/rtc/pi_timeseries/generated/pi_timeseries.json index 9ea4071c5..15add9336 100644 --- a/hydrolib/core/io/rtc/pi_timeseries/generated/pi_timeseries.json +++ b/hydrolib/core/io/rtc/pi_timeseries/generated/pi_timeseries.json @@ -1246,7 +1246,7 @@ }, "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", "properties": { - "attr_xmlns:fews": { + "attr_xmlns": { "default": "http://www.wldelft.nl/fews/PI" }, "attr_xmlns:xs": { diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json b/hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json index 4e98c44b2..0b6bd4b79 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/rtcDataConfig.json @@ -394,7 +394,7 @@ }, "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", "properties": { - "attr_xmlns:rtc": { + "attr_xmlns": { "default": "http://www.wldelft.nl/fews" }, "attr_xmlns:xs": { diff --git a/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/rtcObjectiveConfig.json b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/rtcObjectiveConfig.json index 941a126b8..dd4b2b4d9 100644 --- a/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/rtcObjectiveConfig.json +++ b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/rtcObjectiveConfig.json @@ -1159,7 +1159,7 @@ }, "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", "properties": { - "attr_xmlns:rtc": { + "attr_xmlns": { "default": "http://www.wldelft.nl/fews" }, "attr_xmlns:xs": { diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/rtcRuntimeConfig.json b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/rtcRuntimeConfig.json index f9ea394e6..7ba124d57 100644 --- a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/rtcRuntimeConfig.json +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/rtcRuntimeConfig.json @@ -1719,7 +1719,7 @@ }, "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", "properties": { - "attr_xmlns:rtc": { + "attr_xmlns": { "default": "http://www.wldelft.nl/fews" }, "attr_xmlns:xs": { diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/rtcToolsConfig.json b/hydrolib/core/io/rtc/rtcToolsConfig/generated/rtcToolsConfig.json index f8985e1ef..5a3aa1fd4 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/rtcToolsConfig.json +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/rtcToolsConfig.json @@ -7568,7 +7568,7 @@ }, "description": "JSON Schema generated by XMLSpy v2019 rel. 3 sp1 (x64) (http://www.altova.com)", "properties": { - "attr_xmlns:rtc": { + "attr_xmlns": { "default": "http://www.wldelft.nl/fews" }, "attr_xmlns:xs": { From 82cdce1bc158f70a9690e5e668ed5dd0d9d7046c Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 20:49:15 +0200 Subject: [PATCH 21/22] #226: Update script --- hydrolib/core/io/rtc/generate_models.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hydrolib/core/io/rtc/generate_models.bat b/hydrolib/core/io/rtc/generate_models.bat index c29a6bb72..bcb64483b 100644 --- a/hydrolib/core/io/rtc/generate_models.bat +++ b/hydrolib/core/io/rtc/generate_models.bat @@ -10,7 +10,7 @@ EXIT /B :CONVERT SET file=%~1 - SET folder=%rtc_file%\generated - datamodel-codegen --input %folder%\%file%.json --input-file-type jsonschema --output %file% --field-constraints --use-subclass-enum --use-schema-description --base-class hydrolib.core.io.rtc.basemodel.RtcBaseModel + SET folder=%file%\generated + datamodel-codegen --input %folder%\%file%.json --input-file-type jsonschema --output %folder% --field-constraints --use-subclass-enum --use-schema-description --base-class hydrolib.core.io.rtc.basemodel.RtcBaseModel EXIT /B \ No newline at end of file From 0bc621e53d9e9ab22f503546e8dd79edafcd8d70 Mon Sep 17 00:00:00 2001 From: Prisca van der Sluis Date: Tue, 27 Sep 2022 20:51:09 +0200 Subject: [PATCH 22/22] #226: Update generated models. --- hydrolib/core/io/rtc/pi_state/generated/_.py | 5 +++-- hydrolib/core/io/rtc/pi_state/generated/__init__.py | 9 ++++----- hydrolib/core/io/rtc/pi_timeseries/generated/_.py | 5 +++-- hydrolib/core/io/rtc/pi_timeseries/generated/__init__.py | 9 ++++----- hydrolib/core/io/rtc/rtcDataConfig/generated/_.py | 2 +- hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py | 9 ++++----- hydrolib/core/io/rtc/rtcObjectiveConfig/generated/_.py | 2 +- .../core/io/rtc/rtcObjectiveConfig/generated/__init__.py | 9 ++++----- hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py | 2 +- .../core/io/rtc/rtcRuntimeConfig/generated/__init__.py | 9 ++++----- hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py | 2 +- .../generated/_/_/ExternalParameterSimpleType.py | 5 +++-- .../rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py | 5 +++-- .../core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py | 2 +- .../io/rtc/rtcToolsConfig/generated/_/_/xs_string.py | 5 +++-- .../core/io/rtc/rtcToolsConfig/generated/__init__.py | 9 ++++----- 16 files changed, 44 insertions(+), 45 deletions(-) diff --git a/hydrolib/core/io/rtc/pi_state/generated/_.py b/hydrolib/core/io/rtc/pi_state/generated/_.py index 72d467f36..76ff3566d 100644 --- a/hydrolib/core/io/rtc/pi_state/generated/_.py +++ b/hydrolib/core/io/rtc/pi_state/generated/_.py @@ -1,12 +1,13 @@ # generated by datamodel-codegen: # filename: pi_state.json -# timestamp: 2022-09-27T14:37:49+00:00 +# timestamp: 2022-09-27T18:48:30+00:00 from __future__ import annotations -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from . import StateComplexType diff --git a/hydrolib/core/io/rtc/pi_state/generated/__init__.py b/hydrolib/core/io/rtc/pi_state/generated/__init__.py index ef833164d..1474795be 100644 --- a/hydrolib/core/io/rtc/pi_state/generated/__init__.py +++ b/hydrolib/core/io/rtc/pi_state/generated/__init__.py @@ -1,15 +1,16 @@ # generated by datamodel-codegen: # filename: pi_state.json -# timestamp: 2022-09-27T14:37:49+00:00 +# timestamp: 2022-09-27T18:48:30+00:00 from __future__ import annotations from enum import Enum from typing import Any, List, Optional, Union -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from . import _ @@ -654,9 +655,7 @@ class Model(RtcBaseModel): class Config: extra = Extra.forbid - attr_xmlns_fews: Optional[Any] = Field( - 'http://www.wldelft.nl/fews/PI', alias='attr_xmlns:fews' - ) + attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews/PI' attr_xmlns_xs: Optional[Any] = Field( 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' ) diff --git a/hydrolib/core/io/rtc/pi_timeseries/generated/_.py b/hydrolib/core/io/rtc/pi_timeseries/generated/_.py index 16793ea65..acf9137f0 100644 --- a/hydrolib/core/io/rtc/pi_timeseries/generated/_.py +++ b/hydrolib/core/io/rtc/pi_timeseries/generated/_.py @@ -1,12 +1,13 @@ # generated by datamodel-codegen: # filename: pi_timeseries.json -# timestamp: 2022-09-27T14:37:51+00:00 +# timestamp: 2022-09-27T18:48:32+00:00 from __future__ import annotations -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from . import TimeSeriesCollectionComplexType diff --git a/hydrolib/core/io/rtc/pi_timeseries/generated/__init__.py b/hydrolib/core/io/rtc/pi_timeseries/generated/__init__.py index 13d441b69..ff27624c0 100644 --- a/hydrolib/core/io/rtc/pi_timeseries/generated/__init__.py +++ b/hydrolib/core/io/rtc/pi_timeseries/generated/__init__.py @@ -1,15 +1,16 @@ # generated by datamodel-codegen: # filename: pi_timeseries.json -# timestamp: 2022-09-27T14:37:51+00:00 +# timestamp: 2022-09-27T18:48:32+00:00 from __future__ import annotations from enum import Enum from typing import Any, List, Optional, Union -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from . import _ @@ -750,9 +751,7 @@ class Model(RtcBaseModel): class Config: extra = Extra.forbid - attr_xmlns_fews: Optional[Any] = Field( - 'http://www.wldelft.nl/fews/PI', alias='attr_xmlns:fews' - ) + attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews/PI' attr_xmlns_xs: Optional[Any] = Field( 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' ) diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py index 0cab9adf4..0410731fd 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/_.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcDataConfig.json -# timestamp: 2022-09-27T14:37:51+00:00 +# timestamp: 2022-09-27T18:48:34+00:00 from __future__ import annotations diff --git a/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py index 95d85bbce..92a13c7f8 100644 --- a/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcDataConfig/generated/__init__.py @@ -1,15 +1,16 @@ # generated by datamodel-codegen: # filename: rtcDataConfig.json -# timestamp: 2022-09-27T14:37:51+00:00 +# timestamp: 2022-09-27T18:48:34+00:00 from __future__ import annotations from enum import Enum from typing import Any, List, Optional, Union -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from . import _ @@ -310,9 +311,7 @@ class Model(RtcBaseModel): class Config: extra = Extra.forbid - attr_xmlns_rtc: Optional[Any] = Field( - 'http://www.wldelft.nl/fews', alias='attr_xmlns:rtc' - ) + attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews' attr_xmlns_xs: Optional[Any] = Field( 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' ) diff --git a/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/_.py b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/_.py index c9adcc405..5a3262537 100644 --- a/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/_.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcObjectiveConfig.json -# timestamp: 2022-09-27T14:37:52+00:00 +# timestamp: 2022-09-27T18:48:35+00:00 from __future__ import annotations diff --git a/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/__init__.py index 5886f950f..bc7f86095 100644 --- a/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcObjectiveConfig/generated/__init__.py @@ -1,15 +1,16 @@ # generated by datamodel-codegen: # filename: rtcObjectiveConfig.json -# timestamp: 2022-09-27T14:37:52+00:00 +# timestamp: 2022-09-27T18:48:35+00:00 from __future__ import annotations from enum import Enum from typing import Any, List, Optional, Union -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from . import _ @@ -698,9 +699,7 @@ class Model(RtcBaseModel): class Config: extra = Extra.forbid - attr_xmlns_rtc: Optional[Any] = Field( - 'http://www.wldelft.nl/fews', alias='attr_xmlns:rtc' - ) + attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews' attr_xmlns_xs: Optional[Any] = Field( 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' ) diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py index 63844ecc8..48e44594b 100644 --- a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/_.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcRuntimeConfig.json -# timestamp: 2022-09-27T14:37:54+00:00 +# timestamp: 2022-09-27T18:48:38+00:00 from __future__ import annotations diff --git a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py index 7758fc031..af0409b57 100644 --- a/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcRuntimeConfig/generated/__init__.py @@ -1,15 +1,16 @@ # generated by datamodel-codegen: # filename: rtcRuntimeConfig.json -# timestamp: 2022-09-27T14:37:54+00:00 +# timestamp: 2022-09-27T18:48:38+00:00 from __future__ import annotations from enum import Enum from typing import Any, List, Optional, Union -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from . import _ @@ -1870,9 +1871,7 @@ class Model(RtcBaseModel): class Config: extra = Extra.forbid - attr_xmlns_rtc: Optional[Any] = Field( - 'http://www.wldelft.nl/fews', alias='attr_xmlns:rtc' - ) + attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews' attr_xmlns_xs: Optional[Any] = Field( 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' ) diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py index f30d3c3a7..2452190c8 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T14:37:56+00:00 +# timestamp: 2022-09-27T18:48:41+00:00 from __future__ import annotations diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py index 4e4f343a1..cba70996a 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/ExternalParameterSimpleType.py @@ -1,14 +1,15 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T14:37:56+00:00 +# timestamp: 2022-09-27T18:48:41+00:00 from __future__ import annotations from typing import Optional -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from ... import ExternalParameterSimpleType, XsBoolean diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py index c522e24aa..177590bc8 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/TimeSeriesSimpleType.py @@ -1,14 +1,15 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T14:37:56+00:00 +# timestamp: 2022-09-27T18:48:41+00:00 from __future__ import annotations from typing import Optional -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from ... import ( InputReferenceEnumStringType, TimeSeriesSimpleType, diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py index 063d6ab9a..f9ec9980d 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/__init__.py @@ -1,3 +1,3 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T14:37:56+00:00 +# timestamp: 2022-09-27T18:48:41+00:00 diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py index e822305e5..72bb00632 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/_/_/xs_string.py @@ -1,14 +1,15 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T14:37:56+00:00 +# timestamp: 2022-09-27T18:48:41+00:00 from __future__ import annotations from typing import Optional -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from ... import ExternalParameterSimpleType, XsString diff --git a/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py index 1ed049742..79925ff38 100644 --- a/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py +++ b/hydrolib/core/io/rtc/rtcToolsConfig/generated/__init__.py @@ -1,15 +1,16 @@ # generated by datamodel-codegen: # filename: rtcToolsConfig.json -# timestamp: 2022-09-27T14:37:56+00:00 +# timestamp: 2022-09-27T18:48:41+00:00 from __future__ import annotations from enum import Enum from typing import Any, List, Optional, Union -from hydrolib.core.io.rtc.basemodel import RtcBaseModel from pydantic import Extra, Field +from hydrolib.core.io.rtc.basemodel import RtcBaseModel + from . import _ from ._._ import ExternalParameterSimpleType, TimeSeriesSimpleType, xs_string @@ -3626,9 +3627,7 @@ class Model(RtcBaseModel): class Config: extra = Extra.forbid - attr_xmlns_rtc: Optional[Any] = Field( - 'http://www.wldelft.nl/fews', alias='attr_xmlns:rtc' - ) + attr_xmlns: Optional[Any] = 'http://www.wldelft.nl/fews' attr_xmlns_xs: Optional[Any] = Field( 'http://www.w3.org/2001/XMLSchema', alias='attr_xmlns:xs' )