def sanitize_model_dict(obj):
    """Sanitize zeep output dict with `_value_N` references.

    This is useful for data processing where one wishes to consume the 'get' api data instead of re-purposing
    it in e.g. an 'update' api call. Achieved by flattening the nested OrderedDict by replacing
    the nested dict for AXL's 'XFkType' with the value specified in zeep's `_value_N` key.

    Note: Doing so disregards 'uuid' values.

    Example:

    sample_model_dict = {
        'name': 'SEPAAAABBBBCCCC',
        'callingSearchSpaceName': {
            '_value_1': 'US_NYC_NATIONAL_CSS',
            'uuid': '{987345984385093485gd09df8g}'
        }
    }

    is sanitized to:

    sanitized_sample_model_dict = {
        'name': 'SEPAAAABBBBCCCC',
        'callingSearchSpaceName': 'US_NYC_NATIONAL_CSS'
    }

    :param obj: (dict) AXL data model
    :return: sanitized AXL data model
    """
    if set(obj.keys()) == {"uuid", "_value_1"} or set(obj.keys()) == {"_value_1"}:
        return obj["_value_1"]
    else:
        for k, v in obj.items():
            if isinstance(v, dict):
                obj[k] = sanitize_model_dict(v)
            elif isinstance(v, list):
                obj[k] = [sanitize_model_dict(item) for item in v]
    return obj