/* SPDX-License-Identifier: BSD-3-Clause */
/*
 * Copyright 2012 Raritan Inc. All rights reserved.
 */

#include <Event.idl>

/**
 * Device Settings
 */
module devsettings {
    /** Zero-config service settings interface */
    interface Zeroconf_2_0_0 {

        /** Zero-configservice settings */
        structure Settings {
            boolean mdnsEnabled;        ///< Enable zero-config advertising via mDNS for device
            boolean llmnrEnabled;       ///< Enable zero-config advertising via LLMNR for device
        };

        valueobject SettingsChangedEvent extends idl.Event {
            Settings oldSettings; ///< old settings
            Settings newSettings; ///< new settings
        };

        /**
         * Retrieve the service settings.
         *
         * @return Zero-config service settings
         */
        Settings getSettings();

        /**
         * Set the service settings.
         *
         * @param settings New settings
         */
        void setSettings(in Settings settings);
    };
}
