|
8 | 8 |
|
9 | 9 | from typing import List |
10 | 10 |
|
| 11 | +from timemanagement import TimeInstant |
11 | 12 | from .geometry import Geometry |
12 | 13 | from .api_utils import Link |
13 | 14 | from pydantic import BaseModel, ConfigDict, Field, SerializeAsAny, model_validator |
14 | 15 | from shapely import Point |
15 | 16 |
|
16 | 17 | from .schema_datamodels import DatastreamRecordSchema, CommandSchema |
17 | | -from .timemanagement import DateTimeSchema, TimePeriod |
| 18 | +from .timemanagement import TimePeriod |
18 | 19 |
|
19 | 20 |
|
20 | 21 | class BoundingBox(BaseModel): |
@@ -114,7 +115,7 @@ class SystemResource(BaseModel): |
114 | 115 | keywords: List[str] = Field(None) |
115 | 116 | identifiers: List[str] = Field(None) |
116 | 117 | classifiers: List[str] = Field(None) |
117 | | - valid_time: DateTimeSchema = Field(None, alias="validTime") |
| 118 | + valid_time: TimePeriod = Field(None, alias="validTime") |
118 | 119 | security_constraints: List[SecurityConstraints] = Field(None, alias="securityConstraints") |
119 | 120 | legal_constraints: List[LegalConstraints] = Field(None, alias="legalConstraints") |
120 | 121 | characteristics: List[Characteristics] = Field(None) |
@@ -177,31 +178,31 @@ def handle_aliases(cls, values): |
177 | 178 |
|
178 | 179 |
|
179 | 180 | class ObservationResource(BaseModel): |
180 | | - model_config = ConfigDict(populate_by_name=True) |
| 181 | + model_config = ConfigDict(populate_by_name=True, arbitrary_types_allowed=True) |
181 | 182 |
|
182 | 183 | sampling_feature_id: str = Field(None, alias="samplingFeature@Id") |
183 | 184 | procedure_link: Link = Field(None, alias="procedure@link") |
184 | | - phenomenon_time: DateTimeSchema = Field(None, alias="phenomenonTime") |
185 | | - result_time: DateTimeSchema = Field(..., alias="resultTime") |
| 185 | + phenomenon_time: TimeInstant = Field(None, alias="phenomenonTime") |
| 186 | + result_time: TimeInstant = Field(..., alias="resultTime") |
186 | 187 | parameters: dict = Field(None) |
187 | 188 | result: dict = Field(...) |
188 | 189 | result_link: Link = Field(None, alias="result@link") |
189 | 190 |
|
190 | 191 |
|
191 | 192 | class ControlStreamResource(BaseModel): |
192 | | - model_config = ConfigDict(populate_by_name=True) |
| 193 | + model_config = ConfigDict(populate_by_name=True, arbitrary_types_allowed=True) |
193 | 194 |
|
194 | 195 | cs_id: str = Field(None, alias="id") |
195 | 196 | name: str = Field(...) |
196 | 197 | description: str = Field(None) |
197 | | - valid_time: TimePeriod = Field(..., alias="validTime") |
| 198 | + valid_time: TimePeriod = Field(None, alias="validTime") |
198 | 199 | input_name: str = Field(None, alias="inputName") |
199 | 200 | procedure_link: Link = Field(None, alias="procedureLink@link") |
200 | 201 | deployment_link: Link = Field(None, alias="deploymentLink@link") |
201 | 202 | feature_of_interest_link: Link = Field(None, alias="featureOfInterest@link") |
202 | 203 | sampling_feature_link: Link = Field(None, alias="samplingFeature@link") |
203 | | - issue_time: DateTimeSchema = Field(None, alias="issueTime") |
204 | | - execution_time: DateTimeSchema = Field(None, alias="executionTime") |
| 204 | + issue_time: TimePeriod = Field(None, alias="issueTime") |
| 205 | + execution_time: TimePeriod = Field(None, alias="executionTime") |
205 | 206 | live: bool = Field(None) |
206 | 207 | asynchronous: bool = Field(True, alias="async") |
207 | 208 | command_schema: SerializeAsAny[CommandSchema] = Field(None, alias="schema") |
|
0 commit comments