Skip to content

View

ViewBlock pydantic-model

Bases: ExtendedOptionsMixin

View block for BIND9 configuration.

Grammar: view [ ] { ... # view-specific options and zones };

Allows a name server to answer a DNS query differently depending on who is asking.

Show JSON schema:
{
  "$defs": {
    "AAAARecord": {
      "description": "AAAA record - maps a hostname to an IPv6 address.\n\nGrammar (Reference: RFC 3596 Section 2.2):\n```\n[<NAME>] [<TTL>] [<CLASS>] AAAA <ADDRESS>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "AAAA"
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv6",
              "type": "string"
            }
          ],
          "description": "IPv6 address",
          "title": "Address"
        }
      },
      "required": [
        "address"
      ],
      "title": "AAAARecord",
      "type": "object"
    },
    "ARecord": {
      "description": "A record - maps a hostname to an IPv4 address.\n\nGrammar (Reference: RFC 1035 Section 3.4.1):\n```\n[<NAME>] [<TTL>] [<CLASS>] A <ADDRESS>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "A"
        },
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            }
          ],
          "description": "IPv4 address",
          "title": "Address"
        }
      },
      "required": [
        "address"
      ],
      "title": "ARecord",
      "type": "object"
    },
    "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"
    },
    "CAARecord": {
      "description": "CAA record - Certification Authority Authorization.\n\nGrammar (Reference: RFC 6844):\n```\n[<NAME>] [<TTL>] [<CLASS>] CAA <FLAGS> <TAG> \"<VALUE>\"\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "CAA"
        },
        "flags": {
          "default": 0,
          "description": "Flags (0-255, usually 0 or 128 for critical)",
          "maximum": 255,
          "minimum": 0,
          "title": "Flags",
          "type": "integer"
        },
        "tag": {
          "$ref": "#/$defs/CAATagEnum",
          "description": "CAA property tag"
        },
        "value": {
          "description": "Property value",
          "title": "Value",
          "type": "string"
        }
      },
      "required": [
        "tag",
        "value"
      ],
      "title": "CAARecord",
      "type": "object"
    },
    "CAATagEnum": {
      "description": "CAA tag values.",
      "enum": [
        "issue",
        "issuewild",
        "iodef",
        "contact"
      ],
      "title": "CAATagEnum",
      "type": "string"
    },
    "CERTRecord": {
      "description": "CERT record - certificate storage.\n\nGrammar (Reference: RFC 4398):\n```\n[<NAME>] [<TTL>] [<CLASS>] CERT <CERT_TYPE> <KEY_TAG> <ALGORITHM> <CERTIFICATE>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "CERT"
        },
        "cert_type": {
          "description": "Certificate type",
          "title": "Cert Type",
          "type": "integer"
        },
        "key_tag": {
          "description": "Key tag",
          "title": "Key Tag",
          "type": "integer"
        },
        "algorithm": {
          "description": "Algorithm",
          "title": "Algorithm",
          "type": "integer"
        },
        "certificate": {
          "description": "Certificate data",
          "title": "Certificate",
          "type": "string"
        }
      },
      "required": [
        "cert_type",
        "key_tag",
        "algorithm",
        "certificate"
      ],
      "title": "CERTRecord",
      "type": "object"
    },
    "CNAMERecord": {
      "description": "CNAME record - alias for another domain name.\n\nGrammar (Reference: RFC 1035 Section 3.3.1):\n```\n[<NAME>] [<TTL>] [<CLASS>] CNAME <CANONICAL_NAME>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "CNAME"
        },
        "canonical_name": {
          "description": "Canonical domain name (the real name)",
          "title": "Canonical Name",
          "type": "string"
        }
      },
      "required": [
        "canonical_name"
      ],
      "title": "CNAMERecord",
      "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"
    },
    "DNAMERecord": {
      "description": "DNAME record - delegation name (creates a subtree delegation).\n\nGrammar (Reference: RFC 6672 Section 2):\n```\n[<NAME>] [<TTL>] [<CLASS>] DNAME <TARGET>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "DNAME"
        },
        "target": {
          "description": "Target domain name for delegation",
          "title": "Target",
          "type": "string"
        }
      },
      "required": [
        "target"
      ],
      "title": "DNAMERecord",
      "type": "object"
    },
    "DNSKEYRecord": {
      "description": "DNSKEY record - DNS public key (DNSSEC).\n\nGrammar (Reference: RFC 4034):\n```\n[<NAME>] [<TTL>] [<CLASS>] DNSKEY <FLAGS> <PROTOCOL> <ALGORITHM> <PUBLIC_KEY>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "DNSKEY"
        },
        "flags": {
          "description": "Flags (256=Zone Key, 257=Secure Entry Point)",
          "maximum": 65535,
          "minimum": 0,
          "title": "Flags",
          "type": "integer"
        },
        "protocol": {
          "default": 3,
          "description": "Protocol (always 3 for DNSSEC)",
          "title": "Protocol",
          "type": "integer"
        },
        "algorithm": {
          "$ref": "#/$defs/DNSSECAlgorithmEnum",
          "description": "DNSSEC algorithm used"
        },
        "public_key": {
          "description": "Base64 encoded public key",
          "title": "Public Key",
          "type": "string"
        }
      },
      "required": [
        "flags",
        "algorithm",
        "public_key"
      ],
      "title": "DNSKEYRecord",
      "type": "object"
    },
    "DNSSECAlgorithmEnum": {
      "description": "DNSSEC algorithms as defined in RFC 4034.",
      "enum": [
        1,
        2,
        3,
        5,
        6,
        7,
        8,
        10,
        12,
        13,
        14,
        15,
        16
      ],
      "title": "DNSSECAlgorithmEnum",
      "type": "integer"
    },
    "DSRecord": {
      "description": "DS record - delegation signer (DNSSEC).\n\nGrammar (Reference: RFC 4034):\n```\n[<NAME>] [<TTL>] [<CLASS>] DS <KEY_TAG> <ALGORITHM> <DIGEST_TYPE> <DIGEST>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "DS"
        },
        "key_tag": {
          "description": "Key tag value",
          "maximum": 65535,
          "minimum": 0,
          "title": "Key Tag",
          "type": "integer"
        },
        "algorithm": {
          "$ref": "#/$defs/DNSSECAlgorithmEnum",
          "description": "DNSSEC algorithm used"
        },
        "digest_type": {
          "description": "Digest type (1=SHA-1, 2=SHA-256)",
          "maximum": 255,
          "minimum": 0,
          "title": "Digest Type",
          "type": "integer"
        },
        "digest": {
          "description": "Hexadecimal digest value",
          "title": "Digest",
          "type": "string"
        }
      },
      "required": [
        "key_tag",
        "algorithm",
        "digest_type",
        "digest"
      ],
      "title": "DSRecord",
      "type": "object"
    },
    "DSTrustAnchor": {
      "description": "Trust anchor entry for DS format (static-ds or initial-ds).\n\nFormat: <domain> static-ds|initial-ds <key_tag> <algorithm> <digest_type> <digest>",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "domain": {
          "description": "Domain name for the trust anchor",
          "title": "Domain",
          "type": "string"
        },
        "anchor_type": {
          "description": "Type of DS trust anchor",
          "enum": [
            "static-ds",
            "initial-ds"
          ],
          "title": "Anchor Type",
          "type": "string"
        },
        "key_tag": {
          "description": "Key tag value",
          "maximum": 65535,
          "minimum": 0,
          "title": "Key Tag",
          "type": "integer"
        },
        "algorithm": {
          "description": "DNSSEC algorithm number",
          "title": "Algorithm",
          "type": "integer"
        },
        "digest_type": {
          "description": "Digest type (1=SHA1, 2=SHA256, 3=SHA384, 4=SHA512)",
          "title": "Digest Type",
          "type": "integer"
        },
        "digest": {
          "description": "Hexadecimal digest value",
          "title": "Digest",
          "type": "string"
        }
      },
      "required": [
        "domain",
        "anchor_type",
        "key_tag",
        "algorithm",
        "digest_type",
        "digest"
      ],
      "title": "DSTrustAnchor",
      "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"
    },
    "DnssecAlgorithmEnum": {
      "description": "DNSSEC algorithms as defined by BIND.",
      "enum": [
        "rsamd5",
        "dh",
        "dsa",
        "rsasha1",
        "dsa-nsec3-sha1",
        "rsasha1-nsec3-sha1",
        "rsasha256",
        "rsasha512",
        "ecc-gost",
        "ecdsap256sha256",
        "ecdsap384sha384",
        "ed25519",
        "ed448"
      ],
      "title": "DnssecAlgorithmEnum",
      "type": "string"
    },
    "DnssecDigestTypeEnum": {
      "description": "DNSSEC digest types for CDS records.",
      "enum": [
        "SHA-1",
        "SHA-256",
        "SHA-384",
        "SHA-512"
      ],
      "title": "DnssecDigestTypeEnum",
      "type": "string"
    },
    "DnssecKeyEntry": {
      "description": "Key entry in dnssec-policy keys block.\n\nGrammar:\n```\n( csk | ksk | zsk ) [ key-directory | key-store <string> ]\n         lifetime <duration_or_unlimited> algorithm <string>\n         [ tag-range <integer> <integer> ] [ <integer> ];\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "role": {
          "$ref": "#/$defs/KeyRoleEnum",
          "description": "Key role: csk, ksk, or zsk"
        },
        "storage_type": {
          "anyOf": [
            {
              "$ref": "#/$defs/KeyStorageEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Storage type: key-directory or key-store"
        },
        "key_store_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of key store (if storage_type is key-store)",
          "title": "Key Store Name"
        },
        "lifetime": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "const": "unlimited",
              "type": "string"
            }
          ],
          "description": "Key lifetime or 'unlimited'",
          "title": "Lifetime"
        },
        "algorithm": {
          "anyOf": [
            {
              "$ref": "#/$defs/DnssecAlgorithmEnum"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            }
          ],
          "description": "DNSSEC algorithm name or number",
          "title": "Algorithm"
        },
        "key_size": {
          "anyOf": [
            {
              "ge": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Key size in bits (optional, must be positive)",
          "title": "Key Size"
        },
        "tag_range": {
          "anyOf": [
            {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "integer"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Valid key tag range [min, max]",
          "title": "Tag Range"
        }
      },
      "required": [
        "role",
        "lifetime",
        "algorithm"
      ],
      "title": "DnssecKeyEntry",
      "type": "object"
    },
    "DnssecPolicyBlock": {
      "description": "DNSSEC key and signing policy (KASP) configuration block for BIND.\n\nBuilt-in policies: \"default\", \"insecure\", \"none\"\n\nGrammar:\n```\ndnssec-policy <string> {\n    cdnskey <boolean>;\n    cds-digest-types { <string>; ... };\n    dnskey-ttl <duration>;\n    inline-signing <boolean>;\n    keys { ... };\n    manual-mode <boolean>;\n    max-zone-ttl <duration>;\n    nsec3param [ ... ];\n    offline-ksk <boolean>;\n    parent-ds-ttl <duration>;\n    parent-propagation-delay <duration>;\n    publish-safety <duration>;\n    purge-keys <duration>;\n    retire-safety <duration>;\n    signatures-jitter <duration>;\n    signatures-refresh <duration>;\n    signatures-validity <duration>;\n    signatures-validity-dnskey <duration>;\n    zone-propagation-delay <duration>;\n};\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "description": "Name of the DNSSEC policy",
          "title": "Name",
          "type": "string"
        },
        "cdnskey": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Publish CDNSKEY records during KSK rollover",
          "title": "Cdnskey"
        },
        "inline_signing": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maintain separate signed version of zone",
          "title": "Inline Signing"
        },
        "manual_mode": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Run key management in manual mode",
          "title": "Manual Mode"
        },
        "offline_ksk": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Sign DNSKEY/CDS/CDNSKEY RRsets offline",
          "title": "Offline Ksk"
        },
        "dnskey_ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "TTL for DNSKEY records (default: 1h)",
          "title": "Dnskey Ttl"
        },
        "max_zone_ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum TTL for zone records (default: 24h)",
          "title": "Max Zone Ttl"
        },
        "parent_ds_ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "TTL of DS RRset in parent zone (default: 1d)",
          "title": "Parent Ds Ttl"
        },
        "parent_propagation_delay": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Parent zone propagation delay (default: 1h)",
          "title": "Parent Propagation Delay"
        },
        "publish_safety": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Safety margin before key activation (default: 1h)",
          "title": "Publish Safety"
        },
        "purge_keys": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to keep deleted keys (default: 90d)",
          "title": "Purge Keys"
        },
        "retire_safety": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Safety margin after key deactivation (default: 1h)",
          "title": "Retire Safety"
        },
        "signatures_jitter": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Jitter range for signature expiration (default: 12h)",
          "title": "Signatures Jitter"
        },
        "signatures_refresh": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Signature refresh interval (default: 5d)",
          "title": "Signatures Refresh"
        },
        "signatures_validity": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Signature validity period (default: 2w)",
          "title": "Signatures Validity"
        },
        "signatures_validity_dnskey": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNSKEY signature validity period (default: 2w)",
          "title": "Signatures Validity Dnskey"
        },
        "zone_propagation_delay": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Zone propagation delay (default: 5m)",
          "title": "Zone Propagation Delay"
        },
        "cds_digest_types": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/DnssecDigestTypeEnum"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Digest types for CDS records (default: SHA-256 only)",
          "title": "Cds Digest Types"
        },
        "keys": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/DnssecKeyEntry"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Key specifications",
          "title": "Keys"
        },
        "nsec3param": {
          "anyOf": [
            {
              "$ref": "#/$defs/Nsec3ParamBlock"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "NSEC3 parameters (use NSEC3 instead of NSEC)"
        }
      },
      "required": [
        "name"
      ],
      "title": "DnssecPolicyBlock",
      "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"
    },
    "HINFORecord": {
      "description": "HINFO record - host information.\n\nGrammar (Reference: RFC 1035 Section 3.3.11):\n```\n[<NAME>] [<TTL>] [<CLASS>] HINFO \"<CPU>\" \"<OS>\"\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "HINFO"
        },
        "cpu": {
          "description": "CPU type",
          "title": "Cpu",
          "type": "string"
        },
        "os": {
          "description": "Operating system",
          "title": "Os",
          "type": "string"
        }
      },
      "required": [
        "cpu",
        "os"
      ],
      "title": "HINFORecord",
      "type": "object"
    },
    "KeyBlock": {
      "description": "Key block for BIND configuration.\n\nDefines a shared secret key for use with TSIG or the command channel.\n\nGrammar:\n```\nkey <string> {\n    algorithm <string>;\n    secret <string>;\n};\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "description": "Key name (server_key)",
          "title": "Name",
          "type": "string"
        },
        "algorithm": {
          "description": "Authentication algorithm",
          "title": "Algorithm",
          "type": "string"
        },
        "secret": {
          "description": "Base64-encoded secret string",
          "title": "Secret",
          "type": "string"
        }
      },
      "required": [
        "name",
        "algorithm",
        "secret"
      ],
      "title": "KeyBlock",
      "type": "object"
    },
    "KeyRoleEnum": {
      "description": "Key roles in DNSSEC policy.",
      "enum": [
        "csk",
        "ksk",
        "zsk"
      ],
      "title": "KeyRoleEnum",
      "type": "string"
    },
    "KeyStorageEnum": {
      "description": "Key storage types.",
      "enum": [
        "key-directory",
        "key-store"
      ],
      "title": "KeyStorageEnum",
      "type": "string"
    },
    "KeyTrustAnchor": {
      "description": "Trust anchor entry for DNSKEY format (static-key or initial-key).\n\nFormat: <domain> static-key|initial-key <flags> <protocol> <algorithm> <key_data>",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "domain": {
          "description": "Domain name for the trust anchor",
          "title": "Domain",
          "type": "string"
        },
        "anchor_type": {
          "description": "Type of key trust anchor",
          "enum": [
            "static-key",
            "initial-key"
          ],
          "title": "Anchor Type",
          "type": "string"
        },
        "flags": {
          "description": "DNSKEY flags (256 for ZSK, 257 for KSK)",
          "title": "Flags",
          "type": "integer"
        },
        "protocol": {
          "description": "DNSKEY protocol (must be 3 for DNSSEC)",
          "title": "Protocol",
          "type": "integer"
        },
        "algorithm": {
          "description": "DNSSEC algorithm number",
          "title": "Algorithm",
          "type": "integer"
        },
        "key_data": {
          "description": "Base64 encoded public key data",
          "title": "Key Data",
          "type": "string"
        }
      },
      "required": [
        "domain",
        "anchor_type",
        "flags",
        "protocol",
        "algorithm",
        "key_data"
      ],
      "title": "KeyTrustAnchor",
      "type": "object"
    },
    "LOCRecord": {
      "description": "LOC record - geographical location.\n\nGrammar (Reference: RFC 1876):\n```\n[<NAME>] [<TTL>] [<CLASS>] LOC <LATITUDE> <LONGITUDE> <ALTITUDE>\n    <SIZE> <HPREC> <VPREC>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "LOC"
        },
        "latitude": {
          "description": "Latitude (e.g., 51 30 12.123 N)",
          "title": "Latitude",
          "type": "string"
        },
        "longitude": {
          "description": "Longitude (e.g., 0 7 39.456 W)",
          "title": "Longitude",
          "type": "string"
        },
        "altitude": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "Altitude in meters",
          "title": "Altitude"
        },
        "size": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ],
          "description": "Diameter of sphere in meters",
          "title": "Size"
        },
        "hprecision": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ],
          "description": "Horizontal precision in meters",
          "title": "Hprecision"
        },
        "vprecision": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ],
          "description": "Vertical precision in meters",
          "title": "Vprecision"
        }
      },
      "required": [
        "latitude",
        "longitude",
        "altitude",
        "size",
        "hprecision",
        "vprecision"
      ],
      "title": "LOCRecord",
      "type": "object"
    },
    "MXRecord": {
      "description": "MX record - mail exchange server with priority.\n\nGrammar (Reference: RFC 1035 Section 3.3.9):\n```\n[<NAME>] [<TTL>] [<CLASS>] MX <PREFERENCE> <EXCHANGE>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "MX"
        },
        "preference": {
          "description": "Priority (lower value = higher priority)",
          "maximum": 65535,
          "minimum": 0,
          "title": "Preference",
          "type": "integer"
        },
        "exchange": {
          "description": "Hostname of mail server",
          "title": "Exchange",
          "type": "string"
        }
      },
      "required": [
        "preference",
        "exchange"
      ],
      "title": "MXRecord",
      "type": "object"
    },
    "NAPTRRecord": {
      "description": "NAPTR record - naming authority pointer.\n\nGrammar (Reference: RFC 3403):\n```\n[<NAME>] [<TTL>] [<CLASS>] NAPTR <ORDER> <PREFERENCE> <FLAGS>\n    <SERVICES> \"<REGEXP>\" <REPLACEMENT>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "NAPTR"
        },
        "order": {
          "description": "Order (lower processed first)",
          "title": "Order",
          "type": "integer"
        },
        "preference": {
          "description": "Preference within same order",
          "title": "Preference",
          "type": "integer"
        },
        "flags": {
          "description": "Flags (S, A, U, P)",
          "title": "Flags",
          "type": "string"
        },
        "services": {
          "description": "Service parameters",
          "title": "Services",
          "type": "string"
        },
        "regexp": {
          "description": "Regular expression",
          "title": "Regexp",
          "type": "string"
        },
        "replacement": {
          "description": "Replacement dns name",
          "title": "Replacement",
          "type": "string"
        }
      },
      "required": [
        "order",
        "preference",
        "flags",
        "services",
        "regexp",
        "replacement"
      ],
      "title": "NAPTRRecord",
      "type": "object"
    },
    "NSECRecord": {
      "description": "NSEC record - next secure record (DNSSEC).\n\nGrammar (Reference: RFC 4034):\n```\n[<NAME>] [<TTL>] [<CLASS>] NSEC <NEXT_DOMAIN_NAME> <TYPE_BIT_MAPS>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "NSEC"
        },
        "next_domain_name": {
          "description": "Next domain name in zone",
          "title": "Next Domain Name",
          "type": "string"
        },
        "type_bit_maps": {
          "description": "Type bit maps",
          "items": {
            "type": "string"
          },
          "title": "Type Bit Maps",
          "type": "array"
        }
      },
      "required": [
        "next_domain_name",
        "type_bit_maps"
      ],
      "title": "NSECRecord",
      "type": "object"
    },
    "NSRecord": {
      "description": "NS record - authoritative name server for a domain.\n\nGrammar (Reference: RFC 1035 Section 3.3.11):\n```\n[<NAME>] [<TTL>] [<CLASS>] NS <NSDNAME>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "NS"
        },
        "nsdname": {
          "description": "Hostname of authoritative name server",
          "title": "Nsdname",
          "type": "string"
        }
      },
      "required": [
        "nsdname"
      ],
      "title": "NSRecord",
      "type": "object"
    },
    "Nsec3ParamBlock": {
      "description": "NSEC3 parameters configuration.\n\nGrammar:\n```\nnsec3param [ iterations <integer> ] [ optout <boolean> ] [ salt-length <integer> ];\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "iterations": {
          "anyOf": [
            {
              "ge": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of hash iterations (default: 0)",
          "title": "Iterations"
        },
        "optout": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Enable opt-out (default: no)",
          "title": "Optout"
        },
        "salt_length": {
          "anyOf": [
            {
              "ge": 0,
              "le": 255,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Salt length in bytes (default: 0)",
          "title": "Salt Length"
        }
      },
      "title": "Nsec3ParamBlock",
      "type": "object"
    },
    "PTRRecord": {
      "description": "PTR record - pointer for reverse DNS lookups.\n\nGrammar (Reference: RFC 1035 Section 3.3.12):\n```\n[<NAME>] [<TTL>] [<CLASS>] PTR <DOMAIN_NAME>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "PTR"
        },
        "domain_name": {
          "description": "Canonical domain name",
          "title": "Domain Name",
          "type": "string"
        }
      },
      "required": [
        "domain_name"
      ],
      "title": "PTRRecord",
      "type": "object"
    },
    "RPRecord": {
      "description": "RP record - responsible person.\n\nGrammar (Reference: RFC 1183):\n```\n[<NAME>] [<TTL>] [<CLASS>] RP <MBOX_DNAME> <TXT_DNAME>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "RP"
        },
        "mbox_dname": {
          "description": "Mailbox domain name",
          "title": "Mbox Dname",
          "type": "string"
        },
        "txt_dname": {
          "description": "TXT record domain name",
          "title": "Txt Dname",
          "type": "string"
        }
      },
      "required": [
        "mbox_dname",
        "txt_dname"
      ],
      "title": "RPRecord",
      "type": "object"
    },
    "RRClassEnum": {
      "enum": [
        "IN",
        "CH",
        "HS"
      ],
      "title": "RRClassEnum",
      "type": "string"
    },
    "RRSIGRecord": {
      "description": "RRSIG record - digital signature for RRset (DNSSEC).\n\nGrammar (Reference: RFC 4034):\n```\n[<NAME>] [<TTL>] [<CLASS>] RRSIG <TYPE_COVERED> <ALGORITHM> <LABELS>\n    <ORIGINAL_TTL> <SIGNATURE_EXPIRATION> <SIGNATURE_INCEPTION>\n    <KEY_TAG> <SIGNER_NAME> <SIGNATURE>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "RRSIG"
        },
        "type_covered": {
          "description": "RR type covered by signature",
          "title": "Type Covered",
          "type": "string"
        },
        "algorithm": {
          "$ref": "#/$defs/DNSSECAlgorithmEnum",
          "description": "DNSSEC algorithm used"
        },
        "labels": {
          "description": "Number of labels in original name",
          "title": "Labels",
          "type": "integer"
        },
        "original_ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "Original TTL of RRset",
          "title": "Original Ttl"
        },
        "signature_expiration": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "Signature expiration time (Unix timestamp)",
          "title": "Signature Expiration"
        },
        "signature_inception": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "Signature inception time (Unix timestamp)",
          "title": "Signature Inception"
        },
        "key_tag": {
          "description": "Key tag value",
          "title": "Key Tag",
          "type": "integer"
        },
        "signer_name": {
          "description": "Name of signing key",
          "title": "Signer Name",
          "type": "string"
        },
        "signature": {
          "description": "Base64 encoded signature",
          "title": "Signature",
          "type": "string"
        }
      },
      "required": [
        "type_covered",
        "algorithm",
        "labels",
        "original_ttl",
        "signature_expiration",
        "signature_inception",
        "key_tag",
        "signer_name",
        "signature"
      ],
      "title": "RRSIGRecord",
      "type": "object"
    },
    "RRTypeEnum": {
      "enum": [
        "A",
        "AAAA",
        "CNAME",
        "MX",
        "NS",
        "PTR",
        "SOA",
        "TXT",
        "SPF",
        "SRV",
        "DNAME",
        "DS",
        "DNSKEY",
        "RRSIG",
        "NSEC",
        "SSHFP",
        "TLSA",
        "CERT",
        "CAA",
        "LOC",
        "RP",
        "HINFO",
        "NAPTR"
      ],
      "title": "RRTypeEnum",
      "type": "string"
    },
    "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"
    },
    "SOARecord": {
      "description": "SOA record - defines authoritative information for the zone.\n\nGrammar (Reference: RFC 1035 Section 3.3.13):\n```\n[<NAME>] [<TTL>] [<CLASS>] SOA <MNAME> <RNAME> (\n    <SERIAL> <REFRESH> <RETRY> <EXPIRE> <MINIMUM>\n)\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Global $TTL for the zone (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "SOA"
        },
        "mname": {
          "description": "Primary master name server",
          "title": "Mname",
          "type": "string"
        },
        "rname": {
          "description": "Email address of responsible person (@ replaced by .)",
          "title": "Rname",
          "type": "string"
        },
        "serial": {
          "description": "Zone serial number (32-bit unsigned)",
          "title": "Serial",
          "type": "integer"
        },
        "refresh": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "Refresh interval in seconds",
          "title": "Refresh"
        },
        "retry": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "Retry interval in seconds",
          "title": "Retry"
        },
        "expire": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "Expire time in seconds",
          "title": "Expire"
        },
        "minimum": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "Minimum TTL in seconds (negative cache)",
          "title": "Minimum"
        },
        "origin": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Global $ORIGIN domain name",
          "title": "Origin"
        }
      },
      "required": [
        "mname",
        "rname",
        "serial",
        "refresh",
        "retry",
        "expire",
        "minimum"
      ],
      "title": "SOARecord",
      "type": "object"
    },
    "SPFRecord": {
      "description": "SPF record - Sender Policy Framework (syntactic equivalent to TXT).\n\nGrammar (Reference: RFC 4408):\n```\n[<NAME>] [<TTL>] [<CLASS>] SPF \"<SPF_DATA>\"\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "SPF"
        },
        "spf_data": {
          "description": "SPF policy text",
          "items": {
            "type": "string"
          },
          "title": "Spf Data",
          "type": "array"
        }
      },
      "required": [
        "spf_data"
      ],
      "title": "SPFRecord",
      "type": "object"
    },
    "SRVRecord": {
      "description": "SRV record - service location record.\n\nGrammar (Reference: RFC 2782):\n```\n[<NAME>] [<TTL>] [<CLASS>] SRV <PRIORITY> <WEIGHT> <PORT> <TARGET>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "SRV"
        },
        "priority": {
          "description": "Priority (lower value = higher priority)",
          "maximum": 65535,
          "minimum": 0,
          "title": "Priority",
          "type": "integer"
        },
        "weight": {
          "description": "Weight for load balancing",
          "maximum": 65535,
          "minimum": 0,
          "title": "Weight",
          "type": "integer"
        },
        "port": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            }
          ],
          "description": "Service port number",
          "title": "Port"
        },
        "target": {
          "description": "Target hostname",
          "title": "Target",
          "type": "string"
        }
      },
      "required": [
        "priority",
        "weight",
        "port",
        "target"
      ],
      "title": "SRVRecord",
      "type": "object"
    },
    "SSHFPAlgorithmEnum": {
      "description": "SSHFP algorithm types.",
      "enum": [
        1,
        2,
        3,
        4
      ],
      "title": "SSHFPAlgorithmEnum",
      "type": "integer"
    },
    "SSHFPHashTypeEnum": {
      "description": "SSHFP hash types.",
      "enum": [
        1,
        2
      ],
      "title": "SSHFPHashTypeEnum",
      "type": "integer"
    },
    "SSHFPRecord": {
      "description": "SSHFP record - SSH public key fingerprint.\n\nGrammar (Reference: RFC 4255):\n```\n[<NAME>] [<TTL>] [<CLASS>] SSHFP <ALGORITHM> <HASH_TYPE> <FINGERPRINT>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "SSHFP"
        },
        "algorithm": {
          "$ref": "#/$defs/SSHFPAlgorithmEnum",
          "description": "SSH key algorithm"
        },
        "hash_type": {
          "$ref": "#/$defs/SSHFPHashTypeEnum",
          "description": "Hash algorithm used"
        },
        "fingerprint": {
          "description": "Hexadecimal fingerprint",
          "title": "Fingerprint",
          "type": "string"
        }
      },
      "required": [
        "algorithm",
        "hash_type",
        "fingerprint"
      ],
      "title": "SSHFPRecord",
      "type": "object"
    },
    "ServerBlock": {
      "description": "Server configuration block for BIND.\n\nGrammar:\n```\nserver <netprefix> {\n    bogus <boolean>;\n    edns <boolean>;\n    edns-udp-size <integer>;\n    edns-version <integer>;\n    keys <server_key>;\n    max-udp-size <integer>;\n    notify-source ( <ipv4_address> | * );\n    notify-source-v6 ( <ipv6_address> | * );\n    padding <integer>;\n    provide-ixfr <boolean>;\n    query-source [ address ] ( <ipv4_address> | * );\n    query-source-v6 [ address ] ( <ipv6_address> | * );\n    request-expire <boolean>;\n    request-ixfr <boolean>;\n    request-nsid <boolean>;\n    require-cookie <boolean>;\n    send-cookie <boolean>;\n    tcp-keepalive <boolean>;\n    tcp-only <boolean>;\n    transfer-format ( many-answers | one-answer );\n    transfer-source ( <ipv4_address> | * );\n    transfer-source-v6 ( <ipv6_address> | * );\n    transfers <integer>;\n};\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for the server block",
          "title": "Comment"
        },
        "netprefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4network",
              "type": "string"
            },
            {
              "format": "ipv6network",
              "type": "string"
            }
          ],
          "description": "Network prefix for the remote server",
          "title": "Netprefix"
        },
        "bogus": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Mark remote server as bogus",
          "title": "Bogus"
        },
        "edns": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Use EDNS0 when communicating with remote server",
          "title": "Edns"
        },
        "provide_ixfr": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Provide IXFR to this server",
          "title": "Provide Ixfr"
        },
        "request_expire": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Request EDNS EXPIRE value",
          "title": "Request Expire"
        },
        "request_ixfr": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Request IXFR from this server",
          "title": "Request Ixfr"
        },
        "request_nsid": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Send NSID option in queries to this server",
          "title": "Request Nsid"
        },
        "require_cookie": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Require valid server cookie from this server",
          "title": "Require Cookie"
        },
        "send_cookie": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Send COOKIE EDNS option to this server",
          "title": "Send Cookie"
        },
        "tcp_keepalive": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Add EDNS TCP keepalive to messages over TCP",
          "title": "Tcp Keepalive"
        },
        "tcp_only": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Use TCP transport only",
          "title": "Tcp Only"
        },
        "edns_udp_size": {
          "anyOf": [
            {
              "ge": 0,
              "le": 512,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "EDNS UDP buffer size for this server",
          "title": "Edns Udp Size"
        },
        "edns_version": {
          "anyOf": [
            {
              "ge": 0,
              "le": 255,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum EDNS version to send to this server",
          "title": "Edns Version"
        },
        "max_udp_size": {
          "anyOf": [
            {
              "ge": 0,
              "le": 512,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum UDP message size for this server",
          "title": "Max Udp Size"
        },
        "padding": {
          "anyOf": [
            {
              "ge": 0,
              "le": 512,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "EDNS Padding block size",
          "title": "Padding"
        },
        "transfers": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum concurrent inbound transfers from this server",
          "title": "Transfers"
        },
        "transfer_format": {
          "anyOf": [
            {
              "enum": [
                "many-answers",
                "one-answer"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Zone transfer format for this server",
          "title": "Transfer Format"
        },
        "keys": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "TSIG key for transaction security",
          "title": "Keys"
        },
        "notify_source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv4 source 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": "IPv6 source address for NOTIFY messages",
          "title": "Notify Source V6"
        },
        "query_source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv4 source address for queries",
          "title": "Query Source"
        },
        "query_source_v6": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv6",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv6 source address for queries",
          "title": "Query Source V6"
        },
        "transfer_source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IPv4 source 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": "IPv6 source address for zone transfers",
          "title": "Transfer Source V6"
        }
      },
      "required": [
        "netprefix"
      ],
      "title": "ServerBlock",
      "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"
    },
    "TLSACertUsageEnum": {
      "description": "TLSA certificate usage values.",
      "enum": [
        0,
        1,
        2,
        3
      ],
      "title": "TLSACertUsageEnum",
      "type": "integer"
    },
    "TLSAMatchingTypeEnum": {
      "description": "TLSA matching type values.",
      "enum": [
        0,
        1,
        2
      ],
      "title": "TLSAMatchingTypeEnum",
      "type": "integer"
    },
    "TLSARecord": {
      "description": "TLSA record - TLS certificate association (DANE).\n\nGrammar (Reference: RFC 6698):\n```\n[<NAME>] [<TTL>] [<CLASS>] TLSA <CERT_USAGE> <SELECTOR> <MATCHING_TYPE> <CERT_DATA>\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "TLSA"
        },
        "cert_usage": {
          "$ref": "#/$defs/TLSACertUsageEnum",
          "description": "Certificate usage"
        },
        "selector": {
          "$ref": "#/$defs/TLSASelectorEnum",
          "description": "Part of certificate selected"
        },
        "matching_type": {
          "$ref": "#/$defs/TLSAMatchingTypeEnum",
          "description": "How certificate is presented"
        },
        "cert_data": {
          "description": "Certificate association data",
          "title": "Cert Data",
          "type": "string"
        }
      },
      "required": [
        "cert_usage",
        "selector",
        "matching_type",
        "cert_data"
      ],
      "title": "TLSARecord",
      "type": "object"
    },
    "TLSASelectorEnum": {
      "description": "TLSA selector values.",
      "enum": [
        0,
        1
      ],
      "title": "TLSASelectorEnum",
      "type": "integer"
    },
    "TXTRecord": {
      "description": "TXT record - text strings associated with a domain.\n\nGrammar (Reference: RFC 1035 Section 3.3.14):\n```\n[<NAME>] [<TTL>] [<CLASS>] TXT \"<TEXT_DATA>\"\n```",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNS name (optional, inherits from previous RR)",
          "title": "Name"
        },
        "ttl": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time to live in seconds (optional)",
          "title": "Ttl"
        },
        "rr_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/RRClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "IN",
          "description": "Record class"
        },
        "rr_type": {
          "$ref": "#/$defs/RRTypeEnum",
          "default": "TXT"
        },
        "text_data": {
          "description": "List of text strings (each max 255 chars)",
          "items": {
            "type": "string"
          },
          "title": "Text Data",
          "type": "array"
        }
      },
      "required": [
        "text_data"
      ],
      "title": "TXTRecord",
      "type": "object"
    },
    "TrustAnchorsBlock": {
      "description": "Trust anchors configuration block for DNSSEC in BIND.\n\nGrammar:\ntrust-anchors {\n    <string> ( static-key | initial-key | static-ds | initial-ds )\n    <integer> <integer> <integer> <quoted_string>;\n    ...\n}; // may occur multiple times\n\nBlocks: topmost, view\nTags: dnssec",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "anchors": {
          "description": "List of trust anchor entries",
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/KeyTrustAnchor"
              },
              {
                "$ref": "#/$defs/DSTrustAnchor"
              }
            ]
          },
          "title": "Anchors",
          "type": "array"
        }
      },
      "title": "TrustAnchorsBlock",
      "type": "object"
    },
    "UpdatePolicyBlock": {
      "description": "Update-policy block for zone.\n\nGrammar: update-policy ( local | { ( deny | grant ) <string> ( 6to4-self | external | ... )\n          [ <string> ] <rrtypelist>; ... } );",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "local": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Use local policy",
          "title": "Local"
        },
        "rules": {
          "description": "List of rules",
          "items": {
            "$ref": "#/$defs/UpdatePolicyRule"
          },
          "title": "Rules",
          "type": "array"
        }
      },
      "title": "UpdatePolicyBlock",
      "type": "object"
    },
    "UpdatePolicyRule": {
      "description": "Rule for update-policy.\n\nGrammar: ( deny | grant ) <string> ( 6to4-self | external | krb5-self | krb5-selfsub |\n          krb5-subdomain | krb5-subdomain-self-rhs | ms-self | ms-selfsub |\n          ms-subdomain | ms-subdomain-self-rhs | name | self | selfsub | selfwild |\n          subdomain | tcp-self | wildcard | zonesub ) [ <string> ] <rrtypelist>;",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "action": {
          "description": "Action: deny or grant",
          "enum": [
            "deny",
            "grant"
          ],
          "title": "Action",
          "type": "string"
        },
        "identity": {
          "description": "Identifier (key or domain name)",
          "title": "Identity",
          "type": "string"
        },
        "rule_type": {
          "$ref": "#/$defs/UpdatePolicyRuleTypeEnum",
          "description": "Rule type"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name for matching (optional)",
          "title": "Name"
        },
        "record_types": {
          "description": "DNS record types",
          "items": {
            "type": "string"
          },
          "title": "Record Types",
          "type": "array"
        }
      },
      "required": [
        "action",
        "identity",
        "rule_type"
      ],
      "title": "UpdatePolicyRule",
      "type": "object"
    },
    "UpdatePolicyRuleTypeEnum": {
      "description": "Rule types for update-policy.",
      "enum": [
        "name",
        "subdomain",
        "zonesub",
        "wildcard",
        "self",
        "selfsub",
        "selfwild",
        "ms-self",
        "ms-selfsub",
        "ms-subdomain",
        "ms-subdomain-self-rhs",
        "krb5-self",
        "krb5-selfsub",
        "krb5-subdomain",
        "krb5-subdomain-self-rhs",
        "tcp-self",
        "6to4-self",
        "external"
      ],
      "title": "UpdatePolicyRuleTypeEnum",
      "type": "string"
    },
    "ZoneBlock": {
      "description": "Zone block for BIND configuration.\n\nGrammar:\nzone <string> [ <class> ] {\n    type primary | secondary | mirror | hint | stub | static-stub | forward | redirect;\n    ... # options depending on type\n};",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional comment for this block",
          "title": "Comment"
        },
        "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"
        },
        "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"
        },
        "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"
        },
        "dnssec_policy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNSSEC key and signing policy",
          "title": "Dnssec Policy"
        },
        "key_directory": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNSSEC key directory",
          "title": "Key Directory"
        },
        "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"
        },
        "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"
        },
        "forward": {
          "anyOf": [
            {
              "enum": [
                "first",
                "only"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Forwarding behavior",
          "title": "Forward"
        },
        "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"
        },
        "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"
        },
        "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"
        },
        "request_expire": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Request EDNS EXPIRE value",
          "title": "Request Expire"
        },
        "request_ixfr": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Request IXFR from primaries",
          "title": "Request Ixfr"
        },
        "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_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"
        },
        "name": {
          "description": "Zone name",
          "title": "Name",
          "type": "string"
        },
        "zone_type": {
          "$ref": "#/$defs/ZoneTypeEnum",
          "description": "Zone type"
        },
        "zone_class": {
          "anyOf": [
            {
              "$ref": "#/$defs/ZoneClassEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Zone class"
        },
        "check_names": {
          "anyOf": [
            {
              "enum": [
                "fail",
                "warn",
                "ignore"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Check names policy",
          "title": "Check Names"
        },
        "checkds": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "const": "explicit",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Check DS records. Zone-only in BIND9 - not valid in options/view.",
          "title": "Checkds"
        },
        "inline_signing": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maintain separate signed version of the zone. Zone-only in BIND9 - not valid in options/view.",
          "title": "Inline Signing"
        },
        "database": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Database type for zone storage",
          "title": "Database"
        },
        "file": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Zone file name",
          "title": "File"
        },
        "forwarders": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "format": "ipv4",
                    "type": "string"
                  },
                  {
                    "format": "ipv6",
                    "type": "string"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Forwarding servers",
          "title": "Forwarders"
        },
        "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 dump style",
          "title": "Masterfile Style"
        },
        "also_notify": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "maxItems": 2,
                    "minItems": 2,
                    "prefixItems": [
                      {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "format": "ipv4",
                            "type": "string"
                          },
                          {
                            "format": "ipv6",
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    ],
                    "type": "array"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Additional notify recipients",
          "title": "Also Notify"
        },
        "journal": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Journal file name",
          "title": "Journal"
        },
        "dnssec_loadkeys_interval": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "DNSSEC key repository check interval",
          "title": "Dnssec Loadkeys Interval"
        },
        "max_transfer_idle_out": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum idle time for outbound transfers",
          "title": "Max Transfer Idle Out"
        },
        "max_transfer_time_out": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum outbound transfer time",
          "title": "Max Transfer Time Out"
        },
        "notify_defer": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Delay before sending NOTIFY",
          "title": "Notify Defer"
        },
        "notify_delay": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Delay between NOTIFY message sets",
          "title": "Notify Delay"
        },
        "notify_source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Source IPv4 address for NOTIFY",
          "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",
          "title": "Notify Source V6"
        },
        "parental_agents": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "maxItems": 2,
                    "minItems": 2,
                    "prefixItems": [
                      {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "format": "ipv4",
                            "type": "string"
                          },
                          {
                            "format": "ipv6",
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    ],
                    "type": "array"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Parental agents for DNSSEC key rollover",
          "title": "Parental Agents"
        },
        "parental_source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Source IPv4 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 for parental agent queries",
          "title": "Parental Source V6"
        },
        "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"
        },
        "update_policy": {
          "anyOf": [
            {
              "$ref": "#/$defs/UpdatePolicyBlock"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Dynamic update policy"
        },
        "max_refresh_time": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum refresh time",
          "title": "Max Refresh Time"
        },
        "max_retry_time": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum retry time",
          "title": "Max Retry Time"
        },
        "max_transfer_idle_in": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum idle time for inbound transfers",
          "title": "Max Transfer Idle In"
        },
        "max_transfer_time_in": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum inbound transfer time",
          "title": "Max Transfer Time In"
        },
        "min_refresh_time": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum refresh time",
          "title": "Min Refresh Time"
        },
        "min_retry_time": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum retry time",
          "title": "Min Retry Time"
        },
        "primaries": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "maxItems": 2,
                    "minItems": 2,
                    "prefixItems": [
                      {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "format": "ipv4",
                            "type": "string"
                          },
                          {
                            "format": "ipv6",
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    ],
                    "type": "array"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Primary servers for secondary zone",
          "title": "Primaries"
        },
        "transfer_source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "format": "ipv4",
              "type": "string"
            },
            {
              "const": "*",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Source IPv4 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 for zone transfers",
          "title": "Transfer Source V6"
        },
        "server_addresses": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "format": "ipv4",
                    "type": "string"
                  },
                  {
                    "format": "ipv6",
                    "type": "string"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "IP addresses for static-stub zone",
          "title": "Server Addresses"
        },
        "server_names": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Server names for static-stub zone",
          "title": "Server Names"
        },
        "in_view": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "View in which zone is defined",
          "title": "In View"
        },
        "resource_records": {
          "description": "List of resource records",
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/ARecord"
              },
              {
                "$ref": "#/$defs/AAAARecord"
              },
              {
                "$ref": "#/$defs/CNAMERecord"
              },
              {
                "$ref": "#/$defs/DNAMERecord"
              },
              {
                "$ref": "#/$defs/MXRecord"
              },
              {
                "$ref": "#/$defs/NSRecord"
              },
              {
                "$ref": "#/$defs/PTRRecord"
              },
              {
                "$ref": "#/$defs/SOARecord"
              },
              {
                "$ref": "#/$defs/TXTRecord"
              },
              {
                "$ref": "#/$defs/SPFRecord"
              },
              {
                "$ref": "#/$defs/SRVRecord"
              },
              {
                "$ref": "#/$defs/DSRecord"
              },
              {
                "$ref": "#/$defs/DNSKEYRecord"
              },
              {
                "$ref": "#/$defs/RRSIGRecord"
              },
              {
                "$ref": "#/$defs/NSECRecord"
              },
              {
                "$ref": "#/$defs/SSHFPRecord"
              },
              {
                "$ref": "#/$defs/TLSARecord"
              },
              {
                "$ref": "#/$defs/CAARecord"
              },
              {
                "$ref": "#/$defs/CERTRecord"
              },
              {
                "$ref": "#/$defs/LOCRecord"
              },
              {
                "$ref": "#/$defs/NAPTRRecord"
              },
              {
                "$ref": "#/$defs/HINFORecord"
              },
              {
                "$ref": "#/$defs/RPRecord"
              }
            ]
          },
          "title": "Resource Records",
          "type": "array"
        }
      },
      "required": [
        "name",
        "zone_type"
      ],
      "title": "ZoneBlock",
      "type": "object"
    },
    "ZoneClassEnum": {
      "description": "Zone classes in BIND.",
      "enum": [
        "IN",
        "HS",
        "CHAOS"
      ],
      "title": "ZoneClassEnum",
      "type": "string"
    },
    "ZoneTypeEnum": {
      "description": "Zone types in BIND.",
      "enum": [
        "primary",
        "secondary",
        "mirror",
        "hint",
        "stub",
        "static-stub",
        "forward",
        "redirect",
        "in-view"
      ],
      "title": "ZoneTypeEnum",
      "type": "string"
    }
  },
  "description": "View block for BIND9 configuration.\n\nGrammar:\nview <string> [ <class> ] {\n    ... # view-specific options and zones\n};\n\nAllows a name server to answer a DNS query differently depending on who is asking.",
  "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"
    },
    "name": {
      "description": "View name",
      "title": "Name",
      "type": "string"
    },
    "view_class": {
      "anyOf": [
        {
          "$ref": "#/$defs/ZoneClassEnum"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "View class (default: IN)"
    },
    "match_clients": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Clients that match this view based on source IP address",
      "title": "Match Clients"
    },
    "match_destinations": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Destinations that match this view based on destination IP address",
      "title": "Match Destinations"
    },
    "match_recursive_only": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only recursive requests can match this view",
      "title": "Match Recursive Only"
    },
    "server_blocks": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ServerBlock"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Server-specific configuration blocks",
      "title": "Server Blocks"
    },
    "key_blocks": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/KeyBlock"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TSIG key definitions",
      "title": "Key Blocks"
    },
    "trust_anchors": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/TrustAnchorsBlock"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "DNSSEC trust anchors",
      "title": "Trust Anchors"
    },
    "dnssec_policy_block": {
      "anyOf": [
        {
          "$ref": "#/$defs/DnssecPolicyBlock"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "DNSSEC policy configuration"
    },
    "view_zones": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ZoneBlock"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Zones defined within this view",
      "title": "View Zones"
    }
  },
  "required": [
    "name"
  ],
  "title": "ViewBlock",
  "type": "object"
}

Fields:

Validators:

name pydantic-field

name: string_BIND

View name

view_class pydantic-field

view_class: ZoneClassEnum | None = None

View class (default: IN)

match_clients pydantic-field

match_clients: address_match_list_BIND | None = None

Clients that match this view based on source IP address

match_destinations pydantic-field

match_destinations: address_match_list_BIND | None = None

Destinations that match this view based on destination IP address

match_recursive_only pydantic-field

match_recursive_only: boolean_BIND | None = None

Only recursive requests can match this view

server_blocks pydantic-field

server_blocks: list[ServerBlock] | None = None

Server-specific configuration blocks

key_blocks pydantic-field

key_blocks: list[KeyBlock] | None = None

TSIG key definitions

trust_anchors pydantic-field

trust_anchors: list[TrustAnchorsBlock] | None = None

DNSSEC trust anchors

dnssec_policy_block pydantic-field

dnssec_policy_block: DnssecPolicyBlock | None = None

DNSSEC policy configuration

view_zones pydantic-field

view_zones: list[ZoneBlock] | None = None

Zones defined within this view

validate_non_in_view_requires_hint_zone pydantic-validator

validate_non_in_view_requires_hint_zone() -> ViewBlock

Validate that non-IN views contain a hint zone.

According to BIND9 documentation: "Note that all non-IN views must contain a hint zone, since only the IN class has compiled-in default hints."