docs: def set_settings(profile, setting, value, store='local'):
      '''
      Configure firewall settings.
  
      Args:
  
          profile (str):
              The firewall profile to configure. Valid options are:
  
              - domain
              - public
              - private
  
          setting (str):
              The firewall setting to configure. Valid options are:
  
              - localfirewallrules
              - localconsecrules
              - inboundusernotification
              - remotemanagement
              - unicastresponsetomulticast
  
          value (str):
              The value to apply to the setting. Valid options are
  
              - enable
              - disable
              - notconfigured
  
          store (str):
              The store to use. This is either the local firewall policy or the
              policy defined by local group policy. Valid options are:
  
              - lgpo
              - local
  
              Default is ``local``
  
      Returns:
          bool: ``True`` if successful
  
      Raises:
          CommandExecutionError: If an error occurs
          ValueError: If the parameters are incorrect
      '''
      # Input validation
      if profile.lower() not in ('domain', 'public', 'private'):
          raise ValueError('Incorrect profile: {0}'.format(profile))
      if setting.lower() not in ('localfirewallrules',
                                 'localconsecrules',
                                 'inboundusernotification',
                                 'remotemanagement',
                                 'unicastresponsetomulticast'):
          raise ValueError('Incorrect setting: {0}'.format(setting))
      if value.lower() not in ('enable', 'disable', 'notconfigured'):
          raise ValueError('Incorrect value: {0}'.format(value))
  
      # Run the command
      command = 'set {0}profile settings {1} {2}'.format(profile, setting, value)
      results = _netsh_command(command=command, store=store)
  
      # A successful run should return an empty list
      if results:
          raise CommandExecutionError('An error occurred: {0}'.format(results))
  
      return True