<scpd>
	<!-- a simple service to admin the gateway (bundles, services, ...) -->
  <serviceStateTable>
    <stateVariable>
      <name>BundleList</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>string</dataType> <!-- CSV bundle id -->
    </stateVariable>

    <stateVariable>
      <name>ServiceList</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>string</dataType> <!-- CSV service id -->
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_BundleID</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>ui4</dataType>
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_ServiceID</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>ui4</dataType>
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_BundleLocation</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>string</dataType>
    </stateVariable>
	
    <stateVariable>
      <name>A_ARG_TYPE_BundleState</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>string</dataType>
      <allowedValueList>
		<allowedValue>UNINSTALLED</allowedValue>
		<allowedValue>INSTALLED</allowedValue>
		<allowedValue>RESOLVED</allowedValue>
		<allowedValue>STARTING</allowedValue>
		<allowedValue>STOPPING</allowedValue>
		<allowedValue>ACTIVE</allowedValue>
      </allowedValueList>
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_StartLevel</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>int</dataType>
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_HeaderNames</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>string</dataType> <!-- CSV -->
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_HeaderName</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>string</dataType>
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_HeaderValue</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>string</dataType>
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_PropertyKeys</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>string</dataType> <!-- CSV -->
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_PropertyKey</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>string</dataType>
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_PropertyValue</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>string</dataType>
    </stateVariable>

    <stateVariable>
      <name>A_ARG_TYPE_PropertyClassName</name>
	  <sendEventsAttribute>no</sendEventsAttribute>
      <dataType>string</dataType>
    </stateVariable>
	
	<stateVariable>
      <Optional/>
      <name>BundleEventInstalled</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- bundle id -->
    </stateVariable>

	<stateVariable>
      <Optional/>
      <name>BundleEventStarted</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- bundle id -->
    </stateVariable>

	<stateVariable>
      <Optional/>
      <name>BundleEventStopped</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- bundle id -->
    </stateVariable>

	<stateVariable>
      <Optional/>
      <name>BundleEventUpdated</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- bundle id -->
    </stateVariable>

	<stateVariable>
      <Optional/>
      <name>BundleEventInstalled</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- bundle id -->
    </stateVariable>

	<stateVariable>
      <Optional/>
      <name>BundleEventUninstalled</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- bundle id -->
    </stateVariable>

	<stateVariable>
      <Optional/>
      <name>ServiceEventRegistered</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- service id -->
    </stateVariable>

	<stateVariable>
      <Optional/>
      <name>ServiceEventRegistered</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- service id -->
    </stateVariable>
	
	<stateVariable>
      <Optional/>
      <name>ServiceEventUnregistering</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- service id -->
    </stateVariable>

	<stateVariable>
      <Optional/>
      <name>ServiceEventModified</name>
	  <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>ui4</dataType> <!-- service id -->
    </stateVariable>

  </serviceStateTable>
  
  <actionList>

    <action>
    <name>ListBundles</name>
      <argumentList>
        <argument>
          <name>CurrentBundleList</name>
          <direction>out</direction>
          <relatedStateVariable>BundleList</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
    <name>ListServices</name>
      <argumentList>
        <argument>
          <name>CurrentServiceList</name>
          <direction>out</direction>
          <relatedStateVariable>ServiceList</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
    <name>GetBundleInfo</name>
      <argumentList>
        <argument>
          <name>BundleID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleID</relatedStateVariable>
        </argument>
        <argument>
          <name>BundleLocation</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleLocation</relatedStateVariable>
        </argument>
        <argument>
          <name>BundleState</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleState</relatedStateVariable>
        </argument>
        <argument>
          <name>StartLevel</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_StartLevel</relatedStateVariable>
        </argument>
		<argument>
          <name>HeaderNames</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_HeaderNames</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
      <name>GetBundleHeader</name>
      <argumentList>
        <argument>
          <name>BundleID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleID</relatedStateVariable>
        </argument>
		<argument>
          <name>HeaderName</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_HeaderName</relatedStateVariable>
        </argument>
		<argument>
          <name>HeaderValue</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_HeaderValue</relatedStateVariable>
        </argument>
      </argumentList>
    </action>


    <action>
      <name>InstallBundle</name>
      <argumentList>
        <argument>
          <name>BundleLocation</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleLocation</relatedStateVariable>
        </argument>
        <argument>
          <name>BundleID</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleID</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
      <name>StartBundle</name>
      <argumentList>
        <argument>
          <name>BundleID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleID</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
      <name>StopBundle</name>
      <argumentList>
        <argument>
          <name>BundleID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleID</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
      <name>UpdateBundle</name>
      <argumentList>
        <argument>
          <name>BundleID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleID</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
      <name>UpdateBundleWithLocation</name>
      <argumentList>
        <argument>
          <name>BundleID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleID</relatedStateVariable>
        </argument>
        <argument>
          <name>BundleLocation</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleLocation</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
      <name>UninstallBundle</name>
      <argumentList>
        <argument>
          <name>BundleID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleID</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
      <name>GetServiceInfo</name>
      <argumentList>
        <argument>
          <name>ServiceID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_ServiceID</relatedStateVariable>
        </argument>
        <argument>
          <name>BundleID</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_BundleID</relatedStateVariable>
        </argument>
		<argument>
          <name>PropertyKeys</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_PropertyKeys</relatedStateVariable>
        </argument>
        <argument>
          <name>UsindBundles</name>
          <direction>out</direction>
          <relatedStateVariable>BundleList</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

    <action>
      <name>GetServiceProperty</name>
      <argumentList>
        <argument>
          <name>ServiceID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_ServiceID</relatedStateVariable>
        </argument>
		<argument>
          <name>PropertyKey</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_PropertyKey</relatedStateVariable>
        </argument>
		<argument>
          <name>PropertyValue</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_PropertyValue</relatedStateVariable>
        </argument>
		<argument>
          <name>PropertyClassName</name>
          <direction>out</direction>
          <relatedStateVariable>A_ARG_TYPE_PropertyClassName</relatedStateVariable>
        </argument>
      </argumentList>
    </action>

  </actionList>
</scpd>

