from datetime import datetime from pydantic import BaseModel class PermissionGrantRequest(BaseModel): authentik_sub: str email: str | None = None display_name: str | None = None scope_type: str scope_id: str system: str module: str | None = None action: str class PermissionRevokeRequest(BaseModel): authentik_sub: str scope_type: str scope_id: str system: str module: str | None = None action: str class PermissionItem(BaseModel): scope_type: str scope_id: str system: str | None = None module: str action: str class PermissionSnapshotResponse(BaseModel): authentik_sub: str permissions: list[PermissionItem] class DirectPermissionRow(BaseModel): permission_id: str authentik_sub: str email: str | None = None display_name: str | None = None scope_type: str scope_id: str system: str | None = None module: str | None = None action: str created_at: datetime class DirectPermissionListResponse(BaseModel): items: list[DirectPermissionRow] total: int limit: int offset: int