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