Loading src/open_exposure_gateway/domain/quality_on_demand.py +53 −3 Original line number Diff line number Diff line # TODO: Define internal OEG↔SRM domain models for Quality on Demand. # These will represent the platform-internal schema used for both the sync path # (SRM HTTP client) and the async path (DataBus), translated from the CAMARA schema. from __future__ import annotations from enum import StrEnum from typing import Any from pydantic import BaseModel, Field class Subject(StrEnum): TASK_ACTIVATE = "command.srm.network.capability.activate" class NetworkCapabilityTargetDevice(BaseModel): phone_number: str | None = None ipv4: str | None = None ipv6: str | None = None network_access_id: str | None = None class NetworkCapabilityTargetApplicationServer(BaseModel): ipv4: str | None = None ipv6: str | None = None class NetworkCapabilityTarget(BaseModel): device: NetworkCapabilityTargetDevice application_server: NetworkCapabilityTargetApplicationServer class NetworkCapabilityParameters(BaseModel): duration_seconds: int # Always {} — nothing sources this yet; reserved by srm.params/v1. extra: dict[str, Any] = Field(default_factory=dict) class NetworkCapabilityPayload(BaseModel): capability_type: str = "qod_session" target: NetworkCapabilityTarget profile_ref: str 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 Loading
src/open_exposure_gateway/domain/quality_on_demand.py +53 −3 Original line number Diff line number Diff line # TODO: Define internal OEG↔SRM domain models for Quality on Demand. # These will represent the platform-internal schema used for both the sync path # (SRM HTTP client) and the async path (DataBus), translated from the CAMARA schema. from __future__ import annotations from enum import StrEnum from typing import Any from pydantic import BaseModel, Field class Subject(StrEnum): TASK_ACTIVATE = "command.srm.network.capability.activate" class NetworkCapabilityTargetDevice(BaseModel): phone_number: str | None = None ipv4: str | None = None ipv6: str | None = None network_access_id: str | None = None class NetworkCapabilityTargetApplicationServer(BaseModel): ipv4: str | None = None ipv6: str | None = None class NetworkCapabilityTarget(BaseModel): device: NetworkCapabilityTargetDevice application_server: NetworkCapabilityTargetApplicationServer class NetworkCapabilityParameters(BaseModel): duration_seconds: int # Always {} — nothing sources this yet; reserved by srm.params/v1. extra: dict[str, Any] = Field(default_factory=dict) class NetworkCapabilityPayload(BaseModel): capability_type: str = "qod_session" target: NetworkCapabilityTarget profile_ref: str 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