def METHOD_NAME(ip: IPAddress, vlan: str, non_nat_arp_egress_port: str) -> str:
    gw_ip = str(ipaddress.ip_address(ip.address))
    if ip.version == IPAddress.IPV4:
        return _get_gw_mac_address_v4(gw_ip, vlan, non_nat_arp_egress_port)
    elif ip.version == IPAddress.IPV6:
        if vlan == "NO_VLAN":
            try:
                mac = get_mac_by_ip6(gw_ip)
                logging.debug("Got mac %s for IP: %s", mac, gw_ip)
                return mac
            except ValueError:
                logging.warning(
                    "Invalid GW Ip address: [%s]",
                    gw_ip,
                )
        else:
            logging.error("Not supported: GW IPv6: %s over vlan %d", gw_ip, vlan)
    return ""