docs: def _get_element_by_id(self, url, key, eclass, id):
          """Get a single element matching an `id`
  
          Args:
              url(str): url of children.
              key(str): key in the returned JSON.
              eclass(subclass type of :py:class:`_ResourceElement`): element class to create instances of.
              id(str): return resources whose `id` property matches the given `id`
  
          Returns:
              _ResourceElement: Element of type `eclass` matching the given `id`
  
          Raises:
              ValueError: No resource matches given `id` or multiple resources matching given `id`
          """
          elements = self._get_elements(url, key, eclass, id=id)
          if not elements:
              raise ValueError("No resource matching: {0}".format(id))
          if len(elements) == 1:
              return elements[0]
          raise ValueError("Multiple resources matching: {0}".format(id))