M_srgs.idl
#ifndef __PROSPECT_SUBSCRIPTION_IDLFILE_M_srgs_idl__
#define __PROSPECT_SUBSCRIPTION_IDLFILE_M_srgs_idl__
///////////////////////////////////////////////////////////////////////
//
// Subscription Registrar Interface Definitions
// Description: This module defines the interface of the Subscription
// Registrar CO.
// Created: 29/7/96
// By: D.Lewis, A.DaCruz
//
///////////////////////////////////////////////////////////////////////
// Modifications:
// Date: 29/7/96
// By: D.Lewis
// Reason: initial version based on TINA/TANGRAM
// subscription models.
//
// Date: 2/8/96
// By: D.Lewis
// Reason:
// - add setSubscription operation to i_subscrnCntrl
// interface
// - change parameter service_profile in setSvcProfile
// from t_SvcProfileId to t_SvcProfile
// - add checkConfig operation to i_subscrnInfoQuery
// interface
// - add exception e_subInvalidSvcProfile to those raised
// by operation getSvcProfile
// Date: 22/10/96
// By: T.Tiropanis
// Reason: Changed all identifiers with SVC to Svc
//
// Date: 6/11/96
// By: D.Lewis
// Reason: added exception e_InvlidSvcTempalte to those returned by
// method subscription in interface i_SubscrnMgmt
//
// Date: 10/12/96
// By: D.Lewis
// Reason: change prefix of exceptions from e_8 to e_sub*
//
//
// Date: 6/1/97
// By: D.Lewis
// Reason: added svc_id to cancel because need to delete subscription
//
// Date: 19/9/97
// By: D.Lewis
// Reason: added new operation i_SubscrnInfoQuery:getProfileIdList
//
// Date: 7/10/97
// By: D.Lewis
// Reason: added new operation i_subscrnInfoQuery:getProfileInfo
//
// Date: 11/2/98
// By: J.Klein
// Reason:
// - added parameter svc_id to i_srInit.srgs_init()
// - added getSLA () to i_subscrnInfoQuery
//
///////////////////////////////////////////////////////////////////////
#include "C_sub.idl"
///////////////////////////////////////////////////////////////////////
//
// begin module SubRgs
//
module SubRgs {
interface i_srgsCO {};
///////////////////////////////////////////////////////////////////////
//
// SubRgs Lifecycle Management Interface (i_srInit)
//
// This interface acts as a factory interface to create SubRgs COs
//
interface i_srInit: i_CoInit {
void rgs_init (
in string svc_id,
out t_IntRefList generated_ref_list)
raises (e_subAccessDenied);
// This operation will create a new SubRgs CO acting
// for the given service id.
// The operation is used to implement subclassing of
// this CO.
//////////////////////////////////////////////////
void rgs_terminate (
in string svc_id)
raises (e_subAccessDenied);
};
///////////////////////////////////////////////////////////////////////
//
// SubRgs Subscription Registrar Management (i_srMgmt)
interface i_srMgmt: i_CoMgmt {};
///////////////////////////////////////////////////////////////////////
//
// SubRgs Subscription Management Interface (i_subscrnMgmt)
// "This interface allows for the setup and subsequent
// modification of service subscriptions. It provides an interface
// available to the provider administraot only";
interface i_subscrnMgmt {
void subscribe (
in string account_no,
in t_SubscriptionContract subscr_contract )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSvcTemplate);
// The result of this information is to create a
// SubscriptionContract relationship between a
// subscriber and a ServiceTemplate. The
// SubscriptionRegistrar should check to make sure
// the Subscriber object already exists. The
// SubscriptionRegistrar the creates a
// SubscriptionContract relationship.
// If a SubscriptionPortfolio does not exist for
// the subscriber, then one is created by the
// SubscriberManager and the SubscriptionContract
// object is added to it.
//////////////////////////////////////////////////
void cancel (
in string account_no,
in t_SvcId svc_id )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation terminates a subscribers
// subscription to a service. The
// SubscriptionContract object, the Subscription,
// and all the associated ServiceProfiles are
// deleted. Also, all assignments of ServieProfiles
// to SAG are deleted. The SAG themselves are not
// deleted as a result of this operation.
//////////////////////////////////////////////////
void activate (
in string account_no,
in t_SagId sag_id )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG);
// This operation allows a client to request
// that a subscription be activated, i.e. a
// particular SAG associated with a Subscriber
// now use a particular service. This operation
// requires previous assignment of a ServiceProfile
// to a SAG. this operation corresponds to the
// authorization stage of the service lifecycle.
//////////////////////////////////////////////////
void deactivated (
in string account_no,
in t_SagId sag_id )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG);
// This operation prevents a particular SAG from
// using a particular service, i.e. it is the
// opposite of the activate operation.
//////////////////////////////////////////////////
void modifySubscriptionContract (
in string account_no,
in t_SubscriptionContract subscr_contract )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation allows the modification of a subscription
// contract. The service id cannot however be modified
//////////////////////////////////////////////////
}; // end of i_subscrnMgmt interface
///////////////////////////////////////////////////////////////////////
//
// SubRgs Subscription Control Interface (i_subscrnCntrl)
// "This interface allows for the setup and subsequent
// modification of service subscriptions.";
interface i_subscrnCntrl {
void setSubscription (
in string account_no,
in t_Subscription subscription)
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation allows the details of a subscription
// object to be instatiated. Since a subscriber can have
// only one subscription to a service, the account number
// implicitly associates this subscription with a
// subscription contract.
//////////////////////////////////////////////////
void assign (
in string account_no,
in t_SagId sag_id,
in t_SvcProfileId svc_profile_id )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG,
e_subInvalidSvcProfile);
// The result of this operation is to assign the
// ServiceProfile to a SAG, and the ServiceProfile
// should exist to do this operation.
//////////////////////////////////////////////////
void deassign (
in string account_no,
in t_SagId sag_id )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG);
// This operation delets the assignment of a
// ServiceProfile to a SAG, i.e. it is the opposite
// of the assign operation.
//////////////////////////////////////////////////
void setSvcProfile (
in string account_no,
in t_SvcProfile svc_profile )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSvcProfile);
// This operation allows for the setting of the
// service profile for a specifc subscription,
// specified implicitly by the account number
// Note the attribute settings of a
// ServiceProfile may not override the mandatory
// settings of the Subscription.
//////////////////////////////////////////////////
void delSvcProfile (
in string account_no,
in t_SvcProfileId svc_profile_id )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSvcProfile);
// This operation deletes a particular ServiceProfile
//////////////////////////////////////////////////
void getSubscriptionContract (
in string account_no,
in t_SvcId svc_id,
out t_SubscriptionContract subscr_contract )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation allows for the retrieval of service
// contract information.
//////////////////////////////////////////////////
}; // end of i_subscrnCntrl interface
///////////////////////////////////////////////////////////////////////
//
// SubRgs Subscription Info Query Interface (i_subscrnInfoQuery)
// This interface allows a client to get subscription and
// service characteristics.
interface i_subscrnInfoQuery {
void getSubscription (
in string account_no,
in t_SvcId svc_id,
out t_Subscription subscription )
raises (e_subAccessDenied,
e_subInvalidAccountNo);
// This operation gets the global subscription
// characteristics for a subscriber to a particular
// service.
//////////////////////////////////////////////////
void checkConfig (
in t_SagId sag_id,
in t_Configuration configuration,
in t_SelectionKey selection_key,
out boolean config_OK,
out t_SvcProfileId svc_profile_id)
raises (e_subAccessDenied,
e_subInvalidSAG);
void getUsersSubscriber (
in t_UserId user,
out string account_no )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidUser);
// This operation returns for a given username
// the associated subscribers id (account number).
//////////////////////////////////////////////////
void getSvcProfile (
in string account_no,
in t_SagId sag_id,
out t_SvcProfile svc_profile )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSAG,
e_subInvalidSvcProfile);
// This operation gets the Serviceprofile
// corresponding to a particular SAG for a
// particular service.
//////////////////////////////////////////////////
void getProfileIdList (
in string account_no,
in t_SvcId svc_id,
out t_SvcProfileIdList svc_profile_id_list )
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSvcTemplate,
e_subInvalidSvcProfile);
void getProfileInfo (
in string account_no,
in t_SvcProfileId svc_profile_id,
out t_SvcProfile svc_profile)
raises (e_subAccessDenied,
e_subInvalidAccountNo,
e_subInvalidSvcProfile);
void getSLA (
in string account_no,
in t_SvcId svc_id,
out t_SLA sla)
raises (e_subAccessDenied,
e_subInvalidAccountNo );
// This operation gets the service level agreement
// corresponding to a subscription for a
// particular service.
//////////////////////////////////////////////////
}; // end of i_subscrnInfoQuery interface
}; // end of SubRgs Module
//
// end of module SubRgs
//
///////////////////////////////////////////////////////////////////////
#endif