def search(entity, query, options = {})
      raise ArgumentError unless options.is_a?(Hash)
      raw_search(entity, body(query, options), options[:deleted] || false)
    end
def search(entity, query, options = {})
      raise ArgumentError unless options.is_a?(Hash)
      raw_search(entity, body(query, options), options[:deleted] || false)
    end
POST /api/v2/search/entity
 POST /api/v2/search/entity/deleted
 Run a search query. This single method maps to many API paths.
 It is a wrapper around #raw_search() for common, single
 key-value searches. If you need to do more complicated things,
 use #raw_search().

 @param entity [String, Symbol] the type of Wavefront object
   you wish to search. e.g. :alert, :dashboard
 @param query [Array, Hash] A single hash, or array of hashes,
 containing the following keys:
   key [String] the field on which to search
   value [String] what to search for
   matchingMethod [String] the method to match values. Defaults
     to 'CONTAINS'. Must be one of CONTAINS, STARTSWITH, EXACT,
     TAGPATH
   If an array of hashes is supplied, Wavefront will apply a
   logical AND to the given key-value pairs.
 @param value [String] the value to search for
 @param options [Hash] tune the query: keys are:
   deleted [Boolean] whether to search deleted (true) or active
     (false) entities
   limit [Integer] how many results to return. Defaults to 0
     (all of them)
   offset [Integer] return results after this offset
   desc: [Boolean] return results in descending order. Defaults
     to false. Sorting is done on the 'key' of the first query
     hash.