1//Source file: policy_data.idl
2//Date:  13 October 2004
3//Policy Management Data Types for ES 203 915-13 V1.1.1, DES/TISPAN-01005-13-OSA, Parlay 5.0
4
5#ifndef __POLICY_DATA_DEFINED
6#define __POLICY_DATA_DEFINED
7
8
9#include "osa.idl"
10
11module org {
12
13	module csapi {
14
15		module policy {
16
17
18			enum TpPolicyConditionListType {
19
20				P_PM_DNF,
21				P_PM_CNF
22			};
23
24
25			enum TpPolicyConditionType {
26
27				P_PM_TIME_PERIOD_CONDITION,
28				P_PM_EVENT_CONDITION,
29				P_PM_EXPRESSION_CONDITION
30			};
31
32
33			enum TpPolicyActionType {
34
35				P_PM_EVENT_ACTION,
36				P_PM_EXPRESSION_ACTION
37			};
38
39
40			struct TpPolicyEvent {
41				TpInt32 EventID;
42				TpDateAndTime TimeGenerated;
43				TpAttributeSet Attributes;
44				TpString EventDefinitionName;
45				TpString EventDomainName;
46			};
47
48
49			typedef TpString TpPolicyKeyword;
50
51
52			typedef sequence <TpPolicyKeyword> TpPolicyKeywordSet;
53
54
55			exception P_ACCESS_VIOLATION {
56				TpString ExtraInformation;
57			};
58
59
60			exception P_SYNTAX_ERROR {
61				TpString ExtraInformation;
62			};
63
64
65			exception P_NAME_SPACE_ERROR {
66				TpString ExtraInformation;
67			};
68
69
70			exception P_NO_TRANSACTION_IN_PROCESS {
71				TpString ExtraInformation;
72			};
73
74
75			exception P_TRANSACTION_IN_PROCESS {
76				TpString ExtraInformation;
77			};
78
79
80			typedef TpInt32 TpPolicyError;
81
82
83			const TpPolicyError P_PM_ERROR_UNDEFINED = 0;
84
85			const TpPolicyError P_PM_ERROR_INSUFFICIENT_INPUTS = 1;
86
87			const TpPolicyError P_PM_ERROR_INVALID_INPUT_NAME = 2;
88
89			const TpPolicyError P_PM_ERROR_INVALID_INPUT_VALUE = 3;
90
91			const TpPolicyError P_PM_ERROR_EVALUATION_ERROR = 5;
92
93			const TpPolicyError P_PM_ERROR_DB_ERROR = 4;
94
95			enum TpPolicyTypeInfo {
96
97				P_PM_SIMPLE_TYPE,
98				P_PM_TYPE_RECORD,
99				P_PM_TYPE_LIST,
100				P_PM_STRUCTURED_TYPE,
101				P_PM_XML_TYPE
102			};
103
104
105			struct TpPolicyNameValue {
106				TpString Name;
107				TpAny Value;
108			};
109
110
111			typedef sequence <TpPolicyNameValue> TpPolicyNameValueList;
112
113
114			union TpPolicyType switch(TpPolicyTypeInfo) {
115				case P_PM_SIMPLE_TYPE: TpSimpleAttributeTypeInfo SimpleType;
116				case P_PM_TYPE_RECORD:
117					struct TpPolicyRecordType {
118						sequence<TpString> Names;
119						sequence<TpPolicyType> Types;
120					} RecordType;
121				case P_PM_TYPE_LIST:
122					struct TpPolicyListType {
123						sequence<TpPolicyType,1> ElementType;
124					} ListType;
125				case P_PM_STRUCTURED_TYPE: TpStructuredAttributeType StructuredType;
126				case P_PM_XML_TYPE: TpXMLString XMLString;
127			};
128
129
130			struct TpPolicyVar {
131				TpString VarName;
132				TpPolicyType VarType;
133				TpAny VarValue;
134			};
135
136
137			typedef sequence <TpPolicyVar> TpPolicyVarSet;
138
139
140		};
141
142	};
143
144};
145
146#endif
147