Commit e513956b authored by George Papathanail's avatar George Papathanail
Browse files

feat: add Qos status-changed CloudEvent models and operation.status subject

parent 71a4c7a6
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
from __future__ import annotations

from enum import StrEnum
from typing import Any
from typing import Any, Literal
from uuid import UUID

from pydantic import BaseModel, Field

@@ -10,6 +11,7 @@ class Subject(StrEnum):
    TASK_ACTIVATE = "command.srm.network.capability.activate"
    TASK_DEACTIVATE = "command.srm.network.capability.deactivate"
    OPERATION_COMPLETED = "event.srm.operation.completed"
    OPERATION_STATUS = "event.srm.operation.status"


class NetworkCapabilityTargetDevice(BaseModel):
@@ -69,3 +71,19 @@ class SRMNetworkCapabilityDeactivateCommand(BaseModel):
    app_provider_id: str
    source: str = "nbi_camara"
    network_capability: NetworkCapabilityDeactivateTarget


class EventQosStatusChangedData(BaseModel):
    sessionId: UUID
    qosStatus: Literal["AVAILABLE", "UNAVAILABLE"]
    statusInfo: Literal["DURATION_EXPIRED", "NETWORK_TERMINATED", "DELETE_REQUESTED"] | None = None


class QosStatusChangedCloudEvent(BaseModel):
    id: UUID
    source: str
    specversion: str = "1.0"
    type: str = "org.camaraproject.qod.v0.qos-status-changed"
    time: str
    datacontenttype: str = "application/json"
    data: EventQosStatusChangedData