View¶
ViewBlock
pydantic-model
¶
Bases: ExtendedOptionsMixin
View block for BIND9 configuration.
Grammar:
view
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:
-
comment(string_BIND | None) -
catalog_zones(list[CatalogZoneBlock] | None) -
response_policy(ResponsePolicyBlock | None) -
rate_limit(RateLimitBlock | None) -
also_notify(AlsoNotifyBlock | None) -
sig_signing_nodes(integer_BIND | None) -
sig_signing_signatures(integer_BIND | None) -
sig_signing_type(integer_BIND | None) -
preferred_glue(Literal['A', 'AAAA'] | None) -
min_transfer_rate_in(tuple[integer_BIND, integer_BIND] | None) -
min_refresh_time(integer_BIND | None) -
max_refresh_time(integer_BIND | None) -
min_retry_time(integer_BIND | None) -
max_retry_time(integer_BIND | None) -
rrset_order(list[RrsetOrderRule] | None) -
lmdb_mapsize(sizeval_BIND | None) -
attach_cache(string_BIND | None) -
match_mapped_addresses(boolean_BIND | None) -
disable_algorithms(list[tuple[string_BIND, list[string_BIND]]] | None) -
disable_ds_digests(list[tuple[string_BIND, list[string_BIND]]] | None) -
dns64_server(string_BIND | None) -
dns64_contact(string_BIND | None) -
dns64_blocks(list[Dns64Block] | None) -
ipv4only_enable(boolean_BIND | None) -
ipv4only_server(string_BIND | None) -
ipv4only_contact(string_BIND | None) -
resolver_query_timeout(integer_BIND | None) -
resolver_use_dns64(boolean_BIND | None) -
check_names(list[tuple[str, Literal['fail', 'warn', 'ignore']]] | None) -
qname_minimization(Literal['strict', 'relaxed', 'disabled', 'off'] | None) -
max_ixfr_ratio(percentage_BIND | Literal['unlimited'] | None) -
ixfr_from_differences(boolean_BIND | None) -
provide_ixfr(boolean_BIND | None) -
request_ixfr(boolean_BIND | None) -
request_expire(boolean_BIND | None) -
dnssec_policy(string_BIND | None) -
trust_anchor_telemetry(boolean_BIND | None) -
validate_except(list[string_BIND] | None) -
key_directory(quoted_string_BIND | None) -
managed_keys_directory(quoted_string_BIND | None) -
new_zones_directory(quoted_string_BIND | None) -
nxdomain_redirect(string_BIND | None) -
deny_answer_addresses(tuple[address_match_list_BIND, list[string_BIND]] | None) -
deny_answer_aliases(tuple[list[string_BIND], list[string_BIND]] | None) -
empty_server(string_BIND | None) -
empty_contact(string_BIND | None) -
empty_zones_enable(boolean_BIND | None) -
disable_empty_zone(list[string_BIND] | None) -
version(quoted_string_BIND | Literal['none'] | None) -
hostname(quoted_string_BIND | Literal['none'] | None) -
server_id(quoted_string_BIND | Literal['none', 'hostname'] | None) -
max_query_count(integer_BIND | None) -
max_recursion_depth(integer_BIND | None) -
max_recursion_queries(integer_BIND | None) -
max_query_restarts(integer_BIND | None) -
notify_defer(integer_BIND | None) -
notify_delay(integer_BIND | None) -
max_rsa_exponent_size(integer_BIND | None) -
prefetch(tuple[integer_BIND, integer_BIND] | None) -
v6_bias(integer_BIND | None) -
masterfile_format(Literal['raw', 'text'] | None) -
masterfile_style(Literal['full', 'relative'] | None) -
edns_udp_size(integer_BIND | None) -
max_udp_size(integer_BIND | None) -
response_padding(tuple[address_match_list_BIND, integer_BIND] | None) -
zone_statistics(boolean_BIND | Literal['full', 'terse', 'none'] | None) -
lame_ttl(duration_BIND | None) -
servfail_ttl(duration_BIND | None) -
min_ncache_ttl(duration_BIND | None) -
min_cache_ttl(duration_BIND | None) -
max_ncache_ttl(duration_BIND | None) -
max_cache_ttl(duration_BIND | None) -
max_stale_ttl(duration_BIND | None) -
dnssec_loadkeys_interval(integer_BIND | None) -
nta_lifetime(duration_BIND | None) -
nta_recheck(duration_BIND | None) -
stale_answer_ttl(duration_BIND | None) -
stale_answer_client_timeout(integer_BIND | Literal['disabled', 'off'] | None) -
stale_refresh_time(duration_BIND | None) -
nocookie_udp_size(integer_BIND | None) -
cookie_algorithm(Literal['siphash24'] | None) -
cookie_secret(list[string_BIND] | None) -
serial_update_method(Literal['date', 'increment', 'unixtime'] | None) -
max_journal_size(sizeval_BIND | Literal['default', 'unlimited'] | None) -
max_records(integer_BIND | None) -
max_records_per_type(integer_BIND | None) -
max_types_per_name(integer_BIND | None) -
recursive_clients(integer_BIND | None) -
tcp_clients(integer_BIND | None) -
clients_per_query(integer_BIND | None) -
max_clients_per_query(integer_BIND | None) -
fetches_per_zone(integer_BIND | None) -
fetches_per_server(integer_BIND | None) -
fetch_quota_params(list[integer_BIND | fixed_point_BIND] | None) -
max_cache_size(sizeval_BIND | percentage_BIND | Literal['default', 'unlimited'] | None) -
update_quota(integer_BIND | None) -
sig0key_checks_limit(integer_BIND | None) -
sig0message_checks_limit(integer_BIND | None) -
forward(Literal['first', 'only'] | None) -
forwarders(ForwardersBlock | None) -
dual_stack_servers(list[ServerSpecifier] | None) -
check_dup_records(Literal['fail', 'warn', 'ignore'] | None) -
check_integrity(boolean_BIND | None) -
check_mx(Literal['fail', 'warn', 'ignore'] | None) -
check_mx_cname(Literal['fail', 'warn', 'ignore'] | None) -
check_sibling(boolean_BIND | None) -
check_spf(Literal['warn', 'ignore'] | None) -
check_srv_cname(Literal['fail', 'warn', 'ignore'] | None) -
check_svcb(boolean_BIND | None) -
check_wildcard(boolean_BIND | None) -
multi_master(boolean_BIND | None) -
notify(boolean_BIND | Literal['explicit', 'master-only', 'primary-only'] | None) -
notify_to_soa(boolean_BIND | None) -
try_tcp_refresh(boolean_BIND | None) -
zero_no_soa_ttl(boolean_BIND | None) -
allow_new_zones(boolean_BIND | None) -
auth_nxdomain(boolean_BIND | None) -
flush_zones_on_shutdown(boolean_BIND | None) -
root_key_sentinel(boolean_BIND | None) -
reuseport(boolean_BIND | None) -
message_compression(boolean_BIND | None) -
minimal_responses(boolean_BIND | Literal['no-auth', 'no-auth-recursive'] | None) -
minimal_any(boolean_BIND | None) -
recursion(boolean_BIND | None) -
request_nsid(boolean_BIND | None) -
require_server_cookie(boolean_BIND | None) -
answer_cookie(boolean_BIND | None) -
send_cookie(boolean_BIND | None) -
stale_answer_enable(boolean_BIND | None) -
stale_cache_enable(boolean_BIND | None) -
dnssec_validation(Literal['yes', 'no', 'auto'] | None) -
dnssec_accept_expired(boolean_BIND | None) -
querylog(boolean_BIND | None) -
zero_no_soa_ttl_cache(boolean_BIND | None) -
synth_from_dnssec(boolean_BIND | None) -
allow_query(address_match_list_BIND | None) -
allow_query_on(address_match_list_BIND | None) -
allow_transfer(address_match_list_BIND | None) -
allow_update(address_match_list_BIND | None) -
allow_notify(address_match_list_BIND | None) -
allow_update_forwarding(address_match_list_BIND | None) -
allow_query_cache(address_match_list_BIND | None) -
allow_query_cache_on(address_match_list_BIND | None) -
allow_recursion(address_match_list_BIND | None) -
allow_recursion_on(address_match_list_BIND | None) -
blackhole(address_match_list_BIND | None) -
no_case_compress(address_match_list_BIND | None) -
name(string_BIND) -
view_class(ZoneClassEnum | None) -
match_clients(address_match_list_BIND | None) -
match_destinations(address_match_list_BIND | None) -
match_recursive_only(boolean_BIND | None) -
server_blocks(list[ServerBlock] | None) -
key_blocks(list[KeyBlock] | None) -
trust_anchors(list[TrustAnchorsBlock] | None) -
dnssec_policy_block(DnssecPolicyBlock | None) -
view_zones(list[ZoneBlock] | None)
Validators:
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
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."