#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\ROOT\\CIMV2")

[Dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesConfigurationProvider"),singleton,inpartition{"local-user"}] 
class Win32_OfflineFilesUserConfiguration
{
  [read,write] string AssignedOfflineFiles[];
  [read,write] boolean WorkOfflineButtonRemoved;
  [read,write] boolean MakeAvailableOfflineButtonRemoved;
  [read] boolean IsConfiguredByWMI;
};

[Dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesConfigurationProvider")] 
class Win32_OfflineFilesBackgroundSync
{
  [read,write,Max(1440)] uint16 SyncInterval;
  [read,write,Max(3600)] uint16 SyncVariance;
  [read,write] uint16 MaxTimeBetweenSyncs;
  [read,write,Max(2400)] uint16 BlockOutStartTimeHoursMinutes;
  [read,write,Max(1440)] uint16 BlockOutDurationMin;
  [read,write] boolean BackgroundSyncWorkOfflineSharesEnabled;
};

[Dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesConfigurationProvider")] 
class Win32_OfflineFilesDiskSpaceLimit
{
  [read,write,Max(100000000)] uint32 TotalSizeInMB;
  [read,write,Max(100000000)] uint32 AutoCacheSizeInMB;
};

[Dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesConfigurationProvider"),singleton,inpartition{"local-system"}] 
class Win32_OfflineFilesMachineConfiguration
{
  [read] boolean IsConfiguredByWMI;
  [read,write] boolean OfflineFilesCacheEncrypted;
  [read,write] boolean Enabled;
  [read,write] boolean SyncOnCostedNetworkEnabled;
  [read,write] boolean SlowLinkEnabled;
  [read,write] string SlowLinkParams[];
  [read,write] boolean BackgroundSyncEnabled;
  [read,write] Win32_OfflineFilesBackgroundSync BackgroundSyncParams;
  [read,write] boolean EconomicalAdminPinningEnabled;
  [read,write] string ExcludedFileTypes[];
  [read,write] boolean DiskSpaceLimitEnabled;
  [read,write] Win32_OfflineFilesDiskSpaceLimit DiskSpaceLimitParams;
  [read,write] boolean WorkOfflineButtonRemoved;
  [read,write] boolean MakeAvailableOfflineButtonRemoved;
  [read,write,Max(100000000)] uint32 TransparentCachingLatencyThreshold;
};

Instance of __Win32Provider as $P1
{
  Name = "Win32_OfflineFilesConfigurationProvider";
  CLSID = "{2DCD1DAF-A110-49c0-BFDB-6FDF557B5FDF}";
  PerUserInitialization = "TRUE";
  HostingModel = "LocalSystemHost";
  DefaultMachineName;
  ImpersonationLevel = 1;
  InitializationReentrancy = 0;
  PerLocaleInitialization = FALSE;
  Pure = TRUE;
  UnloadTimeout;
};

Instance of __InstanceProviderRegistration
{
  provider = $P1;
  SupportsEnumeration = "TRUE";
  SupportsGet = "TRUE";
  SupportsPut = "TRUE";
  QuerySupportLevels = {"WQL:UnarySelect"};
};

Instance of __MethodProviderRegistration
{
  provider = $P1;
};
