#pragma autorecover
#pragma classflags ("forceupdate")
#pragma namespace("\\\\.\\root\\cimv2")

Instance of __Namespace
{
  Name = "mdm";
};

#pragma autorecover
#pragma namespace("\\\\.\\root\\cimv2\\mdm")
instance of __namespace{ name="MS_804";};
#pragma namespace("\\\\.\\root\\cimv2\\mdm\\MS_804")

[Description("This class provides the ability to create a job for installing or un-installing an application and also provides the job status and error code if any") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MDM_AppInstallJob
{
  [key,Description("Unique Id for Application install/un-install") : Amended ToSubclass] string JobID;
  [Description("Package full name") : Amended ToSubclass] string PackageFullName;
  [Description("Status of the job") : Amended ToSubclass] uint32 Status;
  [Description("Error code") : Amended ToSubclass] uint32 LastError;
  [Description("Progress of the application job") : Amended ToSubclass] uint32 Progress;
  [Description("Job creation time") : Amended ToSubclass] datetime CreationTime;
  [Description("List of urls to download content from") : Amended ToSubclass] string DownloadUrlList[];
  [Description("List of dependent application frameworks") : Amended ToSubclass] string Dependencies[];
  [Description("List of content download urls for dependent frameworks") : Amended ToSubclass] string DependencyUrlLists[];
  [Description("Package license xml") : Amended ToSubclass] string LicenseXml;
  [Description("Action type of install, uninstall or upgrade") : Amended ToSubclass] uint32 ActionType;
  [Description("Application type of Windows modern app, web application or remote application") : Amended ToSubclass] uint32 JobType;
  [Description("Windows modern app deployment options") : Amended ToSubclass] uint32 DeploymentOptions;
  [Description("Method to create application job") : Amended ToSubclass] uint32 CreateJob([In,Description("Job details as xml string") : Amended ToSubclass] string JobData);
};

[Description("This class provides the ability to detect an application and inventory of applications") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MDM_Application
{
  [key,Description("Package full name") : Amended ToSubclass] string PackageFullName;
  [Description("User security identifier") : Amended ToSubclass] string UserSID;
  [Description("Package name") : Amended ToSubclass] string PackageName;
  [Description("Publisher name of the package") : Amended ToSubclass] string PackagePublisher;
  [Description("Version of the package") : Amended ToSubclass] string PackageVersion;
  [Description("Modern app installation path") : Amended ToSubclass] string InstallPath;
  [Description("Is it a framework application") : Amended ToSubclass] boolean IsFramework;
  [Description("Is it a resource only package") : Amended ToSubclass] boolean IsResourcePackage;
  [Description("Is it a Appx bundle") : Amended ToSubclass] boolean IsBundle;
  [Description("Is the app in development mode") : Amended ToSubclass] boolean IsDevelopmentMode;
  [Description("Comma separated list of dependent applications") : Amended ToSubclass] string Dependencies;
};

[Description("This class provides the ability to detect a framework application and inventory of frameworks") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MDM_ApplicationFramework
{
  [key,Description("Name of the framework package") : Amended ToSubclass] string PackageName;
  [key,Description("Minimum package version for the dependent framework") : Amended ToSubclass] string MinimumPackageVersion;
  [key,Description("Publisher name of the package") : Amended ToSubclass] string PackagePublisher;
  [key,Description("Architecture of the package") : Amended ToSubclass] string PackageArchitecture;
  [Description("Package full name") : Amended ToSubclass] string PackageFullName;
  [Description("Version of the package") : Amended ToSubclass] string PackageVersion;
  [Description("User security identifier") : Amended ToSubclass] string UserSID;
};

[Description("This class provides the ability to detect a application using min version lookup") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MDM_ApplicationMinVersion
{
  [key,Description("Name of the package") : Amended ToSubclass] string PackageName;
  [key,Description("Minimum package version") : Amended ToSubclass] string MinimumPackageVersion;
  [key,Description("Publisher name of the package") : Amended ToSubclass] string PackagePublisher;
  [key,Description("Architecture of the package") : Amended ToSubclass] string PackageArchitecture;
  [Description("Package full name") : Amended ToSubclass] string PackageFullName;
  [Description("Version of the package") : Amended ToSubclass] string PackageVersion;
  [Description("User security identifier") : Amended ToSubclass] string UserSID;
};

[Description("This class provides ability to subscribe a device to remote application server") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MDM_RemoteAppUserCookie
{
  [key,Description("The url of the remote application server") : Amended ToSubclass] string FeedUrl;
  [Description("The authentication cookie used to subscribe to the server") : Amended ToSubclass] string Cookie;
  [Description("The server generated hash of cookie used to subscribe to the server") : Amended ToSubclass] string CookieHash;
};

[Description("This class provides ability to detect and provide inventory of remote applications of a subscribed device") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MDM_RemoteApplication
{
  [key,Description("The url of the remote application server") : Amended ToSubclass] string FeedUrl;
  [key,Description("The name of the remote application") : Amended ToSubclass] string AppId;
};

[Description("This class provides ability to detect and provide inventory of web applications of a device") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MDM_WebApplication
{
  [key,Description("The web application name, also the shortcut file name") : Amended ToSubclass] string PackageName;
  [Description("The web application url") : Amended ToSubclass] string PackageUrl;
  [Description("The web application shortcut file parent folder") : Amended ToSubclass] string ShortcutFolder;
  [Description("The web application shortcut file name") : Amended ToSubclass] string ShortcutFilename;
};
