aboutsummaryrefslogtreecommitdiffstats
path: root/idl/parlay/cs.idl
blob: 98364159be0b4a4174568cb3dbfd75d677f0c135 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
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