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

from __future__ import annotations

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .http_api_decode_error_tag import HttpApiDecodeErrorTag
from .issue import Issue


class BadRequestErrorBody_HttpApiDecodeError(UniversalBaseModel):
    tag: typing.Literal["HttpApiDecodeError"] = "HttpApiDecodeError"
    issues: typing.List[Issue]
    message: str
    tag: HttpApiDecodeErrorTag

    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


class BadRequestErrorBody_ImmutableResourceError(UniversalBaseModel):
    tag: typing.Literal["ImmutableResourceError"] = "ImmutableResourceError"
    message: str
    resource: typing.Optional[str] = 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


BadRequestErrorBody = typing.Union[
    BadRequestErrorBody_HttpApiDecodeError, BadRequestErrorBody_ImmutableResourceError
]
