Loading src/open_exposure_gateway/domain/models/operations/enums.py +2 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ class OperationType(StrEnum): TERMINATE = "terminate" NETWORK_CAPABILITY = "network_capability" NETWORK_CAPABILITY_DEACTIVATE = "network_capability_deactivate" TRAFFIC_INFLUENCE = "traffic_influence" TRAFFIC_INFLUENCE_DEACTIVATE = "traffic_influence_deactivate" class OperationStatus(StrEnum): Loading src/open_exposure_gateway/domain/traffic_influence.py 0 → 100644 +71 −0 Original line number Diff line number Diff line from __future__ import annotations from enum import StrEnum from pydantic import BaseModel class Subject(StrEnum): # Same bus subjects QoD uses (srm/interface-contract.md B.5: "generic for # async lifecycle/session capabilities") — a separate enum per domain, not # a shared one, matches how domain/quality_on_demand.py is structured. TASK_ACTIVATE = "command.srm.network.capability.activate" TASK_DEACTIVATE = "command.srm.network.capability.deactivate" OPERATION_COMPLETED = "event.srm.operation.completed" class NetworkCapabilityTargetApplicationReference(BaseModel): external_app_id: str class NetworkCapabilityTarget(BaseModel): application_reference: NetworkCapabilityTargetApplicationReference class TrafficFilter(BaseModel): port: int | None = None protocol: str | None = None class TrafficFilters(BaseModel): source: TrafficFilter | None = None destination: TrafficFilter | None = None class NetworkCapabilityParameters(BaseModel): traffic_filters: TrafficFilters class NetworkCapabilityPayload(BaseModel): capability_type: str = "traffic_influence" target: NetworkCapabilityTarget parameters: NetworkCapabilityParameters class SRMNetworkCapabilityActivateCommand(BaseModel): schema_version: str = "1.0" operation_id: str correlation_id: str requested_at: str app_provider_id: str source: str = "nbi_camara" service_specification_id: str resource_zone_id: str | None = None network_domain_id: str | None = None network_capability: NetworkCapabilityPayload class NetworkCapabilityDeactivateTarget(BaseModel): capability_type: str = "traffic_influence" external_ref: str grace_period_seconds: int = 0 class SRMNetworkCapabilityDeactivateCommand(BaseModel): schema_version: str = "1.0" operation_id: str correlation_id: str requested_at: str app_provider_id: str source: str = "nbi_camara" network_capability: NetworkCapabilityDeactivateTarget Loading
src/open_exposure_gateway/domain/models/operations/enums.py +2 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ class OperationType(StrEnum): TERMINATE = "terminate" NETWORK_CAPABILITY = "network_capability" NETWORK_CAPABILITY_DEACTIVATE = "network_capability_deactivate" TRAFFIC_INFLUENCE = "traffic_influence" TRAFFIC_INFLUENCE_DEACTIVATE = "traffic_influence_deactivate" class OperationStatus(StrEnum): Loading
src/open_exposure_gateway/domain/traffic_influence.py 0 → 100644 +71 −0 Original line number Diff line number Diff line from __future__ import annotations from enum import StrEnum from pydantic import BaseModel class Subject(StrEnum): # Same bus subjects QoD uses (srm/interface-contract.md B.5: "generic for # async lifecycle/session capabilities") — a separate enum per domain, not # a shared one, matches how domain/quality_on_demand.py is structured. TASK_ACTIVATE = "command.srm.network.capability.activate" TASK_DEACTIVATE = "command.srm.network.capability.deactivate" OPERATION_COMPLETED = "event.srm.operation.completed" class NetworkCapabilityTargetApplicationReference(BaseModel): external_app_id: str class NetworkCapabilityTarget(BaseModel): application_reference: NetworkCapabilityTargetApplicationReference class TrafficFilter(BaseModel): port: int | None = None protocol: str | None = None class TrafficFilters(BaseModel): source: TrafficFilter | None = None destination: TrafficFilter | None = None class NetworkCapabilityParameters(BaseModel): traffic_filters: TrafficFilters class NetworkCapabilityPayload(BaseModel): capability_type: str = "traffic_influence" target: NetworkCapabilityTarget parameters: NetworkCapabilityParameters class SRMNetworkCapabilityActivateCommand(BaseModel): schema_version: str = "1.0" operation_id: str correlation_id: str requested_at: str app_provider_id: str source: str = "nbi_camara" service_specification_id: str resource_zone_id: str | None = None network_domain_id: str | None = None network_capability: NetworkCapabilityPayload class NetworkCapabilityDeactivateTarget(BaseModel): capability_type: str = "traffic_influence" external_ref: str grace_period_seconds: int = 0 class SRMNetworkCapabilityDeactivateCommand(BaseModel): schema_version: str = "1.0" operation_id: str correlation_id: str requested_at: str app_provider_id: str source: str = "nbi_camara" network_capability: NetworkCapabilityDeactivateTarget