def METHOD_NAME(endpoint):
    if ":" not in endpoint:
        raise ParseError("endpoint must conform to format \"<application-name>:<endpoint-name>\"")
    matches = match_endpoint(endpoint, MatchType.SEARCH)
    if matches is None:
        raise ParseError("endpoint must conform to format \"<application-name>:<endpoint-name>\"")
    model_group = matches.group("model")
    application_group = matches.group("appname")
    endpoints_group = matches.group("endpoints")
    qualified_model_name = None
    if (model_group is not None) and (model_group != ""):
        if ("/" not in model_group):
            raise NotImplementedError()
        qualified_model_name = model_group
        model_group = model_group.split("/")[0]
    if (model_group is not None) and (not match_model(model_group)):
        raise ParseError("model name {}".format(model_group))
    if not match_application(application_group):
        raise ParseError("application name {}".format(application_group))
    model = model_group
    application = application_group
    endpoints = endpoints_group.split(",")
    if len(endpoints) == 0 or len(endpoints_group) == 0:
        raise ParseError("specify endpoints for {}".format(application))
    return OfferEndpoints(application, endpoints, model=model, qualified_model_name=qualified_model_name)