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

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .dialects import Dialects
from .style_guide import StyleGuide
from .tones import Tones


class Parameters(UniversalBaseModel):
    dialect: typing.Optional[Dialects] = pydantic.Field(default=None)
    """
    The dialect used for the activity
    """

    tone: typing.Optional[Tones] = pydantic.Field(default=None)
    """
    The tone used for the activity
    """

    style_guide: typing.Optional[StyleGuide] = pydantic.Field(default=None)
    """
    The style guide used for the activity
    """

    max_words: typing.Optional[int] = pydantic.Field(default=None)
    """
    The maximum number of words allowed for the activity
    """

    replace_terms: typing.Optional[str] = pydantic.Field(default=None)
    """
    Formatted string of terms to replace for the activity
    """

    do_not_flag_terms: typing.Optional[str] = pydantic.Field(default=None)
    """
    Formatted string of terms to not flag for the activity
    """

    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
