Zone¶
ZoneBlock
pydantic-model
¶
Bases: BasicOptionsMixin
Zone block for BIND configuration.
Grammar:
zone
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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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": "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"
}
Fields:
-
comment(string_BIND | None) -
sig_signing_nodes(integer_BIND | None) -
sig_signing_signatures(integer_BIND | None) -
sig_signing_type(integer_BIND | None) -
min_transfer_rate_in(tuple[integer_BIND, integer_BIND] | None) -
max_ixfr_ratio(percentage_BIND | Literal['unlimited'] | None) -
dnssec_policy(string_BIND | None) -
key_directory(quoted_string_BIND | None) -
zone_statistics(boolean_BIND | Literal['full', 'terse', 'none'] | 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) -
forward(Literal['first', 'only'] | 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) -
ixfr_from_differences(boolean_BIND | None) -
multi_master(boolean_BIND | None) -
notify(boolean_BIND | Literal['explicit', 'master-only', 'primary-only'] | None) -
notify_to_soa(boolean_BIND | None) -
request_expire(boolean_BIND | None) -
request_ixfr(boolean_BIND | None) -
try_tcp_refresh(boolean_BIND | None) -
zero_no_soa_ttl(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) -
name(domain_name_BIND) -
zone_type(ZoneTypeEnum) -
zone_class(ZoneClassEnum | None) -
check_names(Literal['fail', 'warn', 'ignore'] | None) -
checkds(boolean_BIND | Literal['explicit'] | None) -
inline_signing(boolean_BIND | None) -
database(string_BIND | None) -
file(quoted_string_BIND | None) -
forwarders(list[ip_v4_address_BIND | ip_v6_address_BIND] | None) -
masterfile_format(Literal['raw', 'text'] | None) -
masterfile_style(Literal['full', 'relative'] | None) -
also_notify(list[string_BIND | tuple[ip_v4_address_BIND | ip_v6_address_BIND, port_BIND | None]] | None) -
journal(quoted_string_BIND | None) -
dnssec_loadkeys_interval(integer_BIND | None) -
max_transfer_idle_out(integer_BIND | None) -
max_transfer_time_out(integer_BIND | None) -
notify_defer(integer_BIND | None) -
notify_delay(integer_BIND | None) -
notify_source(ip_v4_address_BIND | Literal['*'] | None) -
notify_source_v6(ip_v6_address_BIND | Literal['*'] | None) -
parental_agents(list[string_BIND | tuple[ip_v4_address_BIND | ip_v6_address_BIND, port_BIND | None]] | None) -
parental_source(ip_v4_address_BIND | Literal['*'] | None) -
parental_source_v6(ip_v6_address_BIND | Literal['*'] | None) -
serial_update_method(Literal['date', 'increment', 'unixtime'] | None) -
update_policy(UpdatePolicyBlock | None) -
max_refresh_time(integer_BIND | None) -
max_retry_time(integer_BIND | None) -
max_transfer_idle_in(integer_BIND | None) -
max_transfer_time_in(integer_BIND | None) -
min_refresh_time(integer_BIND | None) -
min_retry_time(integer_BIND | None) -
primaries(list[string_BIND | tuple[ip_v4_address_BIND | ip_v6_address_BIND, port_BIND | None]] | None) -
transfer_source(ip_v4_address_BIND | Literal['*'] | None) -
transfer_source_v6(ip_v6_address_BIND | Literal['*'] | None) -
server_addresses(list[ip_v4_address_BIND | ip_v6_address_BIND] | None) -
server_names(list[string_BIND] | None) -
in_view(string_BIND | None) -
resource_records(list[ResourceRecordType])
Validators:
check_names
pydantic-field
¶
check_names: Literal["fail", "warn", "ignore"] | None = None
Check names policy
checkds
pydantic-field
¶
checkds: boolean_BIND | Literal['explicit'] | None = None
Check DS records. Zone-only in BIND9 - not valid in options/view.
inline_signing
pydantic-field
¶
inline_signing: boolean_BIND | None = None
Maintain separate signed version of the zone. Zone-only in BIND9 - not valid in options/view.
forwarders
pydantic-field
¶
forwarders: (
list[ip_v4_address_BIND | ip_v6_address_BIND] | None
) = None
Forwarding servers
masterfile_format
pydantic-field
¶
masterfile_format: Literal['raw', 'text'] | None = None
Zone file format
masterfile_style
pydantic-field
¶
masterfile_style: Literal['full', 'relative'] | None = None
Zone dump style
also_notify
pydantic-field
¶
also_notify: (
list[
string_BIND
| tuple[
ip_v4_address_BIND | ip_v6_address_BIND,
port_BIND | None,
]
]
| None
) = None
Additional notify recipients
dnssec_loadkeys_interval
pydantic-field
¶
dnssec_loadkeys_interval: integer_BIND | None = None
DNSSEC key repository check interval
max_transfer_idle_out
pydantic-field
¶
max_transfer_idle_out: integer_BIND | None = None
Maximum idle time for outbound transfers
max_transfer_time_out
pydantic-field
¶
max_transfer_time_out: integer_BIND | None = None
Maximum outbound transfer time
notify_delay
pydantic-field
¶
notify_delay: integer_BIND | None = None
Delay between NOTIFY message sets
notify_source
pydantic-field
¶
notify_source: ip_v4_address_BIND | Literal["*"] | None = (
None
)
Source IPv4 address for NOTIFY
notify_source_v6
pydantic-field
¶
notify_source_v6: (
ip_v6_address_BIND | Literal["*"] | None
) = None
Source IPv6 address for NOTIFY
parental_agents
pydantic-field
¶
parental_agents: (
list[
string_BIND
| tuple[
ip_v4_address_BIND | ip_v6_address_BIND,
port_BIND | None,
]
]
| None
) = None
Parental agents for DNSSEC key rollover
parental_source
pydantic-field
¶
parental_source: (
ip_v4_address_BIND | Literal["*"] | None
) = None
Source IPv4 for parental agent queries
parental_source_v6
pydantic-field
¶
parental_source_v6: (
ip_v6_address_BIND | Literal["*"] | None
) = None
Source IPv6 for parental agent queries
serial_update_method
pydantic-field
¶
serial_update_method: (
Literal["date", "increment", "unixtime"] | None
) = None
Dynamic DNS serial number update method
max_transfer_idle_in
pydantic-field
¶
max_transfer_idle_in: integer_BIND | None = None
Maximum idle time for inbound transfers
max_transfer_time_in
pydantic-field
¶
max_transfer_time_in: integer_BIND | None = None
Maximum inbound transfer time
primaries
pydantic-field
¶
primaries: (
list[
string_BIND
| tuple[
ip_v4_address_BIND | ip_v6_address_BIND,
port_BIND | None,
]
]
| None
) = None
Primary servers for secondary zone
transfer_source
pydantic-field
¶
transfer_source: (
ip_v4_address_BIND | Literal["*"] | None
) = None
Source IPv4 for zone transfers
transfer_source_v6
pydantic-field
¶
transfer_source_v6: (
ip_v6_address_BIND | Literal["*"] | None
) = None
Source IPv6 for zone transfers
server_addresses
pydantic-field
¶
server_addresses: (
list[ip_v4_address_BIND | ip_v6_address_BIND] | None
) = None
IP addresses for static-stub zone
server_names
pydantic-field
¶
server_names: list[string_BIND] | None = None
Server names for static-stub zone
resource_records
pydantic-field
¶
resource_records: list[ResourceRecordType]
List of resource records
validate_zone_type_specific_fields
pydantic-validator
¶
validate_zone_type_specific_fields() -> ZoneBlock
Validate fields based on zone type.
model_bind_syntax ¶
model_bind_syntax(indent_level: int = 0) -> str
Render as zone <name> { ... };.
An in-view zone has no type statement at all - just in-view
<viewname>; on its own; named-checkconf rejects type in-view; with
"'in-view' unexpected".
model_bind_syntax_zone_file ¶
model_bind_syntax_zone_file(indent_level: int = 0) -> str
Generate zone file syntax for BIND zone files.
Grammar:
$TTL <duration>
$ORIGIN <domain_name>
; Zone records follow:
<name> [<ttl>] [<class>] <type> <rdata>
...
ZoneTypeEnum ¶
Bases: str, Enum
Zone types in BIND.
ZoneClassEnum ¶
Bases: str, Enum
Zone classes in BIND.
UpdatePolicyBlock
pydantic-model
¶
Bases: BindBaseModel
Update-policy block for zone.
update-policy ( local | { ( deny | grant ) ( 6to4-self | external | ... )
[
Show JSON schema:
{
"$defs": {
"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"
}
},
"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"
}
Fields:
-
comment(string_BIND | None) -
local(boolean_BIND | None) -
rules(list[UpdatePolicyRule])
Validators:
validate_update_policy
pydantic-validator
¶
validate_update_policy() -> UpdatePolicyBlock
Validate update policy.
Compares local against the string "yes" rather than using it as a
Python truth value: boolean_BIND normalizes it to "yes"/"no", and
"no" is itself truthy in Python.
UpdatePolicyRule
pydantic-model
¶
Bases: BindBaseModel
Rule for update-policy.
( deny | grant ) ( 6to4-self | external | krb5-self | krb5-selfsub |
krb5-subdomain | krb5-subdomain-self-rhs | ms-self | ms-selfsub |
ms-subdomain | ms-subdomain-self-rhs | name | self | selfsub | selfwild |
subdomain | tcp-self | wildcard | zonesub ) [
Show JSON schema:
{
"$defs": {
"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"
}
},
"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"
}
Fields:
-
comment(string_BIND | None) -
action(Literal['deny', 'grant']) -
identity(string_BIND) -
rule_type(UpdatePolicyRuleTypeEnum) -
name(string_BIND | None) -
record_types(list[string_BIND])
UpdatePolicyRuleTypeEnum ¶
Bases: str, Enum
Rule types for update-policy.