You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: param.rb
    path of file: ./repos/puppet/lib/puppet/parser/resource
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

# The parameters we stick in Resources.
class Puppet::Parser::Resource::Param
  include Puppet
    
  def initialize(name: nil, value: nil, source: nil, line: nil, file: nil, add: nil)
    @value = value
    @source = source
    @line = line
    @file = file
    @add = add

    unless name
      # This must happen after file and line are set to have them reported in the error
      self.fail(Puppet::ResourceError, "'name' is a required option for #{self.class}")
    end