docs: def query_metric_definitions(self, metric_type=None, id_filter=None, **tags):
          """
          Query available metric definitions.
  
          :param metric_type: A MetricType to be queried. If left to None, matches all the MetricTypes
          :param id_filter: Filter the id with regexp is tag filtering is used, otherwise a list of exact metric ids
          :param tags: A dict of tag key/value pairs. Uses Hawkular-Metrics tag query language for syntax
          """
          params = {}
  
          if id_filter is not None:
              params['id'] = id_filter
  
          if metric_type is not None:
              params['type'] = MetricType.short(metric_type)
  
          if len(tags) > 0:
              params['tags'] = self._transform_tags(**tags)
  
          return self._get(self._get_url(), **params)