1 //Source file: pam_data.idl
2 //Date: 13 October 2004
3 //Presence and Availability Management Data Types for ES 203 915-14 V1.1.1, DES/TISPAN-01005-14-OSA, Parlay 5.0
5 #ifndef __PAM_DATA_DEFINED
6 #define __PAM_DATA_DEFINED
18 typedef TpInt64 TpPAMTimeInterval
;
21 typedef TpURN TpPAMFQName
;
24 typedef sequence
<TpPAMFQName
> TpPAMFQNameList
;
27 typedef TpOctetSet TpPAMCredential
;
30 typedef TpString TpPAMCapability
;
33 typedef sequence
<TpPAMCapability
> TpPAMCapabilityList
;
36 struct TpPAMAttributeDef
{
40 TpBoolean IsRevertOnExpiration
;
45 typedef sequence
<TpPAMAttributeDef
> TpPAMAttributeDefList
;
48 struct TpPAMAttribute
{
49 TpString AttributeName
;
50 TpAttributeValue AttributeValue
;
51 TpPAMTimeInterval ExpiresIn
;
55 typedef sequence
<TpPAMAttribute
> TpPAMAttributeList
;
57 const TpInt64 PAM_MAX_LONGINT
= 0x7fffffff;
59 exception P_PAM_UNKNOWN_TYPE
{
60 TpString ExtraInformation
;
64 exception P_PAM_UNKNOWN_MEMBER
{
65 TpString ExtraInformation
;
69 exception P_PAM_UNKNOWN_IDENTITY
{
70 TpString ExtraInformation
;
74 exception P_PAM_UNKNOWN_GROUP
{
75 TpString ExtraInformation
;
79 exception P_PAM_UNKNOWN_CAPABILITY
{
80 TpString ExtraInformation
;
84 exception P_PAM_UNKNOWN_ATTRIBUTES
{
85 TpString ExtraInformation
;
89 exception P_PAM_UNKNOWN_ATTRIBUTE
{
90 TpString ExtraInformation
;
94 exception P_PAM_UNKNOWN_ASSIGNMENT
{
95 TpString ExtraInformation
;
99 exception P_PAM_UNKNOWN_ALIAS
{
100 TpString ExtraInformation
;
104 exception P_PAM_UNKNOWN_AGENT
{
105 TpString ExtraInformation
;
109 exception P_PAM_UNASSIGNED_ALIAS
{
110 TpString ExtraInformation
;
114 exception P_PAM_TYPE_EXISTS
{
115 TpString ExtraInformation
;
119 exception P_PAM_TYPE_ASSOCIATED
{
120 TpString ExtraInformation
;
124 exception P_PAM_NOT_REGISTERED
{
125 TpString ExtraInformation
;
129 exception P_PAM_NOT_MEMBER
{
130 TpString ExtraInformation
;
134 exception P_PAM_NO_CAPABILITY
{
135 TpString ExtraInformation
;
139 exception P_PAM_MEMBER_EXISTS
{
140 TpString ExtraInformation
;
144 exception P_PAM_IS_CYCLIC
{
145 TpString ExtraInformation
;
149 exception P_PAM_IDENTITY_EXISTS
{
150 TpString ExtraInformation
;
154 exception P_PAM_DISASSOCIATED_TYPE
{
155 TpString ExtraInformation
;
159 exception P_PAM_ATTRIBUTE_EXISTS
{
160 TpString ExtraInformation
;
164 exception P_PAM_ALIAS_NOT_UNIQUE
{
165 TpString ExtraInformation
;
169 exception P_PAM_ALIAS_EXISTS
{
170 TpString ExtraInformation
;
174 exception P_PAM_AGENT_EXISTS
{
175 TpString ExtraInformation
;
179 struct TpPAMPresenceData
{
181 TpString subscriberStatus
;
182 TpString networkStatus
;
183 TpPAMCapability communicationMeans
;
184 TpAddress contactAddress
;
185 TpString subscriberProvidedLocation
;
186 TpString networkProvidedLocation
;
192 typedef sequence
<TpPAMPresenceData
> TpPAMPresenceDataList
;
195 typedef TpString TpPAMPrivacyCode
;
198 struct TpPAMAvailabilityProfile
{
199 TpPAMPrivacyCode PrivacyCode
;
200 TpPAMPresenceData AvailabilityData
;
204 typedef sequence
<TpPAMAvailabilityProfile
> TpPAMAvailabilityProfileList
;
207 enum TpPAMContextName
{
210 PAM_CONTEXT_COMMUNICATION
214 struct TpPAMCommunicationContext
{
215 TpPAMCapability CommunicationCapability
;
219 union TpPAMContextData
switch(TpPAMContextName
) {
220 case PAM_CONTEXT_COMMUNICATION
: TpPAMCommunicationContext CommunicationContext
;
221 default: short Dummy
;
225 struct TpPAMContext
{
226 TpPAMContextData ContextData
;
227 TpAttributeList AskerData
;
231 typedef sequence
<TpPAMContext
> TpPAMContextList
;
234 enum TpPAMACLDefault
{
241 struct TpPAMAccessControlData
{
242 TpPAMACLDefault DefaultPolicy
;
243 TpPAMFQNameList AllowList
;
244 TpPAMFQNameList DenyList
;
248 typedef TpString TpPAMPreferenceOp
;
251 enum TpPAMPreferenceType
{
258 enum TpPAMEventName
{
260 PAM_CE_IDENTITY_PRESENCE_SET
,
261 PAM_CE_AVAILABILITY_CHANGED
,
262 PAM_CE_WATCHERS_CHANGED
,
263 PAM_CE_IDENTITY_CREATED
,
264 PAM_CE_IDENTITY_DELETED
,
265 PAM_CE_GROUP_MEMBERSHIP_CHANGED
,
266 PAM_CE_AGENT_CREATED
,
267 PAM_CE_AGENT_DELETED
,
268 PAM_CE_AGENT_ASSIGNED
,
269 PAM_CE_AGENT_UNASSIGNED
,
270 PAM_CE_CAPABILITY_CHANGED
,
271 PAM_CE_AGENT_CAPABILITY_PRESENCE_SET
,
272 PAM_CE_AGENT_PRESENCE_SET
276 typedef sequence
<TpPAMEventName
> TpPAMEventNameList
;
279 struct TpPAMICEventData
{
280 TpStringList IdentityType
;
284 struct TpPAMICNotificationData
{
285 TpPAMFQNameList Identities
;
289 struct TpPAMIDEventData
{
290 TpPAMFQNameList IdentityName
;
291 TpStringList IdentityType
;
295 struct TpPAMIDNotificationData
{
296 TpPAMFQNameList Identities
;
300 struct TpPAMGMCEventData
{
301 TpPAMFQNameList GroupName
;
302 TpStringList GroupType
;
306 struct TpPAMGMCNotificationData
{
307 TpPAMFQNameList Groups
;
311 struct TpPAMACEventData
{
312 TpStringList AgentType
;
316 struct TpPAMACNotificationData
{
317 TpPAMFQNameList Agents
;
321 struct TpPAMADEventData
{
322 TpPAMFQNameList AgentName
;
323 TpStringList AgentType
;
327 struct TpPAMADNotificationData
{
328 TpPAMFQNameList Agents
;
332 struct TpPAMAAEventData
{
333 TpPAMFQNameList IdentityName
;
334 TpStringList IdentityType
;
335 TpPAMFQNameList AgentName
;
336 TpStringList AgentType
;
340 struct TpPAMAANotificationData
{
341 TpPAMFQName Identity
;
346 struct TpPAMAUEventData
{
347 TpPAMFQNameList IdentityName
;
348 TpStringList IdentityType
;
349 TpPAMFQNameList AgentName
;
350 TpStringList AgentType
;
354 struct TpPAMAUNotificationData
{
355 TpPAMFQName Identity
;
360 struct TpPAMCCEventData
{
361 TpPAMFQNameList IdentityName
;
362 TpStringList IdentityType
;
363 TpPAMCapabilityList Capabilities
;
367 struct TpPAMCCNotificationData
{
368 TpPAMFQName Identity
;
369 TpPAMCapabilityList Capabilities
;
373 struct TpPAMACPSEventData
{
374 TpPAMFQNameList AgentName
;
375 TpStringList AgentType
;
376 TpPAMCapabilityList Capabilities
;
377 TpStringList AttributeNames
;
378 TpPAMTimeInterval ReportingPeriod
;
382 struct TpPAMACPSNotificationData
{
384 TpPAMCapability Capability
;
385 TpStringList AttributeNames
;
389 struct TpPAMAPSEventData
{
390 TpPAMFQNameList AgentName
;
391 TpStringList AgentType
;
392 TpStringList AttributeNames
;
393 TpPAMTimeInterval ReportingPeriod
;
397 struct TpPAMAPSNotificationData
{
399 TpStringList AttributeNames
;
403 struct TpPAMIPSEventData
{
404 TpPAMFQNameList IdentityName
;
405 TpStringList IdentityType
;
406 TpStringList AttributeNames
;
407 TpPAMTimeInterval ReportingPeriod
;
411 struct TpPAMIPSNotificationData
{
412 TpPAMFQName Identity
;
413 TpPAMPresenceDataList Attributes
;
417 struct TpPAMAVCEventData
{
418 TpPAMFQNameList IdentityName
;
419 TpStringList IdentityType
;
420 TpPAMContextList PAMContext
;
421 TpStringList AttributeNames
;
422 TpPAMTimeInterval ReportingPeriod
;
426 struct TpPAMAVCNotificationData
{
427 TpPAMFQName Identity
;
428 TpPAMAvailabilityProfileList Availability
;
432 struct TpPAMWCEventData
{
433 TpPAMEventNameList Events
;
434 TpPAMFQNameList IdentityName
;
435 TpStringList IdentityType
;
436 TpPAMTimeInterval ReportingPeriod
;
440 union TpPAMEventInfo
switch(TpPAMEventName
) {
441 case PAM_CE_IDENTITY_PRESENCE_SET
: TpPAMIPSEventData IdentityPresenceSet
;
442 case PAM_CE_AVAILABILITY_CHANGED
: TpPAMAVCEventData AvailabilityChanged
;
443 case PAM_CE_WATCHERS_CHANGED
: TpPAMWCEventData WatchersChanged
;
444 case PAM_CE_IDENTITY_CREATED
: TpPAMICEventData IdentityCreated
;
445 case PAM_CE_IDENTITY_DELETED
: TpPAMIDEventData IdentityDeleted
;
446 case PAM_CE_GROUP_MEMBERSHIP_CHANGED
: TpPAMGMCEventData GroupMembershipChanged
;
447 case PAM_CE_AGENT_CREATED
: TpPAMACEventData AgentCreated
;
448 case PAM_CE_AGENT_DELETED
: TpPAMADEventData AgentDeleted
;
449 case PAM_CE_AGENT_ASSIGNED
: TpPAMAAEventData AgentAssigned
;
450 case PAM_CE_AGENT_UNASSIGNED
: TpPAMAUEventData AgentUnassigned
;
451 case PAM_CE_CAPABILITY_CHANGED
: TpPAMCCEventData CapabilityChanged
;
452 case PAM_CE_AGENT_CAPABILITY_PRESENCE_SET
: TpPAMACPSEventData AgentCapabilityPresenceSet
;
453 case PAM_CE_AGENT_PRESENCE_SET
: TpPAMAPSEventData AgentPresenceSet
;
457 enum TpPAMwatcherChangeType
{
459 PAM_WATCHERS_PERIODIC
,
465 struct TpPAMWCNotificationData
{
466 TpPAMEventName Event
;
467 TpPAMwatcherChangeType ChangeType
;
468 TpPAMFQName Identity
;
469 TpPAMFQNameList Watchers
;
473 union TpPAMNotificationInfo
switch(TpPAMEventName
) {
474 case PAM_CE_IDENTITY_PRESENCE_SET
: TpPAMIPSNotificationData IdentityPresenceSetNotify
;
475 case PAM_CE_AVAILABILITY_CHANGED
: TpPAMAVCNotificationData AvailabilityChangedNotify
;
476 case PAM_CE_WATCHERS_CHANGED
: TpPAMWCNotificationData WatchersChangedNotify
;
477 case PAM_CE_IDENTITY_CREATED
: TpPAMICNotificationData IdentityCreatedNotify
;
478 case PAM_CE_IDENTITY_DELETED
: TpPAMIDNotificationData IdentityDeletedNotify
;
479 case PAM_CE_GROUP_MEMBERSHIP_CHANGED
: TpPAMGMCNotificationData GroupMembershipChangedNotify
;
480 case PAM_CE_AGENT_CREATED
: TpPAMACNotificationData AgentCreatedNotify
;
481 case PAM_CE_AGENT_DELETED
: TpPAMADNotificationData AgentDeletedNotify
;
482 case PAM_CE_AGENT_ASSIGNED
: TpPAMAANotificationData AgentAssignedNotify
;
483 case PAM_CE_AGENT_UNASSIGNED
: TpPAMAUNotificationData AgentUnassignedNotify
;
484 case PAM_CE_CAPABILITY_CHANGED
: TpPAMCCNotificationData CapabilityChangedNotify
;
485 case PAM_CE_AGENT_CAPABILITY_PRESENCE_SET
: TpPAMACPSNotificationData AgentCapabilityPresenceSetNotify
;
486 case PAM_CE_AGENT_PRESENCE_SET
: TpPAMAPSNotificationData AgentPresenceSetNotify
;
490 typedef TpString TpPAMProvisioningInterfaceName
;
493 typedef TpString TpPAMPresenceAvailabilityInterfaceName
;
496 typedef TpString TpPAMEventInterfaceName
;
499 typedef sequence
<TpPAMEventInfo
> TpPAMEventInfoList
;
502 typedef sequence
<TpPAMNotificationInfo
> TpPAMNotificationInfoList
;
505 enum TpPAMErrorCause
{
507 P_PAM_CAUSE_UNDEFINED
,
508 P_PAM_CAUSE_INVALID_ADDRESS
,
509 P_PAM_CAUSE_SYSTEM_FAILURE
,
510 P_PAM_CAUSE_INFO_UNAVAILABLE
,
511 P_PAM_CAUSE_EVENT_REGISTRATION_CANCELLED
515 struct TpPAMErrorInfo
{
516 TpPAMErrorCause Cause
;
517 TpPAMNotificationInfo ErrorData
;
521 exception P_PAM_UNAVAILABLE_INTERFACE
{
522 TpString ExtraInformation
;
526 typedef TpInt32 TpPAMClientID
;
529 typedef TpAssignmentID TpPAMEventID
;
532 exception P_PAM_INVALID_CREDENTIAL
{
533 TpString ExtraInformation
;
537 const TpPAMCapability P_PAM_VOICE
= "P_PAM_VOICE";
539 const TpPAMCapability P_PAM_SMS
= "P_PAM_SMS";
541 const TpPAMCapability P_PAM_IM
= "P_PAM_IM";
543 const TpPAMCapability P_PAM_MMS
= "P_PAM_MMS";