propellor-3.2.3: property-based host configuration management in haskell

Safe HaskellNone
LanguageHaskell98

Propellor.Types.Dns

Synopsis

Documentation

type Domain = String Source #

data IPAddr Source #

Constructors

IPv4 String 
IPv6 String 

Instances

Eq IPAddr Source # 

Methods

(==) :: IPAddr -> IPAddr -> Bool

(/=) :: IPAddr -> IPAddr -> Bool

Ord IPAddr Source # 

Methods

compare :: IPAddr -> IPAddr -> Ordering

(<) :: IPAddr -> IPAddr -> Bool

(<=) :: IPAddr -> IPAddr -> Bool

(>) :: IPAddr -> IPAddr -> Bool

(>=) :: IPAddr -> IPAddr -> Bool

max :: IPAddr -> IPAddr -> IPAddr

min :: IPAddr -> IPAddr -> IPAddr

Read IPAddr Source # 

Methods

readsPrec :: Int -> ReadS IPAddr

readList :: ReadS [IPAddr]

readPrec :: ReadPrec IPAddr

readListPrec :: ReadPrec [IPAddr]

Show IPAddr Source # 

Methods

showsPrec :: Int -> IPAddr -> ShowS

show :: IPAddr -> String

showList :: [IPAddr] -> ShowS

fromIPAddr :: IPAddr -> String Source #

newtype DnsInfo Source #

Constructors

DnsInfo 

Fields

Instances

Eq DnsInfo Source # 

Methods

(==) :: DnsInfo -> DnsInfo -> Bool

(/=) :: DnsInfo -> DnsInfo -> Bool

Ord DnsInfo Source # 

Methods

compare :: DnsInfo -> DnsInfo -> Ordering

(<) :: DnsInfo -> DnsInfo -> Bool

(<=) :: DnsInfo -> DnsInfo -> Bool

(>) :: DnsInfo -> DnsInfo -> Bool

(>=) :: DnsInfo -> DnsInfo -> Bool

max :: DnsInfo -> DnsInfo -> DnsInfo

min :: DnsInfo -> DnsInfo -> DnsInfo

Show DnsInfo Source # 

Methods

showsPrec :: Int -> DnsInfo -> ShowS

show :: DnsInfo -> String

showList :: [DnsInfo] -> ShowS

Monoid DnsInfo Source # 
IsInfo DnsInfo Source #

DNS Info is propagated, so that eg, aliases of a container are reflected in the dns for the host where it runs.

Methods

propagateInfo :: DnsInfo -> Bool Source #

data NamedConf Source #

Represents a bind 9 named.conf file.

Constructors

NamedConf 

Instances

Eq NamedConf Source # 

Methods

(==) :: NamedConf -> NamedConf -> Bool

(/=) :: NamedConf -> NamedConf -> Bool

Ord NamedConf Source # 

Methods

compare :: NamedConf -> NamedConf -> Ordering

(<) :: NamedConf -> NamedConf -> Bool

(<=) :: NamedConf -> NamedConf -> Bool

(>) :: NamedConf -> NamedConf -> Bool

(>=) :: NamedConf -> NamedConf -> Bool

max :: NamedConf -> NamedConf -> NamedConf

min :: NamedConf -> NamedConf -> NamedConf

Show NamedConf Source # 

Methods

showsPrec :: Int -> NamedConf -> ShowS

show :: NamedConf -> String

showList :: [NamedConf] -> ShowS

data Zone Source #

Represents a bind 9 zone file.

Constructors

Zone 

Fields

Instances

Eq Zone Source # 

Methods

(==) :: Zone -> Zone -> Bool

(/=) :: Zone -> Zone -> Bool

Read Zone Source # 

Methods

readsPrec :: Int -> ReadS Zone

readList :: ReadS [Zone]

readPrec :: ReadPrec Zone

readListPrec :: ReadPrec [Zone]

Show Zone Source # 

Methods

showsPrec :: Int -> Zone -> ShowS

show :: Zone -> String

showList :: [Zone] -> ShowS

data SOA Source #

Every domain has a SOA record, which is big and complicated.

Constructors

SOA 

Fields

Instances

Eq SOA Source # 

Methods

(==) :: SOA -> SOA -> Bool

(/=) :: SOA -> SOA -> Bool

Read SOA Source # 

Methods

readsPrec :: Int -> ReadS SOA

readList :: ReadS [SOA]

readPrec :: ReadPrec SOA

readListPrec :: ReadPrec [SOA]

Show SOA Source # 

Methods

showsPrec :: Int -> SOA -> ShowS

show :: SOA -> String

showList :: [SOA] -> ShowS

data Record Source #

Types of DNS records.

This is not a complete list, more can be added.

Constructors

Address IPAddr 
CNAME BindDomain 
MX Int BindDomain 
NS BindDomain 
TXT String 
SRV Word16 Word16 Word16 BindDomain 
SSHFP Int Int String 
INCLUDE FilePath 
PTR ReverseIP 

Instances

Eq Record Source # 

Methods

(==) :: Record -> Record -> Bool

(/=) :: Record -> Record -> Bool

Ord Record Source # 

Methods

compare :: Record -> Record -> Ordering

(<) :: Record -> Record -> Bool

(<=) :: Record -> Record -> Bool

(>) :: Record -> Record -> Bool

(>=) :: Record -> Record -> Bool

max :: Record -> Record -> Record

min :: Record -> Record -> Record

Read Record Source # 

Methods

readsPrec :: Int -> ReadS Record

readList :: ReadS [Record]

readPrec :: ReadPrec Record

readListPrec :: ReadPrec [Record]

Show Record Source # 

Methods

showsPrec :: Int -> Record -> ShowS

show :: Record -> String

showList :: [Record] -> ShowS

type ReverseIP = String Source #

An in-addr.arpa record corresponding to an IPAddr.

canonicalIP :: IPAddr -> IPAddr Source #

Converts an IP address (particularly IPv6) to canonical, fully expanded form.

type SerialNumber = Word32 Source #

Bind serial numbers are unsigned, 32 bit integers.

data BindDomain Source #

Domains in the zone file must end with a period if they are absolute.

Let's use a type to keep absolute domains straight from relative domains.

The RootDomain refers to the top level of the domain, so can be used to add nameservers, MX's, etc to a domain.

Instances

Eq BindDomain Source # 

Methods

(==) :: BindDomain -> BindDomain -> Bool

(/=) :: BindDomain -> BindDomain -> Bool

Ord BindDomain Source # 
Read BindDomain Source # 

Methods

readsPrec :: Int -> ReadS BindDomain

readList :: ReadS [BindDomain]

readPrec :: ReadPrec BindDomain

readListPrec :: ReadPrec [BindDomain]

Show BindDomain Source # 

Methods

showsPrec :: Int -> BindDomain -> ShowS

show :: BindDomain -> String

showList :: [BindDomain] -> ShowS

newtype NamedConfMap Source #

Constructors

NamedConfMap (Map Domain NamedConf) 

Instances

Eq NamedConfMap Source # 

Methods

(==) :: NamedConfMap -> NamedConfMap -> Bool

(/=) :: NamedConfMap -> NamedConfMap -> Bool

Ord NamedConfMap Source # 
Show NamedConfMap Source # 

Methods

showsPrec :: Int -> NamedConfMap -> ShowS

show :: NamedConfMap -> String

showList :: [NamedConfMap] -> ShowS

Monoid NamedConfMap Source #

Adding a Master NamedConf stanza for a particulr domain always overrides an existing Secondary stanza for that domain, while a Secondary stanza is only added when there is no existing Master stanza.

IsInfo NamedConfMap Source # 
Empty NamedConfMap Source # 

Methods

isEmpty :: NamedConfMap -> Bool Source #