Source code for rossum_mcp.tools.update.models

from __future__ import annotations

from dataclasses import asdict, dataclass
from typing import Any, TypedDict

from rossum_mcp.tools.models import (  # noqa: TC001 - needed at runtime for FastMCP TypedDict resolution
    AutomationLevel,
    DatapointType,
    QueueLocale,
)


[docs] @dataclass class SchemaNodeUpdate: """Partial update for an existing schema node. Only include fields you want to update - all fields are optional. """ label: str | None = None type: DatapointType | None = None score_threshold: float | None = None hidden: bool | None = None disable_prediction: bool | None = None can_export: bool | None = None default_value: str | None = None rir_field_names: list[str] | None = None constraints: dict | None = None options: list[dict] | None = None ui_configuration: dict | None = None formula: str | None = None prompt: str | None = None context: list[str] | None = None matching: dict | None = None enum_value_type: str | None = None width: int | None = None stretch: bool | None = None min_occurrences: int | None = None max_occurrences: int | None = None
[docs] def to_dict(self) -> dict: return {k: v for k, v in asdict(self).items() if v is not None}
[docs] class QueueUpdateData(TypedDict, total=False): name: str automation_enabled: bool automation_level: AutomationLevel locale: QueueLocale metadata: dict[str, Any] settings: dict[str, Any] engine: str dedicated_engine: str training_enabled: bool webhooks: list[str] hooks: list[str] default_score_threshold: float session_timeout: str document_lifetime: str | None delete_after: str | None schema: str workspace: str connector: str | None inbox: str | None
[docs] class EngineUpdateData(TypedDict, total=False): name: str description: str learning_enabled: bool training_queues: list[str]