Initial commit for OpenECOMP SDN-C N-C core
[sdnc/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.openecomp.org/sdnc/svclogic" xmlns="http://www.openecomp.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:choice>
33     </xsd:group>
34
35     <xsd:element name="service-logic">
36         <xsd:complexType>
37             <xsd:sequence>
38                 <xsd:element ref="method" minOccurs="0" maxOccurs="unbounded" />
39             </xsd:sequence>
40             <xsd:attribute name="module" use="required" type="xsd:string" />
41             <xsd:attribute name="version" use="required" type="xsd:string" />
42         </xsd:complexType>
43     </xsd:element>
44
45     <xsd:element name="method">
46         <xsd:complexType>
47             <xsd:sequence>
48                 <xsd:group ref="node" minOccurs="0" maxOccurs="unbounded" />
49             </xsd:sequence>
50             <xsd:attribute name="rpc" use="required" type="xsd:string" />
51             <xsd:attribute name="mode" use="optional" type="modeType" />
52         </xsd:complexType>
53     </xsd:element>
54
55     <xsd:element name="block">
56         <xsd:complexType>
57             <xsd:sequence>
58                 <xsd:group ref="node" minOccurs="0" maxOccurs="unbounded" />
59             </xsd:sequence>
60             <xsd:attribute name="atomic" use="optional" type="xsd:boolean" />
61         </xsd:complexType>
62     </xsd:element>
63
64     <xsd:element name="is-available">
65         <xsd:complexType>
66             <xsd:sequence>
67                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
68             </xsd:sequence>
69             <xsd:attribute name="pfx" use="optional" type="xsd:string" />
70             <xsd:attribute name="plugin" use="required" type="xsd:string" />
71             <xsd:attribute name="resource" use="required" type="xsd:string" />
72             <xsd:attribute name="key" use="optional" type="xsd:string" />
73         </xsd:complexType>
74     </xsd:element>
75
76     <xsd:element name="exists">
77         <xsd:complexType>
78             <xsd:sequence>
79                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
80             </xsd:sequence>
81             <xsd:attribute name="pfx" use="optional" type="xsd:string" />
82             <xsd:attribute name="plugin" use="required" type="xsd:string" />
83             <xsd:attribute name="resource" use="required" type="xsd:string" />
84             <xsd:attribute name="key" use="required" type="xsd:string" />
85         </xsd:complexType>
86     </xsd:element>
87
88     <xsd:element name="outcome">
89         <xsd:complexType>
90             <xsd:sequence>
91                 <xsd:group ref="node" minOccurs="0" maxOccurs="unbounded" />
92             </xsd:sequence>
93             <xsd:attribute name="ref" use="optional" type="xsd:string" />
94             <xsd:attribute name="value" use="required" type="xsd:string" />
95         </xsd:complexType>
96     </xsd:element>
97
98     <xsd:element name="reserve">
99         <xsd:complexType>
100             <xsd:sequence>
101                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
102                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
103             </xsd:sequence>
104             <xsd:attribute name="plugin" use="required" type="xsd:string" />
105             <xsd:attribute name="resource" use="required" type="xsd:string" />
106             <xsd:attribute name="key" use="optional" type="xsd:string" />
107             <xsd:attribute name="select" use="optional" type="xsd:string" />
108             <xsd:attribute name="pfx" use="optional" type="xsd:string" />
109         </xsd:complexType>
110     </xsd:element>
111
112     <xsd:element name="release">
113         <xsd:complexType>
114             <xsd:sequence>
115                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
116             </xsd:sequence>
117             <xsd:attribute name="plugin" use="required" type="xsd:string" />
118             <xsd:attribute name="resource" use="required" type="xsd:string" />
119             <xsd:attribute name="key" use="optional" type="xsd:string" />
120             <xsd:attribute name="pfx" use="optional" type="xsd:string" />
121         </xsd:complexType>
122     </xsd:element>
123
124     <xsd:element name="record">
125         <xsd:complexType>
126             <xsd:sequence>
127                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
128                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
129             </xsd:sequence>
130             <xsd:attribute name="plugin" use="required" type="xsd:string" />
131         </xsd:complexType>
132     </xsd:element>
133
134     <xsd:element name="allocate">
135         <xsd:complexType>
136             <xsd:sequence>
137                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
138                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
139             </xsd:sequence>
140             <xsd:attribute name="plugin" use="required" type="xsd:string" />
141             <xsd:attribute name="resource" use="required" type="xsd:string" />
142             <xsd:attribute name="key" use="required" type="xsd:string" />
143             <xsd:attribute name="pfx" use="required" type="xsd:string" />
144         </xsd:complexType>
145     </xsd:element>
146
147     <xsd:element name="get-resource">
148         <xsd:complexType>
149             <xsd:sequence>
150                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
151                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
152             </xsd:sequence>
153             <xsd:attribute name="plugin" use="required" type="xsd:string" />
154             <xsd:attribute name="resource" use="required" type="xsd:string" />
155             <xsd:attribute name="key" use="optional" type="xsd:string" />
156             <xsd:attribute name="local-only" use="optional" type="xsd:boolean" />
157             <xsd:attribute name="order-by" use="optional" type="xsd:string" />
158             <xsd:attribute name="pfx" use="optional" type="xsd:string" />
159             <!-- force is retired and does not do anything -->
160             <xsd:attribute name="force" use="optional" type="xsd:string" />
161         </xsd:complexType>
162     </xsd:element>
163
164     <xsd:element name="configure">
165         <xsd:complexType>
166             <xsd:sequence>
167                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
168                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
169             </xsd:sequence>
170             <xsd:attribute name="adaptor" use="required" type="xsd:string" />
171             <xsd:attribute name="key" use="required" type="xsd:string" />
172             <xsd:attribute name="activate" use="optional" type="xsd:boolean" />
173         </xsd:complexType>
174     </xsd:element>
175
176
177     <xsd:element name="parameter">
178         <xsd:complexType>
179             <xsd:attribute name="name" use="required" type="xsd:string" />
180             <xsd:attribute name="value" use="required" type="xsd:string" />
181         </xsd:complexType>
182     </xsd:element>
183
184
185     <xsd:element name="return">
186         <xsd:complexType>
187             <xsd:sequence>
188                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
189             </xsd:sequence>
190             <xsd:attribute name="status" use="optional" type="xsd:string" />
191             <xsd:attribute name="value" use="optional" type="xsd:string" />
192         </xsd:complexType>
193     </xsd:element>
194
195     <xsd:element name="switch">
196         <xsd:complexType>
197             <xsd:sequence>
198                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
199             </xsd:sequence>
200             <xsd:attribute name="test" use="required" type="xsd:string" />
201         </xsd:complexType>
202     </xsd:element>
203
204     <xsd:element name="save">
205         <xsd:complexType>
206             <xsd:sequence>
207                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
208                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
209             </xsd:sequence>
210             <xsd:attribute name="plugin" use="required" type="xsd:string" />
211             <xsd:attribute name="resource" use="required" type="xsd:string" />
212             <xsd:attribute name="key" use="optional" type="xsd:string" />
213             <xsd:attribute name="force" use="optional" type="xsd:boolean" />
214             <xsd:attribute name="local-only" use="optional" type="xsd:boolean" />
215             <xsd:attribute name="pfx" use="optional" type="xsd:string" />
216         </xsd:complexType>
217     </xsd:element>
218
219     <xsd:element name="delete">
220         <xsd:complexType>
221             <xsd:sequence>
222                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
223                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
224             </xsd:sequence>
225             <xsd:attribute name="plugin" use="required" type="xsd:string" />
226             <xsd:attribute name="resource" use="required" type="xsd:string" />
227             <xsd:attribute name="key" use="optional" type="xsd:string" />
228             <!-- force is retired and does not do anything -->
229             <xsd:attribute name="force" use="optional" type="xsd:string" />
230             <!-- local-only is retired and does not do anything -->
231             <xsd:attribute name="local-only" use="optional" type="xsd:string" />
232             <!-- pfx is retired and does not do anything -->
233             <xsd:attribute name="pfx" use="optional" type="xsd:string" />
234         </xsd:complexType>
235     </xsd:element>
236
237     <xsd:element name="for">
238         <xsd:complexType>
239             <xsd:sequence>
240                 <xsd:group ref="node" minOccurs="0" maxOccurs="unbounded" />
241             </xsd:sequence>
242             <xsd:attribute name="atomic" use="optional" type="xsd:boolean" />
243             <xsd:attribute name="index" use="required" type="xsd:string" />
244             <xsd:attribute name="start" use="required" type="xsd:string" />
245             <xsd:attribute name="end" use="required" type="xsd:string" />
246         </xsd:complexType>
247     </xsd:element>
248
249     <xsd:element name="set">
250         <xsd:complexType>
251             <xsd:sequence>
252                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
253             </xsd:sequence>
254             <xsd:attribute name="only-if-unset" use="optional"
255                 type="xsd:boolean" />
256         </xsd:complexType>
257     </xsd:element>
258
259     <xsd:element name="execute">
260         <xsd:complexType>
261             <xsd:sequence>
262                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
263                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
264             </xsd:sequence>
265             <xsd:attribute name="plugin" use="required" type="xsd:string" />
266             <xsd:attribute name="method" use="required" type="xsd:string" />
267         </xsd:complexType>
268     </xsd:element>
269
270     <xsd:element name="update">
271         <xsd:complexType>
272             <xsd:sequence>
273                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
274                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
275             </xsd:sequence>
276             <xsd:attribute name="plugin" use="required" type="xsd:string" />
277             <xsd:attribute name="resource" use="required" type="xsd:string" />
278             <xsd:attribute name="key" use="optional" type="xsd:string" />
279             <xsd:attribute name="force" use="optional" type="xsd:boolean" />
280             <xsd:attribute name="local-only" use="optional" type="xsd:boolean" />
281             <xsd:attribute name="pfx" use="optional" type="xsd:string" />
282         </xsd:complexType>
283     </xsd:element>
284
285     <xsd:element name="call">
286         <xsd:complexType>
287             <xsd:sequence>
288                 <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded" />
289                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
290             </xsd:sequence>
291             <xsd:attribute name="module" use="optional" type="xsd:string" />
292             <xsd:attribute name="rpc" use="required" type="xsd:string" />
293             <xsd:attribute name="version" use="optional" type="xsd:string" />
294             <xsd:attribute name="mode" use="required" type="xsd:string" />
295         </xsd:complexType>
296     </xsd:element>
297
298     <xsd:element name="notify">
299         <xsd:complexType>
300             <xsd:sequence>
301                 <xsd:element ref="outcome" minOccurs="0" maxOccurs="unbounded" />
302             </xsd:sequence>
303             <xsd:attribute name="plugin" use="optional" type="xsd:string" />
304             <xsd:attribute name="resource" use="optional" type="xsd:string" />
305             <xsd:attribute name="action" use="required" type="xsd:string" />
306             <xsd:attribute name="key" use="optional" type="xsd:string" />
307             <!-- force is retired and does not do anything -->
308             <xsd:attribute name="force" use="optional" type="xsd:string" />
309         </xsd:complexType>
310     </xsd:element>
311
312 </xsd:schema>