forked from sr2/cloud-api
42 lines
714 B
Python
42 lines
714 B
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
|
|
|
|
|
|
class ResourceName(CustomBaseModel):
|
|
service: str
|
|
organisation: str
|
|
resource: str
|
|
instance: Optional[str] = None
|
|
|
|
|
|
### 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)
|