def create(source_type, name, parameters = {}, resources = [], auth = [], options = {})
      fail BadParametersError, 'source_type and name are required' if source_type.nil? || name.nil?
      params = {
        :source_type => source_type,
        :name => name
      }
      params.merge!(options) unless options.empty?
      params.merge!(
        { :auth => auth.is_a?(String) ? auth : MultiJson.dump(auth) }
      ) unless auth.empty?
      params.merge!(
        { :parameters => parameters.is_a?(String) ? parameters : MultiJson.dump(parameters) }
      ) unless parameters.empty?
      params.merge!(
        { :resources => resources.is_a?(String) ? resources : MultiJson.dump(resources) }
      ) if resources.length > 0
      DataSift.request(:POST, 'source/create', @config, params)
    end
def create(source_type, name, parameters = {}, resources = [], auth = [], options = {})
      fail BadParametersError, 'source_type and name are required' if source_type.nil? || name.nil?
      params = {
        :source_type => source_type,
        :name => name
      }
      params.merge!(options) unless options.empty?
      params.merge!(
        { :auth => auth.is_a?(String) ? auth : MultiJson.dump(auth) }
      ) unless auth.empty?
      params.merge!(
        { :parameters => parameters.is_a?(String) ? parameters : MultiJson.dump(parameters) }
      ) unless parameters.empty?
      params.merge!(
        { :resources => resources.is_a?(String) ? resources : MultiJson.dump(resources) }
      ) if resources.length > 0
      DataSift.request(:POST, 'source/create', @config, params)
    end
Creates a new managed source

 @param source_type [String] Type of Managed Source you are creating. e.g.
   facebook_page, instagram, etc
 @param name [String] Name of this Managed Source
 @param parameters [Hash] Source-specific configuration parameters
 @param resources [Array] Array of source-specific resources
 @param auth [Array] Array of source-specific auth credentials