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

from __future__ import annotations

from enum import Enum
from typing import Optional, Union

from pydantic import BaseModel, Field


class Type(Enum):
    my_first_object = 'my_first_object'
    my_second_object = 'my_second_object'


class ObjectBase(BaseModel):
    name: Optional[str] = Field(None, description='Name of the object')
    type: Optional[Type] = Field(None, description='Object type')
    rank: Optional[Union[int, float]] = Field(None, description='User rank')
    allIn: Optional[Union[Type, str, Union[int, float]]] = None


class CreateObjectRequest(ObjectBase):
    name: str = Field(..., description='Name of the object')
    type: Type = Field(..., description='Object type')
    rank: Union[int, float] = Field(..., description='User rank')
    allIn: Union[Type, str, Union[int, float]]


class UpdateObjectRequest(ObjectBase):
    pass
