code: async def save(self):
          
          if set(self.tags) != set(self._orig_data['tags']):
              self._changed_data['tags'] = ','.join(self.tags)
          elif 'tags' in self._changed_data:
              del self._changed_data['tags']
          orig_params = self._orig_data['params']
          if not isinstance(orig_params, dict):
              orig_params = {}
          params = self.params
          if not isinstance(params, dict):
              params = {}
          self._changed_data.pop('params', None)
          self._changed_data.update(
              calculate_dict_diff(orig_params, params))
          if 'vlan' in self._changed_data and self._changed_data['vlan']:
              # Update uses the ID of the VLAN, not the VLAN object.
              self._changed_data['vlan'] = self._changed_data['vlan']['id']
              if (self._orig_data['vlan'] and
                      'id' in self._orig_data['vlan'] and
                      self._changed_data['vlan'] == (
                          self._orig_data['vlan']['id'])):
                  # VLAN didn't really change, the object was just set to the
                  # same VLAN.
                  del self._changed_data['vlan']
          await super(Interface, self).save()
docs: Save this interface.