summaryrefslogtreecommitdiffstats
path: root/python/knot_resolver_manager/manager/datamodel/management_schema.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/knot_resolver_manager/manager/datamodel/management_schema.py')
-rw-r--r--python/knot_resolver_manager/manager/datamodel/management_schema.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/python/knot_resolver_manager/manager/datamodel/management_schema.py b/python/knot_resolver_manager/manager/datamodel/management_schema.py
new file mode 100644
index 00000000..4df4afa1
--- /dev/null
+++ b/python/knot_resolver_manager/manager/datamodel/management_schema.py
@@ -0,0 +1,21 @@
+from typing import Optional
+
+from knot_resolver_manager.manager.datamodel.types import WritableFilePath, IPAddressPort
+from knot_resolver_manager.utils.modeling import ConfigSchema
+
+
+class ManagementSchema(ConfigSchema):
+ """
+ Configuration of management HTTP API.
+
+ ---
+ unix_socket: Path to unix domain socket to listen to.
+ interface: IP address and port number to listen to.
+ """
+
+ unix_socket: Optional[WritableFilePath] = None
+ interface: Optional[IPAddressPort] = None
+
+ def _validate(self) -> None:
+ if bool(self.unix_socket) == bool(self.interface):
+ raise ValueError("One of 'interface' or 'unix-socket' must be configured.")