# generated by datamodel-codegen:
#   filename:  anyof.yaml
#   timestamp: 2019-07-26T00:00:00+00:00

from __future__ import annotations

from typing import Annotated, Dict, List, Union

from msgspec import UNSET, Meta, Struct, UnsetType
from typing_extensions import TypeAlias


class Pet(Struct):
    id: int
    name: str
    tag: Union[str, UnsetType] = UNSET


class Car(Struct):
    id: int
    name: str
    tag: Union[str, UnsetType] = UNSET


class AnyOfItem1(Struct):
    name: Union[str, UnsetType] = UNSET


AnyOfItem2: TypeAlias = Annotated[str, Meta(max_length=5000)]


AnyOfItem: TypeAlias = Union[Pet, Car, AnyOfItem1, AnyOfItem2]


class Item(Struct):
    name: Union[str, UnsetType] = UNSET


Item1: TypeAlias = Annotated[str, Meta(max_length=5000)]


class AnyOfobj(Struct):
    item: Union[Pet, Car, Item, Item1, UnsetType] = UNSET


class AnyOfArray1(Struct):
    name: Union[str, UnsetType] = UNSET
    birthday: Union[str, UnsetType] = UNSET


AnyOfArray2: TypeAlias = Annotated[str, Meta(max_length=5000)]


AnyOfArray: TypeAlias = List[Union[Pet, Car, AnyOfArray1, AnyOfArray2]]


class Error(Struct):
    code: int
    message: str


class Config(Struct):
    setting: Union[Dict[str, Union[str, List[str]]], UnsetType] = UNSET
