from typing_extensions import Literal
from knot_resolver_manager.datamodel.types import (
- EscapedStr,
+ EscapedStr32B,
File,
FilePath,
Int0_512,
cert_file: Optional[File] = None
key_file: Optional[File] = None
- sticket_secret: Optional[EscapedStr] = None
+ sticket_secret: Optional[EscapedStr32B] = None
sticket_secret_file: Optional[File] = None
auto_discovery: bool = False
padding: Union[bool, Int0_512] = True
import re
from typing import Any, Dict, Optional, Type, Union
-from knot_resolver_manager.datamodel.types.base_types import IntRangeBase, PatternBase, StrBase, UnitBase
+from knot_resolver_manager.datamodel.types.base_types import (
+ IntRangeBase,
+ PatternBase,
+ StrBase,
+ StringLengthBase,
+ UnitBase,
+)
from knot_resolver_manager.utils.modeling import BaseValueType
self._value = "".join(s)
+class EscapedStr32B(EscapedStr, StringLengthBase):
+ """
+ Same as 'EscapedStr', but minimal length is 32 bytes.
+ """
+
+ _min_bytes: int = 32
+
+
class DomainName(StrBase):
"""
Fully or partially qualified domain name.