brewman/brewman/brewman/schemas/role.py

37 lines
1001 B
Python

import uuid
from brewman.schemas import to_camel
from pydantic import BaseModel, ConfigDict, Field
from .permission import PermissionItem
class RoleIn(BaseModel):
name: str = Field(..., min_length=1)
permissions: list[PermissionItem]
model_config = ConfigDict(str_strip_whitespace=True, populate_by_name=True)
class Role(RoleIn):
id_: uuid.UUID
model_config = ConfigDict(alias_generator=to_camel, str_strip_whitespace=True, populate_by_name=True)
class RoleList(BaseModel):
id_: uuid.UUID
name: str
permissions: list[str]
model_config = ConfigDict(alias_generator=to_camel, str_strip_whitespace=True, populate_by_name=True)
class RoleItem(BaseModel):
id_: uuid.UUID
name: str
enabled: bool
model_config = ConfigDict(alias_generator=to_camel, str_strip_whitespace=True, populate_by_name=True)
class RoleBlank(RoleIn):
name: str
model_config = ConfigDict(alias_generator=to_camel, str_strip_whitespace=True, populate_by_name=True)