]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
checkpoint rdata subclass doc, finally done
authorBob Halley <halley@dnspython.org>
Sun, 10 May 2020 02:38:08 +0000 (19:38 -0700)
committerBob Halley <halley@dnspython.org>
Sun, 10 May 2020 02:38:08 +0000 (19:38 -0700)
23 files changed:
dns/rdtypes/ANY/AFSDB.py
dns/rdtypes/ANY/NSEC.py
dns/rdtypes/ANY/NSEC3.py
dns/rdtypes/ANY/NSEC3PARAM.py
dns/rdtypes/ANY/OPENPGPKEY.py
dns/rdtypes/ANY/RP.py
dns/rdtypes/ANY/RRSIG.py
dns/rdtypes/ANY/SOA.py
dns/rdtypes/ANY/SSHFP.py
dns/rdtypes/ANY/TLSA.py
dns/rdtypes/ANY/URI.py
dns/rdtypes/ANY/X25.py
dns/rdtypes/IN/A.py
dns/rdtypes/IN/AAAA.py
dns/rdtypes/IN/APL.py
dns/rdtypes/IN/DHCID.py
dns/rdtypes/IN/IPSECKEY.py
dns/rdtypes/IN/NAPTR.py
dns/rdtypes/IN/NSAP.py
dns/rdtypes/IN/PX.py
dns/rdtypes/IN/SRV.py
dns/rdtypes/IN/WKS.py
doc/rdata-subclasses.rst

index 10861e310124133cd0d7a7fa0b4ae1a92028bd35..40878900d323ad673841072efe12dd036ce52653 100644 (file)
@@ -20,12 +20,7 @@ import dns.rdtypes.mxbase
 
 class AFSDB(dns.rdtypes.mxbase.UncompressedDowncasingMX):
 
-    """AFSDB record
-
-    @ivar subtype: the subtype value
-    @type subtype: int
-    @ivar hostname: the hostname name
-    @type hostname: dns.name.Name object"""
+    """AFSDB record"""
 
     # Use the property mechanism to make "subtype" an alias for the
     # "preference" attribute, and "hostname" an alias for the "exchange"
index a497fbabc78d4293b6a84a9c277457fb114e3ac1..63203b5d42292b2cef5f3d9d68b187f46ff034c2 100644 (file)
@@ -25,12 +25,7 @@ import dns.name
 
 class NSEC(dns.rdata.Rdata):
 
-    """NSEC record
-
-    @ivar next: the next name
-    @type next: dns.name.Name object
-    @ivar windows: the windowed bitmap list
-    @type windows: list of (window number, string) tuples"""
+    """NSEC record"""
 
     __slots__ = ['next', 'windows']
 
index fbb25556d3e986e211ebbec8c4f8bf5ae92f5be3..c41b8fa644724d8c2e450f892c85ac8005d99c9a 100644 (file)
@@ -38,20 +38,7 @@ OPTOUT = 1
 
 class NSEC3(dns.rdata.Rdata):
 
-    """NSEC3 record
-
-    @ivar algorithm: the hash algorithm number
-    @type algorithm: int
-    @ivar flags: the flags
-    @type flags: int
-    @ivar iterations: the number of iterations
-    @type iterations: int
-    @ivar salt: the salt
-    @type salt: string
-    @ivar next: the next name hash
-    @type next: string
-    @ivar windows: the windowed bitmap list
-    @type windows: list of (window number, string) tuples"""
+    """NSEC3 record"""
 
     __slots__ = ['algorithm', 'flags', 'iterations', 'salt', 'next', 'windows']
 
index d317b6c5d5341f423813800834f1359250e03deb..f0d5bb104e2c5513313ecbc4411891627456df80 100644 (file)
@@ -24,16 +24,7 @@ import dns.rdata
 
 class NSEC3PARAM(dns.rdata.Rdata):
 
-    """NSEC3PARAM record
-
-    @ivar algorithm: the hash algorithm number
-    @type algorithm: int
-    @ivar flags: the flags
-    @type flags: int
-    @ivar iterations: the number of iterations
-    @type iterations: int
-    @ivar salt: the salt
-    @type salt: string"""
+    """NSEC3PARAM record"""
 
     __slots__ = ['algorithm', 'flags', 'iterations', 'salt']
 
index e9b43095cf1320801ccdae88e246ebeacbfec7bf..0bf7ab4305be0723f23aa02414aeb1b79c16c9cc 100644 (file)
@@ -23,12 +23,9 @@ import dns.tokenizer
 
 class OPENPGPKEY(dns.rdata.Rdata):
 
-    """OPENPGPKEY record
+    """OPENPGPKEY record"""
 
-    @ivar key: the key
-    @type key: bytes
-    @see: RFC 7929
-    """
+    # see: RFC 7929
 
     def __init__(self, rdclass, rdtype, key):
         super().__init__(rdclass, rdtype)
index 29ac549bd40ab9ddf10d8ec576d5a495ec1628dc..9580929f706713766933e8960b9bdf8a5c178c59 100644 (file)
@@ -22,14 +22,9 @@ import dns.name
 
 class RP(dns.rdata.Rdata):
 
-    """RP record
+    """RP record"""
 
-    @ivar mbox: The responsible person's mailbox
-    @type mbox: dns.name.Name object
-    @ivar txt: The owner name of a node with TXT records, or the root name
-    if no TXT records are associated with this RP.
-    @type txt: dns.name.Name object
-    @see: RFC 1183"""
+    # see: RFC 1183
 
     __slots__ = ['mbox', 'txt']
 
index 94dbe5cbf87ffb3ce156d5b935aebf485e025d8b..09965ce8d8caaf77cfb6e5cac21cedc2059cfcb1 100644 (file)
@@ -52,26 +52,7 @@ def posixtime_to_sigtime(what):
 
 class RRSIG(dns.rdata.Rdata):
 
-    """RRSIG record
-
-    @ivar type_covered: the rdata type this signature covers
-    @type type_covered: int
-    @ivar algorithm: the algorithm used for the sig
-    @type algorithm: int
-    @ivar labels: number of labels
-    @type labels: int
-    @ivar original_ttl: the original TTL
-    @type original_ttl: long
-    @ivar expiration: signature expiration time
-    @type expiration: long
-    @ivar inception: signature inception time
-    @type inception: long
-    @ivar key_tag: the key tag
-    @type key_tag: int
-    @ivar signer: the signer
-    @type signer: dns.name.Name object
-    @ivar signature: the signature
-    @type signature: string"""
+    """RRSIG record"""
 
     __slots__ = ['type_covered', 'algorithm', 'labels', 'original_ttl',
                  'expiration', 'inception', 'key_tag', 'signer',
index 3627cc0db0ad9d8f97ea6d3adf4bd9e1aecb53d6..bb502653d64c165a8e939ec7156e28b016655231 100644 (file)
@@ -24,24 +24,9 @@ import dns.name
 
 class SOA(dns.rdata.Rdata):
 
-    """SOA record
+    """SOA record"""
 
-    @ivar mname: the SOA MNAME (master name) field
-    @type mname: dns.name.Name object
-    @ivar rname: the SOA RNAME (responsible name) field
-    @type rname: dns.name.Name object
-    @ivar serial: The zone's serial number
-    @type serial: int
-    @ivar refresh: The zone's refresh value (in seconds)
-    @type refresh: int
-    @ivar retry: The zone's retry value (in seconds)
-    @type retry: int
-    @ivar expire: The zone's expiration value (in seconds)
-    @type expire: int
-    @ivar minimum: The zone's negative caching time (in seconds, called
-    "minimum" for historical reasons)
-    @type minimum: int
-    @see: RFC 1035"""
+    # see: RFC 1035
 
     __slots__ = ['mname', 'rname', 'serial', 'refresh', 'retry', 'expire',
                  'minimum']
index 0c06607fc7fe51fd4aec9e90e264ec98d3e92ae8..8f8d0ca46300e2b9c3c149872e113b89270ffed5 100644 (file)
@@ -24,15 +24,9 @@ import dns.rdatatype
 
 class SSHFP(dns.rdata.Rdata):
 
-    """SSHFP record
+    """SSHFP record"""
 
-    @ivar algorithm: the algorithm
-    @type algorithm: int
-    @ivar fp_type: the digest type
-    @type fp_type: int
-    @ivar fingerprint: the fingerprint
-    @type fingerprint: string
-    @see: draft-ietf-secsh-dns-05.txt"""
+    # See RFC 4255
 
     __slots__ = ['algorithm', 'fp_type', 'fingerprint']
 
index ac2b3261504125d787e583f5371d4d1e60268bc4..7b39030f14fb9068f52cb2054ea980fef672be39 100644 (file)
@@ -24,17 +24,9 @@ import dns.rdatatype
 
 class TLSA(dns.rdata.Rdata):
 
-    """TLSA record
+    """TLSA record"""
 
-    @ivar usage: The certificate usage
-    @type usage: int
-    @ivar selector: The selector field
-    @type selector: int
-    @ivar mtype: The 'matching type' field
-    @type mtype: int
-    @ivar cert: The 'Certificate Association Data' field
-    @type cert: string
-    @see: RFC 6698"""
+    # see: RFC 6698
 
     __slots__ = ['usage', 'selector', 'mtype', 'cert']
 
index 4e9d93613cd0df80470e33a3a82cfdd83ca33a20..c37ecdf189e200674c8c91fbfe019708b9fe83dc 100644 (file)
@@ -25,15 +25,9 @@ import dns.name
 
 class URI(dns.rdata.Rdata):
 
-    """URI record
+    """URI record"""
 
-    @ivar priority: the priority
-    @type priority: int
-    @ivar weight: the weight
-    @type weight: int
-    @ivar target: the target host
-    @type target: dns.name.Name object
-    @see: draft-faltstrom-uri-13"""
+    # see RFC 7553
 
     __slots__ = ['priority', 'weight', 'target']
 
index dfae3d4d213e01ff4b49cb79e523c4af3263ca12..04c332061811cc62496bb4c3b8e369ccba1404b8 100644 (file)
@@ -24,11 +24,9 @@ import dns.tokenizer
 
 class X25(dns.rdata.Rdata):
 
-    """X25 record
+    """X25 record"""
 
-    @ivar address: the PSDN address
-    @type address: string
-    @see: RFC 1183"""
+    # see RFC 1183
 
     __slots__ = ['address']
 
index a489d3c7341a90d7013f517f6873f3dff0f6cf63..9476d47552cb2def94d54211a54656f5346a1f0f 100644 (file)
@@ -23,10 +23,7 @@ import dns.tokenizer
 
 class A(dns.rdata.Rdata):
 
-    """A record.
-
-    @ivar address: an IPv4 address
-    @type address: string (in the standard "dotted quad" format)"""
+    """A record."""
 
     __slots__ = ['address']
 
index 6eb1bdb8b844a94e732e7af89d34a562de05618e..658cc4b0006c9460aae4147e6d098d6980104e9a 100644 (file)
@@ -23,10 +23,7 @@ import dns.tokenizer
 
 class AAAA(dns.rdata.Rdata):
 
-    """AAAA record.
-
-    @ivar address: an IPv6 address
-    @type address: string (in the standard IPv6 format)"""
+    """AAAA record."""
 
     __slots__ = ['address']
 
index 443d7149923d67971072d096b4f86a559c020019..2481d62da68479f6ed0ed0be7878c709227b124e 100644 (file)
@@ -27,17 +27,7 @@ import dns.tokenizer
 
 class APLItem(object):
 
-    """An APL list item.
-
-    @ivar family: the address family (IANA address family registry)
-    @type family: int
-    @ivar negation: is this item negated?
-    @type negation: bool
-    @ivar address: the address
-    @type address: string
-    @ivar prefix: the prefix length
-    @type prefix: int
-    """
+    """An APL list item."""
 
     __slots__ = ['family', 'negation', 'address', 'prefix']
 
@@ -80,11 +70,9 @@ class APLItem(object):
 
 class APL(dns.rdata.Rdata):
 
-    """APL record.
+    """APL record."""
 
-    @ivar items: a list of APL items
-    @type items: list of APL_Item
-    @see: RFC 3123"""
+    # see: RFC 3123
 
     __slots__ = ['items']
 
@@ -99,7 +87,7 @@ class APL(dns.rdata.Rdata):
     def from_text(cls, rdclass, rdtype, tok, origin=None, relativize=True,
                   relativize_to=None):
         items = []
-        while 1:
+        while True:
             token = tok.get().unescape()
             if token.is_eol_or_eof():
                 break
index e9079f67b2990e6f31213803d2f1883181acfc2b..c5e526ce555fd15c564d18c1218c082e2eefbf33 100644 (file)
@@ -22,12 +22,9 @@ import dns.exception
 
 class DHCID(dns.rdata.Rdata):
 
-    """DHCID record
+    """DHCID record"""
 
-    @ivar data: the data (the content of the RR is opaque as far as the
-    DNS is concerned)
-    @type data: string
-    @see: RFC 4701"""
+    # see: RFC 4701
 
     __slots__ = ['data']
 
index 17955155dc17ed872d5a46aa23059732a690ffe0..9bba20836897dd506af8805f91c1365ae9aa75da 100644 (file)
@@ -26,19 +26,9 @@ import dns.name
 
 class IPSECKEY(dns.rdata.Rdata):
 
-    """IPSECKEY record
+    """IPSECKEY record"""
 
-    @ivar precedence: the precedence for this key data
-    @type precedence: int
-    @ivar gateway_type: the gateway type
-    @type gateway_type: int
-    @ivar algorithm: the algorithm to use
-    @type algorithm: int
-    @ivar gateway: the public key
-    @type gateway: None, IPv4 address, IPV6 address, or domain name
-    @ivar key: the public key
-    @type key: string
-    @see: RFC 4025"""
+    #see: RFC 4025
 
     __slots__ = ['precedence', 'gateway_type', 'algorithm', 'gateway', 'key']
 
index 6e3577af7aceee7ab7192ce08ae515630e7346ee..9668dce22359073ace90f9a0025d1a21e2075cb4 100644 (file)
@@ -37,21 +37,9 @@ def _sanitize(value):
 
 class NAPTR(dns.rdata.Rdata):
 
-    """NAPTR record
-
-    @ivar order: order
-    @type order: int
-    @ivar preference: preference
-    @type preference: int
-    @ivar flags: flags
-    @type flags: string
-    @ivar service: service
-    @type service: string
-    @ivar regexp: regular expression
-    @type regexp: string
-    @ivar replacement: replacement name
-    @type replacement: dns.name.Name object
-    @see: RFC 3403"""
+    """NAPTR record"""
+
+    # see: RFC 3403
 
     __slots__ = ['order', 'preference', 'flags', 'service', 'regexp',
                  'replacement']
index 8f4022be34e7269bdf579c4c587a4710541449af..d098b4d98e06ea16fa7b3597f254289b3c8f8f36 100644 (file)
@@ -24,11 +24,9 @@ import dns.tokenizer
 
 class NSAP(dns.rdata.Rdata):
 
-    """NSAP record.
+    """NSAP record."""
 
-    @ivar address: a NASP
-    @type address: string
-    @see: RFC 1706"""
+    # see: RFC 1706
 
     __slots__ = ['address']
 
index 8eaf684d883c0887da5096e4366baf5ae0297485..109a873e712694f08cbfb8b66deb9fa59cef8c37 100644 (file)
@@ -24,15 +24,9 @@ import dns.name
 
 class PX(dns.rdata.Rdata):
 
-    """PX record.
+    """PX record."""
 
-    @ivar preference: the preference value
-    @type preference: int
-    @ivar map822: the map822 name
-    @type map822: dns.name.Name object
-    @ivar mapx400: the mapx400 name
-    @type mapx400: dns.name.Name object
-    @see: RFC 2163"""
+    # see: RFC 2163
 
     __slots__ = ['preference', 'map822', 'mapx400']
 
index 2513d7728e329d7a0f1a82c6beff02e58615ef2a..f8598e9d4fa4aefc1cb675b079c8434552b90693 100644 (file)
@@ -24,17 +24,9 @@ import dns.name
 
 class SRV(dns.rdata.Rdata):
 
-    """SRV record
+    """SRV record"""
 
-    @ivar priority: the priority
-    @type priority: int
-    @ivar weight: the weight
-    @type weight: int
-    @ivar port: the port of the service
-    @type port: int
-    @ivar target: the target host
-    @type target: dns.name.Name object
-    @see: RFC 2782"""
+    # see: RFC 2782
 
     __slots__ = ['priority', 'weight', 'port', 'target']
 
index d7b748fcba5d21dcec6b0b5aa2afab3692e752ec..155f86be870f5a4bac96fde6311fb2ddf2d6f062 100644 (file)
@@ -27,15 +27,9 @@ _proto_udp = socket.getprotobyname('udp')
 
 class WKS(dns.rdata.Rdata):
 
-    """WKS record
+    """WKS record"""
 
-    @ivar address: the address
-    @type address: string
-    @ivar protocol: the protocol
-    @type protocol: int
-    @ivar bitmap: the bitmap
-    @type bitmap: string
-    @see: RFC 1035"""
+    # see: RFC 1035
 
     __slots__ = ['address', 'protocol', 'bitmap']
 
index 8929425f51196c7b9f4a4974f794d5042583e690..347610e259f23c149f6ff65675492c2bba6de680 100644 (file)
@@ -12,42 +12,34 @@ Rdata Subclass Reference
 .. autoclass:: dns.rdtypes.ANY.AFSDB.AFSDB
    :members:
 
-   .. attribute:: subtype
-
-   An ``int``, the AFSDB subtype
-
-   .. attribute:: hostname
-
-   A ``dns.name.Name``, the AFSDB hostname.
-
 .. autoclass:: dns.rdtypes.ANY.AVC.AVC
    :members:
 
    .. attribute:: strings
 
-   A tuple of ``bytes``, the list of strings.
+      A tuple of ``bytes``, the list of strings.
 
 .. autoclass:: dns.rdtypes.ANY.CAA.CAA
    :members:
 
    .. attribute:: flags
 
-   An ``int``, the flags
+      An ``int``, the flags
 
    .. attribute:: tag
                   
-   A ``bytes``, the tag
+      A ``bytes``, the tag
 
    .. attribute:: value
                   
-   A ``bytes``, the value
+      A ``bytes``, the value
 
 .. autoclass:: dns.rdtypes.ANY.CDNSKEY.CDNSKEY
    :members:
 
    .. attribute:: flags
 
-       An ``int``, the key's flags.
+      An ``int``, the key's flags.
 
    .. attribute:: protocol
 
@@ -85,41 +77,41 @@ Rdata Subclass Reference
 
    .. attribute:: certificate_type
 
-   An ``int``, the certificate type.
+      An ``int``, the certificate type.
 
    .. attribute:: key_tag
 
-   An ``int``, the key tag.
+      An ``int``, the key tag.
 
    .. attribute:: algorithm
 
-   An ``int``, the algorithm.                  
+      An ``int``, the algorithm.                  
 
    .. attribute:: certificate
 
-   A ``bytes``, the certificate or CRL.
+      A ``bytes``, the certificate or CRL.
 
 .. autoclass:: dns.rdtypes.ANY.CNAME.CNAME
    :members:
 
    .. attribute:: target
 
-   A ``dns.name.Name``, the target name.
+      A ``dns.name.Name``, the target name.
 
 .. autoclass:: dns.rdtypes.ANY.CSYNC.CSYNC
    :members:
 
-    .. attribute:: serial
+   .. attribute:: serial
 
-    An ``int``, the SOA serial number.
+      An ``int``, the SOA serial number.
 
-    .. attribute:: flags
+   .. attribute:: flags
 
-    An ``int``, the CSYNC flags.
+      An ``int``, the CSYNC flags.
 
-    .. attribute:: windows
+   .. attribute:: windows
 
-    A tuple of ``(int, bytes)`` tuples.
+      A tuple of ``(int, bytes)`` tuples.
 
 .. autoclass:: dns.rdtypes.ANY.DLV.DLV
    :members:
@@ -145,14 +137,14 @@ Rdata Subclass Reference
 
    .. attribute:: target
 
-   A ``dns.name.Name``, the target name.
+      A ``dns.name.Name``, the target name.
 
 .. autoclass:: dns.rdtypes.ANY.DNSKEY.DNSKEY
    :members:
 
    .. attribute:: flags
 
-       An ``int``, the key's flags.
+      An ``int``, the key's flags.
 
    .. attribute:: protocol
 
@@ -204,212 +196,518 @@ Rdata Subclass Reference
 
    .. attribute:: latitude
 
-   A ``bytes``, the latitude
+      A ``bytes``, the latitude
 
    .. attribute:: longitude
 
-   A ``bytes``, the longitude
+      A ``bytes``, the longitude
 
    .. attribute:: altitude
 
-   A ``bytes``, the altitude
+      A ``bytes``, the altitude
 
 .. autoclass:: dns.rdtypes.ANY.HINFO.HINFO
    :members:
 
    .. attribute:: cpu
 
-   A ``bytes``, the CPU type.
+      A ``bytes``, the CPU type.
 
    .. attribute:: os
 
-   A ``bytes``, the OS type.
+      A ``bytes``, the OS type.
 
 .. autoclass:: dns.rdtypes.ANY.HIP.HIP
    :members:
 
    .. attribute:: hit
 
-   A ``bytes``, the host identity tag.
+      A ``bytes``, the host identity tag.
 
    .. attribute:: algorithm
 
-   An ``int``, the public key cryptographic algorithm.
+      An ``int``, the public key cryptographic algorithm.
 
    .. attribute:: key
 
-   A ``bytes``, the public key.
+      A ``bytes``, the public key.
 
    .. attribute:: servers
 
-   A tuple of ``dns.name.Name`` objects, the rendezvous servers.
+      A tuple of ``dns.name.Name`` objects, the rendezvous servers.
 
 .. autoclass:: dns.rdtypes.ANY.ISDN.ISDN
    :members:
       
    .. attribute:: address
 
-   A ``bytes``, the ISDN address.
+      A ``bytes``, the ISDN address.
 
    .. attribute:: subaddress
 
-   A ``bytes`` the ISDN subaddress (or ``b''`` if not present).
+      A ``bytes`` the ISDN subaddress (or ``b''`` if not present).
 
 .. autoclass:: dns.rdtypes.ANY.LOC.LOC
    :members:
 
    .. attribute:: latitude
 
-   An ``(int, int, int, int, int)`` tuple specifying the degrees, minutes,
-   seconds, milliseconds, and sign of the latitude.
+      An ``(int, int, int, int, int)`` tuple specifying the degrees, minutes,
+      seconds, milliseconds, and sign of the latitude.
 
    .. attribute:: longitude
 
-   An ``(int, int, int, int, int)`` tuple specifying the degrees, minutes,
-   seconds, milliseconds, and sign of the longitude.
+      An ``(int, int, int, int, int)`` tuple specifying the degrees, minutes,
+      seconds, milliseconds, and sign of the longitude.
 
    .. attribute:: altitude
 
-   A ``float``, the altitude, in centimeters.
+      A ``float``, the altitude, in centimeters.
 
    .. attribute:: size
 
-   A ``float``, the size of the sphere, in centimeters.
+      A ``float``, the size of the sphere, in centimeters.
 
    .. attribute:: horizontal_precision
 
-   A ``float``, the horizontal precision, in centimeters.
+      A ``float``, the horizontal precision, in centimeters.
 
    .. attribute:: vertical_precision
 
-   A ``float``, the vertical precision, in centimeters.
+      A ``float``, the vertical precision, in centimeters.
 
 .. autoclass:: dns.rdtypes.ANY.MX.MX
    :members:
 
    .. attribute:: preference
 
-   An ``int``, the preference value
+      An ``int``, the preference value.
 
    .. attribute:: exchange
 
-   A ``dns.name.Name``, the exchange name.
+      A ``dns.name.Name``, the exchange name.
 
 .. autoclass:: dns.rdtypes.ANY.NINFO.NINFO
 
    .. attribute:: strings
 
-   A tuple of ``bytes``, the list of strings.
+      A tuple of ``bytes``, the list of strings.
 
 .. autoclass:: dns.rdtypes.ANY.NS.NS
    :members:
 
    .. attribute:: target
 
-   A ``dns.name.Name``, the target name.
+      A ``dns.name.Name``, the target name.
 
-.. autoclass:: dns.rdtypes.ANY.NSEC
+.. autoclass:: dns.rdtypes.ANY.NSEC.NSEC
    :members:
 
-.. autoclass:: dns.rdtypes.ANY.NSEC3
+   .. attribute:: next
+
+      A ``dns.name.Name``, the next name
+
+   .. attribute:: windows
+
+      A tuple of ``(int, bytes)`` tuples.
+
+.. autoclass:: dns.rdtypes.ANY.NSEC3.NSEC3
    :members:
 
-.. autoclass:: dns.rdtypes.ANY.NSEC3PARAM
+   .. attribute:: algorithm:
+
+      An ``int``, the algorithm used for the hash.
+
+   .. attribute:: flags:
+
+      An ``int``, the flags.
+
+   .. attribute:: interations:
+
+      An ``int``, the number of iterations.
+
+   .. attribute:: salt
+
+      A ``bytes``, the salt.
+
+   .. attribute:: next
+
+      A ``dns.name.Name``, the next name hash.
+
+   .. attribute:: windows
+
+      A tuple of ``(int, bytes)`` tuples.
+
+.. autoclass:: dns.rdtypes.ANY.NSEC3PARAM.NSEC3PARAM
    :members:
 
-.. autoclass:: dns.rdtypes.ANY.OPENPGPKEY
+   .. attribute:: algorithm:
+
+      An ``int``, the algorithm used for the hash.
+
+   .. attribute:: flags:
+
+      An ``int``, the flags.
+
+   .. attribute:: interations:
+
+      An ``int``, the number of iterations.
+
+   .. attribute:: salt
+
+      A ``bytes``, the salt.
+
+.. autoclass:: dns.rdtypes.ANY.OPENPGPKEY.OPENPGPKEY
    :members:
 
+   .. attribute:: key
+
+      A ``bytes``, the key.
+
 .. autoclass:: dns.rdtypes.ANY.PTR.PTR
    :members:
 
    .. attribute:: target
 
-   A ``dns.name.Name``, the target name.
+      A ``dns.name.Name``, the target name.
 
-.. autoclass:: dns.rdtypes.ANY.RP
+.. autoclass:: dns.rdtypes.ANY.RP.RP
    :members:
 
-.. autoclass:: dns.rdtypes.ANY.RRSIG
+   .. attribute:: mbox
+
+      A ``dns.name.Name``, the responsible person's mailbox.
+
+   .. attribute:: txt
+
+      A ``dns.name.Name``, the owner name of a node with TXT records,
+      or the root name if no TXT records are associated with this RP.
+
+.. autoclass:: dns.rdtypes.ANY.RRSIG.RRSIG
    :members:
 
+   .. attribute:: type_covered
+
+      An ``int``, the rdata type this signature covers.
+
+   .. attribute:: algorithm
+
+      An ``int``, the algorithm used for the signature.
+
+   .. attribute:: labels
+
+      An ``int``, the number of labels.
+
+   .. attribute:: original_ttl
+
+      An ``int``, the original TTL.
+
+   .. attribute:: expiration
+
+      An `int`, the signature expiration time.
+
+   .. attribute:: inception
+
+      An `int`, the signature inception time.
+
+   .. attribute:: key_tag
+
+      An `int`, the key tag.
+
+   .. attribute:: signer
+
+      A ``dns.name.Name``, the signer.
+
+   .. attribute:: signature
+
+      A ``bytes``, the signature.
+
 .. autoclass:: dns.rdtypes.ANY.RT.RT
    :members:
 
    .. attribute:: preference
 
-   An ``int``, the preference value
+      An ``int``, the preference value.
 
    .. attribute:: exchange
 
-   A ``dns.name.Name``, the exchange name.
+      A ``dns.name.Name``, the exchange name.
       
-.. autoclass:: dns.rdtypes.ANY.SOA
+.. autoclass:: dns.rdtypes.ANY.SOA.SOA
    :members:
 
+   .. attribute:: mname
+
+      A ``dns.name.Name``, the MNAME (master name).
+
+   .. attribute:: rname
+
+      A ``dns.name.Name``, the RNAME (responsible name).
+
+   .. attribute:: serial
+
+      An ``int``, the zone's serial number.
+      
+   .. attribute:: refresh
+
+      An ``int``, the zone's refresh value (in seconds).
+
+   .. attribute:: retry
+
+      An ``int``, the zone's retry value (in seconds).
+
+   .. attribute:: expire
+
+      An ``int``, the zone's expiration value (in seconds).
+
+   .. attribute:: minimum
+
+      An ``int``, the zone's negative caching time (in seconds, called
+      "minimum" for historical reasons).
+
 .. autoclass:: dns.rdtypes.ANY.SPF.SPF
    :members:
 
    .. attribute:: strings
 
-   A tuple of ``bytes``, the list of strings.
+      A tuple of ``bytes``, the list of strings.
 
-.. autoclass:: dns.rdtypes.ANY.SSHFP
+.. autoclass:: dns.rdtypes.ANY.SSHFP.SSHFP
    :members:
 
-.. autoclass:: dns.rdtypes.ANY.TLSA
+   .. attribute:: algorithm
+
+      An ``int``, the algorithm.
+
+   .. attribute:: fp_type
+
+      An ``int``, the digest type.
+      
+   .. attribute:: fingerprint
+
+      A ``bytes``, the fingerprint.
+    
+.. autoclass:: dns.rdtypes.ANY.TLSA.TLSA
    :members:
 
+   .. attribute:: usage
+
+      An ``int``, the certificate usage.
+
+   .. attribute:: selector
+
+      An ``int``, the selector.
+
+   .. attribute:: mtype
+
+      An ``int``, the matching type.
+
+   .. attribute:: cert
+
+      A ``bytes``, the certificate association data.
+
 .. autoclass:: dns.rdtypes.ANY.TXT.TXT
    :members:
 
    .. attribute:: strings
 
-   A tuple of ``bytes``, the list of strings.
+      A tuple of ``bytes``, the list of strings.
 
-.. autoclass:: dns.rdtypes.ANY.URI
+.. autoclass:: dns.rdtypes.ANY.URI.URI
    :members:
 
-.. autoclass:: dns.rdtypes.ANY.X25
+   .. attribute:: priorty
+
+      An ``int``, the priority.
+
+   .. attribute:: weight
+
+      An ``int``, the weight.
+
+   .. attribute:: target
+
+      A ``dns.name.Name``, the target.
+
+.. autoclass:: dns.rdtypes.ANY.X25.X25
    :members:
 
-.. autoclass:: dns.rdtypes.IN.A
+   .. attribute:: address
+
+      A ``bytes``, the PSDN address.
+
+.. autoclass:: dns.rdtypes.IN.A.A
    :members:
 
-.. autoclass:: dns.rdtypes.IN.AAAA
+   .. attribute:: address
+
+      A ``str``, an IPv4 address in the standard "dotted quad" text format.
+
+.. autoclass:: dns.rdtypes.IN.AAAA.AAAA
    :members:
 
-.. autoclass:: dns.rdtypes.IN.APL
+   .. attribute:: address
+
+      A ``str``, an IPv6 address in the standard text format.
+
+.. autoclass:: dns.rdtypes.IN.APL.APLItem
    :members:
 
-.. autoclass:: dns.rdtypes.IN.DHCID
+   .. attribute:: family
+
+      An ``int``, the address family (in the IANA address family registry).
+
+   .. attribute:: negation
+
+      A ``bool``, is this item negated?
+
+   .. attribute:: address
+
+      A ``str``, the address.
+
+   .. attribute:: prefix
+
+      An ``int``, the prefix length.
+
+.. autoclass:: dns.rdtypes.IN.APL.APL
    :members:
 
-.. autoclass:: dns.rdtypes.IN.IPSECKEY
+   .. attribute:: items
+
+      A tuple of ``dns.rdtypes.IN.APL.APLItem``.
+
+.. autoclass:: dns.rdtypes.IN.DHCID.DHCID
    :members:
 
-.. autoclass:: dns.rdtypes.IN.KX
+   .. attribute:: data
+
+      A ``bytes``, the data (the content of the RR is opaque as far as
+      the DNS is concerned).
+
+.. autoclass:: dns.rdtypes.IN.IPSECKEY.IPSECKEY
+   :members:
+
+   .. attribute:: precedence
+
+      An ``int``, the precedence for the key data.
+
+   .. attribute:: prefix
+
+      An ``int``, the prefix length.
+
+   .. attribute:: gateway_type
+
+      An ``int``, the gateway type.
+
+   .. attribute:: algorithm
+
+      An ``int``, the algorithm to use.
+
+   .. attribute:: gateway
+
+      The gateway.  This value may be ``None``, a ``str` with an IPv4 or
+      IPV6 address, or a ``dns.name.Name``.
+       
+   .. attribute:: key
+
+      A ``bytes``, the public key.
+
+.. autoclass:: dns.rdtypes.IN.KX.KX
    :members:
 
-.. autoclass:: dns.rdtypes.IN.NAPTR
+   .. attribute:: preference
+
+      An ``int``, the preference value.
+
+   .. attribute:: exchange
+
+      A ``dns.name.Name``, the exchange name.
+
+.. autoclass:: dns.rdtypes.IN.NAPTR.NAPTR
    :members:
 
-.. autoclass:: dns.rdtypes.IN.NSAP
+   .. attribute:: order
+
+      An ``int``, the order.
+
+   .. attribute:: preference
+
+      An ``int``, the preference.
+
+   .. attribute:: flags
+                  
+      A ``bytes``, the flags.
+
+   .. attribute:: service
+
+      A ``bytes``, the service.
+
+   .. attribute:: regexp
+
+      A ``bytes``, the regular expression.
+
+   .. attribute:: replacement
+
+      A ``dns.name.Name``, the replacement name.
+
+.. autoclass:: dns.rdtypes.IN.NSAP.NSAP
    :members:
 
+   .. attribute:: address
+
+      A ``bytes``, a NSAP address.
+
 .. autoclass:: dns.rdtypes.IN.NSAP_PTR.NSAP_PTR
    :members:
 
    .. attribute:: target
 
-   A ``dns.name.Name``, the target name.
+      A ``dns.name.Name``, the target name.
 
-.. autoclass:: dns.rdtypes.IN.PX
+.. autoclass:: dns.rdtypes.IN.PX.PX
    :members:
 
-.. autoclass:: dns.rdtypes.IN.SRV
+   .. attribute:: preference
+
+      An ``int``, the preference value.
+
+   .. attribute:: map822
+
+      A ``dns.name.Name``, the map822 name.
+
+   .. attribute:: mapx400
+
+      A ``dns.name.Name``, the mapx400 name.
+
+.. autoclass:: dns.rdtypes.IN.SRV.SRV
    :members:
 
-.. autoclass:: dns.rdtypes.IN.WKS
+   .. attribute:: priority
+
+      An ``int``, the priority.
+
+   .. attribute:: weight
+
+      An ``int``, the weight.
+
+   .. attribute:: port
+
+      An ``int``, the port.
+
+   .. attribute:: target
+
+      A ``dns.name.Name``, the target host.
+
+.. autoclass:: dns.rdtypes.IN.WKS.WKS
    :members:
 
+   .. attribute:: address
+
+      A ``str``, the address.
+
+   .. attribute:: protocol
+
+      An ``int``, the protocol.
+
+   .. attribute:: bitmap
+
+      A ``bytes``, the bitmap.