5e83854caf68c02833e9229146a3ad41e1b54471
[zonemaker.git] / zonemaker / zone.py
1 import ipaddress
2
3 second = 1
4 minute = 60*second
5 hour = 60*minute
6 day = 24*hour
7
8 class Address:
9     def __init__(self, IPv4 = None, IPv6 = None):
10         self._IPv4 = None if IPv4 is None else ipaddress.IPv4Address(IPv4)
11         self._IPv6 = None if IPv6 is None else ipaddress.IPv6Address(IPv6)
12     
13     def IPv4(self):
14         return Address(IPv4 = self._IPv4)
15     
16     def IPv6(self):
17         return Address(IPv6 = self._IPv6)
18
19 class Name:
20     def __init__(self, address = None, MX = None, TCP = None, UDP = None):
21         self._address = address
22
23 class Service:
24     def __init__(self, SRV = None, TLSA=None):
25         self._SRV = SRV
26         self._TLSA = TLSA
27
28 class CName:
29     def __init__(self, name):
30         self._name = name
31
32 class Delegation():
33     def __init__(self, NS, DS = None):
34         pass
35
36 class Zone:
37     def __init__(self, name, mail, NS,
38                  secondary_refresh, secondary_retry, secondary_discard,
39                  NX_TTL = None, A_TTL = None, other_TTL = None,
40                  domains = []):
41         assert other_TTL is not None
42         self._NX_TTL = other_TTL if NX_TTL is None else NX_TTL
43         self._A_TTL = other_TTL if A_TTL is None else A_TTL
44         self._other_TTL = other_TTL
45     
46     def write(self, file):
47         raise NotImplementedError()