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