'Load data given a data path.
This is a low level method that will search through the various
search paths until it\'s able to load a value.  This is typically
only needed to load *non* model files (such as _endpoints and
_retry).  If you need to load model files, you should prefer
``load_service_model``.
:type name: str
:param name: The data path, i.e ``ec2/2015-03-01/service-2``.
:return: The loaded data.  If no data could be found then
a DataNotFoundError is raised.'

@instance_cache
def load_data(self, name):

    for possible_path in self._potential_locations(name):
        found = self.file_loader.load_file(possible_path)
        if (found is not None):
            return found
    raise DataNotFoundError(data_path=name)
