2026-05-28 14:59:27 +01:00
|
|
|
"""
|
|
|
|
|
Global Pydantic schemas
|
|
|
|
|
|
|
|
|
|
Exports:
|
|
|
|
|
- CustomBaseModel: Schema used for all other Pydantic models
|
|
|
|
|
- ResourceName
|
|
|
|
|
"""
|
2026-06-08 15:31:37 +01:00
|
|
|
|
2026-06-09 13:17:31 +01:00
|
|
|
from pydantic import BaseModel, Field
|
2026-05-25 09:05:17 +01:00
|
|
|
from typing import Optional
|
2026-04-06 12:41:49 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class CustomBaseModel(BaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
pass
|
2026-05-25 09:05:17 +01:00
|
|
|
|
|
|
|
|
|
2026-06-09 13:17:31 +01:00
|
|
|
### Mixins ###
|
|
|
|
|
class OrgIDMixin(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
organisation_id: int = Field(gt=0)
|
2026-06-09 13:17:31 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class GroupIDMixin(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
group_id: int = Field(gt=0)
|
2026-06-09 13:17:31 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class PermIDMixin(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
permission_id: int = Field(gt=0)
|
2026-06-09 13:17:31 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class ServiceIDMixin(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
service_id: int = Field(gt=0)
|
2026-06-09 13:17:31 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserIDMixin(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
user_id: int = Field(gt=0)
|
2026-06-10 13:48:59 +01:00
|
|
|
|
|
|
|
|
|
2026-06-16 16:09:17 +01:00
|
|
|
class ServiceNameMixin(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
service: str
|
2026-06-16 16:09:17 +01:00
|
|
|
|
|
|
|
|
|
2026-06-10 13:48:59 +01:00
|
|
|
class OrgSummary(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
id: int
|
|
|
|
|
name: str
|
2026-06-10 13:48:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class GroupSummary(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
id: int
|
|
|
|
|
name: str
|
2026-06-10 13:48:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserSummary(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
id: int
|
|
|
|
|
email: str
|
2026-06-12 15:58:20 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class ServiceSummary(CustomBaseModel):
|
2026-06-22 15:04:11 +01:00
|
|
|
id: int
|
|
|
|
|
name: str
|
2026-06-16 16:09:17 +01:00
|
|
|
|
|
|
|
|
|
2026-06-17 13:12:32 +01:00
|
|
|
class ResourceName(ServiceNameMixin, OrgIDMixin):
|
2026-06-22 15:04:11 +01:00
|
|
|
resource: str
|
|
|
|
|
instance: Optional[str] = None
|