/* * Copyright (c) 2024 ETH Zürich, IT Services * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ using System; namespace SafeExamBrowser.Lockdown.Contracts { /// /// Allows to control a feature of the computer, the operating system or an installed software. /// public interface IFeatureConfiguration { /// /// The unique identifier of this feature configuration. /// Guid Id { get; } /// /// The identifier of the group of changes to which this feature configuration belongs. /// Guid GroupId { get; } /// /// Disables the feature. Returns true if successful, otherwise false. /// bool DisableFeature(); /// /// Enables the feature. Returns true if successful, otherwise false. /// bool EnableFeature(); /// /// Retrieves the current status of the configuration. /// FeatureConfigurationStatus GetStatus(); /// /// Initializes the currently active configuration of the feature. /// void Initialize(); /// /// Resets the feature to its default configuration. Returns true if successful, otherwise false. /// bool Reset(); /// /// Restores the feature to its previous configuration (i.e. before it was enabled or disabled). Returns true if successful, /// otherwise false. /// bool Restore(); } }