-- IDL module extracted from ITU-T Q Suppl. 28 (12/1999)

// File SPFEESubCommonTypes.idl // Contents: // This file include common definitions required by the subscription // magement component and its clients. // @see SPFEECommonTypes // @see SPFEEAccessCommonTypes // #ifndef SPFEESUBCOMMONTYPES_IDL #define SPFEESUBCOMMONTYPES_IDL // This file provides definitions that are common to the service architecture. #include "SPFEEAccessCommonTypes.idl" // Module with common types definitions for subscription management. module SPFEESubCommonTypes { // List of Service Identifiers. typedef sequence<SPFEEAccessCommonTypes::t_ServiceId> t_ServiceIdList; // Service Types typedef string t_ServiceType; // Terminal Type: Just an example. enum t_TermType {UndefinedTermType,PersonalComputer, WorkStation, TVset, Videotelephone, Cellularphone, PBX, VideoServer, VideoBridge, Telephone, G4Fax}; // NAP type: used to determine the instantation of available QoS. enum t_NapType {UndefinedNapType,NapTypeFixed, NapTypeWireless}; // List of NAPs typedef sequence<SPFEEAccessCommonTypes::t_NAPId> t_NAPIdList; // Terminal presentation technology. This is just an example enum t_PresentationSupport { UndefinedPresSupp,X11R6, WINDOWS95, MGEG }; // The Account Number represents the Subscriber identifier. typedef string t_AccountNumber; typedef sequence<t_AccountNumber> t_SubscriberIdList; // Types required for SAG management // Users, terminals and NAPs are considered (subscription) entities enum t_entityType {user, terminal, nap}; // Entity Id allows to identity uniquely an entity inside the retailer domain. union t_entityId switch (t_entityType) { case user: SPFEECommonTypes::t_UserId userId; case terminal: SPFEEAccessCommonTypes::t_TerminalId terminalId; case nap: SPFEEAccessCommonTypes::t_NAPId napId; }; typedef sequence<t_entityId> t_entityIdList; // An entity is characterized by its identifier and name and a set of properties. struct t_Entity { t_entityId entityId; string entityName; SPFEECommonTypes::t_PropertyList properties; }; typedef sequence<t_Entity> t_EntityList; // The SAE is characterized by an identifier, a name and a set of properties struct t_Sae { t_entityId entityId; string entityName; SPFEECommonTypes::t_PropertyList properties; // like password }; // The SAG identifier identifies a SAG uniquely inside the retailer domain. typedef short t_SagId; typedef sequence<t_SagId> t_SagIdList; // A SAG is characterized by its identifier, a textual description of the // group and the list of entities composing it. // The identifier is the same as the one for SAG Service profile corresponding to that SAG. struct t_Sag { t_SagId sagId; string sagDescription; t_entityIdList entityList; }; typedef sequence<t_Sag> t_SagList; // Subscriber Information: // Time and Date. struct t_DateTime { string date; string time; }; // Textual identification of a person. For example, name, address and position. typedef string t_Person; // Indicates the date and time an authorization expires on and the person who granted it. struct t_AuthLimit { t_DateTime limitDate; string authority; }; // note: Shouldn't this be per service contract? // A subscriber is identified by its account number and characterized by // name, address, monthly charge, payment record, credit information, // date which its subscription expires on, the list of subscribed services // and the list of defined SAGs. struct t_Subscriber { t_AccountNumber accountNumber; SPFEECommonTypes::t_UserId subscriberName; t_Person identificationInfo; t_Person billingContactPoint; string RatePlan; any paymentRecord; any credit; }; typedef sequence<t_Subscriber> t_SubscriberList; // This structure contains information about the minimal required configuration // of a service. This is used to specify a configuration for a particular service session struct t_RequiredConfiguration { t_TermType termType; t_NapType nap_type; t_PresentationSupport presentation_support; SPFEECommonTypes::t_PropertyList others; // to be determined. }; // Service access rights. enum t_AccessRight {create,join,be_invited}; // List of possible service access rights. typedef sequence<t_AccessRight> t_AccessRightList; // Service Parameter name. typedef string t_ParameterName; // Service Parameter configurability. enum t_ParameterConfigurability { FIXED_BY_PROVIDER, CONFIGURABLE_BY_SUBSCRIBER, CUSTOMIZABLE_BY_USER }; // Service Parameter value. typedef any t_ParameterValue; // Service Parameters definition: struct t_Parameter { t_ParameterName name; t_ParameterConfigurability configurability; t_ParameterValue value; }; typedef sequence<t_Parameter> t_ParameterList; struct t_ServiceDescription { SPFEEAccessCommonTypes::t_ServiceId serviceId; SPFEEAccessCommonTypes::t_UserServiceName serviceName; t_ParameterList serviceCommonParams; t_ParameterList serviceSpecificParams; }; // t_serviceTemplate: It describes a service instance. struct t_ServiceTemplate { SPFEEAccessCommonTypes::t_ServiceId serviceInstanceId; SPFEEAccessCommonTypes::t_UserServiceName serviceInstanceName; t_ServiceIdList requiredServices; t_ServiceDescription serviceDescription; }; typedef sequence<t_ServiceTemplate> t_ServiceTemplateList; // t_ServiceProfile: It describes a service customization. typedef string t_ServiceProfileId; typedef sequence<t_ServiceProfileId> t_ServiceProfileIdList; struct t_ServiceProfile { t_ServiceProfileId spId; t_ServiceDescription serviceDescription; }; typedef sequence<t_ServiceProfile> t_ServiceProfileList; // Service Profile for a SAG. typedef t_ServiceProfile t_SagServiceProfile; // Service Profile by default in a Service Contract. typedef t_ServiceProfile t_SubscriptionProfile; // List of SAG Service Profiles typedef sequence<t_SagServiceProfile> t_SagServiceProfileList; // Service Contract: Describes the relationship of a subscriber with the // provider for the provision of a service. struct t_ServiceContract { SPFEEAccessCommonTypes::t_ServiceId serviceId; t_AccountNumber accountNumber; short maxNumOfServiceProfiles; t_DateTime actualStart; t_DateTime requestedStart; t_Person requester; t_Person technicalContactPoint; t_AuthLimit authorityLimit; t_SubscriptionProfile subscriptionProfile; t_SagServiceProfileList sagServiceProfileList; }; // Notification Type, used in "i_SubscriptionNotify::notify" enum t_subNotificationType {NEW_SERVICES,PROFILE_MODIFIED,SERVICES_WITHDRAWN}; // Notification Type, used in "i_ServiceNotify::notify" enum t_slcmNotificationType {NEW_SERVICE,TEMPLATE_MODIFIED,SERVICE_WITHDRAWN}; }; #endif // File SPFEESubCommonTypes.idl