Merge branch 'upstreammaster'
[sfa.git] / sfa / managers / vini / vini.rng
1 <?xml version="1.0" encoding="UTF-8"?>
2 <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3   <start>
4     <ref name="RSpec"/>
5   </start>
6   <define name="RSpec">
7     <element name="RSpec">
8       <attribute name="expires">
9         <data type="NMTOKEN"/>
10       </attribute>
11       <attribute name="generated">
12         <data type="NMTOKEN"/>
13       </attribute>
14       <attribute name="type">
15         <data type="NMTOKEN"/>
16       </attribute>
17       <choice>
18         <ref name="network"/>
19         <ref name="request"/>
20       </choice>
21     </element>
22   </define>
23   <define name="network">
24     <element name="network">
25       <attribute name="name">
26         <data type="NMTOKEN"/>
27       </attribute>
28       <optional>
29         <attribute name="slice">
30           <data type="NMTOKEN"/>
31         </attribute>
32       </optional>
33       <optional>
34         <ref name="sliver_defaults"/>
35       </optional>
36       <oneOrMore>
37         <ref name="site"/>
38       </oneOrMore>
39       <zeroOrMore>
40         <ref name="link"/>
41       </zeroOrMore>
42     </element>
43   </define>
44   <define name="sliver_defaults">
45     <element name="sliver_defaults">
46       <ref name="sliver_elements"/>
47     </element>
48   </define>
49   <define name="site">
50     <element name="site">
51       <attribute name="id">
52         <data type="ID"/>
53       </attribute>
54       <element name="name">
55         <text/>
56       </element>
57       <zeroOrMore>
58         <ref name="node"/>
59       </zeroOrMore>
60     </element>
61   </define>
62   <define name="node">
63     <element name="node">
64       <attribute name="id">
65         <data type="ID"/>
66       </attribute>
67       <element name="hostname">
68         <text/>
69       </element>
70       <optional>
71         <element name="bw_unallocated">
72           <attribute name="units">
73             <data type="NMTOKEN"/>
74           </attribute>
75           <text/>
76         </element>
77       </optional>
78       <optional>
79         <element name="bw_limit">
80           <attribute name="units">
81             <data type="NMTOKEN"/>
82           </attribute>
83           <text/>
84         </element>
85       </optional>
86       <zeroOrMore>
87         <ref name="sliver"/>
88       </zeroOrMore>
89     </element>
90   </define>
91   <define name="link">
92     <element name="link">
93       <attribute name="endpoints">
94         <data type="IDREFS"/>
95       </attribute>
96       <optional>
97         <element name="description">
98           <text/>
99         </element>
100       </optional>
101       <element name="bw_unallocated">
102         <attribute name="units">
103           <data type="NMTOKEN"/>
104         </attribute>
105         <text/>
106       </element>
107       <zeroOrMore>
108         <ref name="vlink"/>
109       </zeroOrMore>
110     </element>
111   </define>
112   <define name="request">
113     <element name="request">
114       <attribute name="name">
115         <data type="NMTOKEN"/>
116       </attribute>
117       <optional>
118         <ref name="sliver_defaults"/>
119       </optional>
120       <zeroOrMore>
121         <ref name="sliver"/>
122       </zeroOrMore>
123       <zeroOrMore>
124         <ref name="vlink"/>
125       </zeroOrMore>
126     </element>
127   </define>
128   <define name="sliver">
129     <element name="sliver">
130       <optional>
131         <attribute name="nodeid">
132           <data type="ID"/>
133         </attribute>
134       </optional>
135       <ref name="sliver_elements"/>
136     </element>
137   </define>
138   <define name="sliver_elements">
139     <interleave>
140       <optional>
141         <element name="capabilities">
142           <text/>
143         </element>
144       </optional>
145       <zeroOrMore>
146         <element name="codemux">
147           <text/>
148         </element>
149       </zeroOrMore>
150       <optional>
151         <element name="cpu_pct">
152           <text/>
153         </element>
154       </optional>
155       <optional>
156         <element name="cpu_share">
157           <text/>
158         </element>
159       </optional>
160       <optional>
161         <element name="delegations">
162           <text/>
163         </element>
164       </optional>
165       <optional>
166         <element name="disk_max">
167           <text/>
168         </element>
169       </optional>
170       <optional>
171         <element name="initscript">
172           <text/>
173         </element>
174       </optional>
175       <zeroOrMore>
176         <element name="ip_addresses">
177           <text/>
178         </element>
179       </zeroOrMore>
180       <optional>
181         <element name="net_i2_max_kbyte">
182           <text/>
183         </element>
184       </optional>
185       <optional>
186         <element name="net_i2_max_rate">
187           <text/>
188         </element>
189       </optional>
190       <optional>
191         <element name="net_i2_min_rate">
192           <text/>
193         </element>
194       </optional>
195       <optional>
196         <element name="net_i2_share">
197           <text/>
198         </element>
199       </optional>
200       <optional>
201         <element name="net_i2_thresh_kbyte">
202           <text/>
203         </element>
204       </optional>
205       <optional>
206         <element name="net_max_kbyte">
207           <text/>
208         </element>
209       </optional>
210       <optional>
211         <element name="net_max_rate">
212           <text/>
213         </element>
214       </optional>
215       <optional>
216         <element name="net_min_rate">
217           <text/>
218         </element>
219       </optional>
220       <optional>
221         <element name="net_share">
222           <text/>
223         </element>
224       </optional>
225       <optional>
226         <element name="net_thresh_kbyte">
227           <text/>
228         </element>
229       </optional>
230       <zeroOrMore>
231         <element name="vsys">
232           <text/>
233         </element>
234       </zeroOrMore>
235       <optional>
236         <element name="vsys_vnet">
237           <text/>
238         </element>
239       </optional>
240     </interleave>
241   </define>
242   <define name="vlink">
243     <element name="vlink">
244       <optional>
245         <attribute name="endpoints">
246           <data type="IDREFS"/>
247         </attribute>
248       </optional>
249       <optional>
250         <element name="description">
251           <text/>
252         </element>
253       </optional>
254       <optional>
255         <element name="kbps">
256           <text/>
257         </element>
258       </optional>
259     </element>
260   </define>
261 </grammar>