# File lib/mcollective/ddl/base.rb, line 146
      def input(argument, properties)
        raise "Cannot figure out what entity input #{argument} belongs to" unless @current_entity

        entity = @current_entity

        [:prompt, :description, :type].each do |arg|
          raise "Input needs a :#{arg} property" unless properties.include?(arg)
        end

        @entities[entity][:input][argument] = {:prompt => properties[:prompt],
                                               :description => properties[:description],
                                               :type => properties[:type],
                                               :default => properties[:default],
                                               :optional => properties[:optional]}

        case properties[:type]
          when :string
            raise "Input type :string needs a :validation argument" unless properties.include?(:validation)
            raise "Input type :string needs a :maxlength argument" unless properties.include?(:maxlength)

            @entities[entity][:input][argument][:validation] = properties[:validation]
            @entities[entity][:input][argument][:maxlength] = properties[:maxlength]

          when :list
            raise "Input type :list needs a :list argument" unless properties.include?(:list)

            @entities[entity][:input][argument][:list] = properties[:list]
        end
      end