winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

AdminSettings.h (1669B)


      1 // Copyright (c) Microsoft Corporation.
      2 // Licensed under the MIT License.
      3 #pragma once
      4 
      5 #include <string>
      6 #include "winget/GroupPolicy.h"
      7 
      8 namespace AppInstaller::Settings
      9 {
     10     // Enum of admin settings.
     11     enum class BoolAdminSetting : size_t
     12     {
     13         Unknown = 0,
     14         LocalManifestFiles,
     15         BypassCertificatePinningForMicrosoftStore,
     16         InstallerHashOverride,
     17         LocalArchiveMalwareScanOverride,
     18         ProxyCommandLineOptions,
     19         Max,
     20     };
     21 
     22     enum class StringAdminSetting : size_t
     23     {
     24         Unknown = 0,
     25         DefaultProxy,
     26         Max,
     27     };
     28 
     29     BoolAdminSetting StringToBoolAdminSetting(std::string_view in);
     30     StringAdminSetting StringToStringAdminSetting(std::string_view in);
     31 
     32     Utility::LocIndView AdminSettingToString(BoolAdminSetting setting);
     33     Utility::LocIndView AdminSettingToString(StringAdminSetting setting);
     34 
     35     // Returns true if the value is set.
     36     // Group policy overriding the setting can prevent the value from being set
     37     bool EnableAdminSetting(BoolAdminSetting setting);
     38     bool DisableAdminSetting(BoolAdminSetting setting);
     39     bool SetAdminSetting(StringAdminSetting setting, std::string_view value);
     40     bool ResetAdminSetting(StringAdminSetting setting);
     41     void ResetAllAdminSettings();
     42 
     43     bool IsAdminSettingEnabled(BoolAdminSetting setting);
     44     std::optional<std::string> GetAdminSetting(StringAdminSetting setting);
     45 
     46     std::vector<BoolAdminSetting> GetAllBoolAdminSettings();
     47     std::vector<StringAdminSetting> GetAllStringAdminSettings();
     48 
     49     TogglePolicy::Policy GetAdminSettingPolicy(BoolAdminSetting setting);
     50 }