""" Global Pydantic schemas Exports: - CustomBaseModel: Schema used for all other Pydantic models - ResourceName """ from pydantic import BaseModel, Field from typing import Optional class CustomBaseModel(BaseModel): pass ### Mixins ### class OrgIDMixin(CustomBaseModel): organisation_id: int = Field(gt=0) class GroupIDMixin(CustomBaseModel): group_id: int = Field(gt=0) class PermIDMixin(CustomBaseModel): permission_id: int = Field(gt=0) class ServiceIDMixin(CustomBaseModel): service_id: int = Field(gt=0) class UserIDMixin(CustomBaseModel): user_id: int = Field(gt=0) class ServiceNameMixin(CustomBaseModel): service: str class OrgSummary(CustomBaseModel): id: int name: str class GroupSummary(CustomBaseModel): id: int name: str class UserSummary(CustomBaseModel): id: int email: str class ServiceSummary(CustomBaseModel): id: int name: str class ResourceName(ServiceNameMixin, OrgIDMixin): resource: str instance: Optional[str] = None