#pragma namespace("\\\\.\\root\\Microsoft\\Windows")

[Locale(1033) : ToInstance, NamespaceSecuritySDDL("O:BAG:BAD:P(A;;CCDCLCSWRPWPRCWD;;;BA)(A;;CCDCRP;;;SY)(A;;CCDCRP;;;NS)")]     
Instance of __Namespace
{
  Name = "DesiredStateConfiguration";
};

#pragma autorecover
#pragma classflags(64)

#pragma namespace("\\\\.\\root\\Microsoft\\Windows\\DesiredStateConfiguration")

Instance of __Win32Provider as $prov
{
  Name = "dsccore";
  ClsId = "{BADCC35D-8542-4A5C-A457-0ECCCF62508A}";
  ImpersonationLevel = 1;
  HostingModel = "LocalSystemHost:DscLcm";
  version = 1073741825;
};

Instance of __MethodProviderRegistration
{
  Provider = $prov;
};

[Indication,Exception : ToSubclass DisableOverride,UMLPackagePath("CIM::Interop") : ToSubclass,locale(1033)] 
class CIM_Error
{
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ".."} : ToSubclass,ModelCorrespondence{"CIM_Error.OtherErrorType"} : ToSubclass] uint16 ErrorType;
  [ModelCorrespondence{"CIM_Error.ErrorType"} : ToSubclass] string OtherErrorType;
  string OwningEntity;
  [Required : ToSubclass DisableOverride,ModelCorrespondence{"CIM_Error.Message", "CIM_Error.MessageArguments"} : ToSubclass] string MessageID;
  [ModelCorrespondence{"CIM_Error.MessageID", "CIM_Error.MessageArguments"} : ToSubclass] string Message;
  [ModelCorrespondence{"CIM_Error.MessageID", "CIM_Error.Message"} : ToSubclass] string MessageArguments[];
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", ".."} : ToSubclass] uint16 PerceivedSeverity;
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", ".."} : ToSubclass,ModelCorrespondence{"CIM_Error.ProbableCauseDescription"} : ToSubclass] uint16 ProbableCause;
  [ModelCorrespondence{"CIM_Error.ProbableCause"} : ToSubclass] string ProbableCauseDescription;
  string RecommendedActions[];
  [ModelCorrespondence{"CIM_Error.ErrorSourceFormat"} : ToSubclass] string ErrorSource;
  [ValueMap{"0", "1", "2", ".."} : ToSubclass,ModelCorrespondence{"CIM_Error.ErrorSource", "CIM_Error.OtherErrorSourceFormat"} : ToSubclass] uint16 ErrorSourceFormat = 0;
  [ModelCorrespondence{"CIM_Error.ErrorSourceFormat"} : ToSubclass] string OtherErrorSourceFormat;
  [ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", ".."} : ToSubclass,ModelCorrespondence{"CIM_Error.CIMStatusCodeDescription"} : ToSubclass] uint32 CIMStatusCode;
  [ModelCorrespondence{"CIM_Error.CIMStatusCode"} : ToSubclass] string CIMStatusCodeDescription;
};

[Abstract,ClassVersion("1.0.0"),locale(1033)] 
class MSFT_Credential
{
  [MaxLen(256) : ToSubclass] string UserName;
  string Password;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_DSCConfigurationOutput
{
  string JobId;
  uint8 Bookmark[];
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_DSCConfigurationOutputReboot : MSFT_DSCConfigurationOutput
{
  boolean Automatic;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_DSCConfigurationOutputResult : MSFT_DSCConfigurationOutput
{
  uint32 Result;
  [EmbeddedObject : ToSubclass DisableOverride] object Object;
};

[locale(1033)] 
class MSFT_DSCConfigurationOutputWhatIf : MSFT_DSCConfigurationOutput
{
  string Message;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_DSCConfigurationOutputWriteArray : MSFT_DSCConfigurationOutput
{
  string ParameterName;
  [EmbeddedObject : ToSubclass DisableOverride] object Array[];
};

[locale(1033)] 
class MSFT_DSCConfigurationOutputWriteError : MSFT_DSCConfigurationOutput
{
  [EmbeddedObject : ToSubclass DisableOverride] object Error;
};

[locale(1033)] 
class MSFT_DSCConfigurationOutputWriteMessage : MSFT_DSCConfigurationOutput
{
  uint32 Channel;
  string Message;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_DSCConfigurationOutputWriteObject : MSFT_DSCConfigurationOutput
{
  [EmbeddedObject : ToSubclass DisableOverride] object Object;
};

[locale(1033)] 
class MSFT_DSCConfigurationOutputWriteProgress : MSFT_DSCConfigurationOutput
{
  string Activity;
  string CurrentOperation;
  string StatusDescription;
  uint32 PercentComplete;
  uint32 SecondsRemaining;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_DSCConfigurationStatus
{
  [read : ToSubclass,ValueMap{"Success", "Failure", "Aborted", "InProgress"} : ToSubclass] string Status;
  [read : ToSubclass] string Error;
  [read : ToSubclass] datetime StartDate;
  [read : ToSubclass] uint32 DurationInSeconds;
  [read : ToSubclass] boolean RebootRequested;
  [read : ToSubclass,ValueMap{"Initial", "Consistency", "Reboot", "ReadOnly", "LocalConfigurationManager"} : ToSubclass] string Type;
  [read : ToSubclass] string JobID;
  [read : ToSubclass] string MetaData;
  [read : ToSubclass] uint32 NumberOfResources;
  [read : ToSubclass,ValueMap{"Push", "Pull", "Disabled"} : ToSubclass] string Mode;
  [read : ToSubclass] string LCMVersion;
  [read : ToSubclass] string HostName;
  [read : ToSubclass] string IPV4Addresses[];
  [read : ToSubclass] string IPV6Addresses[];
  [read : ToSubclass] string MACAddresses[];
  [read : ToSubclass,EmbeddedInstance("MSFT_DSCMetaConfiguration") : ToSubclass] MSFT_DSCMetaConfiguration MetaConfiguration;
  [read : ToSubclass,EmbeddedInstance("MSFT_ResourceInDesiredState") : ToSubclass] MSFT_ResourceInDesiredState ResourcesInDesiredState[];
  [read : ToSubclass,EmbeddedInstance("MSFT_ResourceNotInDesiredState") : ToSubclass] MSFT_ResourceNotInDesiredState ResourcesNotInDesiredState[];
  [read : ToSubclass,EmbeddedInstance("MSFT_ResourceChanged") : ToSubclass] MSFT_ResourceChanged ResourcesChanged[];
  [read : ToSubclass] string Locale;
};

[ClassVersion("1.0.0"),locale(1033),dynamic : ToInstance,provider("dsccore") : ToInstance] 
class MSFT_DSCLocalConfigurationManager
{
  [implemented,static : ToSubclass DisableOverride] uint32 SendConfiguration([In,Octetstring : ToSubclass DisableOverride] uint8 ConfigurationData[],[In] boolean force);
  [implemented,static : ToSubclass DisableOverride] uint32 SendConfigurationApply([In,Octetstring : ToSubclass DisableOverride] uint8 ConfigurationData[],[In] boolean force);
  [implemented,static : ToSubclass DisableOverride] uint32 GetConfiguration([In,Octetstring : ToSubclass DisableOverride] uint8 configurationData[],[Stream : ToSubclass DisableOverride,EmbeddedInstance("OMI_BaseResource") : ToSubclass,Out] OMI_BaseResource configurations[]);
  [implemented,static : ToSubclass DisableOverride] uint32 TestConfiguration([In,Octetstring : ToSubclass DisableOverride] uint8 configurationData[],[Out] boolean InDesiredState,[Out,EmbeddedInstance("MSFT_ResourceInDesiredState") : ToSubclass] MSFT_ResourceInDesiredState ResourcesInDesiredState[],[Out,EmbeddedInstance("MSFT_ResourceNotInDesiredState") : ToSubclass] MSFT_ResourceNotInDesiredState ResourcesNotInDesiredState[]);
  [implemented,static : ToSubclass DisableOverride] uint32 ApplyConfiguration([In] boolean force);
  [implemented,static : ToSubclass DisableOverride] uint32 SendMetaConfigurationApply([In,Octetstring : ToSubclass DisableOverride] uint8 ConfigurationData[],[In] boolean force);
  [implemented,static : ToSubclass DisableOverride] uint32 GetMetaConfiguration([Out,EmbeddedInstance("MSFT_DSCMetaConfiguration") : ToSubclass] MSFT_DSCMetaConfiguration MetaConfiguration);
  [implemented,static : ToSubclass DisableOverride] uint32 RollBack([In] uint8 configurationNumber);
  [implemented,static : ToSubclass DisableOverride] uint32 PerformRequiredConfigurationChecks([In] uint32 Flags);
  [implemented,static : ToSubclass DisableOverride] uint32 StopConfiguration([In] boolean force);
  [implemented,static : ToSubclass DisableOverride] uint32 GetConfigurationStatus([In] boolean All,[Stream : ToSubclass DisableOverride,EmbeddedInstance("MSFT_DSCConfigurationStatus") : ToSubclass,Out] MSFT_DSCConfigurationStatus configurationStatus[]);
  [implemented,static : ToSubclass DisableOverride] uint32 SendConfigurationApplyAsync([In,Octetstring : ToSubclass DisableOverride] uint8 ConfigurationData[],[In] boolean force,[In] string jobId);
  [implemented,static : ToSubclass DisableOverride] uint32 GetConfigurationResultOutput([In] string jobId,[In,Octetstring : ToSubclass DisableOverride] uint8 resumeOutputBookmark[],[Out,Stream : ToSubclass DisableOverride,EmbeddedInstance("MSFT_DSCConfigurationOutput") : ToSubclass] MSFT_DSCConfigurationOutput output[]);
  [implemented,static : ToSubclass DisableOverride] uint32 RemoveConfiguration([In] uint32 Stage,[In] boolean Force);
  [implemented,static : ToSubclass DisableOverride] uint32 ResourceGet([In] string ResourceType,[In] string ModuleName,[In,Octetstring : ToSubclass DisableOverride] uint8 resourceProperty[],[Out,EmbeddedInstance("OMI_BaseResource") : ToSubclass] OMI_BaseResource configurations);
  [implemented,static : ToSubclass DisableOverride] uint32 ResourceSet([In] string ResourceType,[In] string ModuleName,[In,Octetstring : ToSubclass DisableOverride] uint8 resourceProperty[],[Out] boolean RebootRequired);
  [implemented,static : ToSubclass DisableOverride] uint32 ResourceTest([In] string ResourceType,[In] string ModuleName,[In,Octetstring : ToSubclass DisableOverride] uint8 resourceProperty[],[Out] boolean InDesiredState);
  [implemented,static : ToSubclass DisableOverride] uint32 EnableDebugConfiguration([In] boolean BreakAll);
  [implemented,static : ToSubclass DisableOverride] uint32 DisableDebugConfiguration();
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_DSCMetaConfiguration
{
  uint32 ConfigurationModeFrequencyMins;
  boolean RebootNodeIfNeeded;
  [ValueMap{"ApplyOnly", "ApplyAndMonitor", "ApplyAndAutoCorrect", "MonitorOnly"} : ToSubclass] string ConfigurationMode;
  [ValueMap{"ContinueConfiguration", "StopConfiguration"} : ToSubclass] string ActionAfterReboot;
  [EmbeddedInstance("MSFT_Credential") : ToSubclass] MSFT_Credential Credential;
  [ValueMap{"Push", "Pull", "Disabled"} : ToSubclass] string RefreshMode;
  string CertificateID;
  string ConfigurationID;
  string DownloadManagerName;
  [EmbeddedInstance("MSFT_KeyValuePair") : ToSubclass] MSFT_KeyValuePair DownloadManagerCustomData[];
  uint32 RefreshFrequencyMins;
  boolean AllowModuleOverwrite;
  [ValueMap{"None", "ForceModuleImport", "All", "ResourceScriptBreakAll"} : ToSubclass] string DebugMode[];
  [read : ToSubclass] string LCMVersion;
  [read : ToSubclass] string LCMCompatibleVersions[];
  [read : ToSubclass,ValueMap{"Idle", "Busy", "PendingReboot", "PendingConfiguration"} : ToSubclass] string LCMState;
  [read : ToSubclass] string LCMStateDetail;
  [EmbeddedInstance("OMI_ConfigurationDownloadManager") : ToSubclass] OMI_ConfigurationDownloadManager ConfigurationDownloadManagers[];
  [EmbeddedInstance("OMI_ResourceModuleManager") : ToSubclass] OMI_ResourceModuleManager ResourceModuleManagers[];
  [EmbeddedInstance("OMI_ReportManager") : ToSubclass] OMI_ReportManager ReportManagers[];
  [EmbeddedInstance("MSFT_PartialConfiguration") : ToSubclass] MSFT_PartialConfiguration PartialConfigurations[];
  uint32 StatusRetentionTimeInDays;
  [read : ToSubclass] string AgentId;
  string SignatureValidationPolicy;
  [EmbeddedInstance("MSFT_SignatureValidation") : ToSubclass] MSFT_SignatureValidation SignatureValidations[];
  uint32 MaximumDownloadSizeMB;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_DSCMethodInvoked
{
  uint8 ConfigurationData[];
  uint8 ConfigurationNumber;
  uint32 Flags;
  string ResourceName;
  string ModuleName;
  string Guid;
  uint8 MethodNumber;
  string UserSid;
};

[Abstract,ClassVersion("1.0.0"),locale(1033)] 
class OMI_BaseResource
{
  [Required : ToSubclass DisableOverride] string ResourceId;
  [write : ToSubclass] string SourceInfo;
  [write : ToSubclass] string DependsOn[];
  [Required : ToSubclass DisableOverride] string ModuleName;
  [Required : ToSubclass DisableOverride] string ModuleVersion;
  [write : ToSubclass] string ConfigurationName;
  [EmbeddedInstance("MSFT_Credential") : ToSubclass] MSFT_Credential PsDscRunAsCredential;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_DSCResource : OMI_BaseResource
{
  [Required : ToSubclass DisableOverride,Override("ResourceId")] string ResourceId;
  [write : ToSubclass,Override("SourceInfo")] string SourceInfo;
  [write : ToSubclass,Override("DependsOn")] string DependsOn[];
  [Required : ToSubclass DisableOverride,Override("ModuleName")] string ModuleName;
  [Required : ToSubclass DisableOverride,Override("ModuleVersion")] string ModuleVersion;
  [write : ToSubclass,Override("ConfigurationName")] string ConfigurationName;
  [read : ToSubclass] string ResourceName;
  [read : ToSubclass] string InstanceName;
  [read : ToSubclass] boolean InDesiredState;
  [read : ToSubclass] boolean StateChanged;
  [read : ToSubclass] datetime StartDate;
  [read : ToSubclass] real64 DurationInSeconds;
  [read : ToSubclass] boolean RebootRequested;
  [read : ToSubclass] string InitialState;
  [read : ToSubclass] string FinalState;
  [read : ToSubclass] string Error;
};

[Abstract,ClassVersion("1.0.0"),locale(1033)] 
class OMI_MetaConfigurationResource
{
  [Required : ToSubclass DisableOverride] string ResourceId;
  [write : ToSubclass] string SourceInfo;
};

[Abstract,ClassVersion("1.0.0"),locale(1033)] 
class OMI_ConfigurationDownloadManager : OMI_MetaConfigurationResource
{
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_FileDownloadManager : OMI_ConfigurationDownloadManager
{
  [key] string SourcePath;
  [EmbeddedInstance("MSFT_Credential") : ToSubclass] MSFT_Credential Credential;
};

[Abstract,ClassVersion("1.0.0"),locale(1033)] 
class OMI_ResourceModuleManager : OMI_MetaConfigurationResource
{
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_FileResourceManager : OMI_ResourceModuleManager
{
  [key] string SourcePath;
  [EmbeddedInstance("MSFT_Credential") : ToSubclass] MSFT_Credential Credential;
};

[Abstract,ClassVersion("1.0.0"),locale(1033)] 
class MSFT_KeyValuePair
{
  [key] string key;
  [write : ToSubclass] string Value;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_PartialConfiguration : OMI_MetaConfigurationResource
{
  [write : ToSubclass] string Description;
  [write : ToSubclass] string ExclusiveResources[];
  [write : ToSubclass] string ConfigurationSource[];
  [write : ToSubclass] string ResourceModuleSource[];
  [write : ToSubclass] string DependsOn[];
  [ValueMap{"Push", "Pull", "Disabled"} : ToSubclass] string RefreshMode;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_ResourceChanged : MSFT_DSCResource
{
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_ResourceInDesiredState : MSFT_DSCResource
{
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_ResourceNotInDesiredState : MSFT_DSCResource
{
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_SignatureValidation : OMI_MetaConfigurationResource
{
  string TrustedStorePath;
  [ValueMap{"Configuration", "Module"} : ToSubclass] string SignedItemType[];
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_WebDownloadManager : OMI_ConfigurationDownloadManager
{
  [key] string ServerURL;
  string CertificateID;
  boolean AllowUnsecureConnection;
  string RegistrationKey;
  string ConfigurationNames[];
  string ProxyURL;
  [EmbeddedInstance("MSFT_Credential") : ToSubclass] MSFT_Credential ProxyCredential;
};

[Abstract,ClassVersion("1.0.0"),locale(1033)] 
class OMI_ReportManager : OMI_MetaConfigurationResource
{
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_WebReportManager : OMI_ReportManager
{
  [key] string ServerURL;
  string CertificateID;
  boolean AllowUnsecureConnection;
  string RegistrationKey;
  string ProxyURL;
  [EmbeddedInstance("MSFT_Credential") : ToSubclass] MSFT_Credential ProxyCredential;
};

[ClassVersion("1.0.0"),locale(1033)] 
class MSFT_WebResourceManager : OMI_ResourceModuleManager
{
  [key] string ServerURL;
  string CertificateID;
  boolean AllowUnsecureConnection;
  string RegistrationKey;
  string ProxyURL;
  [EmbeddedInstance("MSFT_Credential") : ToSubclass] MSFT_Credential ProxyCredential;
};

[Indication,Exception : ToSubclass DisableOverride,UMLPackagePath("CIM::Interop") : ToSubclass,locale(1033)] 
class OMI_Error : CIM_Error
{
  uint32 error_Code;
  string error_Type;
  [ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"} : ToSubclass] uint16 error_Category;
};
