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

from ...core.unchecked_base_model import UncheckedBaseModel
from .remote_field_type_id import RemoteFieldTypeId
import typing
import pydantic
from ...engine.types.option_value import OptionValue
from ...core.pydantic_utilities import IS_PYDANTIC_V2


class RemoteFieldSchema(UncheckedBaseModel):
    field_type_id: RemoteFieldTypeId
    field_type: typing.Optional[str] = pydantic.Field(alias="field_Type", default=None)
    enum_values: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
    """
    Display names for possible values the enum can take on.
    """

    enum_option_values: typing.Optional[typing.List[OptionValue]] = pydantic.Field(
        default=None
    )
    """
    Possible values the enum can take on. For providers which don't distinguish between ID and display name, the ID and display name should be set to the same value.
    """

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

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