cloud-api/src/schemas.py
luxferre fab228bf8f
Some checks failed
ci / ruff (push) Successful in 4s
ci / ty (push) Successful in 4s
ci / tests (push) Failing after 7s
ci / build (push) Has been cancelled
minor: ruff format
Tabs -> spaces
2026-06-22 15:04:11 +01:00

64 lines
1 KiB
Python

"""
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