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

from __future__ import annotations

from typing import Dict, Union

from msgspec import UNSET, Struct, UnsetType, convert, field


class Interval(Struct):
    start: Union[int, UnsetType] = UNSET
    end: Union[int, UnsetType] = UNSET


class Container(Struct):
    interval_or_string: Union[Interval, str, UnsetType] = field(
        default_factory=lambda: convert({'start': 2009, 'end': 2019}, type=Interval)
    )
    string_or_interval: Union[Interval, str, UnsetType] = 'some string value'
    dict_or_interval: Union[Dict[str, str], Interval, UnsetType] = field(
        default_factory=lambda: {'key': 'value'}
    )
