2026-07-31 00:58:05 +02:00
|
|
|
"""Schemas for EntityPolicy API endpoints."""
|
|
|
|
|
|
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
from typing import Any
|
2026-08-16 01:17:18 +02:00
|
|
|
|
2026-07-31 00:58:05 +02:00
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EntityPolicyBase(BaseModel):
|
|
|
|
|
name: str
|
|
|
|
|
entity_type: str
|
|
|
|
|
principal_type: str
|
|
|
|
|
principal_id: str
|
|
|
|
|
effect: str
|
|
|
|
|
conditions: dict[str, Any] | None = None
|
|
|
|
|
priority: int = 0
|
|
|
|
|
enabled: bool = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EntityPolicyCreate(EntityPolicyBase):
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EntityPolicyUpdate(BaseModel):
|
|
|
|
|
name: str | None = None
|
|
|
|
|
effect: str | None = None
|
|
|
|
|
conditions: dict[str, Any] | None = None
|
|
|
|
|
priority: int | None = None
|
|
|
|
|
enabled: bool | None = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EntityPolicyResponse(EntityPolicyBase):
|
|
|
|
|
id: str
|
|
|
|
|
created_at: str | None = None
|
|
|
|
|
updated_at: str | None = None
|
|
|
|
|
|
|
|
|
|
model_config = {"from_attributes": True}
|