Update APEX example to use JSON Schema plugin
[policy/apex-pdp.git] / examples / examples-grpc / src / main / resources / policy / APEXgRPCPolicy.apex
1 #-------------------------------------------------------------------------------
2 # ============LICENSE_START=======================================================
3 #  Copyright (C) 2020 Nordix Foundation.
4 #  Modifications Copyright (C) 2021-2022 Bell Canada. All rights reserved.
5 # ================================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #      http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # SPDX-License-Identifier: Apache-2.0
19 # ============LICENSE_END=========================================================
20 #-------------------------------------------------------------------------------
21
22 model create name=APEXgRPCPolicy
23
24 ##
25 ## SCHEMAS
26 ##
27
28 schema create name=SimpleStringType flavour=Java schema=java.lang.String
29 schema create name=UUIDType         flavour=Java schema=java.util.UUID
30 schema create name=SimpleIntType    flavour=Java schema=java.lang.Integer
31
32 schema create name=CDSRequestCommonHeaderType flavour=Json schema=LS
33 #MACROFILE:"src/main/resources/schemas/CDSRequestCommonHeaderType.json"
34 LE
35
36 schema create name=CDSResponseCommonHeaderType flavour=Json schema=LS
37 #MACROFILE:"src/main/resources/schemas/CDSResponseCommonHeaderType.json"
38 LE
39
40 schema create name=CDSActionIdentifiersType flavour=Json schema=LS
41 #MACROFILE:"src/main/resources/schemas/CDSActionIdentifiersType.json"
42 LE
43
44 schema create name=CDSResponseStatusType flavour=Json schema=LS
45 #MACROFILE:"src/main/resources/schemas/CDSResponseStatusType.json"
46 LE
47
48 schema create name=CDSCreateSubscriptionPayloadType flavour=Json schema=LS
49 #MACROFILE:"src/main/resources/schemas/CDSCreateSubscriptionPayloadType.json"
50 LE
51
52 schema create name=CDSDeleteSubscriptionPayloadType flavour=Avro schema=LS
53 #MACROFILE:"src/main/resources/schemas/CDSDeleteSubscriptionPayloadType.avsc"
54 LE
55
56 schema create name=CDSResponsePayloadType flavour=Json schema=LS
57 #MACROFILE:"src/main/resources/schemas/CDSResponsePayloadType.json"
58 LE
59
60 schema create name=SubscriptionStatusType flavour=Json schema=LS
61 #MACROFILE:"src/main/resources/schemas/SubscriptionStatusType.json"
62 LE
63
64 schema create name=PMSubscriptionType flavour=Json schema=LS
65 #MACROFILE:"src/main/resources/schemas/PMSubscriptionType.json"
66 LE
67
68 schema create name=SubscriptionType flavour=Json schema=LS
69 #MACROFILE:"src/main/resources/schemas/SubscriptionType.json"
70 LE
71
72 ##
73 ## EVENTS
74 ##
75
76 album create name=PMSubscriptionAlbum scope=policy writable=true schemaName=PMSubscriptionType
77
78 # Incoming event
79 event create name=testPolicyB version=0.0.1 nameSpace=org.onap.policy.apex.onap.pmcontrol source=DCAE target=APEX toscaPolicyState=ENTRY
80 event parameter create name=testPolicyB parName=nfName schemaName=SimpleStringType
81 event parameter create name=testPolicyB parName=policyName schemaName=SimpleStringType
82 event parameter create name=testPolicyB parName=changeType schemaName=SimpleStringType
83 event parameter create name=testPolicyB parName=closedLoopControlName schemaName=SimpleStringType
84 event parameter create name=testPolicyB parName=subscription schemaName=SubscriptionType
85
86 event create name=PMSubscriptionOutputEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=APEX
87 event parameter create name=PMSubscriptionOutputEvent parName=albumID     schemaName=UUIDType
88
89 event create name=CreateSubscriptionPayloadEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=APEX
90 event parameter create name=CreateSubscriptionPayloadEvent parName=payload schemaName=CDSCreateSubscriptionPayloadType
91 event parameter create name=CreateSubscriptionPayloadEvent parName=albumID     schemaName=UUIDType
92
93 event create name=DeleteSubscriptionPayloadEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=APEX
94 event parameter create name=DeleteSubscriptionPayloadEvent parName=payload schemaName=CDSDeleteSubscriptionPayloadType
95 event parameter create name=DeleteSubscriptionPayloadEvent parName=albumID     schemaName=UUIDType
96
97 event create name=CreateSubscriptionRequestEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=APEX
98 event parameter create name=CreateSubscriptionRequestEvent parName=commonHeader schemaName=CDSRequestCommonHeaderType
99 event parameter create name=CreateSubscriptionRequestEvent parName=actionIdentifiers schemaName=CDSActionIdentifiersType
100 event parameter create name=CreateSubscriptionRequestEvent parName=payload schemaName=CDSCreateSubscriptionPayloadType
101
102 event create name=DeleteSubscriptionRequestEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=APEX
103 event parameter create name=DeleteSubscriptionRequestEvent parName=commonHeader schemaName=CDSRequestCommonHeaderType
104 event parameter create name=DeleteSubscriptionRequestEvent parName=actionIdentifiers schemaName=CDSActionIdentifiersType
105 event parameter create name=DeleteSubscriptionRequestEvent parName=payload schemaName=CDSDeleteSubscriptionPayloadType
106
107 event create name=CDSResponseEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=CDS target=APEX
108 event parameter create name=CDSResponseEvent parName=commonHeader schemaName=CDSResponseCommonHeaderType
109 event parameter create name=CDSResponseEvent parName=actionIdentifiers schemaName=CDSActionIdentifiersType
110 event parameter create name=CDSResponseEvent parName=status schemaName=CDSResponseStatusType
111 event parameter create name=CDSResponseEvent parName=payload schemaName=CDSResponsePayloadType
112
113 event create name=CDSResponseStatusEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=DCAE toscaPolicyState=EXIT_SUCCESS
114 event parameter create name=CDSResponseStatusEvent parName=status schemaName=SubscriptionStatusType
115
116 event create name=LogEvent nameSpace=org.onap.policy.apex.onap.pmcontrol source=APEX target=DCAE
117 event parameter create name=LogEvent parName=final_status schemaName=SimpleStringType
118 event parameter create name=LogEvent parName=message schemaName=SimpleStringType
119
120 ##
121 ## TASKS
122 ##
123
124
125 task create name=ReceivePMSubscriptionTask
126 task contextref create name=ReceivePMSubscriptionTask albumName=PMSubscriptionAlbum
127 task logic create name=ReceivePMSubscriptionTask logicFlavour=JAVASCRIPT logic=LS
128 #MACROFILE:"src/main/resources/logic/ReceivePMSubscriptionTask.js"
129 LE
130
131 task create name=CreateSubscriptionPayloadTask
132 task contextref create name=CreateSubscriptionPayloadTask albumName=PMSubscriptionAlbum
133 task logic create name=CreateSubscriptionPayloadTask logicFlavour=JAVASCRIPT logic=LS
134 #MACROFILE:"src/main/resources/logic/CreateSubscriptionPayloadTask.js"
135 LE
136
137 task create name=DeleteSubscriptionPayloadTask
138 task contextref create name=DeleteSubscriptionPayloadTask albumName=PMSubscriptionAlbum
139 task logic create name=DeleteSubscriptionPayloadTask logicFlavour=JAVASCRIPT logic=LS
140 #MACROFILE:"src/main/resources/logic/DeleteSubscriptionPayloadTask.js"
141 LE
142
143 task create name=CreateSubscriptionRequestTask
144 task contextref create name=CreateSubscriptionRequestTask albumName=PMSubscriptionAlbum
145 task logic create name=CreateSubscriptionRequestTask logicFlavour=JAVASCRIPT logic=LS
146 #MACROFILE:"src/main/resources/logic/CreateSubscriptionRequestTask.js"
147 LE
148
149 task create name=DeleteSubscriptionRequestTask
150 task contextref create name=DeleteSubscriptionRequestTask albumName=PMSubscriptionAlbum
151 task logic create name=DeleteSubscriptionRequestTask logicFlavour=JAVASCRIPT logic=LS
152 #MACROFILE:"src/main/resources/logic/DeleteSubscriptionRequestTask.js"
153 LE
154
155 task create name=CDSResponseTask
156 task contextref create name=CDSResponseTask albumName=PMSubscriptionAlbum
157 task logic create name=CDSResponseTask logicFlavour=JAVASCRIPT logic=LS
158 #MACROFILE:"src/main/resources/logic/ResponseTask.js"
159 LE
160
161
162 ##
163 ## POLICIES
164 ##
165
166
167 # Policy ReceiveEventPolicy
168 policy create name=ReceiveEventPolicy template=Freestyle firstState=ReceiveSubscriptionState
169
170 # State CreateSubscription
171 policy state create name=ReceiveEventPolicy stateName=CreateSubscription triggerName=CreateSubscriptionPayloadEvent defaultTaskName=CreateSubscriptionRequestTask
172 policy state output create name=ReceiveEventPolicy stateName=CreateSubscription outputName=IssueCreateSubscriptionRequestOutput eventName=CreateSubscriptionRequestEvent nextState=NULL
173 policy state taskref create name=ReceiveEventPolicy stateName=CreateSubscription taskName=CreateSubscriptionRequestTask outputType=DIRECT outputName=IssueCreateSubscriptionRequestOutput
174 policy state contextref create name=ReceiveEventPolicy stateName=CreateSubscription albumName=PMSubscriptionAlbum
175
176 # State DeleteSubscription
177 policy state create name=ReceiveEventPolicy stateName=DeleteSubscription triggerName=DeleteSubscriptionPayloadEvent defaultTaskName=DeleteSubscriptionRequestTask
178 policy state output create name=ReceiveEventPolicy stateName=DeleteSubscription outputName=IssueDeleteSubscriptionRequestOutput eventName=DeleteSubscriptionRequestEvent nextState=NULL
179 policy state taskref create name=ReceiveEventPolicy stateName=DeleteSubscription taskName=DeleteSubscriptionRequestTask outputType=DIRECT outputName=IssueDeleteSubscriptionRequestOutput
180 policy state contextref create name=ReceiveEventPolicy stateName=DeleteSubscription albumName=PMSubscriptionAlbum
181
182 # State CreateOrDeleteState
183 policy state create name=ReceiveEventPolicy stateName=CreateOrDeleteState triggerName=PMSubscriptionOutputEvent defaultTaskName=CreateSubscriptionPayloadTask
184
185 policy state output create name=ReceiveEventPolicy stateName=CreateOrDeleteState outputName=CreateSubscriptionPayload eventName=CreateSubscriptionPayloadEvent nextState=CreateSubscription
186 policy state taskref create name=ReceiveEventPolicy stateName=CreateOrDeleteState taskName=CreateSubscriptionPayloadTask outputType=DIRECT outputName=CreateSubscriptionPayload
187
188 policy state output create name=ReceiveEventPolicy stateName=CreateOrDeleteState outputName=DeleteSubscriptionPayload eventName=DeleteSubscriptionPayloadEvent nextState=DeleteSubscription
189 policy state taskref create name=ReceiveEventPolicy stateName=CreateOrDeleteState taskName=DeleteSubscriptionPayloadTask outputType=DIRECT outputName=DeleteSubscriptionPayload
190
191 policy state contextref create name=ReceiveEventPolicy stateName=CreateOrDeleteState albumName=PMSubscriptionAlbum
192 policy state selecttasklogic create name=ReceiveEventPolicy stateName=CreateOrDeleteState logicFlavour=JAVASCRIPT logic=LS
193 #MACROFILE:"src/main/resources/logic/CreateOrDeleteStateTSL.js"
194 LE
195
196 # State ReceiveSubscriptionState
197 policy state create name=ReceiveEventPolicy stateName=ReceiveSubscriptionState triggerName=testPolicyB defaultTaskName=ReceivePMSubscriptionTask
198 policy state output create name=ReceiveEventPolicy stateName=ReceiveSubscriptionState outputName=ReceivePMSubscriptionOutput eventName=PMSubscriptionOutputEvent nextState=CreateOrDeleteState
199 policy state taskref create name=ReceiveEventPolicy stateName=ReceiveSubscriptionState taskName=ReceivePMSubscriptionTask outputType=DIRECT outputName=ReceivePMSubscriptionOutput
200 policy state contextref create name=ReceiveEventPolicy stateName=ReceiveSubscriptionState albumName=PMSubscriptionAlbum
201
202
203 # Policy CDSResponsePolicy
204 policy create name=CDSResponsePolicy template=Freestyle firstState=CDSResponseState
205
206 # State CDSResponseState
207 policy state create name=CDSResponsePolicy stateName=CDSResponseState triggerName=CDSResponseEvent defaultTaskName=CDSResponseTask
208 policy state output create name=CDSResponsePolicy stateName=CDSResponseState outputName=ResponseOutput eventName=CDSResponseStatusEvent
209 policy state output create name=CDSResponsePolicy stateName=CDSResponseState outputName=ResponseOutput eventName=LogEvent
210 policy state taskref create name=CDSResponsePolicy stateName=CDSResponseState taskName=CDSResponseTask outputType=DIRECT outputName=ResponseOutput
211
212 validate