sfa-0.9-17 tag
[sfa.git] / sfa / managers / eucalyptus / eucalyptus.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="type">
9         <data type="NMTOKEN"/>
10       </attribute>
11       <ref name="cloud"/>
12     </element>
13   </define>
14   <define name="cloud">
15     <element name="cloud">
16       <attribute name="id">
17         <data type="NMTOKEN"/>
18       </attribute>
19       <optional>
20         <ref name="user_info"/>
21       </optional>
22       <ref name="ipv4"/>
23       <ref name="keypairs"/>
24       <ref name="images"/>
25       <oneOrMore>
26         <ref name="cluster"/>
27       </oneOrMore>
28     </element>
29   </define>
30   <define name="user_info">
31     <element name="user_info">
32       <ref name="credential"/>
33     </element>
34   </define>
35   <define name="keypairs">
36     <element name="keypairs">
37       <oneOrMore>
38         <ref name="keypair"/>
39       </oneOrMore>
40     </element>
41   </define>
42   <define name="images">
43     <element name="images">
44       <oneOrMore>
45         <ref name="image"/>
46       </oneOrMore>
47     </element>
48   </define>
49   <define name="image">
50     <element name="image">
51       <attribute name="id">
52         <data type="ID"/>
53       </attribute>
54       <ref name="type"/>
55       <ref name="arch"/>
56       <ref name="state"/>
57       <ref name="location"/>
58     </element>
59   </define>
60   <define name="cluster">
61     <element name="cluster">
62       <attribute name="id">
63         <data type="ID"/>
64       </attribute>
65       <ref name="ipv4"/>
66       <ref name="vm_types"/>
67     </element>
68   </define>
69   <define name="vm_types">
70     <element name="vm_types">
71       <oneOrMore>
72         <ref name="vm_type"/>
73       </oneOrMore>
74     </element>
75   </define>
76   <define name="vm_type">
77     <element name="vm_type">
78       <attribute name="name">
79         <data type="ID"/>
80       </attribute>
81       <ref name="free_slots"/>
82       <ref name="max_instances"/>
83       <ref name="cores"/>
84       <ref name="memory"/>
85       <ref name="disk_space"/>
86       <optional>
87         <ref name="request"/>
88       </optional>
89       <optional>
90         <ref name="euca_instances"/>
91       </optional>
92     </element>
93   </define>
94   <define name="request">
95     <element name="request">
96       <ref name="instances"/>
97       <ref name="kernel_image"/>
98       <ref name="ramdisk"/>
99       <ref name="disk_image"/>
100       <ref name="keypair"/>
101     </element>
102   </define>
103   <define name="euca_instances">
104     <element name="euca_instances">
105       <oneOrMore>
106         <ref name="euca_instance"/>
107       </oneOrMore>
108     </element>
109   </define>
110   <define name="euca_instance">
111     <element name="euca_instance">
112       <attribute name="id">
113         <data type="ID"/>
114       </attribute>
115       <ref name="state"/>
116       <ref name="public_dns"/>
117       <ref name="keypair"/>
118     </element>
119   </define>
120   <define name="credential">
121     <element name="credential">
122       <text/>
123     </element>
124   </define>
125   <define name="ipv4">
126     <element name="ipv4">
127       <text/>
128     </element>
129   </define>
130   <define name="keypair">
131     <element name="keypair">
132       <text/>
133     </element>
134   </define>
135   <define name="type">
136     <element name="type">
137       <text/>
138     </element>
139   </define>
140   <define name="arch">
141     <element name="arch">
142       <text/>
143     </element>
144   </define>
145   <define name="state">
146     <element name="state">
147       <text/>
148     </element>
149   </define>
150   <define name="location">
151     <element name="location">
152       <text/>
153     </element>
154   </define>
155   <define name="free_slots">
156     <element name="free_slots">
157       <text/>
158     </element>
159   </define>
160   <define name="max_instances">
161     <element name="max_instances">
162       <text/>
163     </element>
164   </define>
165   <define name="cores">
166     <element name="cores">
167       <text/>
168     </element>
169   </define>
170   <define name="public_dns">
171     <element name="public_dns">
172       <text/>
173     </element>
174   </define>
175   <define name="memory">
176     <element name="memory">
177       <attribute name="unit">
178         <data type="NMTOKEN"/>
179       </attribute>
180       <text/>
181     </element>
182   </define>
183   <define name="disk_space">
184     <element name="disk_space">
185       <attribute name="unit">
186         <data type="NMTOKEN"/>
187       </attribute>
188       <text/>
189     </element>
190   </define>
191   <define name="instances">
192     <element name="instances">
193       <data type="unsignedInt"/>
194     </element>
195   </define>
196   <define name="kernel_image">
197     <element name="kernel_image">
198       <attribute name="id">
199         <data type="IDREF"/>
200       </attribute>
201       <empty/>
202     </element>
203   </define>
204   <define name="ramdisk">
205     <element name="ramdisk">
206       <optional>
207         <attribute name="id">
208           <data type="IDREF"/>
209         </attribute>
210       </optional>
211       <empty/>
212     </element>
213   </define>
214   <define name="disk_image">
215     <element name="disk_image">
216       <attribute name="id">
217         <data type="IDREF"/>
218       </attribute>
219       <empty/>
220     </element>
221   </define>
222 </grammar>