"""Components to use in workflow forms.""" from orchestrator.forms import FormPage from orchestrator.forms.validators import Choice from orchestrator.types import UUIDstr from pydantic import validator from gso.utils.helpers import validate_router_in_netbox class SelectRouterSide(FormPage): """Selector for a router on a side.""" class Config: """Setup title.""" title: str side_node_id: Choice config: Config @validator("side_node_id", allow_reuse=True) def validate_device_exists_in_netbox(cls, side_node_id: UUIDstr) -> str | None: """Validate side node id.""" return validate_router_in_netbox(side_node_id)