#ifndef CCIF_IDL
#define CCIF_IDL

#include "../inap/toveinap.idl"

#pragma prefix "idl.tove"

// CC management interface module (SMP-SSP)
// The management interface is used for TDP assigment/management.

module ccIf
{
   enum Side
   {
      originating,
	   terminating
   };

   struct TriggerType
   {
	   string type;
	   string criteria;
	   string category;
      string address;
      string applicationContext;
	   toveinap::ServiceKeyType 	serviceKey;
   };

   typedef sequence<TriggerType> TriggersType;

   struct TDPtype
   {
	   string 		   type; // DP name
	   string 		   messageType; // Request, notification
	   TriggersType	setTriggers;
	   TriggersType 	allowedTriggers;
   };

   typedef sequence<TDPtype> TDPsType;

   // SSP management interface
   interface managementServer
   {
	   // Set DPs message type (request, notification)
      void setMessageType(in Side side, in string dpType,
         in string messageType);

	   // Add trigger to DP
	   void addTrigger(in Side side, in string dpType,
	      in TriggerType newTrigger);

	   // Remove trigger from DP
	   void deleteTrigger(in Side side, in string dpType,
 	      in TriggerType oldTrigger);

	   // Read TDP type, message type, set triggers and allowed triggers
	   void requestTDPreport(in Side side, out TDPsType TDPs);

	   void test();
   };

};

#endif // CCIF_IDL
