object :empty object TestBase member enum1: TestEnum optional=False enum TestEnum ['value1', 'value2'] object TestTypeA member string: str optional=False object TestTypeB member integer: int optional=False object TestUnion base TestBase tag enum1 case value1: TestTypeA case value2: TestTypeB