Commit 40b6164a authored by George Papathanail's avatar George Papathanail
Browse files

feat add SRMOperationStatus event model

parent e513956b
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -54,3 +54,23 @@ class SRMOperationCompleted(BaseModel):
        if self.status != "failed" and not self.instances:
            raise ValueError("instances is required when status != failed")
        return self


class SRMOperationStatus(BaseModel):
    """`event.srm.operation.status` (srm/interface-contract.md §C.1).

    Covers both pre-execution states (`accepted`, `failed_before_start`) and, per §C.3's
    "backend-driven change" case, post-completion capability condition changes (e.g. a QoD
    session dropped by the network) reusing the original realization's `operation_id`.
    Backend-specific status (e.g. `qos_status`) lives in `metadata`, never in `state`.
    """

    schema_version: str
    operation_id: str
    service_order_id: str | None = None
    service_instance_id: str | None = None
    capability: str | None = None
    state: Literal["accepted", "failed_before_start", "completed", "failed", "in_progress"]
    metadata: dict[str, Any] | None = None
    correlation_id: str
    emitted_at: str