docs: def set_setting(name, value):
      '''
      Set the configuration for the named audit setting
  
      Args:
  
          name (str):
              The name of the setting to configure
  
          value (str):
              The configuration for the named value. Valid options are:
  
              - No Auditing
              - Success
              - Failure
              - Success and Failure
  
      Returns:
          bool: True if successful
  
      Raises:
          KeyError: On invalid ``name`` or ``value``
          CommandExecutionError: If an error is encountered modifying the setting
  
      Usage:
  
      .. code-block:: python
  
          import salt.utils.win_lgpo_auditpol
  
          # Set the state of the "Credential Validation" setting to Success and
          # Failure
          salt.utils.win_lgpo_auditpol.set_setting(name='Credential Validation',
                                                   value='Success and Failure')
  
          # Set the state of the "Credential Validation" setting to No Auditing
          salt.utils.win_lgpo_auditpol.set_setting(name='Credential Validation',
                                                   value='No Auditing')
      '''
      # Input validation
      if name.lower() not in _get_valid_names():
          raise KeyError('Invalid name: {0}'.format(name))
      for setting in settings:
          if value.lower() == setting.lower():
              cmd = '/set /subcategory:"{0}" {1}'.format(name, settings[setting])
              break
      else:
          raise KeyError('Invalid setting value: {0}'.format(value))
  
      _auditpol_cmd(cmd)
  
      return True