"""Auto-generated from octomil-contracts. Do not edit."""

from enum import Enum


class FederatedRoundState(str, Enum):
    DRAFT = "draft"
    """Round configuration created but not yet published to devices."""
    SCHEDULED = "scheduled"
    """Round scheduled to open at a future time."""
    OPEN = "open"
    """Round is accepting participation offers from eligible devices."""
    ACCEPTING_PARTICIPANTS = "accepting_participants"
    """Minimum threshold reached; finalising participant list."""
    TRAINING_IN_PROGRESS = "training_in_progress"
    """Selected devices are executing local training."""
    AGGREGATING = "aggregating"
    """Server is aggregating uploaded device updates."""
    VALIDATING = "validating"
    """Aggregated model is being validated before publishing."""
    PUBLISHING = "publishing"
    """Validated model is being published as a candidate artifact."""
    PUBLISHED = "published"
    """Round completed successfully; new model artifact published."""
    CLOSED = "closed"
    """Round closed without a new model (e.g., not enough participants, superseded)."""
    CANCELLED = "cancelled"
    """Round cancelled by operator before completion."""
    FAILED_VALIDATION = "failed_validation"
    """Aggregated model failed validation metrics; round result discarded."""
    INSUFFICIENT_UPDATES = "insufficient_updates"
    """Fewer valid device updates received than the required minimum; round aborted."""
    PARTIAL_PUBLISH = "partial_publish"
    """Publish succeeded for some shards but not all; partial artifact available."""
