Release version 1.1.0 of sli/core
[ccsdk/sli/core.git] / sli / common / src / main / resources / svclogic.xsd
1 <?xml version = "1.0" encoding = "UTF-8"?>
2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.onap.org/sdnc/svclogic" xmlns="http://www.onap.org/sdnc/svclogic">
3
4         <xsd:simpleType name="modeType">
5                 <xsd:restriction base="xsd:string">
6                         <xsd:enumeration value="sync" />
7                         <xsd:enumeration value="async" />
8                 </xsd:restriction>
9         </xsd:simpleType>
10
11         <xsd:group name="node">
12                 <xsd:choice>
13                         <xsd:element ref="block" />
14                         <xsd:element ref="is-available" />
15                         <xsd:element ref="exists" />
16                         <xsd:element ref="reserve" />
17                         <xsd:element ref="release" />
18                         <xsd:element ref="allocate" />
19                         <xsd:element ref="get-resource" />
20                         <xsd:element ref="configure" />
21                         <xsd:element ref="return" />
22                         <xsd:element ref="switch" />
23                         <xsd:element ref="record" />
24                         <xsd:element ref="save" />
25                         <xsd:element ref="for" />
26                         <xsd:element ref="set" />
27                         <xsd:element ref="execute" />
28                         <xsd:element ref="delete" />
29                         <xsd:element ref="update" />
30                         <xsd:element ref="call" />
31                         <xsd:element ref="notify" />
32                         <xsd:element ref="break" />
33                         <xsd:element ref="while" />
34                         <xsd:element ref="exit" />
35                 </xsd:choice>
36         </xsd:group>
37
38         <xsd:element name="service-logic">
39                 <xsd:complexType>
40                         <xsd:sequence>
41                                 <xsd:element ref="method" minOccurs="0" maxOccurs="100" />
42                         </xsd:sequence>
43                         <xsd:attribute name="module" use="required" type="xsd:string" />
44                         <xsd:attribute name="version" use="required" type="xsd:string" />
45                 </xsd:complexType>
46         </xsd:element>
47
48         <xsd:element name="method">
49                 <xsd:complexType>
50                         <xsd:sequence>
51                                 <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
52                         </xsd:sequence>
53                         <xsd:attribute name="rpc" use="required" type="xsd:string" />
54                         <xsd:attribute name="mode" use="optional" type="modeType" />
55                 </xsd:complexType>
56         </xsd:element>
57
58         <xsd:element name="block">
59                 <xsd:complexType>
60                         <xsd:sequence>
61                                 <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
62                         </xsd:sequence>
63                         <xsd:attribute name="atomic" use="optional" type="xsd:boolean" />
64                 </xsd:complexType>
65         </xsd:element>
66
67         <xsd:element name="is-available">
68                 <xsd:complexType>
69                         <xsd:sequence>
70                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
71                         </xsd:sequence>
72                         <xsd:attribute name="pfx" use="optional" type="xsd:string" />
73                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
74                         <xsd:attribute name="resource" use="required" type="xsd:string" />
75                         <xsd:attribute name="key" use="optional" type="xsd:string" />
76                 </xsd:complexType>
77         </xsd:element>
78
79         <xsd:element name="exists">
80                 <xsd:complexType>
81                         <xsd:sequence>
82                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
83                         </xsd:sequence>
84                         <xsd:attribute name="pfx" use="optional" type="xsd:string" />
85                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
86                         <xsd:attribute name="resource" use="required" type="xsd:string" />
87                         <xsd:attribute name="key" use="required" type="xsd:string" />
88                 </xsd:complexType>
89         </xsd:element>
90
91         <xsd:element name="outcome">
92                 <xsd:complexType>
93                         <xsd:sequence>
94                                 <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
95                         </xsd:sequence>
96                         <xsd:attribute name="ref" use="optional" type="xsd:string" />
97                         <xsd:attribute name="value" use="required" type="xsd:string" />
98                 </xsd:complexType>
99         </xsd:element>
100
101         <xsd:element name="reserve">
102                 <xsd:complexType>
103                         <xsd:sequence>
104                                 <!-- This node does not actually read from parameters -->
105                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
106                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
107                         </xsd:sequence>
108                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
109                         <xsd:attribute name="resource" use="required" type="xsd:string" />
110                         <xsd:attribute name="key" use="optional" type="xsd:string" />
111                         <xsd:attribute name="select" use="optional" type="xsd:string" />
112                         <xsd:attribute name="pfx" use="optional" type="xsd:string" />
113                 </xsd:complexType>
114         </xsd:element>
115
116         <xsd:element name="release">
117                 <xsd:complexType>
118                         <xsd:sequence>
119                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
120                         </xsd:sequence>
121                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
122                         <xsd:attribute name="resource" use="required" type="xsd:string" />
123                         <xsd:attribute name="key" use="optional" type="xsd:string" />
124                         <xsd:attribute name="pfx" use="optional" type="xsd:string" />
125                 </xsd:complexType>
126         </xsd:element>
127
128         <xsd:element name="record">
129                 <xsd:complexType>
130                         <xsd:sequence>
131                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
132                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
133                         </xsd:sequence>
134                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
135                 </xsd:complexType>
136         </xsd:element>
137
138         <xsd:element name="allocate">
139                 <xsd:complexType>
140                         <xsd:sequence>
141                                 <!-- This node does not actually read from parameters -->
142                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
143                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
144                         </xsd:sequence>
145                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
146                         <xsd:attribute name="resource" use="required" type="xsd:string" />
147                         <xsd:attribute name="key" use="required" type="xsd:string" />
148                         <xsd:attribute name="pfx" use="required" type="xsd:string" />
149                 </xsd:complexType>
150         </xsd:element>
151
152         <xsd:element name="get-resource">
153                 <xsd:complexType>
154                         <xsd:sequence>
155                                 <!-- This node does not actually read from parameters -->
156                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
157                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
158                         </xsd:sequence>
159                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
160                         <xsd:attribute name="resource" use="required" type="xsd:string" />
161                         <xsd:attribute name="key" use="optional" type="xsd:string" />
162                         <xsd:attribute name="local-only" use="optional" type="xsd:boolean" />
163                         <xsd:attribute name="order-by" use="optional" type="xsd:string" />
164                         <xsd:attribute name="pfx" use="optional" type="xsd:string" />
165                         <!-- force is retired and does not do anything -->
166                         <xsd:attribute name="force" use="optional" type="xsd:string" />
167                 </xsd:complexType>
168         </xsd:element>
169
170         <xsd:element name="configure">
171                 <xsd:complexType>
172                         <xsd:sequence>
173                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
174                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
175                         </xsd:sequence>
176                         <xsd:attribute name="adaptor" use="required" type="xsd:string" />
177                         <xsd:attribute name="key" use="required" type="xsd:string" />
178                         <xsd:attribute name="activate" use="optional" type="xsd:boolean" />
179                 </xsd:complexType>
180         </xsd:element>
181
182
183         <xsd:element name="parameter">
184                 <xsd:complexType>
185                         <xsd:attribute name="name" use="required" type="xsd:string" />
186                         <xsd:attribute name="value" use="required" type="xsd:string" />
187                 </xsd:complexType>
188         </xsd:element>
189
190
191         <xsd:element name="return">
192                 <xsd:complexType>
193                         <xsd:sequence>
194                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
195                         </xsd:sequence>
196                         <xsd:attribute name="status" use="optional" type="xsd:string" />
197                 </xsd:complexType>
198         </xsd:element>
199
200         <xsd:element name="switch">
201                 <xsd:complexType>
202                         <xsd:sequence>
203                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
204                         </xsd:sequence>
205                         <xsd:attribute name="test" use="required" type="xsd:string" />
206                 </xsd:complexType>
207         </xsd:element>
208
209         <xsd:element name="save">
210                 <xsd:complexType>
211                         <xsd:sequence>
212                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
213                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
214                         </xsd:sequence>
215                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
216                         <xsd:attribute name="resource" use="required" type="xsd:string" />
217                         <xsd:attribute name="key" use="optional" type="xsd:string" />
218                         <xsd:attribute name="force" use="optional" type="xsd:boolean" />
219                         <xsd:attribute name="local-only" use="optional" type="xsd:boolean" />
220                         <xsd:attribute name="pfx" use="optional" type="xsd:string" />
221                 </xsd:complexType>
222         </xsd:element>
223
224         <xsd:element name="delete">
225                 <xsd:complexType>
226                         <xsd:sequence>
227                                 <!-- This node does not actually read from parameters -->
228                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
229                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
230                         </xsd:sequence>
231                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
232                         <xsd:attribute name="resource" use="required" type="xsd:string" />
233                         <xsd:attribute name="key" use="optional" type="xsd:string" />
234                         <!-- force is retired and does not do anything -->
235                         <xsd:attribute name="force" use="optional" type="xsd:string" />
236                         <!-- local-only is retired and does not do anything -->
237                         <xsd:attribute name="local-only" use="optional" type="xsd:string" />
238                         <!-- pfx is retired and does not do anything -->
239                         <xsd:attribute name="pfx" use="optional" type="xsd:string" />
240                 </xsd:complexType>
241         </xsd:element>
242
243         <xsd:element name="for">
244                 <xsd:complexType>
245                         <xsd:sequence>
246                                 <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
247                         </xsd:sequence>
248                         <xsd:attribute name="atomic" use="optional" type="xsd:boolean" />
249                         <xsd:attribute name="index" use="required" type="xsd:string" />
250                         <xsd:attribute name="start" use="required" type="xsd:string" />
251                         <xsd:attribute name="end" use="required" type="xsd:string" />
252                         <xsd:attribute name="silentFailure" use="optional" type="xsd:boolean" default="false" />
253                 </xsd:complexType>
254         </xsd:element>
255
256         <xsd:element name="set">
257                 <xsd:complexType>
258                         <xsd:sequence>
259                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
260                         </xsd:sequence>
261                         <xsd:attribute name="only-if-unset" use="optional"
262                                 type="xsd:boolean" />
263                 </xsd:complexType>
264         </xsd:element>
265
266         <xsd:element name="execute">
267                 <xsd:complexType>
268                         <xsd:sequence>
269                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
270                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
271                         </xsd:sequence>
272                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
273                         <xsd:attribute name="method" use="required" type="xsd:string" />
274                         <xsd:attribute name="emitsOutcome" use="optional" type="xsd:boolean" />
275                 </xsd:complexType>
276         </xsd:element>
277
278         <xsd:element name="update">
279                 <xsd:complexType>
280                         <xsd:sequence>
281                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
282                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
283                         </xsd:sequence>
284                         <xsd:attribute name="plugin" use="required" type="xsd:string" />
285                         <xsd:attribute name="resource" use="required" type="xsd:string" />
286                         <xsd:attribute name="key" use="optional" type="xsd:string" />
287                         <xsd:attribute name="force" use="optional" type="xsd:boolean" />
288                         <xsd:attribute name="local-only" use="optional" type="xsd:boolean" />
289                         <xsd:attribute name="pfx" use="optional" type="xsd:string" />
290                 </xsd:complexType>
291         </xsd:element>
292
293         <xsd:element name="call">
294                 <xsd:complexType>
295                         <xsd:sequence>
296                                 <!-- This node does not actually read from parameters -->
297                                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
298                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
299                         </xsd:sequence>
300                         <xsd:attribute name="module" use="optional" type="xsd:string" />
301                         <xsd:attribute name="rpc" use="required" type="xsd:string" />
302                         <xsd:attribute name="version" use="optional" type="xsd:string" />
303                         <xsd:attribute name="mode" use="required" type="xsd:string" />
304                 </xsd:complexType>
305         </xsd:element>
306
307         <xsd:element name="notify">
308                 <xsd:complexType>
309                         <xsd:sequence>
310                                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
311                         </xsd:sequence>
312                         <xsd:attribute name="plugin" use="optional" type="xsd:string" />
313                         <xsd:attribute name="resource" use="optional" type="xsd:string" />
314                         <xsd:attribute name="action" use="required" type="xsd:string" />
315                         <xsd:attribute name="key" use="optional" type="xsd:string" />
316                         <!-- force is retired and does not do anything -->
317                         <xsd:attribute name="force" use="optional" type="xsd:string" />
318                 </xsd:complexType>
319         </xsd:element>
320
321         <xsd:element name="break">
322                 <xsd:complexType />
323         </xsd:element>
324
325         <xsd:element name="exit">
326                 <xsd:complexType />
327         </xsd:element>
328
329         <xsd:element name="while">
330                 <xsd:complexType>
331                         <xsd:sequence>
332                                 <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
333                         </xsd:sequence>
334                         <xsd:attribute name="test" use="required" type="xsd:string" />
335                         <xsd:attribute name="do" use="optional" type="xsd:boolean" />
336                 </xsd:complexType>
337         </xsd:element>
338
339 </xsd:schema>