from knot_resolver_manager.datamodel.network_schema import NetworkSchema
from knot_resolver_manager.datamodel.options_schema import OptionsSchema
from knot_resolver_manager.datamodel.policy_schema import PolicySchema
+from knot_resolver_manager.datamodel.rpz_schema import RPZSchema
from knot_resolver_manager.datamodel.server_schema import ServerSchema
from knot_resolver_manager.datamodel.static_hints_schema import StaticHintsSchema
from knot_resolver_manager.datamodel.stub_zone_schema import StubZoneSchema
static_hints: StaticHintsSchema = StaticHintsSchema()
views: Optional[Dict[str, ViewSchema]] = None
policy: Optional[Dict[str, PolicySchema]] = None
+ rpz: Optional[Dict[DomainName, RPZSchema]] = None
stub_zones: Optional[Dict[DomainName, StubZoneSchema]] = None
forward_zones: Optional[Dict[DomainName, ForwardZoneSchema]] = None
cache: CacheSchema = CacheSchema()
static_hints: StaticHintsSchema
views: Optional[Dict[str, ViewSchema]]
policy: Optional[Dict[str, PolicySchema]]
+ rpz: Optional[Dict[DomainName, RPZSchema]]
stub_zones: Optional[Dict[DomainName, StubZoneSchema]]
forward_zones: Optional[Dict[DomainName, ForwardZoneSchema]]
cache: CacheSchema
--- /dev/null
+from typing import List, Optional
+
+from knot_resolver_manager.datamodel.policy_schema import ActionEnum
+from knot_resolver_manager.datamodel.types import AnyPath
+from knot_resolver_manager.datamodel.view_schema import FlagsEnum
+from knot_resolver_manager.utils import SchemaNode
+
+
+class RPZSchema(SchemaNode):
+ action: ActionEnum
+ file: AnyPath
+ watch: bool = True
+ message: Optional[str] = None
+ views: Optional[str] = None
+ options: Optional[List[FlagsEnum]] = None