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):
|
|
|
|
|
pass
|
2026-05-25 09:05:17 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class ResourceName(CustomBaseModel):
|
|
|
|
|
service: str
|
|
|
|
|
organisation: str
|
|
|
|
|
resource: str
|
|
|
|
|
instance: Optional[str] = None
|
2026-06-09 13:17:31 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
### 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)
|