////////////////////////////////////////////////////////////////////////////////
//	HealthMon.Mof
//  Copyright (c)2000 Microsoft Corporation, All Rights Reserved
#pragma autorecover
#pragma namespace("\\root\\cimv2\\MicrosoftHealthMonitor")

//
//*****************************************************************************
//
class LogFileEventConsumer : __EventConsumer
{
    [key] string Name;
    [Description("Fully qualified path name for the log file."
                 "If file does not exist, it will be created."
                 "If directory does not exist, file will not be created.")]
    string Filename;
    string Text;
    
    [Description("Maximum size to which file is allowed to grow.  It will "
                 "be archived when it exceeds this size.  Archived files "
                 "have an extension of .001 through .999.  A value of zero "
                 "will be interpreted to mean 'do not archive.' ")]
    uint64  MaximumFileSize = 0;

    [Description("If FALSE or NULL, file will not be Unicode.")]
    boolean IsUnicode;
};

class CommandLineEventConsumer : __EventConsumer
{
    [key] string Name;
    [not_null] string ExecutablePath = "noop";
    string CommandLineTemplate;
    boolean UseDefaultErrorMode = FALSE;
    boolean CreateNewConsole = FALSE;
    boolean CreateNewProcessGroup = FALSE;
    boolean CreateSeparateWowVdm = FALSE;
    boolean CreateSharedWowVdm = FALSE;
    sint32 Priority = 32;
    string WorkingDirectory;
    string DesktopName;
    string WindowTitle;
    uint32 XCoordinate;
    uint32 YCoordinate;
    uint32 XSize;
    uint32 YSize;
    uint32 XNumCharacters;
    uint32 YNumCharacters;
    uint32 FillAttribute;
    uint32 ShowWindowCommand;
    boolean ForceOnFeedback = FALSE;
    boolean ForceOffFeedback = FALSE;
    boolean RunInteractively = FALSE;

    [description("Number of seconds that child process is allowed to run"
                 "if zero, process will not be terminated")]
    
    uint32 KillTimeout = 120;
};
    
[description("Logs events into event log")]
class NTEventLogEventConsumer : __EventConsumer
{
    [key] string Name;
    string UNCServerName;
    string SourceName;
    [not_null] uint32 EventID = 1;
    uint32 EventType = 1;
    uint32 Category;
    uint32 NumberOfInsertionStrings = 0;
    string InsertionStringTemplates[] = {""};
};
    
class ActiveScriptEventConsumer : __EventConsumer
{
    [key] string Name;
    string ScriptingEngine;
    string ScriptText;
    string ScriptFilename;

    [description("Number of seconds that script is allowed to run"
                 "if zero, script will not be terminated")]
    
    uint32 KillTimeout = 120;

};

instance of __Win32Provider as $P3
{
    Name = "LogFileEventConsumer";
    Clsid = "{266c72d4-62e8-11d1-ad89-00c04fd8fdff}";
};

instance of __EventConsumerProviderRegistration
{
    Provider = $P3;
    ConsumerClassNames = {"LogFileEventConsumer"};
};

instance of __Win32Provider as $P4
{
    Name = "CommandLineEventConsumer";
    Clsid = "{266c72e5-62e8-11d1-ad89-00c04fd8fdff}";
};

instance of __EventConsumerProviderRegistration
{
    Provider = $P4;
    ConsumerClassNames = {"CommandLineEventConsumer"};
};

instance of __Win32Provider as $P5
{
    Name = "NTEventLogEventConsumer";
    Clsid = "{266c72e6-62e8-11d1-ad89-00c04fd8fdff}";
};

instance of __EventConsumerProviderRegistration
{
    Provider = $P5;
    ConsumerClassNames = {"NTEventLogEventConsumer"};
};

instance of __Win32Provider as $P6
{
    Name = "ActiveScriptEventConsumer";
    Clsid = "{266c72e7-62e8-11d1-ad89-00c04fd8fdff}";
};

instance of __EventConsumerProviderRegistration
{
    Provider = $P6;
    ConsumerClassNames = {"ActiveScriptEventConsumer"};
};

//
//*****************************************************************************
//

[locale(1033)] 
class SMTPEventConsumer : __EventConsumer
{
  [key] string Name;
  [Template] string Subject;
  [Template] string Message;
  [Template] string ToLine;
  [Template] string FromLine;
  [not_null] string SMTPServer = "noop";
  [Template] string CcLine;
  [Template] string BccLine;
};

Instance of __Win32Provider as $P10
{
  Name = "SMTPEventConsumer";
  Clsid = "{C7A3A54B-0250-11d3-9CD1-00105A1F4801}";
};

Instance of __EventConsumerProviderRegistration
{
  Provider = $P10;
  ConsumerClassNames = {"SMTPEventConsumer"};
};

//
//*****************************************************************************
//
#pragma namespace("\\\\.\\Root\\Default")

[locale(1033)] 
class ActiveScriptEventConsumer : __EventConsumer
{
  [key] string Name;
  [not_null] string ScriptingEngine = "noop";
  [Template] string ScriptText;
  string ScriptFilename;
  uint32 KillTimeout = 120;
};

Instance of __Win32Provider as $P
{
  Name = "ActiveScriptEventConsumer";
  Clsid = "{266c72e7-62e8-11d1-ad89-00c04fd8fdff}";
  PerUserInitialization = TRUE;
};

Instance of __EventConsumerProviderRegistration
{
  Provider = $P;
  ConsumerClassNames = {"ActiveScriptEventConsumer"};
};
#pragma namespace("\\\\.\\Root")

Instance of __Namespace
{
  Name = "CIMV2";
};
#pragma namespace("\\\\.\\Root\\CIMV2")

[locale(1033),Singleton] 
class ScriptingStandardConsumerSetting : CIM_Setting
{
  [Read,Override("SettingID")] string SettingID = "ScriptingStandardConsumerSetting";
  [Read,Override("Caption")] string Caption = "Scripting Standard Consumer Setting";
  [Read,Override("Description")] string Description = "Registration data common to all instances of the Scripting Standard Consumer";
  [Read] uint32 MaximumScripts = 300;
  [Read,units("Minutes")] uint32 Timeout = 0;
};

Instance of ScriptingStandardConsumerSetting
{
  MaximumScripts = 300;
  Timeout = 0;
};
#pragma namespace("\\\\.\\Root\\Default")
instance of __namespace{ name="ms_409";};
#pragma namespace("\\\\.\\Root\\Default\\ms_409")

[AMENDMENT, LOCALE(0x409)] 
class ActiveScriptEventConsumer : __EventConsumer
{
  [description("Name of the scripting engine, ex: VBScript") : Amended] string ScriptingEngine;
  [description("Text of the script, expressed in a languageknown to the scripting engine.") : Amended] string ScriptText;
  [description("Filename of a script file to be run, note that thisis intended as an alternative to specifying the textof the script in ScriptText.  Results are undefinedif both properties are assigned values.") : Amended] string ScriptFilename;
  [description("Number of seconds that the script is allowed to run,if zero script will not be terminated.  Appliesonly to scripts specified in the ScriptText property.") : Amended] uint32 KillTimeout;
};
#pragma namespace("\\\\.\\Root\\CIMV2")
instance of __namespace{ name="ms_409";};
#pragma namespace("\\\\.\\Root\\CIMV2\\ms_409")

[Description("Provides registration datacommon to all instances of the Scripting Standard Consumer") : Amended,AMENDMENT, LOCALE(0x409)] 
class ScriptingStandardConsumerSetting : CIM_Setting
{
  [Description("Maximum number of scripts run before the consumerwill start a new instance.  The consumer should be shut downperiodically to clear out memory leaks from the scripts.") : Amended] uint32 MaximumScripts;
  [Description("Maximum number of minutes before the consumerwill start a new instance.  If zero, consumer lifetime iscontrolled by the MaximumScripts property. Valid Range: 0-71,000.") : Amended] uint32 Timeout;
};

