text: # 3rd-party modules
  from lxml.builder import E 
  
  # module packages
  from ... import Resource
  from .... import jxml as JXML
  
  class NatProxyArp( Resource ):
    """
    [edit security nat proxy-arp interface <if_name> address <ip_prefix>]
  
    Resource namevar: 
      tuple(if_name, ip_prefix)
  
    Description:
      This resource allows you to add/remove proxy-arp entries for NAT.  At 
      this time, there are no managed properties, so you can simply add or
      remove entries by the name tuple(if_name, ip_prefix)
  
      For example, to select an entry directly:
  
        entry = NatProxyArp(jdev, ('reth0.213','198.18.11.5'))
  
      Or using the bind mechanism:
      
        jdev.bind(parp=NatProxyArp)
        entry = jdev.parp[('reth0.213', '198.18.11.5')]
  
      To create it, you need to use the 'touch' option when invoking
      write() since there are no properites for proxy-arp entries
  
        if not entry.exists: 
          entry.write(touch=True)
  
      And to remove the same entry:
  
        entry.delete()
    """
  
    def _xml_at_top(self):
      return E.security(E.nat(
        E('proxy-arp',
          E.interface(E.name( self._name[0] ),
            E.address(E.name( self._name[1]))
          )
        )
      ))
  
    ##### -----------------------------------------------------------------------
    ##### OVERLOADS
    ##### -----------------------------------------------------------------------
  
    def rename(self, name):
      """ UNSUPPORTED """
      raise RuntimeError("Unsupported for Resource: %s" % self.__class__.__name__)
  
    ##### -----------------------------------------------------------------------
    ##### XML read
    ##### -----------------------------------------------------------------------
  
    def _xml_at_res(self, xml):
      return xml.find('.//proxy-arp/interface')
  
    def _xml_to_py(self, as_xml, to_py ):
      Resource._r_has_xml_status( as_xml, to_py )
  
    ##### -----------------------------------------------------------------------
    ##### Resource List, Catalog
    ##### -- only executed by 'manager' resources
    ##### -----------------------------------------------------------------------
  
    def _r_list(self):
      raise RuntimeError("@@@ NEED TO IMPLEMENT!")
  
    def _r_catalog(self):
      raise RuntimeError("@@@ NEED TO IMPLEMENT!")
  