#pragma autorecover
#pragma namespace("\\root\\cimv2\\MicrosoftHealthMonitor")

//
//*****************************************************************************
//
class MessageBoxEventConsumer : __EventConsumer
{
    [key] string Name;
    string Title;
    string Text;
};

class EmailEventConsumer : __EventConsumer
{
    [key] string Name;
    string Subject;
    string Message;
    [not_null] string ToLine = "noop";
    string CcLine;
    string BccLine;
    boolean IsHTML = FALSE;
    sint32 Importance = 1;
};


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 PerformanceEventConsumer : __EventConsumer
{
    [key] string Name;
    string Filename;
    string Text;
    sint32 CountToLog;
};

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 NT event log")]
class NTEventLogEventConsumer : __EventConsumer
{
    [key] string Name;
    string UNCServerName;
    string SourceName;
    [not_null] uint32 EventID = 0;
    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;

};

class ConsoleEventConsumer : __EventConsumer
{
    [key] string Name;
    string Text;
};
                 
[description("Relays alpha-numeric message to a pager "
		     "This consumer expects the Pager Service Provider "
			 "to adhere to the national standard 'Telocator "
			 "Alphanumeric Protocol (TAP)'")]
class PagerEventConsumer  : __EventConsumer
{
    [key] string Name;

    [description("Number to dial.  See modem documentation for allowable characters"
				 "Note that this number is usually different than the number dialed"
				 "manually.")]
    string  PhoneNumber;

	[description("ID of the pager owner, this may be the manual-dial phone number.")]
	string ID;

    [description("Alphanumeric message to send.  Note that this message must be "
                 "composed entirely of 7-bit ASCII characters.  The use of "
                 "printable characters is highly recommended.")]
    string Message;

	[description("Port that is connected to modem, e.g. COM1")]
	string Port;

	[description("Maximum baud rate supported by the pager service provider, "
				 " if NULL, the PagerEventConsumer will use modem defaults")]
	uint32 BaudRate;

	[description("Additional setup string required by modem or pager service provider "
			     "the PagerEventConsumer will set the modem settings to those required "
				 "by the Telocator Alphanumeric Protocol (TAP) standard.  If further "
				 "adjustments are required by your modem or by your pager service provider "
				 "you may enter those here.  Note that these settings override the settings "
				 "suggested by the standard and so should be used carefully. This string "
				 "should be left NULL in most cases. "
				 "The standard settings are Even Parity, Seven Data Bits, and One Stop Bit.")]
	string ModemSetupString;

    [description("Number of seconds to wait for pager service provider to answer.")]
    uint32 AnswerTimeout=30;
};

instance of __Win32Provider as $P1
{
    Name = "MessageBoxEventConsumer";
    Clsid = "{266c72d2-62e8-11d1-ad89-00c04fd8fdff}";
};

instance of __EventConsumerProviderRegistration
{
    Provider = $P1;
    ConsumerClassNames = {"MessageBoxEventConsumer"};
};

instance of __Win32Provider as $P2
{
    Name = "EmailEventConsumer";
    Clsid = "{266c72d3-62e8-11d1-ad89-00c04fd8fdff}";
};

instance of __EventConsumerProviderRegistration
{
    Provider = $P2;
    ConsumerClassNames = {"EmailEventConsumer"};
};

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"};
};

instance of __Win32Provider as $P7
{
    Name = "ConsoleEventConsumer";
    Clsid = "{266c72f2-62e8-11d1-ad89-00c04fd8fdff}";
};

instance of __EventConsumerProviderRegistration
{
    Provider = $P7;
    ConsumerClassNames = {"ConsoleEventConsumer"};
};

instance of __Win32Provider as $P8
{
    Name = "PerformanceEventConsumer";
    Clsid = "{266c72f8-62e8-11d1-ad89-00c04fd8fdff}";
};

instance of __EventConsumerProviderRegistration
{
    Provider = $P8;
    ConsumerClassNames = {"PerformanceEventConsumer"};
};

instance of __Win32Provider as $P9
{
    Name = "PagerEventConsumer";
    Clsid = "{C7A3A54A-0250-11d3-9CD1-00105A1F4801}";
};

instance of __EventConsumerProviderRegistration
{
    Provider = $P9;
    ConsumerClassNames = {"PagerEventConsumer"};
};



//
//*****************************************************************************
//

[locale(1033)] 
class SMTPEventConsumer : __EventConsumer
{
  [key] string Name;
  [Template] string Subject;
  [Template] string Message;
  [Template] string ToLine;
  [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;
};

