propellor-5.6.0: 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 # 
Instance details

Defined in Propellor.Types.Dns

Methods

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

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

Ord IPAddr Source # 
Instance details

Defined in Propellor.Types.Dns

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 # 
Instance details

Defined in Propellor.Types.Dns

Methods

readsPrec :: Int -> ReadS IPAddr

readList :: ReadS [IPAddr]

readPrec :: ReadPrec IPAddr

readListPrec :: ReadPrec [IPAddr]

Show IPAddr Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

showsPrec :: Int -> IPAddr -> ShowS

show :: IPAddr -> String

showList :: [IPAddr] -> ShowS

ConfigurableValue IPAddr Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

val :: IPAddr -> String Source #

newtype AliasesInfo Source #

Constructors

AliasesInfo (Set HostName) 
Instances
Eq AliasesInfo Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

(==) :: AliasesInfo -> AliasesInfo -> Bool

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

Ord AliasesInfo Source # 
Instance details

Defined in Propellor.Types.Dns

Show AliasesInfo Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

showsPrec :: Int -> AliasesInfo -> ShowS

show :: AliasesInfo -> String

showList :: [AliasesInfo] -> ShowS

Semigroup AliasesInfo Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

(<>) :: AliasesInfo -> AliasesInfo -> AliasesInfo #

sconcat :: NonEmpty AliasesInfo -> AliasesInfo

stimes :: Integral b => b -> AliasesInfo -> AliasesInfo

Monoid AliasesInfo Source # 
Instance details

Defined in Propellor.Types.Dns

IsInfo AliasesInfo Source # 
Instance details

Defined in Propellor.Types.Dns

newtype DnsInfoPropagated Source #

Use this for DNS Info that should propagate from a container to a host. For example, this can be used for CNAME to make aliases of the containers in the host be reflected in the DNS.

Constructors

DnsInfoPropagated 
Instances
Eq DnsInfoPropagated Source # 
Instance details

Defined in Propellor.Types.Dns

Ord DnsInfoPropagated Source # 
Instance details

Defined in Propellor.Types.Dns

Show DnsInfoPropagated Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

showsPrec :: Int -> DnsInfoPropagated -> ShowS

show :: DnsInfoPropagated -> String

showList :: [DnsInfoPropagated] -> ShowS

Semigroup DnsInfoPropagated Source # 
Instance details

Defined in Propellor.Types.Dns

Monoid DnsInfoPropagated Source # 
Instance details

Defined in Propellor.Types.Dns

IsInfo DnsInfoPropagated Source # 
Instance details

Defined in Propellor.Types.Dns

newtype DnsInfoUnpropagated Source #

Use this for DNS Info that should not propagate from a container to a host. For example, an IP address of a container should not influence the host.

Instances
Eq DnsInfoUnpropagated Source # 
Instance details

Defined in Propellor.Types.Dns

Ord DnsInfoUnpropagated Source # 
Instance details

Defined in Propellor.Types.Dns

Show DnsInfoUnpropagated Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

showsPrec :: Int -> DnsInfoUnpropagated -> ShowS

show :: DnsInfoUnpropagated -> String

showList :: [DnsInfoUnpropagated] -> ShowS

Semigroup DnsInfoUnpropagated Source # 
Instance details

Defined in Propellor.Types.Dns

Monoid DnsInfoUnpropagated Source # 
Instance details

Defined in Propellor.Types.Dns

IsInfo DnsInfoUnpropagated Source # 
Instance details

Defined in Propellor.Types.Dns

getDnsInfo :: Info -> Set Record Source #

Get all DNS Info.

data NamedConf Source #

Represents a bind 9 named.conf file.

Constructors

NamedConf 
Instances
Eq NamedConf Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

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

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

Ord NamedConf Source # 
Instance details

Defined in Propellor.Types.Dns

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 # 
Instance details

Defined in Propellor.Types.Dns

Methods

showsPrec :: Int -> NamedConf -> ShowS

show :: NamedConf -> String

showList :: [NamedConf] -> ShowS

data DnsServerType Source #

Constructors

Master 
Secondary 
Instances
Eq DnsServerType Source # 
Instance details

Defined in Propellor.Types.Dns

Ord DnsServerType Source # 
Instance details

Defined in Propellor.Types.Dns

Show DnsServerType Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

showsPrec :: Int -> DnsServerType -> ShowS

show :: DnsServerType -> String

showList :: [DnsServerType] -> ShowS

data Zone Source #

Represents a bind 9 zone file.

Constructors

Zone 

Fields

Instances
Eq Zone Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

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

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

Read Zone Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

readsPrec :: Int -> ReadS Zone

readList :: ReadS [Zone]

readPrec :: ReadPrec Zone

readListPrec :: ReadPrec [Zone]

Show Zone Source # 
Instance details

Defined in Propellor.Types.Dns

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 # 
Instance details

Defined in Propellor.Types.Dns

Methods

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

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

Read SOA Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

readsPrec :: Int -> ReadS SOA

readList :: ReadS [SOA]

readPrec :: ReadPrec SOA

readListPrec :: ReadPrec [SOA]

Show SOA Source # 
Instance details

Defined in Propellor.Types.Dns

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 # 
Instance details

Defined in Propellor.Types.Dns

Methods

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

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

Ord Record Source # 
Instance details

Defined in Propellor.Types.Dns

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 # 
Instance details

Defined in Propellor.Types.Dns

Methods

readsPrec :: Int -> ReadS Record

readList :: ReadS [Record]

readPrec :: ReadPrec Record

readListPrec :: ReadPrec [Record]

Show Record Source # 
Instance details

Defined in Propellor.Types.Dns

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 # 
Instance details

Defined in Propellor.Types.Dns

Methods

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

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

Ord BindDomain Source # 
Instance details

Defined in Propellor.Types.Dns

Read BindDomain Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

readsPrec :: Int -> ReadS BindDomain

readList :: ReadS [BindDomain]

readPrec :: ReadPrec BindDomain

readListPrec :: ReadPrec [BindDomain]

Show BindDomain Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

showsPrec :: Int -> BindDomain -> ShowS

show :: BindDomain -> String

showList :: [BindDomain] -> ShowS

newtype NamedConfMap Source #

Constructors

NamedConfMap (Map Domain NamedConf) 
Instances
Eq NamedConfMap Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

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

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

Ord NamedConfMap Source # 
Instance details

Defined in Propellor.Types.Dns

Show NamedConfMap Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

showsPrec :: Int -> NamedConfMap -> ShowS

show :: NamedConfMap -> String

showList :: [NamedConfMap] -> ShowS

Semigroup 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.

Instance details

Defined in Propellor.Types.Dns

Monoid NamedConfMap Source # 
Instance details

Defined in Propellor.Types.Dns

Empty NamedConfMap Source # 
Instance details

Defined in Propellor.Types.Dns

Methods

isEmpty :: NamedConfMap -> Bool Source #

IsInfo NamedConfMap Source # 
Instance details

Defined in Propellor.Types.Dns