code: def update_configuration(self, **kwargs):
          
          updated = False
          if 'snmp_agent' in kwargs:
              kwargs.update(snmp_agent_ref=kwargs.pop('snmp_agent'))
          snmp_interface = kwargs.pop('snmp_interface', None)
          for name, value in kwargs.items():
              _value = element_resolver(value)
              if getattr(self.engine, name, None) != _value:
                  self.engine.data[name] = _value
                  updated = True
          
          if snmp_interface is not None:
              _snmp_interface = getattr(self.engine, 'snmp_interface', [])
              if not len(snmp_interface) and len(_snmp_interface):
                  self.engine.data.update(snmp_interface=[])
                  updated = True
              elif len(snmp_interface):
                  if set(self._nicids) ^ set(map(str, snmp_interface)):
                      self.engine.data.update(
                          snmp_interface=self._iface_dict(snmp_interface))
                      updated = True
          return updated
docs: Update the SNMP configuration using any kwargs supported in the
          `enable` constructor. Return whether a change was made. You must call
          update on the engine to commit any changes.
          
          :param dict kwargs: keyword arguments supported by enable constructor
          :rtype: bool