def METHOD_NAME(name=None, start_addr=None, end_addr=None, data=None, **api_opts):
    """
    Ensure the range is removed
    Supplying the end of the range is optional.
    State example:
    .. code-block:: yaml
        infoblox_range.absent:
            - name: 'vlan10'
        infoblox_range.absent:
            - name:
            - start_addr: 127.0.1.20
    """
    ret = {"name": name, "result": False, "comment": "", "changes": {}}
    if not data:
        data = {}
    if "name" not in data:
        data.update({"name": name})
    if "start_addr" not in data:
        data.update({"start_addr": start_addr})
    if "end_addr" not in data:
        data.update({"end_addr": end_addr})
    obj = __salt__["infoblox.get_ipv4_range"](
        data["start_addr"], data["end_addr"], **api_opts
    )
    if obj is None:
        obj = __salt__["infoblox.get_ipv4_range"](
            start_addr=data["start_addr"], end_addr=None, **api_opts
        )
        if obj is None:
            obj = __salt__["infoblox.get_ipv4_range"](
                start_addr=None, end_addr=data["end_addr"], **api_opts
            )
    if not obj:
        ret["result"] = True
        ret["comment"] = "already deleted"
        return ret
    if __opts__["test"]:
        ret["result"] = None
        ret["comment"] = "would attempt to delete range"
        return ret
    if __salt__["infoblox.delete_object"](objref=obj["_ref"]):
        ret["result"] = True
        ret["changes"] = {
            "old": "Found {} - {}".format(start_addr, end_addr),
            "new": "Removed",
        }
    return ret