source: fedd/fedd_types.xsd @ afa43a8

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

content in the WSDL comments

  • Property mode set to 100644
File size: 21.7 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        An ID is an identifier for a principal, service, or object.  This type
11        is currently polymorphic o allow different implementations of type,
12        though running code primarily uses localnames and fedids.
13      </xsd:documentation>
14    </xsd:annotation>
15    <xsd:choice>
16      <xsd:element name="uuid" type="xsd:base64Binary"/>
17      <xsd:element name="fedid" type="xsd:base64Binary"/>
18      <xsd:element name="uri" type="xsd:string"/>
19      <xsd:element name="localname" type="xsd:string"/>
20      <xsd:element name="kerberosUsername" type="xsd:string"/>
21    </xsd:choice>
22  </xsd:complexType>
23
24  <xsd:complexType name="nodeType">
25    <xsd:annotation>
26      <xsd:documentation>
27        A node from an Emulab.  It may have 0 or more images or hardware
28        types associated with it.  As this description is used for
29        acquiring access to the testbed in question, multiple images or
30        types are considered options.  Specifying multiple image names
31        indicates that the requester is looking for support for any of
32        them.
33      </xsd:documentation>
34    </xsd:annotation>
35    <xsd:sequence>
36      <xsd:element name="image" type="xsd:string" minOccurs="0"
37        maxOccurs="unbounded"/>
38      <xsd:element name="hardware" type="xsd:string" minOccurs="0"
39        maxOccurs="unbounded"/>
40    </xsd:sequence>
41    <xsd:attribute name="count" type="xsd:int" use="optional"/>
42  </xsd:complexType>
43
44  <xsd:simpleType name="kindType">
45    <xsd:annotation>
46      <xsd:documentation>
47        An indication of how requested networking capacity is measured.
48        This will undoubtably expand.
49      </xsd:documentation>
50    </xsd:annotation>
51    <xsd:restriction base="xsd:string">
52      <xsd:enumeration value="max"/>
53      <xsd:enumeration value="average"/>
54    </xsd:restriction>
55  </xsd:simpleType>
56
57  <xsd:complexType name="capacityType">
58    <xsd:annotation>
59      <xsd:documentation>
60        A strawman network capacity description for access negotiation.
61        This will come to include more and more interesting parameters.
62      </xsd:documentation>
63    </xsd:annotation>
64    <xsd:sequence>
65      <xsd:element name="rate" type="xsd:double"/>
66      <xsd:element name="kind" type="tns:kindType"/>
67    </xsd:sequence>
68  </xsd:complexType>
69
70  <xsd:complexType name="accessType">
71    <xsd:annotation>
72      <xsd:documentation>
73        This captures an access credential that will be used to access
74        resources.  These are certificates or public keys.  The type is
75        used to designate the key to which access should be bound, or on
76        a reply has been bound.  Dynamic credentials where new keys have
77        been created may also be passed in this kind of field.
78      </xsd:documentation>
79    </xsd:annotation>
80    <xsd:choice>
81      <xsd:element name="X509" type="xsd:base64Binary"/>
82      <xsd:element name="sshPubkey" type="xsd:base64Binary"/>
83      <xsd:element name="pgpPubkey" type="xsd:base64Binary"/>
84    </xsd:choice>
85  </xsd:complexType>
86
87  <xsd:simpleType name="userRole">
88    <xsd:annotation>
89      <xsd:documentation>
90        This defines the role the user/account is playing in the
91        federated experiment.  An account being accessed by the
92        federation system to create the experiment is in the
93        experimentCreation role and the accounts that experimenters will
94        use to access local testbed services (e.g., rebooting a local
95        node) are serviceAccess roles.
96      </xsd:documentation>
97    </xsd:annotation>
98    <xsd:restriction base="xsd:string">
99      <xsd:enumeration value="serviceAccess"/>
100      <xsd:enumeration value="experimentCreation"/>
101    </xsd:restriction>
102  </xsd:simpleType>
103
104
105  <xsd:complexType name="userType">
106    <xsd:annotation>
107      <xsd:documentation>
108        The definition of a user principal.  It includes the
109        identification of the user as an ID type, the access credential(s)
110        that the user will use, and the role of the user, if any.
111        Multiple access keys may be used, and it is also possible for
112        the user to be anonymous.  Though it is possible to specify a
113        user without ID, access, or role, it is difficult to imagine
114        such a user being useful.
115      </xsd:documentation>
116    </xsd:annotation>
117    <xsd:sequence>
118      <xsd:element name="userID" type="tns:IDType" minOccurs="0"
119        maxOccurs="1"/>
120      <xsd:element name="access" type="tns:accessType" minOccurs="0"
121        maxOccurs="unbounded"/>
122      <xsd:element name="role" type="tns:userRole" minOccurs="0" maxOccurs="1"/>
123    </xsd:sequence>
124  </xsd:complexType>
125
126  <xsd:complexType name="fedAttrType">
127    <xsd:annotation>
128      <xsd:documentation>
129        A general attribute/value pair for passing federation parameters and
130        preferences.  Anything encodable in XML is allowed.  This is a
131        point for customization and extension.
132      </xsd:documentation>
133    </xsd:annotation>
134    <xsd:sequence>
135      <xsd:element name="attribute" type="xsd:string"/>
136      <xsd:element name="value" type="xsd:string"/>
137    </xsd:sequence>
138  </xsd:complexType>
139
140
141  <xsd:complexType name="resourcesType">
142    <xsd:annotation>
143      <xsd:documentation>
144        The estimate of resources a requester is looking for, or the
145        response of a testbed indicating what it can provide.  This is
146        something of a placeholder for a full resource specification,
147        and alternative encodings are likely to be imported.
148      </xsd:documentation>
149    </xsd:annotation>
150    <xsd:sequence>
151      <xsd:element name="node" type="tns:nodeType" minOccurs="0"
152        maxOccurs="unbounded" />
153      <xsd:element name="capacity" type="tns:capacityType" minOccurs="0"
154        maxOccurs="unbounded"/>
155    </xsd:sequence>
156  </xsd:complexType>
157
158  <xsd:complexType name="mapType">
159    <xsd:annotation>
160      <xsd:documentation>
161        Explicit translation of testbed attribute in a federated experiment
162        description to the URI at which the controlling federation
163        system can be reached.  Used in a creation request.
164
165        This type allows tools to encode experiments in familiar local
166        names for experimenters while providing remote federation
167        systems the information to map the local name into a service
168        location.
169      </xsd:documentation>
170    </xsd:annotation>
171    <xsd:sequence>
172      <xsd:element name="testbed" type="tns:IDType"/>
173      <xsd:element name="uri" type="xsd:string"/>
174    </xsd:sequence>
175  </xsd:complexType>
176
177
178  <xsd:complexType name="projectType">
179    <xsd:annotation>
180      <xsd:documentation>
181        A description of the project used to access a testbed.  Includes
182        the testbed being accessed, the project name (often a local
183        name, scoped by the testbed), and any users who have been
184        granted access or for whom access is being requested.
185      </xsd:documentation>
186    </xsd:annotation>
187    <xsd:sequence>
188      <xsd:element name="testbed" type="tns:IDType" minOccurs="0"
189        maxOccurs="1"/>
190      <xsd:element name="name" type="tns:IDType" minOccurs="0" maxOccurs="1"/>
191      <xsd:element name="user" type="tns:userType" minOccurs="0"
192        maxOccurs="unbounded"/>
193    </xsd:sequence>
194  </xsd:complexType>
195
196  <xsd:complexType name="emulabType">
197    <xsd:annotation>
198      <xsd:documentation>
199        A description of an Emulab sufficient for the federation system
200        to create a sub experiment on it.  Note that fedAttrs provide an
201        extension mechanism by which testbeds may communicate additional
202        information and preferences to federation systems that
203        understand it.
204      </xsd:documentation>
205    </xsd:annotation>
206    <xsd:sequence>
207      <xsd:element name="project" type="tns:projectType"/>
208      <xsd:element name="domain" type="xsd:string"/>
209      <xsd:element name="boss" type="xsd:string"/>
210      <xsd:element name="ops" type="xsd:string"/>
211      <xsd:element name="fileServer" type="xsd:string"/>
212      <xsd:element name="eventServer" type="xsd:string"/>
213      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
214        maxOccurs="unbounded"/>
215    </xsd:sequence>
216  </xsd:complexType>
217
218  <xsd:complexType name="federatedExperimentType">
219    <xsd:annotation>
220      <xsd:documentation>
221        Naming and Emulab instantiation information about a federant.
222        This is returned by various informational requests and as part
223        of a successful creation message.
224      </xsd:documentation>
225    </xsd:annotation>
226    <xsd:sequence>
227      <xsd:element name="name" type="tns:IDType" minOccurs="1" 
228        maxOccurs="unbounded"/>
229      <xsd:element name="emulab" type="tns:emulabType"/>
230      <xsd:element name="master" type="xsd:boolean"/>
231    </xsd:sequence>
232  </xsd:complexType>
233
234
235  <xsd:complexType name="vtoponodeType">
236    <xsd:annotation>
237      <xsd:documentation>
238        Node in the virtual topology of a federated experiment (Emulab
239        legacy).  The fields are the local hostname and the IP addresses
240        of the experimental interfaces(colon-separated).
241      </xsd:documentation>
242    </xsd:annotation>
243    <xsd:sequence>
244      <xsd:element name="vname" type="xsd:string"/>
245      <xsd:element name="ips" type="xsd:string"/>
246    </xsd:sequence>
247  </xsd:complexType>
248
249  <xsd:complexType name="vtopolanType">
250    <xsd:annotation>
251      <xsd:documentation>
252        LAN in the virtual topology of a federated experiment (Emulab legacy).
253        The fields are the name of the LAN/link (vname) the node that
254        this description applies to (vnode), the IP of the connection,
255        and performance information.
256      </xsd:documentation>
257    </xsd:annotation>
258    <xsd:sequence>
259      <xsd:element name="vname" type="xsd:string"/>
260      <xsd:element name="vnode" type="xsd:string"/>
261      <xsd:element name="ip" type="xsd:string"/>
262      <xsd:element name="bandwidth" type="xsd:int"/>
263      <xsd:element name="delay" type="xsd:float"/>
264      <xsd:element name="member" type="xsd:string"/>
265    </xsd:sequence>
266  </xsd:complexType>
267
268  <xsd:complexType name="vtopoType">
269    <xsd:annotation>
270      <xsd:documentation>
271        The virtual topology of a federated experiment (Emulab legacy).
272      </xsd:documentation>
273    </xsd:annotation>
274    <xsd:sequence>
275      <xsd:element name="node" type="tns:vtoponodeType" minOccurs="0" 
276        maxOccurs="unbounded" />
277      <xsd:element name="lan" type="tns:vtopolanType" minOccurs="0"
278        maxOccurs="unbounded"/>
279    </xsd:sequence>
280  </xsd:complexType>
281
282  <xsd:complexType name="visnodeType">
283    <xsd:annotation>
284      <xsd:documentation>
285        Node in the visualization of a federated experiment (Emulab
286        legacy).  Fields include the local hostname of the node, x,y
287        coordinates in a 2-dimensional representation, and whether the
288        node in the visualization is a host or a LAN.
289      </xsd:documentation>
290    </xsd:annotation>
291    <xsd:sequence>
292      <xsd:element name="name" type="xsd:string"/>
293      <xsd:element name="x" type="xsd:int"/>
294      <xsd:element name="y" type="xsd:int"/>
295      <xsd:element name="type" type="xsd:string"/>
296    </xsd:sequence>
297  </xsd:complexType>
298
299  <xsd:complexType name="visType">
300    <xsd:annotation>
301      <xsd:documentation>
302        The visualization of a federated experiment (Emulab legacy)
303      </xsd:documentation>
304    </xsd:annotation>
305    <xsd:sequence>
306      <xsd:element name="node" type="tns:visnodeType" minOccurs="0"
307        maxOccurs="unbounded"/>
308    </xsd:sequence>
309  </xsd:complexType>
310
311  <xsd:complexType name="projectAllocType">
312    <xsd:annotation>
313      <xsd:documentation>
314        The information needed to create a dynamic project, specifically
315        a project description and the resources in needs access to.
316        This is used by an internal fedd interface.
317      </xsd:documentation>
318    </xsd:annotation>
319    <xsd:sequence>
320      <xsd:element name="project" type="tns:projectType"/>
321      <xsd:element name="resources" type="tns:resourcesType" 
322        minOccurs="0" maxOccurs="1"/>
323    </xsd:sequence>
324  </xsd:complexType>
325
326  <xsd:complexType name="projectAllocResponseType">
327    <xsd:annotation>
328      <xsd:documentation>
329        The description of a dynamically created project, used by an
330        internal fedd interface.
331      </xsd:documentation>
332    </xsd:annotation>
333    <xsd:sequence>
334      <xsd:element name="project" type="tns:projectType"/>
335    </xsd:sequence>
336  </xsd:complexType>
337
338  <xsd:complexType name="experimentDescriptionType">
339    <xsd:annotation>
340      <xsd:documentation>
341        The description of the federated experiment, in extended ns2.
342      </xsd:documentation>
343    </xsd:annotation>
344    <xsd:choice>
345      <xsd:element name="ns2description" type="xsd:base64Binary"/>
346    </xsd:choice>
347  </xsd:complexType>
348
349  <xsd:complexType name="requestType">
350    <xsd:annotation>
351      <xsd:documentation>
352        Request for access to a testbed.  It includes the testbed from
353        which resources are being requested (a single service may
354        provide access to many), the user or project requesting access
355        (a testbed making the request will leave both empty), the
356        resources needed, the access keys to be used in the subsequent
357        instantiation and service use, an allocation ID to identify this
358        access in later requests, and scheduling information.
359      </xsd:documentation>
360    </xsd:annotation>
361    <xsd:sequence>
362      <xsd:element name="destinationTestbed" type="tns:IDType"
363        minOccurs="0" maxOccurs="1" />
364      <xsd:choice>
365        <xsd:element name="project" type="tns:projectType" minOccurs="0" 
366          maxOccurs="1"/>
367        <xsd:element name="user" type="tns:userType" minOccurs="0"
368          maxOccurs="unbounded"/>
369      </xsd:choice>
370      <xsd:element name="resources" type="tns:resourcesType" minOccurs="0" 
371        maxOccurs="1"/>
372      <xsd:element name="createAccess" type="tns:accessType" minOccurs="1" 
373        maxOccurs="unbounded"/>
374      <xsd:element name="serviceAccess" type="tns:accessType" minOccurs="1" 
375        maxOccurs="unbounded"/>
376      <xsd:element name="allocID" type="tns:IDType"/>
377      <xsd:element name="when" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
378      <xsd:element name="until" type="xsd:dateTime" minOccurs="0" 
379        maxOccurs="1"/>
380    </xsd:sequence>
381  </xsd:complexType>
382
383  <xsd:complexType name="responseType">
384    <xsd:annotation>
385      <xsd:documentation>
386        Response to an access request.  Includes the allocation, the
387        information needed to access creation and experiment services
388        and scheduling information.
389      </xsd:documentation>
390    </xsd:annotation>
391    <xsd:sequence>
392      <xsd:element name="allocID" type="tns:IDType"/>
393      <xsd:element name="emulab" type="tns:emulabType"/>
394      <xsd:element name="when" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
395      <xsd:element name="until" type="xsd:dateTime" minOccurs="0" 
396        maxOccurs="1"/>
397    </xsd:sequence>
398  </xsd:complexType>
399
400  <xsd:complexType name="createRequestType">
401    <xsd:annotation>
402      <xsd:documentation>
403        A request to embed a federated experiment across testbeds.  Non-
404        standard local names for testbeds are included in the
405        testbedmap, the user making the request, the experiment
406        description, master testbed, and a suggested experiment name are
407        included.  More than one name can be suggested, either as
408        synonyms (a fedid and a localname) or as choices (multiple
409        localnames).
410      </xsd:documentation>
411    </xsd:annotation>
412    <xsd:sequence>
413      <xsd:element name="testbedmap" type="tns:mapType" minOccurs="0"
414        maxOccurs="unbounded"/>
415      <xsd:element name="user" type="tns:userType" minOccurs="1"
416        maxOccurs="unbounded"/>
417      <xsd:element name="experimentdescription" 
418        type="tns:experimentDescriptionType"/>
419      <xsd:element name="master" type="xsd:string"/>
420      <xsd:element name="experimentID" type="tns:IDType" minOccurs="0" 
421        maxOccurs="1"/>
422    </xsd:sequence>
423  </xsd:complexType>
424
425  <xsd:complexType name="createResponseType">
426    <xsd:annotation>
427      <xsd:documentation>
428        The reply to a successful creation request.  Includes the
429        information about federants hosting sub-experiments for service
430        access as well as virtual topology and visualization
431        information.  All that information is relative to the requester.
432        ExperimentAccess includes credentials with which one can access
433        the experiment.  These may include a public key necessary to
434        prove possession of the credential and should be treated with
435        care.
436      </xsd:documentation>
437    </xsd:annotation>
438    <xsd:sequence>
439      <xsd:element name="federant" type="tns:federatedExperimentType" 
440        minOccurs="1" maxOccurs="unbounded"/>
441      <xsd:element name="vtopo" type="tns:vtopoType" minOccurs="0"
442        maxOccurs="1"/>
443      <xsd:element name="vis" type="tns:visType" minOccurs="0"
444        maxOccurs="1"/>
445      <xsd:element name="experimentID" type="tns:IDType" minOccurs="1"
446        maxOccurs="unbounded"/>
447      <xsd:element name="experimentAccess" type="tns:accessType" minOccurs="0"
448        maxOccurs="1"/>
449    </xsd:sequence>
450  </xsd:complexType>
451
452  <xsd:complexType name="vtopoRequestType">
453    <xsd:annotation>
454      <xsd:documentation>
455        Request for an existing experiment's virtual topology.
456        Different information may be returned based on the user's rights
457        to see the topology.
458      </xsd:documentation>
459    </xsd:annotation>
460    <xsd:sequence>
461      <xsd:element name="experiment" type="tns:IDType"/>
462    </xsd:sequence>
463  </xsd:complexType>
464
465  <xsd:complexType name="vtopoResponseType">
466    <xsd:annotation>
467      <xsd:documentation>
468        The response to a topology request.  Different information may
469        be returned based on the user's rights to see the topology.
470      </xsd:documentation>
471    </xsd:annotation>
472    <xsd:sequence>
473      <xsd:element name="experiment" type="tns:IDType"/>
474      <xsd:element name="vtopo" type="tns:vtopoType"/>
475    </xsd:sequence>
476  </xsd:complexType>
477
478
479  <xsd:complexType name="visRequestType">
480    <xsd:annotation>
481      <xsd:documentation>
482        Request for an existing experiment's visualization.  This is
483        largely a compatibility service.  Different information may be
484        returned based on the user's rights to see the topology.
485      </xsd:documentation>
486    </xsd:annotation>
487    <xsd:sequence>
488      <xsd:element name="experiment" type="tns:IDType"/>
489    </xsd:sequence>
490  </xsd:complexType>
491
492  <xsd:complexType name="visResponseType">
493    <xsd:annotation>
494      <xsd:documentation>
495        An existing experiment's visualization.  This is largely a
496        compatibility service.  Different information may be returned
497        based on the user's rights to see the topology.
498      </xsd:documentation>
499    </xsd:annotation>
500    <xsd:sequence>
501      <xsd:element name="experiment" type="tns:IDType"/>
502      <xsd:element name="vis" type="tns:visType"/>
503    </xsd:sequence>
504  </xsd:complexType>
505
506  <xsd:complexType name="infoRequestType">
507    <xsd:annotation>
508      <xsd:documentation>
509        A combined topology, visualalization, and federant request.
510        Different information may be returned based on the user's rights
511        to see the topology.  </xsd:documentation>
512    </xsd:annotation>
513    <xsd:sequence>
514      <xsd:element name="experiment" type="tns:IDType"/>
515    </xsd:sequence>
516  </xsd:complexType>
517
518  <xsd:complexType name="infoResponseType">
519    <xsd:annotation>
520      <xsd:documentation>
521        Information on an instantiated experiment.  A createResponse
522        without the secret information.  Different information may be
523        returned based on the user's rights to see the topology.
524      </xsd:documentation>
525    </xsd:annotation>
526    <xsd:sequence>
527      <xsd:element name="federant" type="tns:federatedExperimentType" 
528        minOccurs="1" maxOccurs="unbounded"/>
529      <xsd:element name="vtopo" type="tns:vtopoType" minOccurs="0"
530        maxOccurs="1"/>
531      <xsd:element name="vis" type="tns:visType" minOccurs="0"
532        maxOccurs="1"/>
533      <xsd:element name="experimentID" type="tns:IDType" minOccurs="1"
534        maxOccurs="unbounded"/>
535    </xsd:sequence>
536  </xsd:complexType>
537
538  <xsd:complexType name="terminateRequestType">
539    <xsd:annotation>
540      <xsd:documentation>
541        Request to terminate an experiment.
542      </xsd:documentation>
543    </xsd:annotation>
544    <xsd:sequence>
545      <xsd:element name="experiment" type="tns:IDType"/>
546    </xsd:sequence>
547  </xsd:complexType>
548
549  <xsd:complexType name="terminateResponseType">
550    <xsd:annotation>
551      <xsd:documentation>
552        Indication that the experiment has been terminated.
553      </xsd:documentation>
554    </xsd:annotation>
555    <xsd:sequence>
556      <xsd:element name="experiment" type="tns:IDType"/>
557    </xsd:sequence>
558  </xsd:complexType>
559
560  <xsd:complexType name="ns2SplitRequestType">
561    <xsd:annotation>
562      <xsd:documentation>
563        Request to run the CEDL splitter remotely.  This is primarily an
564        internal interface.
565      </xsd:documentation>
566    </xsd:annotation>
567    <xsd:sequence>
568      <xsd:element name="description" type="tns:experimentDescriptionType"/>
569      <xsd:element name="master" type="xsd:string"/>
570      <xsd:element name="include_fedkit" type="xsd:bool"/>
571    </xsd:sequence>
572  </xsd:complexType>
573
574  <xsd:complexType name="ns2SplitResponseType">
575    <xsd:annotation>
576      <xsd:documentation>
577        Remote splitter output.  Also an internal interface
578      </xsd:documentation>
579    </xsd:annotation>
580    <xsd:sequence>
581      <xsd:element name="output" type="xsd:base64Binary"/>
582    </xsd:sequence>
583  </xsd:complexType>
584
585
586  <xsd:complexType name="faultType">
587    <xsd:annotation>
588      <xsd:documentation>
589        Indication that a service has failed.  The code values are
590
591          1 access denied
592          2 proxy error
593          3 badly formed request
594          4 server configuration error
595          5 internal error
596          6 partial instantiation
597          7 federant error
598
599        Errstr contains the text above corresponding to the code.  Code
600        is always present.  Desc provides additional human-readable data
601        about the error.
602      </xsd:documentation>
603    </xsd:annotation>
604    <xsd:sequence>
605      <xsd:element name="code" type="xsd:int">
606        <xsd:restriction>
607          <xsd:enumeration value="1"/>  <!-- access denied -->
608          <xsd:enumeration value="2"/>  <!-- proxy error -->
609          <xsd:enumeration value="3"/>  <!-- badly formed request -->
610          <xsd:enumeration value="4"/>  <!-- server configuration error -->
611          <xsd:enumeration value="5"/>  <!-- internal error -->
612          <xsd:enumeration value="6"/>  <!-- partial instantiation -->
613          <xsd:enumeration value="7"/>  <!-- federant error -->
614        </xsd:restriction>
615      </xsd:element>
616      <xsd:element name="errstr" minOccurs="0" maxOccurs="1" type="xsd:string">
617      </xsd:element>
618      <xsd:element name="desc" type="xsd:string"/>
619    </xsd:sequence>
620  </xsd:complexType>
621</xsd:schema>
Note: See TracBrowser for help on using the repository browser.