aboutsummaryrefslogtreecommitdiffstats
path: root/idl/parlay/policy_data.idl
blob: b1e5056ea000af4c9c0727308e6a588d1ce25353 (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
//Source file: policy_data.idl
//Date:  13 October 2004
//Policy Management Data Types for ES 203 915-13 V1.1.1, DES/TISPAN-01005-13-OSA, Parlay 5.0

#ifndef __POLICY_DATA_DEFINED
#define __POLICY_DATA_DEFINED


#include "osa.idl"

module org {
	
	module csapi {
		
		module policy {
			
			
			enum TpPolicyConditionListType {

				P_PM_DNF,
				P_PM_CNF				
			};
			
			
			enum TpPolicyConditionType {

				P_PM_TIME_PERIOD_CONDITION,
				P_PM_EVENT_CONDITION,
				P_PM_EXPRESSION_CONDITION				
			};
			
			
			enum TpPolicyActionType {

				P_PM_EVENT_ACTION,
				P_PM_EXPRESSION_ACTION				
			};
			
			
			struct TpPolicyEvent {
				TpInt32 EventID;
				TpDateAndTime TimeGenerated;
				TpAttributeSet Attributes;
				TpString EventDefinitionName;
				TpString EventDomainName;
			};
			
			
			typedef TpString TpPolicyKeyword;
			
			
			typedef sequence <TpPolicyKeyword> TpPolicyKeywordSet;
			
			
			exception P_ACCESS_VIOLATION {
				TpString ExtraInformation;
			};
			
			
			exception P_SYNTAX_ERROR {
				TpString ExtraInformation;
			};
			
			
			exception P_NAME_SPACE_ERROR {
				TpString ExtraInformation;
			};
			
			
			exception P_NO_TRANSACTION_IN_PROCESS {
				TpString ExtraInformation;
			};
			
			
			exception P_TRANSACTION_IN_PROCESS {
				TpString ExtraInformation;
			};
			
			
			typedef TpInt32 TpPolicyError;
			
			
			const TpPolicyError P_PM_ERROR_UNDEFINED = 0;
			
			const TpPolicyError P_PM_ERROR_INSUFFICIENT_INPUTS = 1;
			
			const TpPolicyError P_PM_ERROR_INVALID_INPUT_NAME = 2;
			
			const TpPolicyError P_PM_ERROR_INVALID_INPUT_VALUE = 3;
			
			const TpPolicyError P_PM_ERROR_EVALUATION_ERROR = 5;
			
			const TpPolicyError P_PM_ERROR_DB_ERROR = 4;
			
			enum TpPolicyTypeInfo {

				P_PM_SIMPLE_TYPE,
				P_PM_TYPE_RECORD,
				P_PM_TYPE_LIST,
				P_PM_STRUCTURED_TYPE,
				P_PM_XML_TYPE				
			};
			
			
			struct TpPolicyNameValue {
				TpString Name;
				TpAny Value;
			};
			
			
			typedef sequence <TpPolicyNameValue> TpPolicyNameValueList;
			
			
			union TpPolicyType switch(TpPolicyTypeInfo) {
				case P_PM_SIMPLE_TYPE: TpSimpleAttributeTypeInfo SimpleType;	
				case P_PM_TYPE_RECORD: 
					struct TpPolicyRecordType {
						sequence<TpString> Names;
						sequence<TpPolicyType> Types;
					} RecordType;	
				case P_PM_TYPE_LIST: 
					struct TpPolicyListType {
						sequence<TpPolicyType,1> ElementType;
					} ListType;	
				case P_PM_STRUCTURED_TYPE: TpStructuredAttributeType StructuredType;	
				case P_PM_XML_TYPE: TpXMLString XMLString;	
			};
			
			
			struct TpPolicyVar {
				TpString VarName;
				TpPolicyType VarType;
				TpAny VarValue;
			};
			
			
			typedef sequence <TpPolicyVar> TpPolicyVarSet;

			
		};
		
	};
	
};

#endif