# Autogenerated code. DO NOT EDIT.
import enum
import typing

import py_gen_ml as pgml


class Enum(str, enum.Enum):
    VALUE_1 = 'VALUE_1'
    VALUE_2 = 'VALUE_2'
    VALUE_3 = 'VALUE_3'


class Int32Test(pgml.YamlBaseModel):
    value: int


class Int64Test(pgml.YamlBaseModel):
    value: int


class Uint32Test(pgml.YamlBaseModel):
    value: int


class Uint64Test(pgml.YamlBaseModel):
    value: int


class Sint32Test(pgml.YamlBaseModel):
    value: int


class Sint64Test(pgml.YamlBaseModel):
    value: int


class Fixed32Test(pgml.YamlBaseModel):
    value: int


class Fixed64Test(pgml.YamlBaseModel):
    value: int


class Sfixed32Test(pgml.YamlBaseModel):
    value: int


class Sfixed64Test(pgml.YamlBaseModel):
    value: int


class BoolTest(pgml.YamlBaseModel):
    value: bool


class FloatTest(pgml.YamlBaseModel):
    value: float


class DoubleTest(pgml.YamlBaseModel):
    value: float


class StringTest(pgml.YamlBaseModel):
    value: str


class BytesTest(pgml.YamlBaseModel):
    value: bytes


class EnumTest(pgml.YamlBaseModel):
    value: Enum


class EnumDefaultTest(pgml.YamlBaseModel):
    value: Enum = Enum.VALUE_1


class OneofTest(pgml.YamlBaseModel):
    value: typing.Union[int, str]


class RepeatedTest(pgml.YamlBaseModel):
    values: list[int]


class OptionalTest(pgml.YamlBaseModel):
    value: typing.Optional[int] = None


class Int32DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class Int64DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class Uint32DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class Uint64DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class Sint32DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class Sint64DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class Fixed32DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class Fixed64DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class Sfixed32DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class Sfixed64DefaultTest(pgml.YamlBaseModel):
    value: int = 1


class BoolDefaultTest(pgml.YamlBaseModel):
    value: bool = True


class FloatDefaultTest(pgml.YamlBaseModel):
    value: float = 1.0


class DoubleDefaultTest(pgml.YamlBaseModel):
    value: float = 1.0


class StringDefaultTest(pgml.YamlBaseModel):
    value: str = 'test'


class BytesDefaultTest(pgml.YamlBaseModel):
    value: bytes = b'test'


class OneofDefaultTest(pgml.YamlBaseModel):
    value: typing.Union[int, str]


class OptionalDefaultTest(pgml.YamlBaseModel):
    value: typing.Optional[int] = 1


class ExplicitCLIArgTest(pgml.YamlBaseModel):
    bar: str


class ImplicitCLIArgTest(pgml.YamlBaseModel):
    bar: str


class NestedFooTest(pgml.YamlBaseModel):
    foo: str


class NestedBarTest(pgml.YamlBaseModel):
    foo_0: NestedFooTest
    foo_1: NestedFooTest


class RepeatedNestedBarTest(pgml.YamlBaseModel):
    bar: list[NestedBarTest]
