1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
# generated by datamodel-codegen:
# filename: allof_with_oneof_ref.yaml
# timestamp: 2019-07-26T00:00:00+00:00
from __future__ import annotations
from enum import Enum
from typing import Literal, Union
from pydantic import BaseModel, Field, RootModel
class UserType(Enum):
admin = 'admin'
class AdminUser(BaseModel):
userType: Literal['admin']
adminLevel: int
class UserType1(Enum):
regular = 'regular'
class RegularUser(BaseModel):
userType: Literal['regular']
username: str
class User(RootModel[Union[AdminUser, RegularUser]]):
root: Union[AdminUser, RegularUser] = Field(..., discriminator='userType')
class UserPostRequest1(BaseModel):
userId: str
class UserPostRequest2(AdminUser, UserPostRequest1):
pass
class UserPostRequest3(RegularUser, UserPostRequest1):
pass
class UserPostRequest(RootModel[Union[UserPostRequest2, UserPostRequest3]]):
root: Union[UserPostRequest2, UserPostRequest3]
|