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

[dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesProvider")] 
class Win32_OfflineFilesFileSysInfo
{
  [read : ToInstance ToSubclass] uint32 LocalAttributes;
  [read : ToInstance ToSubclass] sint64 LocalSize;
  [read : ToInstance ToSubclass] DATETIME LocalCreationTime;
  [read : ToInstance ToSubclass] DATETIME LocalLastWriteTime;
  [read : ToInstance ToSubclass] DATETIME LocalChangeTime;
  [read : ToInstance ToSubclass] DATETIME LocalLastAccessTime;
  [read : ToInstance ToSubclass] uint32 OriginalAttributes;
  [read : ToInstance ToSubclass] sint64 OriginalSize;
  [read : ToInstance ToSubclass] DATETIME OriginalCreationTime;
  [read : ToInstance ToSubclass] DATETIME OriginalLastWriteTime;
  [read : ToInstance ToSubclass] DATETIME OriginalChangeTime;
  [read : ToInstance ToSubclass] DATETIME OriginalLastAccessTime;
  [read : ToInstance ToSubclass] uint32 RemoteAttributes;
  [read : ToInstance ToSubclass] sint64 RemoteSize;
  [read : ToInstance ToSubclass] DATETIME RemoteCreationTime;
  [read : ToInstance ToSubclass] DATETIME RemoteLastWriteTime;
  [read : ToInstance ToSubclass] DATETIME RemoteChangeTime;
  [read : ToInstance ToSubclass] DATETIME RemoteLastAccessTime;
};

[dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesProvider")] 
class Win32_OfflineFilesPinInfo
{
  [read : ToInstance ToSubclass] boolean Pinned;
  [read : ToInstance ToSubclass,ValueMap{"0", "1", "2"} : ToInstance ToSubclass] uint32 PinnedForUser;
  [read : ToInstance ToSubclass,ValueMap{"0", "1", "2"} : ToInstance ToSubclass] uint32 PinnedForUserByPolicy;
  [read : ToInstance ToSubclass,ValueMap{"0", "1", "2"} : ToInstance ToSubclass] uint32 PinnedForComputer;
  [read : ToInstance ToSubclass,ValueMap{"0", "1", "2"} : ToInstance ToSubclass] uint32 PinnedForFolderRedirection;
};

[dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesProvider")] 
class Win32_OfflineFilesChangeInfo
{
  [read : ToInstance ToSubclass] boolean Dirty;
  [read : ToInstance ToSubclass] boolean DeletedOffline;
  [read : ToInstance ToSubclass] boolean CreatedOffline;
  [read : ToInstance ToSubclass] boolean ModifiedData;
  [read : ToInstance ToSubclass] boolean ModifiedAttributes;
  [read : ToInstance ToSubclass] boolean ModifiedTime;
};

[dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesProvider")] 
class Win32_OfflineFilesDirtyInfo
{
  [read : ToInstance ToSubclass] sint64 LocalDirtyByteCount;
  [read : ToInstance ToSubclass] sint64 RemoteDirtyByteCount;
};

[dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesProvider")] 
class Win32_OfflineFilesConnectionInfo
{
  [read : ToInstance ToSubclass,ValueMap{"0", "1", "2", "3", "4"} : ToInstance ToSubclass] uint32 ConnectState;
  [read : ToInstance ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6"} : ToInstance ToSubclass] uint32 OfflineReason;
};

[dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesProvider")] 
class Win32_OfflineFilesSuspendInfo
{
  [read : ToInstance ToSubclass] boolean Suspended;
  [read : ToInstance ToSubclass] boolean SuspendedRoot;
};

[dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesProvider")] 
class Win32_OfflineFilesItem
{
  [key,Not_null : ToInstance ToSubclass,read : ToInstance ToSubclass] string ItemPath;
  [read : ToInstance ToSubclass] string ParentItemPath;
  [Not_null : ToInstance ToSubclass,read : ToInstance ToSubclass] string ItemName;
  [read : ToInstance ToSubclass,ValueMap{"0", "1", "2", "3"} : ToInstance ToSubclass] uint32 ItemType;
  [read : ToInstance ToSubclass] Win32_OfflineFilesFileSysInfo FileSysInfo;
  [read : ToInstance ToSubclass] Win32_OfflineFilesPinInfo PinInfo;
  [read : ToInstance ToSubclass] Win32_OfflineFilesChangeInfo ChangeInfo;
  [read : ToInstance ToSubclass] Win32_OfflineFilesDirtyInfo DirtyInfo;
  [read : ToInstance ToSubclass] Win32_OfflineFilesConnectionInfo ConnectionInfo;
  [read : ToInstance ToSubclass] Win32_OfflineFilesSuspendInfo SuspendInfo;
  [read : ToInstance ToSubclass] boolean Encrypted;
  [read : ToInstance ToSubclass] boolean Sparse;
};

[Singleton : ToInstance ToSubclass DisableOverride,dynamic : ToInstance DisableOverride,provider("Win32_OfflineFilesProvider")] 
class Win32_OfflineFilesCache
{
  [read : ToInstance ToSubclass] boolean Enabled;
  [read : ToInstance ToSubclass] boolean Active;
  [read : ToInstance ToSubclass] string Location;
  [implemented,static] uint32 Enable([in] boolean Enable,[out] boolean RebootRequired);
  [implemented,static] uint32 RenameItem([in] string OriginalPath,[in] string NewPath,[in] boolean ReplaceIfExists);
  [implemented,static] uint32 RenameItemEx([in] string OriginalPath,[in] string NewPath,[in] boolean ReplaceIfExists);
  [implemented,static] uint32 Synchronize([in] string Paths[],[in,ValuesMap{"0x00000001", "0x00000002", "0x00000004", "0x00000008", "0x00000010", "0x00000020", "0x00000040", "0x00000080", "0x00000200", "0x00000400", "0x00000800", "0x00001000", "0x00002000", "0x00010000", "0x10000000", "0x20000000", "0x30000000"} : ToSubclass] uint32 Flags);
  [implemented,static] uint32 Pin([in] string Paths[],[in,ValuesMap{"0x00000001", "0x00000010", "0x00000020", "0x00000040", "0x00000080", "0x00000200", "0x00000400", "0x00000800", "0x00001000", "0x00010000"} : ToSubclass] uint32 Flags,[in] boolean Deep);
  [implemented,static] uint32 Unpin([in] string Paths[],[in,ValuesMap{"0x00000020", "0x00000040", "0x00000080", "0x00000200", "0x00000400", "0x00000800", "0x00001000", "0x00010000"} : ToSubclass] uint32 Flags,[in] boolean Deep);
  [implemented,static] uint32 DeleteItems([in] string Paths[],[in,ValuesMap{"0x00000001", "0x00000002", "0x00000004", "0x80000000"} : ToSubclass] uint32 Flags);
  [implemented,static] uint32 Encrypt([in] boolean Encrypt,[in,ValuesMap{"0x00000200", "0x00000400", "0x00000800", "0x00001000"} : ToSubclass] uint32 Flags);
  [implemented,static] uint32 SuspendRoot([in] string Path,[in] boolean Suspend);
  [implemented,static] uint32 TransitionOffline([in] string Path,[in] boolean Force,[in,ValuesMap{"0x00000001", "0x00000002"} : ToSubclass] uint32 Flags,[out] boolean OpenFiles);
  [implemented,static] uint32 TransitionOnline([in] string Path,[in,ValuesMap{"0x00000001", "0x00000002"} : ToSubclass] uint32 Flags);
};

[UUID("{db089a12-f250-47aa-b9d0-89806d928ba6}") : ToInstance] 
class Win32_OfflineFilesAssociatedItems
{
  [read : ToSubclass,key : ToInstance ToSubclass DisableOverride,Override("Antecedent") : ToSubclass] Win32_OfflineFilesCache Ref Antecedent;
  [read : ToSubclass,key : ToInstance ToSubclass DisableOverride,Override("Dependent") : ToSubclass] Win32_OfflineFilesItem Ref Dependent;
};

Instance of __Win32Provider as $P1
{
  Name = "Win32_OfflineFilesProvider";
  CLSID = "{2DCD1DAF-A110-49c0-BFDB-6FDF557B5FDF}";
  ImpersonationLevel = "1";
  PerUserInitialization = "TRUE";
};

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

Instance of __MethodProviderRegistration
{
  provider = $P1;
};
