# This file was auto-generated by Fern from our API Definition.

from ..core.unchecked_base_model import UncheckedBaseModel
import typing
from .label_stream_task_distribution_enum import LabelStreamTaskDistributionEnum
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2


class AssignmentSettings(UncheckedBaseModel):
    id: typing.Optional[int] = None
    label_stream_task_distribution: typing.Optional[LabelStreamTaskDistributionEnum] = pydantic.Field(default=None)
    """
    Modes for distributing tasks to annotators
    
    * `auto_distribution` - Label Stream distributes tasks automatically to annotators
    * `assigned_only` - Label Stream shows tasks only to assigned users
    """

    project: typing.Optional[int] = None

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
