diff options
Diffstat (limited to 'python/knot_resolver_manager/manager/datamodel/management_schema.py')
-rw-r--r-- | python/knot_resolver_manager/manager/datamodel/management_schema.py | 21 |
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.") |