source: fedd/fedd_types.xsd @ 9c166cf

axis_examplecompt_changesinfo-opsversion-1.30version-2.00version-3.01version-3.02
Last change on this file since 9c166cf was 2c6128f, checked in by Ted Faber <faber@…>, 16 years ago

Add support for a real fedkit tar file rather than the ad hoc script stuff.

  • Property mode set to 100644
File size: 16.2 KB
Line 
1<?xml version="1.0"?>
2<xsd:schema targetNamespace="http://www.isi.edu/faber/fedd_types"
3  xmlns:tns="http://www.isi.edu/faber/fedd_types"
4  xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
5  xmlns="http://www.w3.org/2000/10/XMLSchema">
6
7  <xsd:complexType name="IDType">
8    <xsd:annotation>
9      <xsd:documentation>
10        The types of user IDs
11      </xsd:documentation>
12    </xsd:annotation>
13    <xsd:choice>
14      <xsd:element name="uuid" type="xsd:base64Binary"/>
15      <xsd:element name="fedid" type="xsd:base64Binary"/>
16      <xsd:element name="uri" type="xsd:string"/>
17      <xsd:element name="localname" type="xsd:string"/>
18      <xsd:element name="kerberosUsername" type="xsd:string"/>
19    </xsd:choice>
20  </xsd:complexType>
21
22  <xsd:complexType name="nodeType">
23    <xsd:annotation>
24      <xsd:documentation>
25        Nodes are described in terms of their images or hardware requirements.
26        This description may be empty
27      </xsd:documentation>
28    </xsd:annotation>
29    <xsd:sequence>
30      <xsd:element name="image" type="xsd:string" minOccurs="0"
31        maxOccurs="unbounded"/>
32      <xsd:element name="hardware" type="xsd:string" minOccurs="0"
33        maxOccurs="unbounded"/>
34    </xsd:sequence>
35    <xsd:attribute name="count" type="xsd:int" use="optional"/>
36  </xsd:complexType>
37
38  <xsd:simpleType name="kindType">
39    <xsd:restriction base="xsd:string">
40      <xsd:enumeration value="max"/>
41      <xsd:enumeration value="average"/>
42    </xsd:restriction>
43  </xsd:simpleType>
44
45  <xsd:complexType name="capacityType">
46    <xsd:annotation>
47      <xsd:documentation>
48        Capacity value and type of cut
49      </xsd:documentation>
50    </xsd:annotation>
51    <xsd:sequence>
52      <xsd:element name="rate" type="xsd:double"/>
53      <xsd:element name="kind" type="tns:kindType"/>
54    </xsd:sequence>
55  </xsd:complexType>
56
57  <xsd:complexType name="accessType">
58    <xsd:annotation>
59      <xsd:documentation>
60        The types of credentails used for remote project access
61      </xsd:documentation>
62    </xsd:annotation>
63    <xsd:choice>
64      <xsd:element name="X509" type="xsd:base64Binary"/>
65      <xsd:element name="sshPubkey" type="xsd:base64Binary"/>
66      <xsd:element name="pgpPubkey" type="xsd:base64Binary"/>
67    </xsd:choice>
68  </xsd:complexType>
69
70  <xsd:simpleType name="userRole">
71    <xsd:annotation>
72      <xsd:documentation>
73        Purpose of this user - service access or experiment creation
74      </xsd:documentation>
75    </xsd:annotation>
76    <xsd:restriction base="xsd:string">
77      <xsd:enumeration value="serviceAccess"/>
78      <xsd:enumeration value="experimentCreation"/>
79    </xsd:restriction>
80  </xsd:simpleType>
81
82
83  <xsd:complexType name="userType">
84    <xsd:annotation>
85      <xsd:documentation>
86        A user consists of one or both of an identifier and an access
87        credential.
88      </xsd:documentation>
89    </xsd:annotation>
90    <xsd:sequence>
91      <xsd:element name="userID" type="tns:IDType" minOccurs="0"
92        maxOccurs="1"/>
93      <xsd:element name="access" type="tns:accessType" minOccurs="0"
94        maxOccurs="unbounded"/>
95      <xsd:element name="role" type="tns:userRole" minOccurs="0" maxOccurs="1"/>
96    </xsd:sequence>
97  </xsd:complexType>
98
99  <xsd:complexType name="fedAttrType">
100    <xsd:annotation>
101      <xsd:documentation>
102        A general attribute value pair for passing federation parameters and
103        preferences
104      </xsd:documentation>
105    </xsd:annotation>
106    <xsd:sequence>
107      <xsd:element name="attribute" type="xsd:string"/>
108      <xsd:element name="value" type="xsd:string"/>
109    </xsd:sequence>
110  </xsd:complexType>
111
112
113  <xsd:complexType name="resourcesType">
114    <xsd:annotation>
115      <xsd:documentation>
116        An estimate of the resources than a federated experiment may require
117      </xsd:documentation>
118    </xsd:annotation>
119    <xsd:sequence>
120      <xsd:element name="node" type="tns:nodeType" minOccurs="0"
121        maxOccurs="unbounded" />
122      <xsd:element name="capacity" type="tns:capacityType" minOccurs="0"
123        maxOccurs="unbounded"/>
124    </xsd:sequence>
125  </xsd:complexType>
126
127  <xsd:complexType name="mapType">
128    <xsd:annotation>
129      <xsd:documentation>
130        Explicit translation of testbed attribute in a federated experiment
131        description.  Used in a creation request.
132      </xsd:documentation>
133    </xsd:annotation>
134    <xsd:sequence>
135      <xsd:element name="testbed" type="tns:IDType"/>
136      <xsd:element name="uri" type="xsd:string"/>
137    </xsd:sequence>
138  </xsd:complexType>
139
140
141  <xsd:complexType name="projectType">
142    <xsd:annotation>
143      <xsd:documentation>
144        A project name and access user
145      </xsd:documentation>
146    </xsd:annotation>
147    <xsd:sequence>
148      <xsd:element name="testbed" type="tns:IDType" minOccurs="0"
149        maxOccurs="1"/>
150      <xsd:element name="name" type="tns:IDType" minOccurs="0" maxOccurs="1"/>
151      <xsd:element name="user" type="tns:userType" minOccurs="0"
152        maxOccurs="unbounded"/>
153    </xsd:sequence>
154  </xsd:complexType>
155
156  <xsd:complexType name="emulabType">
157    <xsd:annotation>
158      <xsd:documentation>
159        The information needed to swap an emulab experiment in
160      </xsd:documentation>
161    </xsd:annotation>
162    <xsd:sequence>
163      <xsd:element name="project" type="tns:projectType"/>
164      <xsd:element name="domain" type="xsd:string"/>
165      <xsd:element name="boss" type="xsd:string"/>
166      <xsd:element name="ops" type="xsd:string"/>
167      <xsd:element name="fileServer" type="xsd:string"/>
168      <xsd:element name="eventServer" type="xsd:string"/>
169      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
170        maxOccurs="unbounded"/>
171    </xsd:sequence>
172  </xsd:complexType>
173
174  <xsd:complexType name="federatedExperimentType">
175    <xsd:annotation>
176      <xsd:documentation>
177        The information about a federated sub-experiment
178      </xsd:documentation>
179    </xsd:annotation>
180    <xsd:sequence>
181      <xsd:element name="name" type="tns:IDType" minOccurs="1" 
182        maxOccurs="unbounded"/>
183      <xsd:element name="emulab" type="tns:emulabType"/>
184      <xsd:element name="master" type="xsd:boolean"/>
185    </xsd:sequence>
186  </xsd:complexType>
187
188
189  <xsd:complexType name="vtoponodeType">
190    <xsd:annotation>
191      <xsd:documentation>
192        Node in the virtual topology of a federated experiment (emulab legacy)
193      </xsd:documentation>
194    </xsd:annotation>
195    <xsd:sequence>
196      <xsd:element name="vname" type="xsd:string"/>
197      <xsd:element name="ips" type="xsd:string"/>
198    </xsd:sequence>
199  </xsd:complexType>
200
201  <xsd:complexType name="vtopolanType">
202    <xsd:annotation>
203      <xsd:documentation>
204        LAN in the virtual topology of a federated experiment (emulab legacy)
205      </xsd:documentation>
206    </xsd:annotation>
207    <xsd:sequence>
208      <xsd:element name="vname" type="xsd:string"/>
209      <xsd:element name="vnode" type="xsd:string"/>
210      <xsd:element name="ip" type="xsd:string"/>
211      <xsd:element name="bandwidth" type="xsd:int"/>
212      <xsd:element name="delay" type="xsd:float"/>
213      <xsd:element name="member" type="xsd:string"/>
214    </xsd:sequence>
215  </xsd:complexType>
216
217  <xsd:complexType name="vtopoType">
218    <xsd:annotation>
219      <xsd:documentation>
220        The virtual topology of a federated experiment (emulab legacy)
221      </xsd:documentation>
222    </xsd:annotation>
223    <xsd:sequence>
224      <xsd:element name="node" type="tns:vtoponodeType" minOccurs="0" 
225        maxOccurs="unbounded" />
226      <xsd:element name="lan" type="tns:vtopolanType" minOccurs="0"
227        maxOccurs="unbounded"/>
228    </xsd:sequence>
229  </xsd:complexType>
230
231  <xsd:complexType name="visnodeType">
232    <xsd:annotation>
233      <xsd:documentation>
234        Node in the visualization of a federated experiment (emulab legacy)
235      </xsd:documentation>
236    </xsd:annotation>
237    <xsd:sequence>
238      <xsd:element name="name" type="xsd:string"/>
239      <xsd:element name="x" type="xsd:int"/>
240      <xsd:element name="y" type="xsd:int"/>
241      <xsd:element name="type" type="xsd:string"/>
242    </xsd:sequence>
243  </xsd:complexType>
244
245  <xsd:complexType name="visType">
246    <xsd:annotation>
247      <xsd:documentation>
248        The visualization of a federated experiment (emulab legacy)
249      </xsd:documentation>
250    </xsd:annotation>
251    <xsd:sequence>
252      <xsd:element name="node" type="tns:visnodeType" minOccurs="0"
253        maxOccurs="unbounded"/>
254    </xsd:sequence>
255  </xsd:complexType>
256
257  <xsd:complexType name="projectAllocType">
258    <xsd:annotation>
259      <xsd:documentation>
260        The information needed to create a dynamic project
261      </xsd:documentation>
262    </xsd:annotation>
263    <xsd:sequence>
264      <xsd:element name="project" type="tns:projectType"/>
265      <xsd:element name="resources" type="tns:resourcesType" 
266        minOccurs="0" maxOccurs="1"/>
267    </xsd:sequence>
268  </xsd:complexType>
269
270  <xsd:complexType name="projectAllocResponseType">
271    <xsd:annotation>
272      <xsd:documentation>
273        The information needed to create a dynamic project
274      </xsd:documentation>
275    </xsd:annotation>
276    <xsd:sequence>
277      <xsd:element name="project" type="tns:projectType"/>
278    </xsd:sequence>
279  </xsd:complexType>
280
281  <xsd:complexType name="experimentDescriptionType">
282    <xsd:annotation>
283      <xsd:documentation>
284        The description of the federated experiment
285      </xsd:documentation>
286    </xsd:annotation>
287    <xsd:choice>
288      <xsd:element name="ns2description" type="xsd:base64Binary"/>
289    </xsd:choice>
290  </xsd:complexType>
291
292  <xsd:complexType name="requestType">
293    <xsd:annotation>
294      <xsd:documentation>
295        The full on request type.
296      </xsd:documentation>
297    </xsd:annotation>
298    <xsd:sequence>
299      <xsd:element name="destinationTestbed" type="tns:IDType"
300        minOccurs="0" maxOccurs="1" />
301      <xsd:choice>
302        <xsd:element name="project" type="tns:projectType" minOccurs="0" 
303          maxOccurs="1"/>
304        <xsd:element name="user" type="tns:userType" minOccurs="0"
305          maxOccurs="unbounded"/>
306      </xsd:choice>
307      <xsd:element name="resources" type="tns:resourcesType" minOccurs="0" 
308        maxOccurs="1"/>
309      <xsd:element name="createAccess" type="tns:accessType" minOccurs="1" 
310        maxOccurs="unbounded"/>
311      <xsd:element name="serviceAccess" type="tns:accessType" minOccurs="1" 
312        maxOccurs="unbounded"/>
313      <xsd:element name="allocID" type="tns:IDType"/>
314      <xsd:element name="when" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
315      <xsd:element name="until" type="xsd:dateTime" minOccurs="0" 
316        maxOccurs="1"/>
317    </xsd:sequence>
318  </xsd:complexType>
319
320  <xsd:complexType name="responseType">
321    <xsd:annotation>
322      <xsd:documentation>
323        The full on response type.
324      </xsd:documentation>
325    </xsd:annotation>
326    <xsd:sequence>
327      <xsd:element name="allocID" type="tns:IDType"/>
328      <xsd:element name="emulab" type="tns:emulabType"/>
329      <xsd:element name="when" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
330      <xsd:element name="until" type="xsd:dateTime" minOccurs="0" 
331        maxOccurs="1"/>
332    </xsd:sequence>
333  </xsd:complexType>
334
335  <xsd:complexType name="createRequestType">
336    <xsd:annotation>
337      <xsd:documentation>
338        A request to embed a federated experiment across testbeds
339      </xsd:documentation>
340    </xsd:annotation>
341    <xsd:sequence>
342      <xsd:element name="testbedmap" type="tns:mapType" minOccurs="0"
343        maxOccurs="unbounded"/>
344      <xsd:element name="user" type="tns:userType" minOccurs="1"
345        maxOccurs="unbounded"/>
346      <xsd:element name="experimentdescription" 
347        type="tns:experimentDescriptionType"/>
348      <xsd:element name="master" type="xsd:string"/>
349      <xsd:element name="experimentID" type="tns:IDType" minOccurs="0" 
350        maxOccurs="1"/>
351    </xsd:sequence>
352  </xsd:complexType>
353
354  <xsd:complexType name="createResponseType">
355    <xsd:annotation>
356      <xsd:documentation>
357        A request to embed a federated experiment across testbeds
358      </xsd:documentation>
359    </xsd:annotation>
360    <xsd:sequence>
361      <xsd:element name="federant" type="tns:federatedExperimentType" 
362        minOccurs="1" maxOccurs="unbounded"/>
363      <xsd:element name="vtopo" type="tns:vtopoType" minOccurs="0"
364        maxOccurs="1"/>
365      <xsd:element name="vis" type="tns:visType" minOccurs="0"
366        maxOccurs="1"/>
367      <xsd:element name="experimentID" type="tns:IDType" minOccurs="1"
368        maxOccurs="unbounded"/>
369      <xsd:element name="experimentAccess" type="tns:accessType" minOccurs="0"
370        maxOccurs="1"/>
371    </xsd:sequence>
372  </xsd:complexType>
373
374  <xsd:complexType name="vtopoRequestType">
375    <xsd:annotation>
376      <xsd:documentation>
377        Request for an existing experiment's topology
378      </xsd:documentation>
379    </xsd:annotation>
380    <xsd:sequence>
381      <xsd:element name="experiment" type="tns:IDType"/>
382    </xsd:sequence>
383  </xsd:complexType>
384
385  <xsd:complexType name="vtopoResponseType">
386    <xsd:annotation>
387      <xsd:documentation>
388        Request for an existing experiment's topology
389      </xsd:documentation>
390    </xsd:annotation>
391    <xsd:sequence>
392      <xsd:element name="experiment" type="tns:IDType"/>
393      <xsd:element name="vtopo" type="tns:vtopoType"/>
394    </xsd:sequence>
395  </xsd:complexType>
396
397
398  <xsd:complexType name="visRequestType">
399    <xsd:annotation>
400      <xsd:documentation>
401        Request for an existing experiment's topology
402      </xsd:documentation>
403    </xsd:annotation>
404    <xsd:sequence>
405      <xsd:element name="experiment" type="tns:IDType"/>
406    </xsd:sequence>
407  </xsd:complexType>
408
409  <xsd:complexType name="visResponseType">
410    <xsd:annotation>
411      <xsd:documentation>
412        Request for an existing experiment's topology
413      </xsd:documentation>
414    </xsd:annotation>
415    <xsd:sequence>
416      <xsd:element name="experiment" type="tns:IDType"/>
417      <xsd:element name="vis" type="tns:visType"/>
418    </xsd:sequence>
419  </xsd:complexType>
420
421  <xsd:complexType name="infoRequestType">
422    <xsd:annotation>
423      <xsd:documentation>
424        Request for an existing experiment's topology
425      </xsd:documentation>
426    </xsd:annotation>
427    <xsd:sequence>
428      <xsd:element name="experiment" type="tns:IDType"/>
429    </xsd:sequence>
430  </xsd:complexType>
431
432  <xsd:complexType name="infoResponseType">
433    <xsd:annotation>
434      <xsd:documentation>
435        Information on an instantiated experiment.  The createResponse without
436        the secret information
437      </xsd:documentation>
438    </xsd:annotation>
439    <xsd:sequence>
440      <xsd:element name="federant" type="tns:federatedExperimentType" 
441        minOccurs="1" maxOccurs="unbounded"/>
442      <xsd:element name="vtopo" type="tns:vtopoType" minOccurs="0"
443        maxOccurs="1"/>
444      <xsd:element name="vis" type="tns:visType" minOccurs="0"
445        maxOccurs="1"/>
446      <xsd:element name="experimentID" type="tns:IDType" minOccurs="1"
447        maxOccurs="unbounded"/>
448    </xsd:sequence>
449  </xsd:complexType>
450
451  <xsd:complexType name="terminateRequestType">
452    <xsd:annotation>
453      <xsd:documentation>
454        Request to terminate an experiment
455      </xsd:documentation>
456    </xsd:annotation>
457    <xsd:sequence>
458      <xsd:element name="experiment" type="tns:IDType"/>
459    </xsd:sequence>
460  </xsd:complexType>
461
462  <xsd:complexType name="terminateResponseType">
463    <xsd:annotation>
464      <xsd:documentation>
465        Request to terminate an experiment
466      </xsd:documentation>
467    </xsd:annotation>
468    <xsd:sequence>
469      <xsd:element name="experiment" type="tns:IDType"/>
470    </xsd:sequence>
471  </xsd:complexType>
472
473  <xsd:complexType name="ns2SplitRequestType">
474    <xsd:annotation>
475      <xsd:documentation>
476        Request to run splitter remotely
477      </xsd:documentation>
478    </xsd:annotation>
479    <xsd:sequence>
480      <xsd:element name="description" type="tns:experimentDescriptionType"/>
481      <xsd:element name="master" type="xsd:string"/>
482      <xsd:element name="include_fedkit" type="xsd:bool"/>
483    </xsd:sequence>
484  </xsd:complexType>
485
486  <xsd:complexType name="ns2SplitResponseType">
487    <xsd:annotation>
488      <xsd:documentation>
489        Remote splitter output
490      </xsd:documentation>
491    </xsd:annotation>
492    <xsd:sequence>
493      <xsd:element name="output" type="xsd:base64Binary"/>
494    </xsd:sequence>
495  </xsd:complexType>
496
497
498  <xsd:complexType name="faultType">
499    <xsd:sequence>
500      <xsd:element name="code" type="xsd:int">
501        <xsd:restriction>
502          <xsd:enumeration value="1"/>  <!-- access denied -->
503          <xsd:enumeration value="2"/>  <!-- proxy error -->
504          <xsd:enumeration value="3"/>  <!-- badly formed request -->
505          <xsd:enumeration value="4"/>  <!-- server configuration error -->
506          <xsd:enumeration value="5"/>  <!-- internal error -->
507          <xsd:enumeration value="6"/>  <!-- partial instantiation -->
508          <xsd:enumeration value="7"/>  <!-- federant error -->
509        </xsd:restriction>
510      </xsd:element>
511      <xsd:element name="errstr" minOccurs="0" maxOccurs="1" type="xsd:string">
512      </xsd:element>
513      <xsd:element name="desc" type="xsd:string"/>
514    </xsd:sequence>
515  </xsd:complexType>
516</xsd:schema>
Note: See TracBrowser for help on using the repository browser.