Coverage for /usr/local/lib/python3.10/site-packages/opal_common-0.0.0-py3.10.egg/opal_common/schemas/policy.py: 100%
30 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 11:54 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 11:54 +0000
1from pathlib import Path
2from typing import List, Optional
4from pydantic import BaseModel, Field
7class BaseSchema(BaseModel):
8 class Config:
9 orm_mode = True
12class DataModule(BaseSchema):
13 path: str = Field(
14 ..., description="where to place the data module relative to opa data root"
15 )
16 data: str = Field(..., description="data module file contents (json)")
19class RegoModule(BaseSchema):
20 path: str = Field(
21 ...,
22 description="path of policy module on disk, will be used to generate policy id",
23 )
24 package_name: str = Field(..., description="opa module package name")
25 rego: str = Field(..., description="rego module file contents (text)")
28class DeletedFiles(BaseSchema):
29 data_modules: List[Path] = []
30 policy_modules: List[Path] = []
33class PolicyBundle(BaseSchema):
34 manifest: List[str]
35 hash: str = Field(..., description="commit hash (debug version)")
36 old_hash: Optional[str] = Field(
37 None, description="old commit hash (in diff bundles)"
38 )
39 data_modules: List[DataModule]
40 policy_modules: List[RegoModule]
41 deleted_files: Optional[DeletedFiles]
44class PolicyUpdateMessage(BaseSchema):
45 old_policy_hash: str
46 new_policy_hash: str
47 changed_directories: List[str]
50class PolicyUpdateMessageNotification(BaseSchema):
51 update: PolicyUpdateMessage
52 topics: List[str]