from typing import List, Optional, Union
-from knot_resolver_manager.datamodel.types import CheckedPath, DomainName, IPAddressOptionalPort, PolicyFlagEnum
+from knot_resolver_manager.datamodel.policy_schema import ForwardServerSchema
+from knot_resolver_manager.datamodel.types import IPAddressOptionalPort, PolicyFlagEnum
from knot_resolver_manager.utils import SchemaNode
-class ForwardServerSchema(SchemaNode):
- """
- Configuration of Forward server.
-
- ---
- address: IP address of Forward server.
- pin_sha256: Hash of accepted CA certificate.
- hostname: Hostname of the Forward server.
- ca_file: Path to CA certificate file.
- """
-
- address: IPAddressOptionalPort
- pin_sha256: Optional[Union[str, List[str]]] = None
- hostname: Optional[DomainName] = None
- ca_file: Optional[CheckedPath] = None
-
-
class ForwardZoneSchema(SchemaNode):
"""
Configuration of Forward Zone.
from knot_resolver_manager.datamodel.network_schema import AddressRenumberingSchema
from knot_resolver_manager.datamodel.types import (
+ CheckedPath,
DNSRecordTypeEnum,
+ DomainName,
IPAddressOptionalPort,
PolicyActionEnum,
PolicyFlagEnum,
class ForwardServerSchema(SchemaNode):
- pass
+ """
+ Configuration of Forward server.
+
+ ---
+ address: IP address of Forward server.
+ pin_sha256: Hash of accepted CA certificate.
+ hostname: Hostname of the Forward server.
+ ca_file: Path to CA certificate file.
+ """
+
+ address: IPAddressOptionalPort
+ pin_sha256: Optional[Union[str, List[str]]] = None
+ hostname: Optional[DomainName] = None
+ ca_file: Optional[CheckedPath] = None
class PolicySchema(SchemaNode):
message: Deny message for 'deny' action.
reroute: Configuration for 'reroute' action.
answer: Answer definition for 'answer' action.
- servers: Servers configuration for 'mirror', 'forward', 'forward-tls' and 'stub' action.
+ servers: Servers configuration for 'mirror', 'forward' and 'stub' action.
"""
action: PolicyActionEnum
servers: Optional[Union[List[IPAddressOptionalPort], List[ForwardServerSchema]]] = None
def _validate(self) -> None:
- servers = ["mirror", "forward", "forward-tls", "stub"]
+ servers = ["mirror", "forward", "stub"]
def _field(action: str) -> str:
if action in servers:
# Chain actions
"mirror",
"forward",
- "forward-tls",
"stub",
"debug-always",
"debug-cache-miss",
"qtrace",
"reqtrace",
]
-configurable_actions = ["deny", "reroute", "answer", "mirror", "forward", "forward-tls", "stub"]
+configurable_actions = ["deny", "reroute", "answer", "mirror", "forward", "stub"]
policy_actions = get_generic_type_arguments(PolicyActionEnum)
{"action": "answer", "answer": {"rtype": "AAAA", "rdata": "192.0.2.7"}},
{"action": "mirror", "servers": ["192.0.2.1@5353", "2001:148f:ffff::1"]},
{"action": "forward", "servers": ["192.0.2.1@5353", "2001:148f:ffff::1"]},
- {"action": "forward-tls", "servers": ["192.0.2.1@5353", "2001:148f:ffff::1"]},
{"action": "stub", "servers": ["192.0.2.1@5353", "2001:148f:ffff::1"]},
],
)