docs: def _get_elements(self, url, key, eclass, id=None, name=None):
          """Get elements matching `id` or `name`
  
          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, optional): only return resources whose `id` property matches the given `id`
              name(str, optional): only return resources whose `name` property matches the given `name`
  
          Returns:
              list(_ResourceElement): List of `eclass` instances
  
          Raises:
              ValueError: both `id` and `name` are specified together
          """
          if id is not None and name is not None:
              raise ValueError("id and name cannot specified together")
  
          json_elements = self.rest_client.make_request(url)[key]
          return [eclass(element, self.rest_client) for element in json_elements
                  if _exact_resource(element, id) and _matching_resource(element, name)]