# 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