﻿<ManagementPack xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Manifest>
    <Identity>
      <ID>SampleMP.UserConfigurableTaskParameters</ID>
      <Version>1.0.0000.0</Version>
    </Identity>
    <Name>Sample MP - User Configurable Tasks Parameters</Name>
    <References>
      <Reference Alias="System">
        <ID>System.Library</ID>
        <Version>6.0.5000.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>
      <Reference Alias="SystemHealth">
        <ID>System.Health.Library</ID>
        <Version>6.0.5000.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>
      <Reference Alias="SystemPerf">
        <ID>System.Performance.Library</ID>
        <Version>6.0.5000.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>
      <Reference Alias="Windows">
        <ID>Microsoft.Windows.Library</ID>
        <Version>6.0.5000.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>
      <Reference Alias="SC">
        <ID>Microsoft.SystemCenter.Library</ID>
        <Version>6.0.5000.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>      
    </References>
  </Manifest>
  <TypeDefinitions>
    <ModuleTypes>
    <WriteActionModuleType ID="SampleTaskWriteAction" Accessibility="Internal" Batching="false">
      <Configuration>
        <xsd:element name="Parameter1" type="xsd:string"/>
        <xsd:element name="Parameter2" type="xsd:string"/>
        <xsd:element name="Parameter3" type="xsd:string"/>
        <xsd:element name="TimeoutSeconds" type="xsd:int"/>
      </Configuration>
      <OverrideableParameters>
        <OverrideableParameter ID="Parameter1" Selector="$Config/Parameter1$" ParameterType="string" />
        <OverrideableParameter ID="Parameter2" Selector="$Config/Parameter2$" ParameterType="string" />
        <OverrideableParameter ID="Parameter3" Selector="$Config/Parameter3$" ParameterType="string" />
        <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
      </OverrideableParameters>
      <ModuleImplementation Isolation="Any">
        <Composite>
          <MemberModules>
            <WriteAction ID="WA" TypeID="Windows!Microsoft.Windows.ScriptWriteAction">
              <ScriptName>SampleScript.js</ScriptName>
              <Arguments>"$Config/Parameter1$" "$Config/Parameter2$" "$Config/Parameter3$"</Arguments>
              <ScriptBody>
                var scriptArgs = WScript.Arguments;

                WScript.Echo("Parameter 1 " + scriptArgs(0));
                WScript.Echo("Parameter 2 " + scriptArgs(1));
                WScript.Echo("Parameter 3 " + scriptArgs(2));

              </ScriptBody>
              <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
            </WriteAction>
          </MemberModules>
          <Composition>
            <Node ID="WA" />
          </Composition>
        </Composite>
      </ModuleImplementation>
      <InputType>System!System.BaseData</InputType>
    </WriteActionModuleType>
    </ModuleTypes>
  </TypeDefinitions>
  <Monitoring>
    <Tasks>
      <Task ID="SampleTask" Accessibility="Internal" Enabled="true" Target="Windows!Microsoft.Windows.Computer" Timeout="300" Remotable="true">
        <Category>Maintenance</Category>
        <WriteAction ID="WA" TypeID="SampleTaskWriteAction">
          <Parameter1>Parameter1Value</Parameter1>
          <Parameter2>Parameter2Value</Parameter2>
          <Parameter3>Parameter3Value</Parameter3>
          <TimeoutSeconds>300</TimeoutSeconds>
        </WriteAction>
      </Task>
    </Tasks>
  </Monitoring>
</ManagementPack>