vpp-ai-platform/skills-py/vpp_contracts/approval.py

69 lines
1.5 KiB
Python
Raw Permalink Normal View History

# generated by datamodel-codegen:
# filename: approval.json
from __future__ import annotations
from enum import StrEnum
from pydantic import AwareDatetime, BaseModel, ConfigDict, Field, conint, constr
class Decision(StrEnum):
APPROVE = 'APPROVE'
REJECT = 'REJECT'
class Approver(BaseModel):
model_config = ConfigDict(
extra='forbid',
)
id: constr(min_length=1)
role: constr(min_length=1)
class EffectType(StrEnum):
BID = 'BID'
INVITATION = 'INVITATION'
CONTROL_PLAN = 'CONTROL_PLAN'
DISPATCH_PLAN = 'DISPATCH_PLAN'
class Scope(BaseModel):
model_config = ConfigDict(
extra='forbid',
)
effect_type: EffectType
limits: dict[str, constr(pattern=r'^-?\d+(\.\d+)?$')]
class Validity(BaseModel):
model_config = ConfigDict(
extra='forbid',
)
from_: AwareDatetime = Field(..., alias='from')
to: AwareDatetime
class EvidenceVersions(BaseModel):
model_config = ConfigDict(
extra='forbid',
)
policy_pack_version: constr(min_length=1)
ledger_version: conint(ge=0, le=9007199254740991)
data_snapshot_refs: list[constr(pattern=r'^[0-9a-f]{64}$')]
class Approval(BaseModel):
model_config = ConfigDict(
extra='forbid',
)
id: constr(min_length=1)
proposal_digest: constr(pattern=r'^[0-9a-f]{64}$')
decision: Decision
approver: Approver
scope: Scope
validity: Validity
evidence_versions: EvidenceVersions
comment: str | None = None
decided_at: AwareDatetime