code: def _update_nat_field(self, source_or_dest):
          
          original_value = source_or_dest.all_as_href()
          if original_value:
              nat_element = None
              if 'src' in source_or_dest.typeof and self.static_src_nat.has_nat:
                  nat_element = self.static_src_nat
              elif 'dst' in source_or_dest.typeof and self.static_dst_nat.has_nat:
                  nat_element = self.static_dst_nat
              
              if nat_element:
                  nat_element.setdefault(nat_element.typeof, {}).update(
                      original_value={'element': original_value[0]})
docs: If the source or destination field of a rule is changed and the rule
          is a NAT rule, this method will check to see if the changed field
          maps to a NAT type and modifies the `original_value` field within
          the NAT dict to reflect the new element reference. It is possible
          that a NAT rule doesn't actually define a NAT type, i.e. meaning do
          not NAT.
          
          :param Source,Destination source_or_dest: source or destination
              element changed. This would be called from update_field on
              the Source or Destination object.