def get_wu_settings():
    """
    Get current Windows Update settings.

    Returns:

        dict: A dictionary of Windows Update settings:

        Featured Updates:
            Boolean value that indicates whether to display notifications for
            featured updates.

        Group Policy Required (Read-only):
            Boolean value that indicates whether Group Policy requires the
            Automatic Updates service.

        Microsoft Update:
            Boolean value that indicates whether to turn on Microsoft Update for
            other Microsoft Products

        Needs Reboot:
            Boolean value that indicates whether the machine is in a reboot
            pending state.

        Non Admins Elevated:
            Boolean value that indicates whether non-administrators can perform
            some update-related actions without administrator approval.

        Notification Level:

            Number 1 to 4 indicating the update level:

                1. Never check for updates
                2. Check for updates but let me choose whether to download and
                   install them
                3. Download updates but let me choose whether to install them
                4. Install updates automatically

        Read Only (Read-only):
            Boolean value that indicates whether the Automatic Update
            settings are read-only.

        Recommended Updates:
            Boolean value that indicates whether to include optional or
            recommended updates when a search for updates and installation of
            updates is performed.

        Scheduled Day:
            Days of the week on which Automatic Updates installs or uninstalls
            updates.

        Scheduled Time:
            Time at which Automatic Updates installs or uninstalls updates.

    CLI Examples:

    .. code-block:: bash

        salt '*' win_wua.get_wu_settings
    """
    ret = {}

    day = [
        "Every Day",
        "Sunday",
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday",
        "Saturday",
    ]

    # Initialize the PyCom system
    with salt.utils.winapi.Com():
        # Create an AutoUpdate object
        obj_au = win32com.client.Dispatch("Microsoft.Update.AutoUpdate")

        # Create an AutoUpdate Settings Object
        obj_au_settings = obj_au.Settings

        # Populate the return dictionary
        ret["Featured Updates"] = obj_au_settings.FeaturedUpdatesEnabled
        ret["Group Policy Required"] = obj_au_settings.Required
        ret["Microsoft Update"] = _get_msupdate_status()
        ret["Needs Reboot"] = get_needs_reboot()
        ret["Non Admins Elevated"] = obj_au_settings.NonAdministratorsElevated
        ret["Notification Level"] = obj_au_settings.NotificationLevel
        ret["Read Only"] = obj_au_settings.ReadOnly
        ret["Recommended Updates"] = obj_au_settings.IncludeRecommendedUpdates
        ret["Scheduled Day"] = day[obj_au_settings.ScheduledInstallationDay]
        # Scheduled Installation Time requires special handling to return the time
        # in the right format
        if obj_au_settings.ScheduledInstallationTime < 10:
            ret["Scheduled Time"] = "0{}:00".format(
                obj_au_settings.ScheduledInstallationTime
            )
        else:
            ret["Scheduled Time"] = "{}:00".format(
                obj_au_settings.ScheduledInstallationTime
            )

    return ret