summaryrefslogtreecommitdiff
path: root/lib/puppet/type/dns_record.rb
blob: 54baf149814739122a1895609f34cb910ebe699e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Puppet::Type.newtype(:dns_record) do
  @doc = %q{
  }

  ensurable

  newparam(:zone) do
    desc "Zone which this record belongs to"
    isrequired
  end

  newparam(:name, :namevar => true) do
    desc "Hello"
  end

  newproperty(:type) do
    desc "DNS Record type, such as A, or TXT"
    # TODO keep this in sync with provider
    newvalues(:A, :AAAA, :CNAME, :PTR, :MX, :TXT)
    isrequired
  end

  # TODO why isn't this the name var?
  newproperty(:key) do
    desc "DNS Name"
    isrequired
  end

  newproperty(:value) do
    desc "Record contents, valid value depend on type"
    isrequired
  end

  newproperty(:ttl) do
    desc "Optional TTL for record"
    # TODO How does newvalues work with an optional parameter?
    # newvalues /([0-9]+[SsMmHhDdWw]?)+/
  end

  autonotify('dns_zone') { [ parameter(:zone).value ] }

end