title: Puppet Error: You cannot specify more than one of content, source, target
body: <p>I am trying to create one file and one symbolic link via Puppet (with Hiera).  I'm running on Ubuntu 16.04, and I am using all latest modules.
  The file is called "a" and the link is called "b".  These files are not related directly.</p>
  
  <p>I have a init.pp file for the node:</p>
  
  <pre><code>define hiera::files (
      $ensure,
      $content= "",
      $target="/./.",
      $mode = "",
      $owner = "root",
      $force = "false" ) {
  
    file { $title:
      ensure  =&gt; $ensure,
      owner   =&gt; $owner,
      force   =&gt; $force,
      content =&gt; $content,
      mode    =&gt; $mode,
      target  =&gt; $target,
    }
  }
  
  create_resources('hiera::files', hiera_hash('files', {}))
  
  node "default" {
    hiera_include('classes')
  }
  </code></pre>
  
  <p>There is also a node.yaml file containing the corresponding data:</p>
  
  <pre><code>files:
     /etc/a.txt:
     ensure: "present"
     mode: "2770"
     owner: "simon"
     content: "[d] \n type = sss \n resource = samba_1"
  
  /etc/b:
     ensure: "link"
     target: "/usr/share/b"
     mode: "777"
  </code></pre>
  
  <p>I have tried other variations, but I always get an error that I cannot specify more than one of <code>content</code>, <code>source</code>, <code>target</code>. Is it possible to have both?  Not for the same file, but for separate files like I am trying to do?</p>