57 lines
1.1 KiB
Python
57 lines
1.1 KiB
Python
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
|