diff options
Diffstat (limited to 'idl/parlay/cs.idl')
-rw-r--r-- | idl/parlay/cs.idl | 550 |
1 files changed, 550 insertions, 0 deletions
diff --git a/idl/parlay/cs.idl b/idl/parlay/cs.idl new file mode 100644 index 0000000000..98364159be --- /dev/null +++ b/idl/parlay/cs.idl @@ -0,0 +1,550 @@ +//Source file: cs.idl +//Date: 12 October 2004 +//Charging Interfaces and Data Types for ETSI ES 203 915-12 v.1.1.1, DES/TISPAN-01005-12-OSA, Parlay 5.0 + + +#ifndef __CS_DEFINED +#define __CS_DEFINED + + +#include "osa.idl" + +module org { + + module csapi { + + + module cs { + + interface IpChargingSession; + + + + + struct TpMerchantAccountID { + TpString MerchantID; + TpInt32 AccountID; + }; + + + typedef TpInt32 TpCorrelationType; + + + struct TpCorrelationID { + TpSessionID CorrelationID; + TpCorrelationType CorrelationType; + }; + + + struct TpAmount { + TpInt32 Number; + TpInt32 Exponent; + }; + + + struct TpChargingPrice { + TpString Currency; + TpAmount Amount; + }; + + + typedef TpInt32 TpChargingParameterID; + + + enum TpChargingParameterValueType { + + P_CHS_PARAMETER_INT32, + P_CHS_PARAMETER_FLOAT, + P_CHS_PARAMETER_STRING, + P_CHS_PARAMETER_BOOLEAN, + P_CHS_PARAMETER_OCTETSET + }; + + + union TpChargingParameterValue switch(TpChargingParameterValueType) { + case P_CHS_PARAMETER_INT32: TpInt32 IntValue; + case P_CHS_PARAMETER_FLOAT: TpFloat FloatValue; + case P_CHS_PARAMETER_STRING: TpString StringValue; + case P_CHS_PARAMETER_BOOLEAN: TpBoolean BooleanValue; + case P_CHS_PARAMETER_OCTETSET: TpOctetSet OctetValue; + }; + + + typedef TpInt32 TpUnitID; + + + struct TpVolume { + TpAmount Amount; + TpUnitID Unit; + }; + + + typedef sequence <TpVolume> TpVolumeSet; + + + struct TpChargingSessionID { + IpChargingSession ChargingSessionReference; + TpSessionID ChargingSessionID; + TpInt32 RequestNumberFirstRequest; + }; + + + struct TpPriceVolume { + TpChargingPrice Price; + TpVolume Volume; + }; + + + typedef sequence <TpPriceVolume> TpPriceVolumeSet; + + + enum TpChargingError { + + P_CHS_ERR_UNDEFINED, + P_CHS_ERR_ACCOUNT, + P_CHS_ERR_USER, + P_CHS_ERR_PARAMETER, + P_CHS_ERR_NO_DEBIT, + P_CHS_ERR_NO_CREDIT, + P_CHS_ERR_VOLUMES, + P_CHS_ERR_CURRENCY, + P_CHS_ERR_NO_EXTEND, + P_CHS_ERR_RESERVATION_LIMIT, + P_CHS_ERR_CONFIRMATION_REQUIRED + }; + + + enum TpSessionEndedCause { + + P_CHS_CAUSE_UNDEFINED, + P_CHS_CAUSE_TIMER_EXPIRED + }; + + + enum TpAppInformationType { + + P_APP_INF_TIMESTAMP + }; + + + union TpAppInformation switch(TpAppInformationType) { + case P_APP_INF_TIMESTAMP: TpDateAndTime Timestamp; + }; + + + typedef sequence <TpAppInformation> TpAppInformationSet; + + + struct TpApplicationDescription { + TpString Text; + TpAppInformationSet AppInformation; + }; + + + struct TpChargingParameter { + TpChargingParameterID ParameterID; + TpChargingParameterValue ParameterValue; + }; + + + typedef sequence <TpChargingParameter> TpChargingParameterSet; + + + const TpChargingParameterID P_CHS_PARAM_UNDEFINED = 0; + + const TpChargingParameterID P_CHS_PARAM_ITEM = 1; + + const TpChargingParameterID P_CHS_PARAM_SUBTYPE = 2; + + const TpCorrelationType P_CHS_CORRELATION_UNDEFINED = 0; + + const TpCorrelationType P_CHS_CORRELATION_VOICE = 1; + + const TpCorrelationType P_CHS_CORRELATION_DATA = 2; + + const TpCorrelationType P_CHS_CORRELATION_MM = 3; + + const TpUnitID P_CHS_UNIT_UNDEFINED = 0; + + const TpUnitID P_CHS_UNIT_NUMBER = 1; + + const TpUnitID P_CHS_UNIT_OCTETS = 2; + + const TpUnitID P_CHS_UNIT_SECONDS = 3; + + const TpUnitID P_CHS_UNIT_MINUTES = 4; + + const TpUnitID P_CHS_UNIT_HOURS = 5; + + const TpUnitID P_CHS_UNIT_DAYS = 6; + + exception P_INVALID_USER { + TpString ExtraInformation; + }; + + + exception P_INVALID_ACCOUNT { + TpString ExtraInformation; + }; + + + exception P_INVALID_REQUEST_NUMBER { + TpString ExtraInformation; + }; + + + exception P_INVALID_VOLUME { + TpString ExtraInformation; + }; + + + const TpChargingParameterID P_CHS_PARAM_CONFIRMATION_ID = 3; + + const TpChargingParameterID P_CHS_PARAM_CONTRACT = 4; + + + + + interface IpAppChargingSession : IpInterface { + void creditAmountErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void creditAmountRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingPrice creditedAmount, + in TpChargingPrice reservedAmountLeft, + in TpInt32 requestNumberNextRequest + ); + + void creditUnitErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void creditUnitRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpVolumeSet creditedVolumes, + in TpVolumeSet reservedUnitsLeft, + in TpInt32 requestNumberNextRequest + ); + + void debitAmountErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void debitAmountRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingPrice debitedAmount, + in TpChargingPrice reservedAmountLeft, + in TpInt32 requestNumberNextRequest + ); + + void debitUnitErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void debitUnitRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpVolumeSet debitedVolumes, + in TpVolumeSet reservedUnitsLeft, + in TpInt32 requestNumberNextRequest + ); + + void directCreditAmountErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void directCreditAmountRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingPrice creditedAmount, + in TpInt32 requestNumberNextRequest + ); + + void directCreditUnitErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void directCreditUnitRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpVolumeSet creditedVolumes, + in TpInt32 requestNumberNextRequest + ); + + void directDebitAmountErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void directDebitAmountRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingPrice debitedAmount, + in TpInt32 requestNumberNextRequest + ); + + void directDebitUnitErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void directDebitUnitRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpVolumeSet debitedVolumes, + in TpInt32 requestNumberNextRequest + ); + + void extendLifeTimeErr ( + in TpSessionID sessionID, + in TpChargingError error + ); + + void extendLifeTimeRes ( + in TpSessionID sessionID, + in TpInt32 sessionTimeLeft + ); + + void rateErr ( + in TpSessionID sessionID, + in TpChargingError error + ); + + void rateRes ( + in TpSessionID sessionID, + in TpPriceVolumeSet rates, + in TpDuration validityTimeLeft + ); + + void reserveAmountErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void reserveAmountRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingPrice reservedAmount, + in TpInt32 sessionTimeLeft, + in TpInt32 requestNumberNextRequest + ); + + void reserveUnitErr ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpChargingError error, + in TpInt32 requestNumberNextRequest + ); + + void reserveUnitRes ( + in TpSessionID sessionID, + in TpInt32 requestNumber, + in TpVolumeSet reservedUnits, + in TpInt32 sessionTimeLeft, + in TpInt32 requestNumberNextRequest + ); + + void sessionEnded ( + in TpSessionID sessionID, + in TpSessionEndedCause report + ); + + }; + + + interface IpChargingSession : IpService { + void creditAmountReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpChargingPrice amount, + in TpBoolean closeReservation, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER); + + void creditUnitReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpVolumeSet volumes, + in TpBoolean closeReservation, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER); + + void debitAmountReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpChargingPrice amount, + in TpBoolean closeReservation, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER); + + void debitUnitReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpVolumeSet volumes, + in TpBoolean closeReservation, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER); + + void directCreditAmountReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpChargingParameterSet chargingParameters, + in TpChargingPrice amount, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER); + + void directCreditUnitReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpChargingParameterSet chargingParameters, + in TpVolumeSet volumes, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER); + + void directDebitAmountReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpChargingParameterSet chargingParameters, + in TpChargingPrice amount, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER); + + void directDebitUnitReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpChargingParameterSet chargingParameters, + in TpVolumeSet volumes, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER); + + void extendLifeTimeReq ( + in TpSessionID sessionID + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID); + + TpChargingPrice getAmountLeft ( + in TpSessionID sessionID + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID); + + TpInt32 getLifeTimeLeft ( + in TpSessionID sessionID + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID); + + TpVolumeSet getUnitLeft ( + in TpSessionID sessionID + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID); + + void rateReq ( + in TpSessionID sessionID, + in TpChargingParameterSet chargingParameters + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID); + + void release ( + in TpSessionID sessionID, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_REQUEST_NUMBER); + + void reserveAmountReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpChargingParameterSet chargingParameters, + in TpChargingPrice preferredAmount, + in TpChargingPrice minimumAmount, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER); + + void reserveUnitReq ( + in TpSessionID sessionID, + in TpApplicationDescription applicationDescription, + in TpChargingParameterSet chargingParameters, + in TpVolumeSet volumes, + in TpInt32 requestNumber + ) + raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER); + + }; + + + interface IpAppChargingManager : IpInterface { + void sessionAborted ( + in TpSessionID sessionID + ); + + void abortMultipleChargingSessions ( + in TpSessionIDSet chargingSessionSet + ); + + }; + + + interface IpChargingManager : IpService { + TpChargingSessionID createChargingSession ( + in IpAppChargingSession appChargingSession, + in TpString sessionDescription, + in TpMerchantAccountID merchantAccount, + in TpAddress user, + in TpCorrelationID correlationID + ) + raises (TpCommonExceptions,P_INVALID_USER,P_INVALID_ACCOUNT); + + TpChargingSessionID createSplitChargingSession ( + in IpAppChargingSession appChargingSession, + in TpString sessionDescription, + in TpMerchantAccountID merchantAccount, + in TpAddressSet users, + in TpCorrelationID correlationID + ) + raises (TpCommonExceptions,P_INVALID_USER,P_INVALID_ACCOUNT); + + }; + + }; + + }; + +}; + +#endif |