type Puppet::Resource::Param = Object[{
  attributes => {
    type => Type,
    name => String[1],
    name_var => { type => Boolean, value => false }
  },
  equality => [name],
}]


type Puppet::Resource::ResourceType3 = Object[{
  attributes => {
    name           => String[1],
    properties     => { type => Array[Puppet::Resource::Param], value = []},
    parameters     => { type => Array[Puppet::Resource::Param], value = []},
    title_patterns => { type => Optional[Hash[Regexp, Array[String[1]]], value => nil },
    isomorphic     => { type => Boolean, value => true },
    capability     => { type => Boolean, value => false },
  },
  equality => [name],
}]

