Skip to content

Options

OptionsBlock pydantic-model

Bases: ExtendedOptionsMixin

Global options block for BIND configuration.

This is the grammar of the options statement in the named.conf file

Grammar:

options {
    directory <quoted_string>;
    pid-file ( <quoted_string> | none );
    ... # dozens of directives grouped by area (server info, query processing,
        # zone/transfer defaults, DNSSEC, caching, rate limiting, notify targets,
        # response policy, catalog zones, etc.) - see the field descriptions below
        # and https://bind9.readthedocs.io/en/latest/reference.html#options-statement-grammar
};

Show JSON schema:
{
  "$defs": {
    "AlsoNotifyBlock": {
      "description": "Options block also-notify with structure.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "global_port": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Global port for all servers",
          "title": "Global Port"
        },
        "source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv4 source for notifications",
          "title": "Source"
        },
        "source_v6": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv6",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv6 source for notifications",
          "title": "Source V6"
        },
        "servers": {
          "description": "Server list for notifications",
          "items": {
            "$ref": "#/$defs/ServerSpecifier"
          },
          "title": "Servers",
          "type": "array"
        }
      },
      "title": "AlsoNotifyBlock",
      "type": "object"
    },
    "CatalogZoneBlock": {
      "description": "Catalog zone configuration.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "zone": {
          "description": "Catalog zone name",
          "title": "Zone",
          "type": "string"
        },
        "default_primaries": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default primary servers for member zones",
          "title": "Default Primaries"
        },
        "zone_directory": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Directory for zone files",
          "title": "Zone Directory"
        },
        "in_memory": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Keep catalog in memory",
          "title": "In Memory"
        },
        "min_update_interval": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum interval between updates",
          "title": "Min Update Interval"
        }
      },
      "required": [
        "zone"
      ],
      "title": "CatalogZoneBlock",
      "type": "object"
    },
    "Dns64Block": {
      "description": "DNS64 configuration block.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "prefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4network",
              "type": "string"
            },
            {
              "format": "ipv6network",
              "type": "string"
            }
          ],
          "description": "DNS64 prefix",
          "title": "Prefix"
        },
        "break_dnssec": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable DNS64 synthesis even if DNSSEC validation fails",
          "title": "Break Dnssec"
        },
        "clients": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Clients affected by this DNS64 prefix",
          "title": "Clients"
        },
        "exclude": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv6 addresses to exclude from DNS64",
          "title": "Exclude"
        },
        "mapped": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv4 addresses to map in DNS64",
          "title": "Mapped"
        },
        "recursive_only": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Apply DNS64 only to recursive queries",
          "title": "Recursive Only"
        },
        "suffix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv6",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Suffix for mapped IPv4 addresses",
          "title": "Suffix"
        }
      },
      "required": [
        "prefix"
      ],
      "title": "Dns64Block",
      "type": "object"
    },
    "ForwardersBlock": {
      "description": "Options block forwarders with structure.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "global_port": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Global port for all servers",
          "title": "Global Port"
        },
        "source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv4 source for notifications",
          "title": "Source"
        },
        "source_v6": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv6",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv6 source for notifications",
          "title": "Source V6"
        },
        "servers": {
          "description": "List of forwarding servers",
          "items": {
            "$ref": "#/$defs/ServerSpecifier"
          },
          "title": "Servers",
          "type": "array"
        }
      },
      "title": "ForwardersBlock",
      "type": "object"
    },
    "RateLimitBlock": {
      "description": "Response rate limiting configuration block.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "responses_per_second": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit for non-empty responses per second",
          "title": "Responses Per Second"
        },
        "errors_per_second": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit for error responses per second",
          "title": "Errors Per Second"
        },
        "nxdomains_per_second": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit for NXDOMAIN responses per second",
          "title": "Nxdomains Per Second"
        },
        "nodata_per_second": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit for NODATA responses per second",
          "title": "Nodata Per Second"
        },
        "referrals_per_second": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit for referral responses per second",
          "title": "Referrals Per Second"
        },
        "all_per_second": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit for all UDP responses per second",
          "title": "All Per Second"
        },
        "slip": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Rate at which to send truncated responses",
          "title": "Slip"
        },
        "window": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time window for rate limiting in seconds",
          "title": "Window"
        },
        "qps_scale": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Query rate at which to scale back limits",
          "title": "Qps Scale"
        },
        "ipv4_prefix_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv4 prefix length for client grouping",
          "title": "Ipv4 Prefix Length"
        },
        "ipv6_prefix_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv6 prefix length for client grouping",
          "title": "Ipv6 Prefix Length"
        },
        "exempt_clients": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Clients exempt from rate limiting",
          "title": "Exempt Clients"
        },
        "max_table_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum size of rate limit table",
          "title": "Max Table Size"
        },
        "min_table_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum size of rate limit table",
          "title": "Min Table Size"
        },
        "log_only": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Log rate limiting without actually dropping",
          "title": "Log Only"
        }
      },
      "title": "RateLimitBlock",
      "type": "object"
    },
    "ResponsePolicyBlock": {
      "description": "Response Policy configuration block.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "zones": {
          "description": "Response policy zones",
          "items": {
            "$ref": "#/$defs/ResponsePolicyZone"
          },
          "title": "Zones",
          "type": "array"
        },
        "add_soa": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Add SOA record to responses (global)",
          "title": "Add Soa"
        },
        "break_dnssec": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Apply RPZ even when DNSSEC records exist",
          "title": "Break Dnssec"
        },
        "max_policy_ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum TTL for policy responses (global)",
          "title": "Max Policy Ttl"
        },
        "min_update_interval": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum interval between updates (global)",
          "title": "Min Update Interval"
        },
        "min_ns_dots": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum dots in nameserver names",
          "title": "Min Ns Dots"
        },
        "nsip_wait_recurse": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Wait for recursion before applying NSIP rules",
          "title": "Nsip Wait Recurse"
        },
        "nsdname_wait_recurse": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Wait for recursion before applying NSDNAME rules",
          "title": "Nsdname Wait Recurse"
        },
        "qname_wait_recurse": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Wait for recursion before applying QNAME rules",
          "title": "Qname Wait Recurse"
        },
        "recursive_only": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Apply only to recursive queries (global)",
          "title": "Recursive Only"
        },
        "servfail_until_ready": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Return SERVFAIL until RPZ zones are loaded",
          "title": "Servfail Until Ready"
        },
        "nsip_enable": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable NSIP triggers (global)",
          "title": "Nsip Enable"
        },
        "nsdname_enable": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable NSDNAME triggers (global)",
          "title": "Nsdname Enable"
        }
      },
      "title": "ResponsePolicyBlock",
      "type": "object"
    },
    "ResponsePolicyZone": {
      "description": "Response Policy Zone configuration.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "zone": {
          "description": "RPZ zone name",
          "title": "Zone",
          "type": "string"
        },
        "add_soa": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Add SOA record to responses",
          "title": "Add Soa"
        },
        "log": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable logging for this zone",
          "title": "Log"
        },
        "max_policy_ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum TTL for policy responses",
          "title": "Max Policy Ttl"
        },
        "min_update_interval": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum interval between updates",
          "title": "Min Update Interval"
        },
        "policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Policy action (cname, disabled, drop, given, etc.)",
          "title": "Policy"
        },
        "recursive_only": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Apply only to recursive queries",
          "title": "Recursive Only"
        },
        "nsip_enable": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable NSIP triggers",
          "title": "Nsip Enable"
        },
        "nsdname_enable": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable NSDNAME triggers",
          "title": "Nsdname Enable"
        },
        "ede": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Extended DNS Error code",
          "title": "Ede"
        }
      },
      "required": [
        "zone"
      ],
      "title": "ResponsePolicyZone",
      "type": "object"
    },
    "RrsetOrderRule": {
      "description": "RRset ordering rule.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "order_class": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Class to match",
          "title": "Order Class"
        },
        "order_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Type to match",
          "title": "Order Type"
        },
        "order_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name to match",
          "title": "Order Name"
        },
        "order": {
          "description": "Ordering method (fixed, random, cyclic, none)",
          "title": "Order",
          "type": "string"
        }
      },
      "required": [
        "order"
      ],
      "title": "RrsetOrderRule",
      "type": "object"
    },
    "ServerSpecifier": {
      "description": "Specificator for server type fields.\n\nGrammar:\n```\n( <ip_address> [ port <integer> ] ) [ key <server_key> ] [ tls <tls_id> ]\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "format": "ipv6",
              "type": "string"
            }
          ],
          "description": "Server IP-address",
          "title": "Address"
        },
        "port": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Server port",
          "title": "Port"
        },
        "key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Auth key",
          "title": "Key"
        },
        "tls": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "TLS configuration",
          "title": "Tls"
        }
      },
      "required": [
        "address"
      ],
      "title": "ServerSpecifier",
      "type": "object"
    }
  },
  "description": "Global options block for BIND configuration.\n\nThis is the grammar of the options statement in the named.conf file\n\nGrammar:\n```\noptions {\n    directory <quoted_string>;\n    pid-file ( <quoted_string> | none );\n    ... # dozens of directives grouped by area (server info, query processing,\n        # zone/transfer defaults, DNSSEC, caching, rate limiting, notify targets,\n        # response policy, catalog zones, etc.) - see the field descriptions below\n        # and https://bind9.readthedocs.io/en/latest/reference.html#options-statement-grammar\n};\n```",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "catalog_zones": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/CatalogZoneBlock"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Catalog zones configuration",
      "title": "Catalog Zones"
    },
    "response_policy": {
      "anyOf": [
        {
          "$ref": "#/$defs/ResponsePolicyBlock"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Response policy configuration"
    },
    "rate_limit": {
      "anyOf": [
        {
          "$ref": "#/$defs/RateLimitBlock"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Response rate limiting configuration"
    },
    "also_notify": {
      "anyOf": [
        {
          "$ref": "#/$defs/AlsoNotifyBlock"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Additional servers to notify"
    },
    "sig_signing_nodes": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum nodes to examine per quantum when signing",
      "title": "Sig Signing Nodes"
    },
    "sig_signing_signatures": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Signature threshold per quantum when signing",
      "title": "Sig Signing Signatures"
    },
    "sig_signing_type": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Private RDATA type for signing-state records",
      "title": "Sig Signing Type"
    },
    "preferred_glue": {
      "anyOf": [
        {
          "enum": [
            "A",
            "AAAA"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Preferred glue record type",
      "title": "Preferred Glue"
    },
    "min_transfer_rate_in": {
      "anyOf": [
        {
          "maxItems": 2,
          "minItems": 2,
          "prefixItems": [
            {
              "type": "integer"
            },
            {
              "type": "integer"
            }
          ],
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum inbound transfer rate",
      "title": "Min Transfer Rate In"
    },
    "min_refresh_time": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum refresh time for secondary zones",
      "title": "Min Refresh Time"
    },
    "max_refresh_time": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum refresh time for secondary zones",
      "title": "Max Refresh Time"
    },
    "min_retry_time": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum retry time for secondary zones",
      "title": "Min Retry Time"
    },
    "max_retry_time": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum retry time for secondary zones",
      "title": "Max Retry Time"
    },
    "rrset_order": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/RrsetOrderRule"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "RRset ordering rules",
      "title": "Rrset Order"
    },
    "lmdb_mapsize": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum size for LMDB memory map",
      "title": "Lmdb Mapsize"
    },
    "attach_cache": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Cache to attach to for shared caching",
      "title": "Attach Cache"
    },
    "match_mapped_addresses": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Match IPv4-mapped IPv6 addresses",
      "title": "Match Mapped Addresses"
    },
    "disable_algorithms": {
      "anyOf": [
        {
          "items": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "type": "array"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Disable DNSSEC algorithms for specific zones",
      "title": "Disable Algorithms"
    },
    "disable_ds_digests": {
      "anyOf": [
        {
          "items": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "type": "array"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Disable DS digest types for specific zones",
      "title": "Disable Ds Digests"
    },
    "dns64_server": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Server name for DNS64 zones",
      "title": "Dns64 Server"
    },
    "dns64_contact": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Contact for DNS64 zones",
      "title": "Dns64 Contact"
    },
    "dns64_blocks": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/Dns64Block"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "DNS64 configuration blocks",
      "title": "Dns64 Blocks"
    },
    "ipv4only_enable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable automatic IPv4-only zones",
      "title": "Ipv4Only Enable"
    },
    "ipv4only_server": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Server name for IPV4ONLY.ARPA zone",
      "title": "Ipv4Only Server"
    },
    "ipv4only_contact": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Contact for IPV4ONLY.ARPA zone",
      "title": "Ipv4Only Contact"
    },
    "resolver_query_timeout": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Resolver query timeout in milliseconds",
      "title": "Resolver Query Timeout"
    },
    "resolver_use_dns64": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Apply DNS64 to recursive queries",
      "title": "Resolver Use Dns64"
    },
    "check_names": {
      "anyOf": [
        {
          "items": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "type": "string"
              },
              {
                "enum": [
                  "fail",
                  "warn",
                  "ignore"
                ],
                "type": "string"
              }
            ],
            "type": "array"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Domain name checking rules",
      "title": "Check Names"
    },
    "qname_minimization": {
      "anyOf": [
        {
          "enum": [
            "strict",
            "relaxed",
            "disabled",
            "off"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "QNAME minimization behavior",
      "title": "Qname Minimization"
    },
    "max_ixfr_ratio": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "const": "unlimited",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum IXFR size as percentage of zone",
      "title": "Max Ixfr Ratio"
    },
    "ixfr_from_differences": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Generate IXFR from differences",
      "title": "Ixfr From Differences"
    },
    "provide_ixfr": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Provide IXFR to secondaries",
      "title": "Provide Ixfr"
    },
    "request_ixfr": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Request IXFR from primaries",
      "title": "Request Ixfr"
    },
    "request_expire": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Request EDNS EXPIRE value",
      "title": "Request Expire"
    },
    "dnssec_policy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "DNSSEC key and signing policy",
      "title": "Dnssec Policy"
    },
    "trust_anchor_telemetry": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Send trust anchor telemetry queries",
      "title": "Trust Anchor Telemetry"
    },
    "validate_except": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Domains to exclude from DNSSEC validation",
      "title": "Validate Except"
    },
    "key_directory": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "DNSSEC key directory",
      "title": "Key Directory"
    },
    "managed_keys_directory": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Managed keys directory",
      "title": "Managed Keys Directory"
    },
    "new_zones_directory": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "New zones configuration directory",
      "title": "New Zones Directory"
    },
    "nxdomain_redirect": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Suffix for NXDOMAIN redirection",
      "title": "Nxdomain Redirect"
    },
    "deny_answer_addresses": {
      "anyOf": [
        {
          "maxItems": 2,
          "minItems": 2,
          "prefixItems": [
            {
              "items": {},
              "type": "array"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          ],
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Filter answers containing specific addresses",
      "title": "Deny Answer Addresses"
    },
    "deny_answer_aliases": {
      "anyOf": [
        {
          "maxItems": 2,
          "minItems": 2,
          "prefixItems": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          ],
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Filter answers containing specific aliases",
      "title": "Deny Answer Aliases"
    },
    "empty_server": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Server name for empty zones",
      "title": "Empty Server"
    },
    "empty_contact": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Contact for empty zones",
      "title": "Empty Contact"
    },
    "empty_zones_enable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable built-in empty zones",
      "title": "Empty Zones Enable"
    },
    "disable_empty_zone": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Disable specific empty zones",
      "title": "Disable Empty Zone"
    },
    "version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "const": "none",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Server version string",
      "title": "Version"
    },
    "hostname": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "const": "none",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Server hostname string",
      "title": "Hostname"
    },
    "server_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "enum": [
            "none",
            "hostname"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Server identifier",
      "title": "Server Id"
    },
    "max_query_count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum iterative queries per recursive query",
      "title": "Max Query Count"
    },
    "max_recursion_depth": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum recursion depth",
      "title": "Max Recursion Depth"
    },
    "max_recursion_queries": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum iterative queries per recursive query",
      "title": "Max Recursion Queries"
    },
    "max_query_restarts": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum CNAME chain length",
      "title": "Max Query Restarts"
    },
    "notify_defer": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Delay before sending NOTIFY messages",
      "title": "Notify Defer"
    },
    "notify_delay": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Delay between NOTIFY message sets",
      "title": "Notify Delay"
    },
    "max_rsa_exponent_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum RSA exponent size in bits",
      "title": "Max Rsa Exponent Size"
    },
    "prefetch": {
      "anyOf": [
        {
          "maxItems": 2,
          "minItems": 2,
          "prefixItems": [
            {
              "type": "integer"
            },
            {
              "type": "integer"
            }
          ],
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Prefetch trigger and eligibility TTLs",
      "title": "Prefetch"
    },
    "v6_bias": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv6 server preference bias in milliseconds",
      "title": "V6 Bias"
    },
    "masterfile_format": {
      "anyOf": [
        {
          "enum": [
            "raw",
            "text"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Zone file format",
      "title": "Masterfile Format"
    },
    "masterfile_style": {
      "anyOf": [
        {
          "enum": [
            "full",
            "relative"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Zone file dump style",
      "title": "Masterfile Style"
    },
    "edns_udp_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum advertised EDNS UDP buffer size",
      "title": "Edns Udp Size"
    },
    "max_udp_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum EDNS UDP message size to send",
      "title": "Max Udp Size"
    },
    "response_padding": {
      "anyOf": [
        {
          "maxItems": 2,
          "minItems": 2,
          "prefixItems": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "integer"
            }
          ],
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "EDNS Padding configuration",
      "title": "Response Padding"
    },
    "zone_statistics": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "enum": [
            "full",
            "terse",
            "none"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Level of zone statistics gathering",
      "title": "Zone Statistics"
    },
    "lame_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TTL for lame server caching",
      "title": "Lame Ttl"
    },
    "servfail_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TTL for SERVFAIL caching",
      "title": "Servfail Ttl"
    },
    "min_ncache_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum negative cache TTL",
      "title": "Min Ncache Ttl"
    },
    "min_cache_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum positive cache TTL",
      "title": "Min Cache Ttl"
    },
    "max_ncache_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum negative cache TTL",
      "title": "Max Ncache Ttl"
    },
    "max_cache_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum positive cache TTL",
      "title": "Max Cache Ttl"
    },
    "max_stale_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum stale record TTL",
      "title": "Max Stale Ttl"
    },
    "dnssec_loadkeys_interval": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "DNSSEC key repository check interval in minutes",
      "title": "Dnssec Loadkeys Interval"
    },
    "nta_lifetime": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Negative trust anchor lifetime",
      "title": "Nta Lifetime"
    },
    "nta_recheck": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Negative trust anchor recheck interval",
      "title": "Nta Recheck"
    },
    "stale_answer_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TTL for stale answers",
      "title": "Stale Answer Ttl"
    },
    "stale_answer_client_timeout": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "enum": [
            "disabled",
            "off"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Timeout before returning stale answers",
      "title": "Stale Answer Client Timeout"
    },
    "stale_refresh_time": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Time window for returning stale answers",
      "title": "Stale Refresh Time"
    },
    "nocookie_udp_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum UDP response size without valid cookie",
      "title": "Nocookie Udp Size"
    },
    "cookie_algorithm": {
      "anyOf": [
        {
          "const": "siphash24",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Cookie generation algorithm",
      "title": "Cookie Algorithm"
    },
    "cookie_secret": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Shared secrets for EDNS COOKIE generation",
      "title": "Cookie Secret"
    },
    "serial_update_method": {
      "anyOf": [
        {
          "enum": [
            "date",
            "increment",
            "unixtime"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Dynamic DNS serial number update method",
      "title": "Serial Update Method"
    },
    "max_journal_size": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "enum": [
            "default",
            "unlimited"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum journal file size",
      "title": "Max Journal Size"
    },
    "max_records": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum records per zone",
      "title": "Max Records"
    },
    "max_records_per_type": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum records per RRset",
      "title": "Max Records Per Type"
    },
    "max_types_per_name": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum RR types per owner name",
      "title": "Max Types Per Name"
    },
    "recursive_clients": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum concurrent recursive clients",
      "title": "Recursive Clients"
    },
    "tcp_clients": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum simultaneous TCP connections",
      "title": "Tcp Clients"
    },
    "clients_per_query": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Initial simultaneous clients per query",
      "title": "Clients Per Query"
    },
    "max_clients_per_query": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum simultaneous clients per query",
      "title": "Max Clients Per Query"
    },
    "fetches_per_zone": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum fetches per zone",
      "title": "Fetches Per Zone"
    },
    "fetches_per_server": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum fetches per server",
      "title": "Fetches Per Server"
    },
    "fetch_quota_params": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Parameters for dynamic fetch quota adjustment",
      "title": "Fetch Quota Params"
    },
    "max_cache_size": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "enum": [
            "default",
            "unlimited"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum cache size",
      "title": "Max Cache Size"
    },
    "update_quota": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum concurrent UPDATE messages",
      "title": "Update Quota"
    },
    "sig0key_checks_limit": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum SIG(0) keys to consider",
      "title": "Sig0Key Checks Limit"
    },
    "sig0message_checks_limit": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum SIG(0) keys to try",
      "title": "Sig0Message Checks Limit"
    },
    "forward": {
      "anyOf": [
        {
          "enum": [
            "first",
            "only"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Forwarding behavior",
      "title": "Forward"
    },
    "forwarders": {
      "anyOf": [
        {
          "$ref": "#/$defs/ForwardersBlock"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Forwarding servers"
    },
    "dual_stack_servers": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ServerSpecifier"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Dual-stack servers for last resort",
      "title": "Dual Stack Servers"
    },
    "check_dup_records": {
      "anyOf": [
        {
          "enum": [
            "fail",
            "warn",
            "ignore"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Check for duplicate records in primary zones",
      "title": "Check Dup Records"
    },
    "check_integrity": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Perform zone integrity checks",
      "title": "Check Integrity"
    },
    "check_mx": {
      "anyOf": [
        {
          "enum": [
            "fail",
            "warn",
            "ignore"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Check MX records",
      "title": "Check Mx"
    },
    "check_mx_cname": {
      "anyOf": [
        {
          "enum": [
            "fail",
            "warn",
            "ignore"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Check MX records referring to CNAMEs",
      "title": "Check Mx Cname"
    },
    "check_sibling": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Check for sibling glue",
      "title": "Check Sibling"
    },
    "check_spf": {
      "anyOf": [
        {
          "enum": [
            "warn",
            "ignore"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Check for TXT SPF records",
      "title": "Check Spf"
    },
    "check_srv_cname": {
      "anyOf": [
        {
          "enum": [
            "fail",
            "warn",
            "ignore"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Check SRV records referring to CNAMEs",
      "title": "Check Srv Cname"
    },
    "check_svcb": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Check SVCB records",
      "title": "Check Svcb"
    },
    "check_wildcard": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Check for non-terminal wildcards",
      "title": "Check Wildcard"
    },
    "multi_master": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Multiple primary servers for a zone",
      "title": "Multi Master"
    },
    "notify": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "enum": [
            "explicit",
            "master-only",
            "primary-only"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Send NOTIFY messages on zone changes",
      "title": "Notify"
    },
    "notify_to_soa": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Send NOTIFY to SOA MNAME",
      "title": "Notify To Soa"
    },
    "try_tcp_refresh": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Try TCP if UDP refresh fails",
      "title": "Try Tcp Refresh"
    },
    "zero_no_soa_ttl": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Set TTL to 0 for negative SOA responses",
      "title": "Zero No Soa Ttl"
    },
    "allow_new_zones": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Allow runtime zone addition via rndc addzone",
      "title": "Allow New Zones"
    },
    "auth_nxdomain": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Always set AA bit on NXDOMAIN responses",
      "title": "Auth Nxdomain"
    },
    "flush_zones_on_shutdown": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Flush pending zone writes on shutdown",
      "title": "Flush Zones On Shutdown"
    },
    "root_key_sentinel": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Respond to root key sentinel probes",
      "title": "Root Key Sentinel"
    },
    "reuseport": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable kernel socket load-balancing",
      "title": "Reuseport"
    },
    "message_compression": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Use DNS name compression in responses",
      "title": "Message Compression"
    },
    "minimal_responses": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "enum": [
            "no-auth",
            "no-auth-recursive"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimize authority and additional sections",
      "title": "Minimal Responses"
    },
    "minimal_any": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Return only one RRset for ANY queries over UDP",
      "title": "Minimal Any"
    },
    "recursion": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Allow recursion",
      "title": "Recursion"
    },
    "request_nsid": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Send NSID option in queries",
      "title": "Request Nsid"
    },
    "require_server_cookie": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Require valid server cookie for UDP responses",
      "title": "Require Server Cookie"
    },
    "answer_cookie": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Send COOKIE EDNS option in replies",
      "title": "Answer Cookie"
    },
    "send_cookie": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Send COOKIE EDNS option in queries",
      "title": "Send Cookie"
    },
    "stale_answer_enable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Return stale cached answers when servers are down",
      "title": "Stale Answer Enable"
    },
    "stale_cache_enable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Retain stale cached answers",
      "title": "Stale Cache Enable"
    },
    "dnssec_validation": {
      "anyOf": [
        {
          "enum": [
            "yes",
            "no",
            "auto"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable DNSSEC validation",
      "title": "Dnssec Validation"
    },
    "dnssec_accept_expired": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Accept expired DNSSEC signatures",
      "title": "Dnssec Accept Expired"
    },
    "querylog": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable query logging at startup",
      "title": "Querylog"
    },
    "zero_no_soa_ttl_cache": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Set TTL to 0 when caching negative SOA responses",
      "title": "Zero No Soa Ttl Cache"
    },
    "synth_from_dnssec": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable aggressive use of DNSSEC-validated cache",
      "title": "Synth From Dnssec"
    },
    "allow_query": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Hosts allowed to send queries",
      "title": "Allow Query"
    },
    "allow_query_on": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Local addresses allowed to receive queries",
      "title": "Allow Query On"
    },
    "allow_transfer": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Hosts allowed to receive zone transfers",
      "title": "Allow Transfer"
    },
    "allow_update": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Hosts allowed to submit dynamic updates",
      "title": "Allow Update"
    },
    "allow_notify": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Hosts allowed to send NOTIFY messages",
      "title": "Allow Notify"
    },
    "allow_update_forwarding": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Hosts allowed to forward dynamic updates",
      "title": "Allow Update Forwarding"
    },
    "allow_query_cache": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Hosts allowed to access cache",
      "title": "Allow Query Cache"
    },
    "allow_query_cache_on": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Local addresses allowed to send cache responses",
      "title": "Allow Query Cache On"
    },
    "allow_recursion": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Hosts allowed to perform recursive queries",
      "title": "Allow Recursion"
    },
    "allow_recursion_on": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Local addresses allowed to receive recursive queries",
      "title": "Allow Recursion On"
    },
    "blackhole": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Hosts to ignore completely",
      "title": "Blackhole"
    },
    "no_case_compress": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Clients requiring case-insensitive compression",
      "title": "No Case Compress"
    },
    "directory": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Server's working directory",
      "title": "Directory"
    },
    "pid_file": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "const": "none",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "PID file path",
      "title": "Pid File"
    },
    "session_keyfile": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "const": "none",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Session key file path",
      "title": "Session Keyfile"
    },
    "session_keyname": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Session key name",
      "title": "Session Keyname"
    },
    "session_keyalg": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Session key algorithm",
      "title": "Session Keyalg"
    },
    "port": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "UDP/TCP port for DNS traffic",
      "title": "Port"
    },
    "tls_port": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TCP port for DNS-over-TLS",
      "title": "Tls Port"
    },
    "https_port": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TCP port for DNS-over-HTTPS",
      "title": "Https Port"
    },
    "http_port": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TCP port for unencrypted DNS-over-HTTP",
      "title": "Http Port"
    },
    "http_listener_clients": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum concurrent HTTP connections per listener",
      "title": "Http Listener Clients"
    },
    "http_streams_per_connection": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum HTTP/2 streams per connection",
      "title": "Http Streams Per Connection"
    },
    "listen_on": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "format": "ipv4",
                "type": "string"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv4 addresses to listen on",
      "title": "Listen On"
    },
    "listen_on_v6": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "format": "ipv6",
                "type": "string"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv6 addresses to listen on",
      "title": "Listen On V6"
    },
    "query_source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "enum": [
            "*",
            "none"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source IPv4 address for queries",
      "title": "Query Source"
    },
    "query_source_v6": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "enum": [
            "*",
            "none"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source IPv6 address for queries",
      "title": "Query Source V6"
    },
    "transfer_source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source IPv4 address for zone transfers",
      "title": "Transfer Source"
    },
    "transfer_source_v6": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source IPv6 address for zone transfers",
      "title": "Transfer Source V6"
    },
    "notify_source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source IPv4 address for NOTIFY messages",
      "title": "Notify Source"
    },
    "notify_source_v6": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source IPv6 address for NOTIFY messages",
      "title": "Notify Source V6"
    },
    "parental_source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source IPv4 address for parental agent queries",
      "title": "Parental Source"
    },
    "parental_source_v6": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source IPv6 address for parental agent queries",
      "title": "Parental Source V6"
    },
    "max_transfer_time_in": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum inbound transfer time in minutes",
      "title": "Max Transfer Time In"
    },
    "max_transfer_idle_in": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum idle time for inbound transfers in minutes",
      "title": "Max Transfer Idle In"
    },
    "max_transfer_time_out": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum outbound transfer time in minutes",
      "title": "Max Transfer Time Out"
    },
    "max_transfer_idle_out": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum idle time for outbound transfers in minutes",
      "title": "Max Transfer Idle Out"
    },
    "max_transfers_in": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum concurrent inbound transfers",
      "title": "Max Transfers In"
    },
    "max_transfers_out": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum concurrent outbound transfers",
      "title": "Max Transfers Out"
    },
    "transfers_per_ns": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum inbound transfers per name server",
      "title": "Transfers Per Ns"
    },
    "notify_rate": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "NOTIFY messages per second during normal operation",
      "title": "Notify Rate"
    },
    "startup_notify_rate": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "NOTIFY messages per second at startup",
      "title": "Startup Notify Rate"
    },
    "serial_query_rate": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "SOA queries per second",
      "title": "Serial Query Rate"
    },
    "transfer_format": {
      "anyOf": [
        {
          "enum": [
            "many-answers",
            "one-answer"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Zone transfer format",
      "title": "Transfer Format"
    },
    "transfer_message_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum zone transfer message size",
      "title": "Transfer Message Size"
    },
    "automatic_interface_scan": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Automatically rescan network interfaces",
      "title": "Automatic Interface Scan"
    },
    "responselog": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable response logging at startup",
      "title": "Responselog"
    },
    "tcp_receive_buffer": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TCP receive buffer size",
      "title": "Tcp Receive Buffer"
    },
    "udp_receive_buffer": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "UDP receive buffer size",
      "title": "Udp Receive Buffer"
    },
    "tcp_send_buffer": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TCP send buffer size",
      "title": "Tcp Send Buffer"
    },
    "udp_send_buffer": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "UDP send buffer size",
      "title": "Udp Send Buffer"
    },
    "dnstap": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "DNSTAP message types to log",
      "title": "Dnstap"
    },
    "dnstap_identity": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "enum": [
            "none",
            "hostname"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "DNSTAP identity string",
      "title": "Dnstap Identity"
    },
    "dnstap_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "const": "none",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "DNSTAP version string",
      "title": "Dnstap Version"
    },
    "fstrm_set_buffer_hint": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "FSTRM buffer hint",
      "title": "Fstrm Set Buffer Hint"
    },
    "fstrm_set_flush_timeout": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "FSTRM flush timeout",
      "title": "Fstrm Set Flush Timeout"
    },
    "fstrm_set_input_queue_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "FSTRM input queue size",
      "title": "Fstrm Set Input Queue Size"
    },
    "fstrm_set_output_notify_threshold": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "FSTRM output notify threshold",
      "title": "Fstrm Set Output Notify Threshold"
    },
    "fstrm_set_output_queue_model": {
      "anyOf": [
        {
          "enum": [
            "mpsc",
            "spsc"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "FSTRM output queue model",
      "title": "Fstrm Set Output Queue Model"
    },
    "fstrm_set_output_queue_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "FSTRM output queue size",
      "title": "Fstrm Set Output Queue Size"
    },
    "fstrm_set_reopen_interval": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "FSTRM reopen interval",
      "title": "Fstrm Set Reopen Interval"
    },
    "dump_file": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Database dump file path",
      "title": "Dump File"
    },
    "memstatistics_file": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Memory statistics file path",
      "title": "Memstatistics File"
    },
    "recursing_file": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Recursing queries dump file path",
      "title": "Recursing File"
    },
    "statistics_file": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Statistics file path",
      "title": "Statistics File"
    },
    "secroots_file": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Security roots dump file path",
      "title": "Secroots File"
    },
    "geoip_directory": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "const": "none",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "GeoIP database directory",
      "title": "Geoip Directory"
    },
    "interface_interval": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Network interface scan interval",
      "title": "Interface Interval"
    },
    "tcp_listen_queue": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TCP listen queue depth",
      "title": "Tcp Listen Queue"
    },
    "tcp_initial_timeout": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Initial TCP timeout in deciseconds",
      "title": "Tcp Initial Timeout"
    },
    "tcp_idle_timeout": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TCP idle timeout in deciseconds",
      "title": "Tcp Idle Timeout"
    },
    "tcp_keepalive_timeout": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TCP keepalive timeout in deciseconds",
      "title": "Tcp Keepalive Timeout"
    },
    "tcp_advertised_timeout": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Advertised TCP timeout in deciseconds",
      "title": "Tcp Advertised Timeout"
    }
  },
  "title": "OptionsBlock",
  "type": "object"
}

Fields:

Validators:

directory pydantic-field

directory: quoted_string_BIND | None = None

Server's working directory

pid_file pydantic-field

pid_file: quoted_string_BIND | Literal["none"] | None = None

PID file path

session_keyfile pydantic-field

session_keyfile: (
    quoted_string_BIND | Literal["none"] | None
) = None

Session key file path

session_keyname pydantic-field

session_keyname: string_BIND | None = None

Session key name

session_keyalg pydantic-field

session_keyalg: string_BIND | None = None

Session key algorithm

port pydantic-field

port: port_BIND | None = None

UDP/TCP port for DNS traffic

tls_port pydantic-field

tls_port: integer_BIND | None = None

TCP port for DNS-over-TLS

https_port pydantic-field

https_port: integer_BIND | None = None

TCP port for DNS-over-HTTPS

http_port pydantic-field

http_port: integer_BIND | None = None

TCP port for unencrypted DNS-over-HTTP

http_listener_clients pydantic-field

http_listener_clients: integer_BIND | None = None

Maximum concurrent HTTP connections per listener

http_streams_per_connection pydantic-field

http_streams_per_connection: integer_BIND | None = None

Maximum HTTP/2 streams per connection

listen_on pydantic-field

listen_on: list[str | ip_v4_address_BIND] | None = None

IPv4 addresses to listen on

listen_on_v6 pydantic-field

listen_on_v6: list[str | ip_v6_address_BIND] | None = None

IPv6 addresses to listen on

query_source pydantic-field

query_source: (
    ip_v4_address_BIND | Literal["*", "none"] | None
) = None

Source IPv4 address for queries

query_source_v6 pydantic-field

query_source_v6: (
    ip_v6_address_BIND | Literal["*", "none"] | None
) = None

Source IPv6 address for queries

transfer_source pydantic-field

transfer_source: (
    ip_v4_address_BIND | Literal["*"] | None
) = None

Source IPv4 address for zone transfers

transfer_source_v6 pydantic-field

transfer_source_v6: (
    ip_v6_address_BIND | Literal["*"] | None
) = None

Source IPv6 address for zone transfers

notify_source pydantic-field

notify_source: ip_v4_address_BIND | Literal["*"] | None = (
    None
)

Source IPv4 address for NOTIFY messages

notify_source_v6 pydantic-field

notify_source_v6: (
    ip_v6_address_BIND | Literal["*"] | None
) = None

Source IPv6 address for NOTIFY messages

parental_source pydantic-field

parental_source: (
    ip_v4_address_BIND | Literal["*"] | None
) = None

Source IPv4 address for parental agent queries

parental_source_v6 pydantic-field

parental_source_v6: (
    ip_v6_address_BIND | Literal["*"] | None
) = None

Source IPv6 address for parental agent queries

max_transfer_time_in pydantic-field

max_transfer_time_in: integer_BIND | None = None

Maximum inbound transfer time in minutes

max_transfer_idle_in pydantic-field

max_transfer_idle_in: integer_BIND | None = None

Maximum idle time for inbound transfers in minutes

max_transfer_time_out pydantic-field

max_transfer_time_out: integer_BIND | None = None

Maximum outbound transfer time in minutes

max_transfer_idle_out pydantic-field

max_transfer_idle_out: integer_BIND | None = None

Maximum idle time for outbound transfers in minutes

max_transfers_in pydantic-field

max_transfers_in: integer_BIND | None = None

Maximum concurrent inbound transfers

max_transfers_out pydantic-field

max_transfers_out: integer_BIND | None = None

Maximum concurrent outbound transfers

transfers_per_ns pydantic-field

transfers_per_ns: integer_BIND | None = None

Maximum inbound transfers per name server

notify_rate pydantic-field

notify_rate: integer_BIND | None = None

NOTIFY messages per second during normal operation

startup_notify_rate pydantic-field

startup_notify_rate: integer_BIND | None = None

NOTIFY messages per second at startup

serial_query_rate pydantic-field

serial_query_rate: integer_BIND | None = None

SOA queries per second

transfer_format pydantic-field

transfer_format: (
    Literal["many-answers", "one-answer"] | None
) = None

Zone transfer format

transfer_message_size pydantic-field

transfer_message_size: integer_BIND | None = None

Maximum zone transfer message size

automatic_interface_scan pydantic-field

automatic_interface_scan: boolean_BIND | None = None

Automatically rescan network interfaces

responselog pydantic-field

responselog: boolean_BIND | None = None

Enable response logging at startup

tcp_receive_buffer pydantic-field

tcp_receive_buffer: integer_BIND | None = None

TCP receive buffer size

udp_receive_buffer pydantic-field

udp_receive_buffer: integer_BIND | None = None

UDP receive buffer size

tcp_send_buffer pydantic-field

tcp_send_buffer: integer_BIND | None = None

TCP send buffer size

udp_send_buffer pydantic-field

udp_send_buffer: integer_BIND | None = None

UDP send buffer size

dnstap pydantic-field

dnstap: list[str] | None = None

DNSTAP message types to log

dnstap_identity pydantic-field

dnstap_identity: (
    quoted_string_BIND | Literal["none", "hostname"] | None
) = None

DNSTAP identity string

dnstap_version pydantic-field

dnstap_version: (
    quoted_string_BIND | Literal["none"] | None
) = None

DNSTAP version string

fstrm_set_buffer_hint pydantic-field

fstrm_set_buffer_hint: integer_BIND | None = None

FSTRM buffer hint

fstrm_set_flush_timeout pydantic-field

fstrm_set_flush_timeout: integer_BIND | None = None

FSTRM flush timeout

fstrm_set_input_queue_size pydantic-field

fstrm_set_input_queue_size: integer_BIND | None = None

FSTRM input queue size

fstrm_set_output_notify_threshold pydantic-field

fstrm_set_output_notify_threshold: integer_BIND | None = (
    None
)

FSTRM output notify threshold

fstrm_set_output_queue_model pydantic-field

fstrm_set_output_queue_model: (
    Literal["mpsc", "spsc"] | None
) = None

FSTRM output queue model

fstrm_set_output_queue_size pydantic-field

fstrm_set_output_queue_size: integer_BIND | None = None

FSTRM output queue size

fstrm_set_reopen_interval pydantic-field

fstrm_set_reopen_interval: duration_BIND | None = None

FSTRM reopen interval

dump_file pydantic-field

dump_file: quoted_string_BIND | None = None

Database dump file path

memstatistics_file pydantic-field

memstatistics_file: quoted_string_BIND | None = None

Memory statistics file path

recursing_file pydantic-field

recursing_file: quoted_string_BIND | None = None

Recursing queries dump file path

statistics_file pydantic-field

statistics_file: quoted_string_BIND | None = None

Statistics file path

secroots_file pydantic-field

secroots_file: quoted_string_BIND | None = None

Security roots dump file path

geoip_directory pydantic-field

geoip_directory: (
    quoted_string_BIND | Literal["none"] | None
) = None

GeoIP database directory

interface_interval pydantic-field

interface_interval: duration_BIND | None = None

Network interface scan interval

tcp_listen_queue pydantic-field

tcp_listen_queue: integer_BIND | None = None

TCP listen queue depth

tcp_initial_timeout pydantic-field

tcp_initial_timeout: integer_BIND | None = None

Initial TCP timeout in deciseconds

tcp_idle_timeout pydantic-field

tcp_idle_timeout: integer_BIND | None = None

TCP idle timeout in deciseconds

tcp_keepalive_timeout pydantic-field

tcp_keepalive_timeout: integer_BIND | None = None

TCP keepalive timeout in deciseconds

tcp_advertised_timeout pydantic-field

tcp_advertised_timeout: integer_BIND | None = None

Advertised TCP timeout in deciseconds

validate_recursion_settings pydantic-validator

validate_recursion_settings() -> OptionsBlock

Reject allow-recursion/allow-query-cache when recursion is off.

Compares against the string "no" rather than the Python bool False: boolean_BIND normalizes self.recursion to "yes"/"no" during field validation, so it is never a Python bool by the time this runs.

ServerSpecifier pydantic-model

Bases: BindBaseModel

Specificator for server type fields.

Grammar:

( <ip_address> [ port <integer> ] ) [ key <server_key> ] [ tls <tls_id> ]

Show JSON schema:
{
  "description": "Specificator for server type fields.\n\nGrammar:\n```\n( <ip_address> [ port <integer> ] ) [ key <server_key> ] [ tls <tls_id> ]\n```",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "address": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        }
      ],
      "description": "Server IP-address",
      "title": "Address"
    },
    "port": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Server port",
      "title": "Port"
    },
    "key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Auth key",
      "title": "Key"
    },
    "tls": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TLS configuration",
      "title": "Tls"
    }
  },
  "required": [
    "address"
  ],
  "title": "ServerSpecifier",
  "type": "object"
}

Fields:

address pydantic-field

address: ip_address_BIND

Server IP-address

port pydantic-field

port: port_BIND | None = None

Server port

key pydantic-field

key: server_key_BIND | None = None

Auth key

tls pydantic-field

tls: tls_id_BIND | None = None

TLS configuration

AlsoNotifyBlock pydantic-model

Bases: BindBaseModel

Options block also-notify with structure.

Show JSON schema:
{
  "$defs": {
    "ServerSpecifier": {
      "description": "Specificator for server type fields.\n\nGrammar:\n```\n( <ip_address> [ port <integer> ] ) [ key <server_key> ] [ tls <tls_id> ]\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "format": "ipv6",
              "type": "string"
            }
          ],
          "description": "Server IP-address",
          "title": "Address"
        },
        "port": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Server port",
          "title": "Port"
        },
        "key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Auth key",
          "title": "Key"
        },
        "tls": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "TLS configuration",
          "title": "Tls"
        }
      },
      "required": [
        "address"
      ],
      "title": "ServerSpecifier",
      "type": "object"
    }
  },
  "description": "Options block also-notify with structure.",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "global_port": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Global port for all servers",
      "title": "Global Port"
    },
    "source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv4 source for notifications",
      "title": "Source"
    },
    "source_v6": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv6 source for notifications",
      "title": "Source V6"
    },
    "servers": {
      "description": "Server list for notifications",
      "items": {
        "$ref": "#/$defs/ServerSpecifier"
      },
      "title": "Servers",
      "type": "array"
    }
  },
  "title": "AlsoNotifyBlock",
  "type": "object"
}

Fields:

global_port pydantic-field

global_port: integer_BIND | None = None

Global port for all servers

source pydantic-field

source: ip_v4_address_BIND | Literal['*'] | None = None

IPv4 source for notifications

source_v6 pydantic-field

source_v6: ip_v6_address_BIND | Literal['*'] | None = None

IPv6 source for notifications

servers pydantic-field

servers: list[ServerSpecifier]

Server list for notifications

ForwardersBlock pydantic-model

Bases: BindBaseModel

Options block forwarders with structure.

Show JSON schema:
{
  "$defs": {
    "ServerSpecifier": {
      "description": "Specificator for server type fields.\n\nGrammar:\n```\n( <ip_address> [ port <integer> ] ) [ key <server_key> ] [ tls <tls_id> ]\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "format": "ipv6",
              "type": "string"
            }
          ],
          "description": "Server IP-address",
          "title": "Address"
        },
        "port": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Server port",
          "title": "Port"
        },
        "key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Auth key",
          "title": "Key"
        },
        "tls": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "TLS configuration",
          "title": "Tls"
        }
      },
      "required": [
        "address"
      ],
      "title": "ServerSpecifier",
      "type": "object"
    }
  },
  "description": "Options block forwarders with structure.",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "global_port": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Global port for all servers",
      "title": "Global Port"
    },
    "source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv4 source for notifications",
      "title": "Source"
    },
    "source_v6": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv6 source for notifications",
      "title": "Source V6"
    },
    "servers": {
      "description": "List of forwarding servers",
      "items": {
        "$ref": "#/$defs/ServerSpecifier"
      },
      "title": "Servers",
      "type": "array"
    }
  },
  "title": "ForwardersBlock",
  "type": "object"
}

Fields:

global_port pydantic-field

global_port: integer_BIND | None = None

Global port for all servers

source pydantic-field

source: ip_v4_address_BIND | Literal['*'] | None = None

IPv4 source for notifications

source_v6 pydantic-field

source_v6: ip_v6_address_BIND | Literal['*'] | None = None

IPv6 source for notifications

servers pydantic-field

servers: list[ServerSpecifier]

List of forwarding servers

Dns64Block pydantic-model

Bases: BindBaseModel

DNS64 configuration block.

Show JSON schema:
{
  "description": "DNS64 configuration block.",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "prefix": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4network",
          "type": "string"
        },
        {
          "format": "ipv6network",
          "type": "string"
        }
      ],
      "description": "DNS64 prefix",
      "title": "Prefix"
    },
    "break_dnssec": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable DNS64 synthesis even if DNSSEC validation fails",
      "title": "Break Dnssec"
    },
    "clients": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Clients affected by this DNS64 prefix",
      "title": "Clients"
    },
    "exclude": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv6 addresses to exclude from DNS64",
      "title": "Exclude"
    },
    "mapped": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv4 addresses to map in DNS64",
      "title": "Mapped"
    },
    "recursive_only": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Apply DNS64 only to recursive queries",
      "title": "Recursive Only"
    },
    "suffix": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Suffix for mapped IPv4 addresses",
      "title": "Suffix"
    }
  },
  "required": [
    "prefix"
  ],
  "title": "Dns64Block",
  "type": "object"
}

Fields:

prefix pydantic-field

prefix: net_prefix_BIND

DNS64 prefix

break_dnssec pydantic-field

break_dnssec: boolean_BIND | None = None

Enable DNS64 synthesis even if DNSSEC validation fails

clients pydantic-field

clients: address_match_list_BIND | None = None

Clients affected by this DNS64 prefix

exclude pydantic-field

exclude: address_match_list_BIND | None = None

IPv6 addresses to exclude from DNS64

mapped pydantic-field

mapped: address_match_list_BIND | None = None

IPv4 addresses to map in DNS64

recursive_only pydantic-field

recursive_only: boolean_BIND | None = None

Apply DNS64 only to recursive queries

suffix pydantic-field

suffix: ip_v6_address_BIND | None = None

Suffix for mapped IPv4 addresses

RateLimitBlock pydantic-model

Bases: BindBaseModel

Response rate limiting configuration block.

Show JSON schema:
{
  "description": "Response rate limiting configuration block.",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "responses_per_second": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Limit for non-empty responses per second",
      "title": "Responses Per Second"
    },
    "errors_per_second": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Limit for error responses per second",
      "title": "Errors Per Second"
    },
    "nxdomains_per_second": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Limit for NXDOMAIN responses per second",
      "title": "Nxdomains Per Second"
    },
    "nodata_per_second": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Limit for NODATA responses per second",
      "title": "Nodata Per Second"
    },
    "referrals_per_second": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Limit for referral responses per second",
      "title": "Referrals Per Second"
    },
    "all_per_second": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Limit for all UDP responses per second",
      "title": "All Per Second"
    },
    "slip": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Rate at which to send truncated responses",
      "title": "Slip"
    },
    "window": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Time window for rate limiting in seconds",
      "title": "Window"
    },
    "qps_scale": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Query rate at which to scale back limits",
      "title": "Qps Scale"
    },
    "ipv4_prefix_length": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv4 prefix length for client grouping",
      "title": "Ipv4 Prefix Length"
    },
    "ipv6_prefix_length": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv6 prefix length for client grouping",
      "title": "Ipv6 Prefix Length"
    },
    "exempt_clients": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Clients exempt from rate limiting",
      "title": "Exempt Clients"
    },
    "max_table_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum size of rate limit table",
      "title": "Max Table Size"
    },
    "min_table_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum size of rate limit table",
      "title": "Min Table Size"
    },
    "log_only": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Log rate limiting without actually dropping",
      "title": "Log Only"
    }
  },
  "title": "RateLimitBlock",
  "type": "object"
}

Fields:

Validators:

responses_per_second pydantic-field

responses_per_second: integer_BIND | None = None

Limit for non-empty responses per second

errors_per_second pydantic-field

errors_per_second: integer_BIND | None = None

Limit for error responses per second

nxdomains_per_second pydantic-field

nxdomains_per_second: integer_BIND | None = None

Limit for NXDOMAIN responses per second

nodata_per_second pydantic-field

nodata_per_second: integer_BIND | None = None

Limit for NODATA responses per second

referrals_per_second pydantic-field

referrals_per_second: integer_BIND | None = None

Limit for referral responses per second

all_per_second pydantic-field

all_per_second: integer_BIND | None = None

Limit for all UDP responses per second

slip pydantic-field

slip: integer_BIND | None = None

Rate at which to send truncated responses

window pydantic-field

window: integer_BIND | None = None

Time window for rate limiting in seconds

qps_scale pydantic-field

qps_scale: integer_BIND | None = None

Query rate at which to scale back limits

ipv4_prefix_length pydantic-field

ipv4_prefix_length: integer_BIND | None = None

IPv4 prefix length for client grouping

ipv6_prefix_length pydantic-field

ipv6_prefix_length: integer_BIND | None = None

IPv6 prefix length for client grouping

exempt_clients pydantic-field

exempt_clients: address_match_list_BIND | None = None

Clients exempt from rate limiting

max_table_size pydantic-field

max_table_size: integer_BIND | None = None

Maximum size of rate limit table

min_table_size pydantic-field

min_table_size: integer_BIND | None = None

Minimum size of rate limit table

log_only pydantic-field

log_only: boolean_BIND | None = None

Log rate limiting without actually dropping

ResponsePolicyZone pydantic-model

Bases: BindBaseModel

Response Policy Zone configuration.

Show JSON schema:
{
  "description": "Response Policy Zone configuration.",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "zone": {
      "description": "RPZ zone name",
      "title": "Zone",
      "type": "string"
    },
    "add_soa": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Add SOA record to responses",
      "title": "Add Soa"
    },
    "log": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable logging for this zone",
      "title": "Log"
    },
    "max_policy_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum TTL for policy responses",
      "title": "Max Policy Ttl"
    },
    "min_update_interval": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum interval between updates",
      "title": "Min Update Interval"
    },
    "policy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Policy action (cname, disabled, drop, given, etc.)",
      "title": "Policy"
    },
    "recursive_only": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Apply only to recursive queries",
      "title": "Recursive Only"
    },
    "nsip_enable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable NSIP triggers",
      "title": "Nsip Enable"
    },
    "nsdname_enable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable NSDNAME triggers",
      "title": "Nsdname Enable"
    },
    "ede": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Extended DNS Error code",
      "title": "Ede"
    }
  },
  "required": [
    "zone"
  ],
  "title": "ResponsePolicyZone",
  "type": "object"
}

Fields:

Validators:

zone pydantic-field

zone: domain_name_BIND

RPZ zone name

add_soa pydantic-field

add_soa: boolean_BIND | None = None

Add SOA record to responses

log pydantic-field

log: boolean_BIND | None = None

Enable logging for this zone

max_policy_ttl pydantic-field

max_policy_ttl: duration_BIND | None = None

Maximum TTL for policy responses

min_update_interval pydantic-field

min_update_interval: duration_BIND | None = None

Minimum interval between updates

policy pydantic-field

policy: str | None = None

Policy action (cname, disabled, drop, given, etc.)

recursive_only pydantic-field

recursive_only: boolean_BIND | None = None

Apply only to recursive queries

nsip_enable pydantic-field

nsip_enable: boolean_BIND | None = None

Enable NSIP triggers

nsdname_enable pydantic-field

nsdname_enable: boolean_BIND | None = None

Enable NSDNAME triggers

ede pydantic-field

ede: str | None = None

Extended DNS Error code

validate_policy pydantic-validator

validate_policy(v: str | None) -> str | None

Validate the RPZ policy value.

"cname" and "tcp-only" both require a following redirect domain (policy cname <domain>;) - unlike the other policy keywords, they are never valid as a bare word on their own.

model_bind_syntax

model_bind_syntax(indent_level: int = 0) -> str

Render as a single flat statement: zone <name> [policy ...] [log ...] ...;.

Unlike most nested blocks, this is not a zone <name> { ... }; block.

ResponsePolicyBlock pydantic-model

Bases: BindBaseModel

Response Policy configuration block.

Show JSON schema:
{
  "$defs": {
    "ResponsePolicyZone": {
      "description": "Response Policy Zone configuration.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "zone": {
          "description": "RPZ zone name",
          "title": "Zone",
          "type": "string"
        },
        "add_soa": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Add SOA record to responses",
          "title": "Add Soa"
        },
        "log": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable logging for this zone",
          "title": "Log"
        },
        "max_policy_ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum TTL for policy responses",
          "title": "Max Policy Ttl"
        },
        "min_update_interval": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum interval between updates",
          "title": "Min Update Interval"
        },
        "policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Policy action (cname, disabled, drop, given, etc.)",
          "title": "Policy"
        },
        "recursive_only": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Apply only to recursive queries",
          "title": "Recursive Only"
        },
        "nsip_enable": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable NSIP triggers",
          "title": "Nsip Enable"
        },
        "nsdname_enable": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable NSDNAME triggers",
          "title": "Nsdname Enable"
        },
        "ede": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Extended DNS Error code",
          "title": "Ede"
        }
      },
      "required": [
        "zone"
      ],
      "title": "ResponsePolicyZone",
      "type": "object"
    }
  },
  "description": "Response Policy configuration block.",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "zones": {
      "description": "Response policy zones",
      "items": {
        "$ref": "#/$defs/ResponsePolicyZone"
      },
      "title": "Zones",
      "type": "array"
    },
    "add_soa": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Add SOA record to responses (global)",
      "title": "Add Soa"
    },
    "break_dnssec": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Apply RPZ even when DNSSEC records exist",
      "title": "Break Dnssec"
    },
    "max_policy_ttl": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum TTL for policy responses (global)",
      "title": "Max Policy Ttl"
    },
    "min_update_interval": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum interval between updates (global)",
      "title": "Min Update Interval"
    },
    "min_ns_dots": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum dots in nameserver names",
      "title": "Min Ns Dots"
    },
    "nsip_wait_recurse": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Wait for recursion before applying NSIP rules",
      "title": "Nsip Wait Recurse"
    },
    "nsdname_wait_recurse": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Wait for recursion before applying NSDNAME rules",
      "title": "Nsdname Wait Recurse"
    },
    "qname_wait_recurse": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Wait for recursion before applying QNAME rules",
      "title": "Qname Wait Recurse"
    },
    "recursive_only": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Apply only to recursive queries (global)",
      "title": "Recursive Only"
    },
    "servfail_until_ready": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Return SERVFAIL until RPZ zones are loaded",
      "title": "Servfail Until Ready"
    },
    "nsip_enable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable NSIP triggers (global)",
      "title": "Nsip Enable"
    },
    "nsdname_enable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Enable NSDNAME triggers (global)",
      "title": "Nsdname Enable"
    }
  },
  "title": "ResponsePolicyBlock",
  "type": "object"
}

Fields:

zones pydantic-field

zones: list[ResponsePolicyZone]

Response policy zones

add_soa pydantic-field

add_soa: boolean_BIND | None = None

Add SOA record to responses (global)

break_dnssec pydantic-field

break_dnssec: boolean_BIND | None = None

Apply RPZ even when DNSSEC records exist

max_policy_ttl pydantic-field

max_policy_ttl: duration_BIND | None = None

Maximum TTL for policy responses (global)

min_update_interval pydantic-field

min_update_interval: duration_BIND | None = None

Minimum interval between updates (global)

min_ns_dots pydantic-field

min_ns_dots: integer_BIND | None = None

Minimum dots in nameserver names

nsip_wait_recurse pydantic-field

nsip_wait_recurse: boolean_BIND | None = None

Wait for recursion before applying NSIP rules

nsdname_wait_recurse pydantic-field

nsdname_wait_recurse: boolean_BIND | None = None

Wait for recursion before applying NSDNAME rules

qname_wait_recurse pydantic-field

qname_wait_recurse: boolean_BIND | None = None

Wait for recursion before applying QNAME rules

recursive_only pydantic-field

recursive_only: boolean_BIND | None = None

Apply only to recursive queries (global)

servfail_until_ready pydantic-field

servfail_until_ready: boolean_BIND | None = None

Return SERVFAIL until RPZ zones are loaded

nsip_enable pydantic-field

nsip_enable: boolean_BIND | None = None

Enable NSIP triggers (global)

nsdname_enable pydantic-field

nsdname_enable: boolean_BIND | None = None

Enable NSDNAME triggers (global)

CatalogZoneBlock pydantic-model

Bases: BindBaseModel

Catalog zone configuration.

Show JSON schema:
{
  "description": "Catalog zone configuration.",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "zone": {
      "description": "Catalog zone name",
      "title": "Zone",
      "type": "string"
    },
    "default_primaries": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Default primary servers for member zones",
      "title": "Default Primaries"
    },
    "zone_directory": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Directory for zone files",
      "title": "Zone Directory"
    },
    "in_memory": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Keep catalog in memory",
      "title": "In Memory"
    },
    "min_update_interval": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum interval between updates",
      "title": "Min Update Interval"
    }
  },
  "required": [
    "zone"
  ],
  "title": "CatalogZoneBlock",
  "type": "object"
}

Fields:

zone pydantic-field

zone: domain_name_BIND

Catalog zone name

default_primaries pydantic-field

default_primaries: address_match_list_BIND | None = None

Default primary servers for member zones

zone_directory pydantic-field

zone_directory: quoted_string_BIND | None = None

Directory for zone files

in_memory pydantic-field

in_memory: boolean_BIND | None = None

Keep catalog in memory

min_update_interval pydantic-field

min_update_interval: duration_BIND | None = None

Minimum interval between updates

model_bind_syntax

model_bind_syntax(indent_level: int = 0) -> str

Render as a single flat statement: zone <name> [default-primaries { ... }] [zone-directory <str>] [in-memory <bool>] [min-update-interval <duration>];.

Unlike most nested blocks, this is not a zone <name> { ... }; block.

RrsetOrderRule pydantic-model

Bases: BindBaseModel

RRset ordering rule.

Show JSON schema:
{
  "description": "RRset ordering rule.",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for this block",
      "title": "Comment"
    },
    "order_class": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Class to match",
      "title": "Order Class"
    },
    "order_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Type to match",
      "title": "Order Type"
    },
    "order_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Name to match",
      "title": "Order Name"
    },
    "order": {
      "description": "Ordering method (fixed, random, cyclic, none)",
      "title": "Order",
      "type": "string"
    }
  },
  "required": [
    "order"
  ],
  "title": "RrsetOrderRule",
  "type": "object"
}

Fields:

Validators:

  • validate_orderorder

order_class pydantic-field

order_class: string_BIND | None = None

Class to match

order_type pydantic-field

order_type: string_BIND | None = None

Type to match

order_name pydantic-field

order_name: quoted_string_BIND | None = None

Name to match

order pydantic-field

order: str

Ordering method (fixed, random, cyclic, none)