def update_field(self, element_or_ip_address=None, 
            original_port=None, translated_port=None, **kw):
        """
        Update the destination NAT translation on this rule. You must call
        `save` or `update` on the rule to make this modification. The
        destination field in the NAT rule determines which destination is
        the target of the NAT. To change the target, call the
        rule.destinations.update_field(...) method. This will automatically
        update the NAT value. This method should be used when you want to
        change the translated value port mappings for the service.
        
        Translated Port values can be used to provide port redirection for
        the service specified in the NAT rule. These should be provided as a
        string format either in single port format, or as a port range.
        
        For example, providing redirection from port 80 to port 8080::
        
            original_port='80'
            translated_port='8080'
        
        You can also use a range format although port range sizes much
        then match in size. The format for range of ports is:
        '80-100', '6000-6020' - port 80 translates to 6000, etc.
        
        For example, doing port range redirection using a range of ports::
         
            original_port='80-90'
            translated_port='200-210'
             
        .. note:: When using a range of ports for static destination translation, you
            must use a port range of equal length or the update will be ignored.
        
        :param str,Element element_or_ip_address: Element or IP address that
            is the NAT target
        :param str,int original_port: The original port is based on the service port
        :param str,int translated_port: The port to translate the original port to
        :param bool automatic_proxy: whether to enable proxy ARP (default: True)
        :return: boolean indicating whether the rule was modified
        :rtype: bool
        """
        updated = False
        src = _resolve_nat_element(element_or_ip_address) if \
            element_or_ip_address else {}
        
        automatic_proxy = kw.pop('automatic_proxy', None)
        # Original value is only used when creating a rule for static src NAT.
        # This should be the href of the source field to properly create
        # TODO: The SMC API should autofill this based on source field
        _original_value = kw.pop('original_value', None)
        
        src.update(kw)
        if translated_port is not None:
            src.update(_extract_ports(translated_port))
        
        if not self.translated_value:
            # Adding to a rule
            self.setdefault(self.typeof, {}).update(
                automatic_proxy=automatic_proxy if automatic_proxy else True,
                **self._translated_value(src))
            
            if self.rule and self.rule.destinations.all_as_href():
                original_value={'element': self.rule.destinations.all_as_href()[0]}
            else:
                # If creating, original_value should be href of resource
                original_value={'element': _original_value}
            
            if original_port is not None:
                original_value.update(_extract_ports(original_port))
            
            self.setdefault(self.typeof, {}).update(
                original_value=original_value)
            
            updated = True
        else:
            if self.translated_value._update_field(NATValue(src)):
                updated = True
            
            if original_port:
                if self.original_value._update_field(NATValue(
                    _extract_ports(original_port))):
                    updated = True
            
        if automatic_proxy is not None and self.automatic_proxy \
            != automatic_proxy:
            self.automatic_proxy = automatic_proxy
            updated = True
            
        return updated
Update the destination NAT translation on this rule. You must call
        `save` or `update` on the rule to make this modification. The
        destination field in the NAT rule determines which destination is
        the target of the NAT. To change the target, call the
        rule.destinations.update_field(...) method. This will automatically
        update the NAT value. This method should be used when you want to
        change the translated value port mappings for the service.
        
        Translated Port values can be used to provide port redirection for
        the service specified in the NAT rule. These should be provided as a
        string format either in single port format, or as a port range.
        
        For example, providing redirection from port 80 to port 8080::
        
            original_port='80'
            translated_port='8080'
        
        You can also use a range format although port range sizes much
        then match in size. The format for range of ports is:
        '80-100', '6000-6020' - port 80 translates to 6000, etc.
        
        For example, doing port range redirection using a range of ports::
         
            original_port='80-90'
            translated_port='200-210'
             
        .. note:: When using a range of ports for static destination translation, you
            must use a port range of equal length or the update will be ignored.
        
        :param str,Element element_or_ip_address: Element or IP address that
            is the NAT target
        :param str,int original_port: The original port is based on the service port
        :param str,int translated_port: The port to translate the original port to
        :param bool automatic_proxy: whether to enable proxy ARP (default: True)
        :return: boolean indicating whether the rule was modified
        :rtype: bool