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

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2
from ..core.unchecked_base_model import UncheckedBaseModel


class CreateOrUpdateTagRequest(UncheckedBaseModel):
    """
    You can create or update an existing tag.
    """

    name: str = pydantic.Field()
    """
    The name of the tag, which will be created if not found, or the new name for the tag if this is an update request. Names are case insensitive.
    """

    id: typing.Optional[str] = pydantic.Field(default=None)
    """
    The id of tag to updates.
    """

    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
