cloud-api/src/user/schemas.py

58 lines
932 B
Python
Raw Normal View History

2026-04-06 12:41:49 +01:00
"""
2026-05-28 14:55:44 +01:00
Pydantic models for the user module
2026-04-06 12:41:49 +01:00
"""
from typing import Optional
2026-04-06 12:41:49 +01:00
from src.schemas import CustomBaseModel
class UserIDMixin(CustomBaseModel):
user_id: int
2026-05-20 10:42:07 +01:00
class OIDCClaims(CustomBaseModel):
exp: int
iat: int
auth_time: int
jti: str
iss: str
aud: str
sub: str
typ: str
azp: str
sid: str
acr: str
allowed_origins: list[str]
realm_access: dict[str, list[str]]
resource_access: dict[str, dict[str, list[str]]]
scope: str
email_verified: bool
name: str
preferred_username: str
given_name: str
family_name: str
email: str
db_id: int
2026-04-06 12:41:49 +01:00
class OIDCUser(CustomBaseModel):
first_name: str
last_name: str
email: str
oidc_id: str
class UserResponse(CustomBaseModel):
first_name: str
last_name: str
email: str
organisations: list[Optional[str]]
2026-05-29 16:55:05 +01:00
groups: Optional[dict[str, list[str]]] = None
2026-04-06 12:41:49 +01:00
class OrgResponse(CustomBaseModel):
org_id: int
name: str
class UserDeleteUserRequest(UserIDMixin):
pass