55 lines
1.0 KiB
Python
55 lines
1.0 KiB
Python
|
|
# generated by datamodel-codegen:
|
||
|
|
# filename: breaker_record.json
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from enum import StrEnum
|
||
|
|
|
||
|
|
from pydantic import AwareDatetime, BaseModel, ConfigDict, conint, constr
|
||
|
|
|
||
|
|
|
||
|
|
class Level(StrEnum):
|
||
|
|
L0 = 'L0'
|
||
|
|
L1 = 'L1'
|
||
|
|
L2 = 'L2'
|
||
|
|
L3 = 'L3'
|
||
|
|
L4 = 'L4'
|
||
|
|
|
||
|
|
|
||
|
|
class Status(StrEnum):
|
||
|
|
ARMED = 'ARMED'
|
||
|
|
TRIPPED = 'TRIPPED'
|
||
|
|
|
||
|
|
|
||
|
|
class TrippedBy(BaseModel):
|
||
|
|
model_config = ConfigDict(
|
||
|
|
extra='forbid',
|
||
|
|
)
|
||
|
|
id: constr(min_length=1)
|
||
|
|
role: constr(min_length=1)
|
||
|
|
|
||
|
|
|
||
|
|
class ResetBy(BaseModel):
|
||
|
|
model_config = ConfigDict(
|
||
|
|
extra='forbid',
|
||
|
|
)
|
||
|
|
id: constr(min_length=1)
|
||
|
|
role: constr(min_length=1)
|
||
|
|
|
||
|
|
|
||
|
|
class BreakerRecord(BaseModel):
|
||
|
|
model_config = ConfigDict(
|
||
|
|
extra='forbid',
|
||
|
|
)
|
||
|
|
level: Level
|
||
|
|
status: Status
|
||
|
|
scope: str | None
|
||
|
|
reason: str | None
|
||
|
|
tripped_at: AwareDatetime | None
|
||
|
|
tripped_by: TrippedBy | None
|
||
|
|
reset_at: AwareDatetime | None
|
||
|
|
reset_by: ResetBy | None
|
||
|
|
reset_basis: str | None
|
||
|
|
drill: bool
|
||
|
|
trip_count: conint(ge=0, le=9007199254740991)
|