source: wsdl/fedd_types.xsd @ 2bb8b35

compt_changes
Last change on this file since 2bb8b35 was a11eda5, checked in by Ted Faber <faber@…>, 13 years ago

Add support for testbeds to indicate preference for outgoing portal
connections.

  • Property mode set to 100644
File size: 36.6 KB
Line 
1<?xml version="1.0"?>
2<xsd:schema targetNamespace="http://www.isi.edu/fedd_types"
3  xmlns:tns="http://www.isi.edu/fedd_types"
4  xmlns:topdl="http://www.isi.edu/topdl"
5  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
6  xmlns="http://www.w3.org/2000/10/XMLSchema">
7
8  <xsd:complexType name="IDType">
9    <xsd:annotation>
10      <xsd:documentation>
11        An ID is an identifier for a principal, service, or object.  This type
12        is currently polymorphic o allow different implementations of type,
13        though running code primarily uses localnames and fedids.
14      </xsd:documentation>
15    </xsd:annotation>
16    <xsd:choice>
17      <xsd:element name="uuid" type="xsd:base64Binary"/>
18      <xsd:element name="fedid" type="xsd:base64Binary"/>
19      <xsd:element name="uri" type="xsd:string"/>
20      <xsd:element name="localname" type="xsd:string"/>
21      <xsd:element name="kerberosUsername" type="xsd:string"/>
22    </xsd:choice>
23  </xsd:complexType>
24
25  <!-- begin deprecated -->
26
27  <xsd:complexType name="projectType">
28    <xsd:annotation>
29      <xsd:documentation>
30        A description of the project used to access a testbed.  Includes
31        the testbed being accessed, the project name (often a local
32        name, scoped by the testbed), and any users who have been
33        granted access or for whom access is being requested.
34      </xsd:documentation>
35    </xsd:annotation>
36    <xsd:sequence>
37      <xsd:element name="testbed" type="tns:IDType" minOccurs="0"
38        maxOccurs="1"/>
39      <xsd:element name="name" type="tns:IDType" minOccurs="0" maxOccurs="1"/>
40      <xsd:element name="user" type="tns:userType" minOccurs="0"
41        maxOccurs="unbounded"/>
42    </xsd:sequence>
43  </xsd:complexType>
44
45  <xsd:complexType name="projectAllocType">
46    <xsd:annotation>
47      <xsd:documentation>
48        The information needed to create a dynamic project, specifically
49        a project description and the resources in needs access to.
50        This is used by an internal fedd interface.
51      </xsd:documentation>
52    </xsd:annotation>
53    <xsd:sequence>
54      <xsd:element name="project" type="tns:projectType"/>
55      <xsd:element name="resources" type="tns:resourcesType" 
56        minOccurs="0" maxOccurs="1"/>
57    </xsd:sequence>
58  </xsd:complexType>
59
60  <xsd:complexType name="nodeType">
61    <xsd:annotation>
62      <xsd:documentation>
63        A node from an Emulab.  It may have 0 or more images or hardware
64        types associated with it.  As this description is used for
65        acquiring access to the testbed in question, multiple images or
66        types are considered options.  Specifying multiple image names
67        indicates that the requester is looking for support for any of
68        them.
69      </xsd:documentation>
70    </xsd:annotation>
71    <xsd:sequence>
72      <xsd:element name="image" type="xsd:string" minOccurs="0"
73        maxOccurs="unbounded"/>
74      <xsd:element name="hardware" type="xsd:string" minOccurs="0"
75        maxOccurs="unbounded"/>
76    </xsd:sequence>
77    <xsd:attribute name="count" type="xsd:int" use="optional"/>
78  </xsd:complexType>
79
80  <xsd:complexType name="capacityType">
81    <xsd:annotation>
82      <xsd:documentation>
83        A strawman network capacity description for access negotiation.
84        This will come to include more and more interesting parameters.
85      </xsd:documentation>
86    </xsd:annotation>
87    <xsd:sequence>
88      <xsd:element name="rate" type="xsd:double"/>
89      <xsd:element name="kind" type="tns:kindType"/>
90    </xsd:sequence>
91  </xsd:complexType>
92
93
94  <xsd:simpleType name="userRole">
95    <xsd:annotation>
96      <xsd:documentation>
97        This defines the role the user/account is playing in the
98        federated experiment.  An account being accessed by the
99        federation system to create the experiment is in the
100        experimentCreation role and the accounts that experimenters will
101        use to access local testbed services (e.g., rebooting a local
102        node) are serviceAccess roles.
103      </xsd:documentation>
104    </xsd:annotation>
105    <xsd:restriction base="xsd:string">
106      <xsd:enumeration value="serviceAccess"/>
107      <xsd:enumeration value="experimentCreation"/>
108    </xsd:restriction>
109  </xsd:simpleType>
110
111  <xsd:simpleType name="kindType">
112    <xsd:annotation>
113      <xsd:documentation>
114        An indication of how requested networking capacity is measured.
115        This will undoubtably expand.
116      </xsd:documentation>
117    </xsd:annotation>
118    <xsd:restriction base="xsd:string">
119      <xsd:enumeration value="max"/>
120      <xsd:enumeration value="average"/>
121    </xsd:restriction>
122  </xsd:simpleType>
123
124  <xsd:complexType name="userType">
125    <xsd:annotation>
126      <xsd:documentation>
127        The definition of a user principal.  It includes the
128        identification of the user as an ID type, the access credential(s)
129        that the user will use, and the role of the user, if any.
130        Multiple access keys may be used, and it is also possible for
131        the user to be anonymous.  Though it is possible to specify a
132        user without ID, access, or role, it is difficult to imagine
133        such a user being useful.
134      </xsd:documentation>
135    </xsd:annotation>
136    <xsd:sequence>
137      <xsd:element name="userID" type="tns:IDType" minOccurs="0"
138        maxOccurs="1"/>
139      <xsd:element name="access" type="tns:accessType" minOccurs="0"
140        maxOccurs="unbounded"/>
141      <!-- begin deprecated -->
142      <xsd:element name="role" type="tns:userRole" minOccurs="0" maxOccurs="1"/>
143      <!-- end deprecated -->
144    </xsd:sequence>
145  </xsd:complexType>
146
147  <!-- end deprecated -->
148
149  <xsd:complexType name="proofType">
150    <xsd:annotation>
151      <xsd:documentation>
152        A proof or partial proof of access rights
153      </xsd:documentation>
154    </xsd:annotation>
155    <xsd:sequence>
156      <xsd:element name="prover" type="xsd:string"/>
157      <xsd:element name="principal" type="xsd:string"/>
158      <xsd:element name="attribute" type="xsd:string"/>
159      <xsd:element name="credential" type="xsd:base64Binary" 
160        maxOccurs="unbounded" minOccurs="0"/>
161    </xsd:sequence>
162  </xsd:complexType>
163
164  <xsd:simpleType name="statusType">
165    <xsd:annotation>
166      <xsd:documentation>
167        The current state of the experiment.
168      </xsd:documentation>
169    </xsd:annotation>
170    <xsd:restriction base="xsd:string">
171      <xsd:enumeration value="empty"/>
172      <xsd:enumeration value="active"/>
173      <xsd:enumeration value="inactive"/>
174      <xsd:enumeration value="starting"/>
175      <xsd:enumeration value="terminating"/>
176      <xsd:enumeration value="failed"/>
177    </xsd:restriction>
178  </xsd:simpleType>
179
180  <xsd:complexType name="accessType">
181    <xsd:annotation>
182      <xsd:documentation>
183        This captures an access credential that will be used to access
184        resources.  These are certificates or public keys.  The type is
185        used to designate the key to which access should be bound, or on
186        a reply has been bound.  Dynamic credentials where new keys have
187        been created may also be passed in this kind of field.
188      </xsd:documentation>
189    </xsd:annotation>
190    <xsd:choice>
191      <xsd:element name="X509" type="xsd:base64Binary"/>
192      <xsd:element name="sshPubkey" type="xsd:base64Binary"/>
193      <xsd:element name="pgpPubkey" type="xsd:base64Binary"/>
194      <xsd:element name="passwordHash" type="xsd:string"/>
195    </xsd:choice>
196  </xsd:complexType>
197
198  <xsd:complexType name="fedAttrType">
199    <xsd:annotation>
200      <xsd:documentation>
201        A general attribute/value pair for passing federation parameters and
202        preferences.  Anything encodable in XML is allowed.  This is a
203        point for customization and extension.
204      </xsd:documentation>
205    </xsd:annotation>
206    <xsd:sequence>
207      <xsd:element name="attribute" type="xsd:string"/>
208      <xsd:element name="value" type="xsd:string"/>
209    </xsd:sequence>
210  </xsd:complexType>
211
212
213  <xsd:complexType name="resourcesType">
214    <xsd:annotation>
215      <xsd:documentation>
216        The estimate of resources a requester is looking for, or the
217        response of a testbed indicating what it can provide.  This is
218        something of a placeholder for a full resource specification,
219        and alternative encodings are likely to be imported.
220      </xsd:documentation>
221    </xsd:annotation>
222    <xsd:sequence>
223      <xsd:element name="experimentdescription" 
224        type="tns:experimentDescriptionType" minOccurs="0" maxOccurs="1"/>
225    </xsd:sequence>
226  </xsd:complexType>
227
228  <xsd:complexType name="mapType">
229    <xsd:annotation>
230      <xsd:documentation>
231        Explicit translation of testbed attribute in a federated experiment
232        description to the URI at which the controlling federation
233        system can be reached.  Used in a creation request.
234
235        This type allows tools to encode experiments in familiar local
236        names for experimenters while providing remote federation
237        systems the information to map the local name into a service
238        location.
239
240        The optional active element is true when the testbed prefers active
241        portal nodes.
242      </xsd:documentation>
243    </xsd:annotation>
244    <xsd:sequence>
245      <xsd:element name="testbed" type="xsd:string"/>
246      <xsd:element name="uri" type="xsd:string"/>
247      <xsd:element name="active" type="xsd:boolean" 
248        minOccurs="0" maxOccurs="1"/>
249    </xsd:sequence>
250  </xsd:complexType>
251 
252  <xsd:complexType name="vtoponodeType">
253    <xsd:annotation>
254      <xsd:documentation>
255        Node in the virtual topology of a federated experiment (Emulab
256        legacy).  The fields are the local hostname and the IP addresses
257        of the experimental interfaces(colon-separated).
258      </xsd:documentation>
259    </xsd:annotation>
260    <xsd:sequence>
261      <xsd:element name="vname" type="xsd:string"/>
262      <xsd:element name="ips" type="xsd:string"/>
263    </xsd:sequence>
264  </xsd:complexType>
265
266  <xsd:complexType name="vtopolanType">
267    <xsd:annotation>
268      <xsd:documentation>
269        LAN in the virtual topology of a federated experiment (Emulab legacy).
270        The fields are the name of the LAN/link (vname) the node that
271        this description applies to (vnode), the IP of the connection,
272        and performance information.
273      </xsd:documentation>
274    </xsd:annotation>
275    <xsd:sequence>
276      <xsd:element name="vname" type="xsd:string"/>
277      <xsd:element name="vnode" type="xsd:string"/>
278      <xsd:element name="ip" type="xsd:string"/>
279      <xsd:element name="bandwidth" type="xsd:int"/>
280      <xsd:element name="delay" type="xsd:float"/>
281      <xsd:element name="member" type="xsd:string"/>
282    </xsd:sequence>
283  </xsd:complexType>
284
285  <xsd:complexType name="vtopoType">
286    <xsd:annotation>
287      <xsd:documentation>
288        The virtual topology of a federated experiment (Emulab legacy).
289      </xsd:documentation>
290    </xsd:annotation>
291    <xsd:sequence>
292      <xsd:element name="node" type="tns:vtoponodeType" minOccurs="0" 
293        maxOccurs="unbounded" />
294      <xsd:element name="lan" type="tns:vtopolanType" minOccurs="0"
295        maxOccurs="unbounded"/>
296    </xsd:sequence>
297  </xsd:complexType>
298
299  <xsd:complexType name="visnodeType">
300    <xsd:annotation>
301      <xsd:documentation>
302        Node in the visualization of a federated experiment (Emulab
303        legacy).  Fields include the local hostname of the node, x,y
304        coordinates in a 2-dimensional representation, and whether the
305        node in the visualization is a host or a LAN.
306      </xsd:documentation>
307    </xsd:annotation>
308    <xsd:sequence>
309      <xsd:element name="name" type="xsd:string"/>
310      <xsd:element name="x" type="xsd:int"/>
311      <xsd:element name="y" type="xsd:int"/>
312      <xsd:element name="type" type="xsd:string"/>
313    </xsd:sequence>
314  </xsd:complexType>
315
316  <xsd:complexType name="visType">
317    <xsd:annotation>
318      <xsd:documentation>
319        The visualization of a federated experiment (Emulab legacy)
320      </xsd:documentation>
321    </xsd:annotation>
322    <xsd:sequence>
323      <xsd:element name="node" type="tns:visnodeType" minOccurs="0"
324        maxOccurs="unbounded"/>
325    </xsd:sequence>
326  </xsd:complexType>
327
328  <xsd:complexType name="experimentDescriptionType">
329    <xsd:annotation>
330      <xsd:documentation>
331        The description of the federated experiment, in extended ns2.
332      </xsd:documentation>
333    </xsd:annotation>
334    <xsd:choice>
335      <xsd:element name="ns2description" type="xsd:base64Binary"/>
336      <xsd:element name="topdldescription" type="topdl:topologyType"/>
337    </xsd:choice>
338  </xsd:complexType>
339
340  <xsd:simpleType name="connectionType">
341    <xsd:annotation>
342      <xsd:documentation>
343        Known subexperiment interconnection mechanisms
344      </xsd:documentation>
345    </xsd:annotation>
346    <xsd:restriction base="xsd:string">
347      <xsd:enumeration value="ssh"/>
348      <xsd:enumeration value="transit"/>
349    </xsd:restriction>
350  </xsd:simpleType>
351
352  <xsd:complexType name="memberType">
353    <xsd:annotation>
354      <xsd:documentation>
355        A member of a set of nodes for which transit is being provided
356      </xsd:documentation>
357    </xsd:annotation>
358    <xsd:sequence>
359      <xsd:element name="element" type="xsd:string"/>
360      <xsd:element name="interface" type="xsd:string" minOccurs="0" 
361        maxOccurs="1"/>
362    </xsd:sequence>
363  </xsd:complexType>
364
365  <xsd:simpleType name="connectionParameterIOType">
366    <xsd:annotation>
367      <xsd:documentation>
368        Connection parameter types: input or output
369      </xsd:documentation>
370    </xsd:annotation>
371    <xsd:restriction base="xsd:string">
372      <xsd:enumeration value="input"/>
373      <xsd:enumeration value="output"/>
374    </xsd:restriction>
375  </xsd:simpleType>
376
377  <xsd:complexType name="connectionParameterType">
378    <xsd:annotation>
379      <xsd:documentation>
380        This is a parameter on which two or more access controllers have to
381        agree in order to complete the stitching.  This gives the name of the
382        parameter, the key under which to store it (or it has been stored)  and
383        whether it is to be input or output.
384      </xsd:documentation>
385    </xsd:annotation>
386    <xsd:sequence>
387      <xsd:element name="name" type="xsd:string"/>
388      <xsd:element name="key" type="xsd:string"/>
389      <xsd:element name="store" type="xsd:string"/>
390      <xsd:element name="type" type="tns:connectionParameterIOType"/>
391    </xsd:sequence>
392  </xsd:complexType>
393
394
395  <xsd:complexType name="connectionInfoType">
396    <xsd:annotation>
397      <xsd:documentation>
398        The information needed to stitch together two segments.  It is both
399        exported from the nmaster and reported by the experiment controller to
400        the access controller and by the access controller into the world.
401      </xsd:documentation>
402    </xsd:annotation>
403    <xsd:sequence>
404      <xsd:element name="type" type="tns:connectionType"/>
405      <xsd:element name="portal" type="xsd:string" minOccurs="0" maxOccurs="1"/>
406      <xsd:element name="peer" type="xsd:string" minOccurs="0" maxOccurs="1"/>
407      <xsd:element name="member" type="tns:memberType" minOccurs="0"
408        maxOccurs="unbounded" />
409      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
410        maxOccurs="unbounded"/>
411      <xsd:element name="parameter" type="tns:connectionParameterType"
412        minOccurs="0" maxOccurs="unbounded"/>
413    </xsd:sequence>
414  </xsd:complexType>
415
416  <xsd:complexType name="serviceInfoType">
417    <xsd:annotation>
418      <xsd:documentation>
419        A generic service entry, basically a name and server
420      </xsd:documentation>
421    </xsd:annotation>
422    <xsd:sequence>
423      <xsd:element name="id" type="xsd:string" minOccurs="0" maxOccurs="1" />
424      <xsd:element name="name" type="xsd:string"/>
425      <xsd:element name="server" type="xsd:string" minOccurs="0" 
426        maxOccurs="1"/>
427      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
428        maxOccurs="unbounded"/>
429      <xsd:element name="visibility" type="xsd:string">
430        <xsd:restriction>
431          <xsd:enumeration value="export"/>     <!-- server -->
432          <xsd:enumeration value="import"/>     <!-- client -->
433          <xsd:enumeration value="composition"/><!-- both -->
434        </xsd:restriction>
435      </xsd:element>
436    </xsd:sequence>
437  </xsd:complexType>
438
439  <xsd:complexType name="createServiceInfoType">
440    <xsd:annotation>
441      <xsd:documentation>
442        The global descriptions of services in the creation request.  These
443        indicate which services are being provided at a testbed level.  They
444        become service info requests in segment creation.
445      </xsd:documentation>
446    </xsd:annotation>
447    <xsd:sequence>
448      <xsd:element name="id" type="xsd:string" minOccurs="0" maxOccurs="1" />
449      <xsd:element name="name" type="xsd:string"/>
450      <xsd:element name="export" type="xsd:string" 
451        minOccurs="0" maxOccurs="unbounded"/>
452      <xsd:choice>
453        <xsd:element name="import" type="xsd:string" 
454          minOccurs="0" maxOccurs="unbounded"/>
455        <xsd:element name="importall" type="xsd:boolean"/>
456      </xsd:choice>
457      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
458        maxOccurs="unbounded"/>
459    </xsd:sequence>
460  </xsd:complexType>
461
462  <xsd:complexType name="operationStatusType">
463    <xsd:annotation>
464      <xsd:documentation>
465        Result of an operation.  The target, success or failure code and
466        descriptive text
467      </xsd:documentation>
468    </xsd:annotation>
469    <xsd:sequence>
470      <xsd:element name="target" type="xsd:string"/>
471      <xsd:element name="code" type="xsd:int">
472        <xsd:restriction>
473          <xsd:enumeration value="0"/>  <!-- success -->
474          <xsd:enumeration value="1"/>  <!-- access denied -->
475          <xsd:enumeration value="2"/>  <!-- busy, retry -->
476          <xsd:enumeration value="3"/>  <!-- not supported -->
477          <xsd:enumeration value="4"/>  <!-- bad parameter -->
478          <xsd:enumeration value="5"/>  <!-- internal error -->
479          <xsd:enumeration value="6"/>  <!-- partial success -->
480          <xsd:enumeration value="7"/>  <!-- no such target -->
481          <xsd:enumeration value="8"/>  <!-- federant error -->
482        </xsd:restriction>
483      </xsd:element>
484      <xsd:element name="description" type="xsd:string" 
485        minOccurs="0" maxOccurs="1"/>
486    </xsd:sequence>
487  </xsd:complexType>
488
489
490  <xsd:complexType name="newRequestType">
491    <xsd:annotation>
492      <xsd:documentation>
493        Request for an experiment to which credentials can be delegated and
494        resources attached.  A local name may be included as a human readable
495        accessor, local to this experiment controller.  It is a suggestion and
496        may be modified.  experimentID can only be a local name.
497
498        Credentials are seed credentials to begin the proof.
499      </xsd:documentation>
500    </xsd:annotation>
501    <xsd:sequence>
502      <xsd:element name="experimentAccess" type="tns:accessType" 
503        minOccurs="0" maxOccurs="1"/>
504      <xsd:element name="experimentID" type="tns:IDType" minOccurs="0" 
505        maxOccurs="1"/>
506      <xsd:element name="credential" type="xsd:base64Binary" minOccurs="0" 
507        maxOccurs="unbounded"/>
508    </xsd:sequence>
509  </xsd:complexType>
510
511  <xsd:complexType name="newResponseType">
512    <xsd:annotation>
513      <xsd:documentation>
514        Result of a new experiment creation.  A successful sreation will have
515        an experimentState of "empty", 2 experimentIDs, one a fedid and one a
516        local name, and an experimentAccess that allows the creator to act as
517        the experiment.
518      </xsd:documentation>
519    </xsd:annotation>
520    <xsd:sequence>
521      <xsd:element name="experimentID" type="tns:IDType" minOccurs="0" 
522        maxOccurs="unbounded"/>
523      <xsd:element name="experimentStatus" type="tns:statusType"/>
524      <xsd:element name="experimentAccess" type="tns:accessType"/>
525      <xsd:element name="proof" type="tns:proofType"/>
526    </xsd:sequence>
527  </xsd:complexType>
528
529  <xsd:complexType name="accessRequestType">
530    <xsd:annotation>
531      <xsd:documentation>
532        Request for access to a testbed.  It includes the testbed from
533        which resources are being requested (a single service may
534        provide access to many), the user or project requesting access
535        (a testbed making the request will leave both empty), the
536        resources needed, and scheduling information.
537      </xsd:documentation>
538    </xsd:annotation>
539    <xsd:sequence>
540      <xsd:element name="credential" type="xsd:string" minOccurs="0"
541        maxOccurs="unbounded"/>
542      <xsd:element name="abac_credential" type="xsd:base64Binary" minOccurs="0"
543        maxOccurs="unbounded"/>
544      <xsd:element name="resources" type="tns:resourcesType" minOccurs="0" 
545        maxOccurs="1"/>
546      <xsd:element name="service" type="tns:serviceInfoType" minOccurs="0"
547        maxOccurs="unbounded" />
548      <xsd:element name="when" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
549      <xsd:element name="until" type="xsd:dateTime" minOccurs="0" 
550        maxOccurs="1"/>
551    </xsd:sequence>
552  </xsd:complexType>
553
554  <xsd:complexType name="accessResponseType">
555    <xsd:annotation>
556      <xsd:documentation>
557        Response to an access request.  Includes the allocation, the
558        information needed to access creation and experiment services
559        and scheduling information.
560      </xsd:documentation>
561    </xsd:annotation>
562    <xsd:sequence>
563      <xsd:element name="allocID" type="tns:IDType"/>
564      <xsd:element name="service" type="tns:serviceInfoType" minOccurs="0"
565        maxOccurs="unbounded" />
566      <xsd:element name="when" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
567      <xsd:element name="until" type="xsd:dateTime" minOccurs="0" 
568        maxOccurs="1"/>
569      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
570        maxOccurs="unbounded"/>
571      <xsd:element name="proof" type="tns:proofType"/>
572    </xsd:sequence>
573  </xsd:complexType>
574
575  <xsd:complexType name="releaseRequestType">
576    <xsd:annotation>
577      <xsd:documentation>
578        A request to release the access rights allocated by an earlier
579        RequestAccess call.
580      </xsd:documentation>
581    </xsd:annotation>
582    <xsd:sequence>
583      <xsd:element name="allocID" type="tns:IDType"/>
584    </xsd:sequence>
585  </xsd:complexType>
586
587  <xsd:complexType name="releaseResponseType">
588    <xsd:annotation>
589      <xsd:documentation>
590        Indication that the access has been terminated.
591      </xsd:documentation>
592    </xsd:annotation>
593    <xsd:sequence>
594      <xsd:element name="allocID" type="tns:IDType"/>
595      <xsd:element name="proof" type="tns:proofType"/>
596    </xsd:sequence>
597  </xsd:complexType>
598
599  <xsd:complexType name="createRequestType">
600    <xsd:annotation>
601      <xsd:documentation>
602        A request to embed a federated experiment across testbeds.  Non-
603        standard local names for testbeds are included in the
604        testbedmap, the user making the request, the experiment
605        description, master testbed, and a suggested experiment name are
606        included.  More than one name can be suggested, either as
607        synonyms (a fedid and a localname) or as choices (multiple
608        localnames).
609      </xsd:documentation>
610    </xsd:annotation>
611    <xsd:sequence>
612      <xsd:element name="testbedmap" type="tns:mapType" minOccurs="0"
613        maxOccurs="unbounded"/>
614      <xsd:element name="experimentdescription" 
615        type="tns:experimentDescriptionType"/>
616      <xsd:element name="service" type="tns:createServiceInfoType" minOccurs="0"
617        maxOccurs="unbounded" />
618      <xsd:element name="experimentID" type="tns:IDType"/>
619      <xsd:element name="credential" type="xsd:base64Binary" minOccurs="0" 
620        maxOccurs="unbounded"/>
621    </xsd:sequence>
622  </xsd:complexType>
623
624  <xsd:complexType name="createResponseType">
625    <xsd:annotation>
626      <xsd:documentation>
627        Returned to let the caller know that the request is underway.
628      </xsd:documentation>
629    </xsd:annotation>
630    <xsd:sequence>
631      <xsd:element name="experimentID" type="tns:IDType" minOccurs="1"
632        maxOccurs="unbounded"/>
633      <xsd:element name="experimentStatus" type="tns:statusType"/>
634      <xsd:element name="proof" type="tns:proofType" minOccurs="1" 
635        maxOccurs="unbounded"/>
636    </xsd:sequence>
637  </xsd:complexType>
638
639  <xsd:complexType name="vtopoRequestType">
640    <xsd:annotation>
641      <xsd:documentation>
642        Request for an existing experiment's virtual topology.
643        Different information may be returned based on the user's rights
644        to see the topology.
645      </xsd:documentation>
646    </xsd:annotation>
647    <xsd:sequence>
648      <xsd:element name="experiment" type="tns:IDType"/>
649    </xsd:sequence>
650  </xsd:complexType>
651
652  <xsd:complexType name="vtopoResponseType">
653    <xsd:annotation>
654      <xsd:documentation>
655        The response to a topology request.  Different information may
656        be returned based on the user's rights to see the topology.
657      </xsd:documentation>
658    </xsd:annotation>
659    <xsd:sequence>
660      <xsd:element name="experiment" type="tns:IDType"/>
661      <xsd:element name="vtopo" type="tns:vtopoType"/>
662      <xsd:element name="proof" type="tns:proofType"/>
663    </xsd:sequence>
664  </xsd:complexType>
665
666
667  <xsd:complexType name="visRequestType">
668    <xsd:annotation>
669      <xsd:documentation>
670        Request for an existing experiment's visualization.  This is
671        largely a compatibility service.  Different information may be
672        returned based on the user's rights to see the topology.
673      </xsd:documentation>
674    </xsd:annotation>
675    <xsd:sequence>
676      <xsd:element name="experiment" type="tns:IDType"/>
677    </xsd:sequence>
678  </xsd:complexType>
679
680  <xsd:complexType name="visResponseType">
681    <xsd:annotation>
682      <xsd:documentation>
683        An existing experiment's visualization.  This is largely a
684        compatibility service.  Different information may be returned
685        based on the user's rights to see the topology.
686      </xsd:documentation>
687    </xsd:annotation>
688    <xsd:sequence>
689      <xsd:element name="experiment" type="tns:IDType"/>
690      <xsd:element name="vis" type="tns:visType"/>
691      <xsd:element name="proof" type="tns:proofType"/>
692    </xsd:sequence>
693  </xsd:complexType>
694
695  <xsd:complexType name="infoRequestType">
696    <xsd:annotation>
697      <xsd:documentation>
698        A combined topology, visualalization, and federant request.
699        Different information may be returned based on the user's rights
700        to see the topology.
701      </xsd:documentation>
702    </xsd:annotation>
703    <xsd:sequence>
704      <xsd:element name="experiment" type="tns:IDType"/>
705      <xsd:element name="legacy" type="xsd:boolean" 
706        minOccurs="0" maxOccurs="1"/>
707      <xsd:element name="fresh" type="xsd:boolean" 
708        minOccurs="0" maxOccurs="1"/>
709    </xsd:sequence>
710  </xsd:complexType>
711
712  <xsd:complexType name="infoResponseType">
713    <xsd:annotation>
714      <xsd:documentation>
715        Information on an instantiated experiment.  Different information may
716        be returned based on the user's rights to see the topology.  Includes
717        the information about federants hosting sub-experiments for service
718        access as well as virtual topology and visualization information.  All
719        that information is relative to the requester.  ExperimentAccess
720        includes credentials with which one can access the experiment.  These
721        may include a public key necessary to prove possession of the
722        credential and should be treated with care.
723      </xsd:documentation>
724    </xsd:annotation>
725    <xsd:sequence>
726      <xsd:element name="vtopo" type="tns:vtopoType" minOccurs="0"
727        maxOccurs="1"/>
728      <xsd:element name="vis" type="tns:visType" minOccurs="0"
729        maxOccurs="1"/>
730      <xsd:element name="experimentID" type="tns:IDType" minOccurs="1"
731        maxOccurs="unbounded"/>
732      <xsd:element name="allocationLog" type="xsd:string" minOccurs="0" 
733        maxOccurs="1"/>
734      <xsd:element name="experimentStatus" type="tns:statusType"/>
735      <xsd:element name="experimentAccess" type="tns:accessType" minOccurs="0"
736        maxOccurs="1"/>
737      <xsd:element name="experimentdescription" 
738        type="tns:experimentDescriptionType" minOccurs="0" maxOccurs="1"/>
739      <xsd:element name="proof" type="tns:proofType"/>
740    </xsd:sequence>
741  </xsd:complexType>
742
743
744  <xsd:complexType name="multiInfoRequestType">
745    <xsd:annotation>
746      <xsd:documentation>
747        Gets all information that this user can access on this fedd.
748      </xsd:documentation>
749    </xsd:annotation>
750    <xsd:sequence>
751    </xsd:sequence>
752  </xsd:complexType>
753
754  <xsd:complexType name="multiInfoResponseType">
755    <xsd:annotation>
756      <xsd:documentation>
757        Multi info response.  A list of infoResponses
758      </xsd:documentation>
759    </xsd:annotation>
760    <xsd:sequence>
761      <xsd:element name="info" type="tns:infoResponseType" minOccurs="0"
762        maxOccurs="unbounded"/>
763      <xsd:element name="proof" type="tns:proofType" minOccurs="0" 
764        maxOccurs="unbounded"/>
765    </xsd:sequence>
766  </xsd:complexType>
767
768  <xsd:complexType name="operationRequestType">
769    <xsd:annotation>
770      <xsd:documentation>
771        A request to operate on one or more elements of this experiment
772      </xsd:documentation>
773    </xsd:annotation>
774    <xsd:sequence>
775      <xsd:element name="experiment" type="tns:IDType"/>
776      <xsd:element name="operation" type="xsd:string"/>
777      <xsd:element name="target" type="xsd:string"
778        minOccurs="1" maxOccurs="unbounded"/>
779      <xsd:element name="parameter" type="tns:fedAttrType"
780        minOccurs="0" maxOccurs="unbounded"/>
781    </xsd:sequence>
782  </xsd:complexType>
783
784  <xsd:complexType name="operationResponseType">
785    <xsd:annotation>
786      <xsd:documentation>
787        A status of requested operations.
788      </xsd:documentation>
789    </xsd:annotation>
790    <xsd:sequence>
791      <xsd:element name="experiment" type="tns:IDType"/>
792      <xsd:element name="status" type="tns:operationStatusType"
793        minOccurs="1" maxOccurs="unbounded"/>
794      <xsd:element name="proof" type="tns:proofType" />
795    </xsd:sequence>
796  </xsd:complexType>
797
798  <xsd:complexType name="terminateRequestType">
799    <xsd:annotation>
800      <xsd:documentation>
801        Request to terminate an experiment.
802      </xsd:documentation>
803    </xsd:annotation>
804    <xsd:sequence>
805      <xsd:element name="experiment" type="tns:IDType"/>
806      <xsd:element name="force" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
807    </xsd:sequence>
808  </xsd:complexType>
809
810  <xsd:complexType name="terminateResponseType">
811    <xsd:annotation>
812      <xsd:documentation>
813        Indication that the experiment has been terminated.
814      </xsd:documentation>
815    </xsd:annotation>
816    <xsd:sequence>
817      <xsd:element name="experiment" type="tns:IDType"/>
818      <xsd:element name="deallocationLog" type="xsd:string" minOccurs="0"
819        maxOccurs="1"/>
820      <xsd:element name="proof" type="tns:proofType" minOccurs="1" maxOccurs="unbounded"/>
821    </xsd:sequence>
822  </xsd:complexType>
823
824  <xsd:complexType name="startSegmentRequestType">
825    <xsd:annotation>
826      <xsd:documentation>
827        Request a testbed to create a segment in the given allocation
828      </xsd:documentation>
829    </xsd:annotation>
830    <xsd:sequence>
831      <xsd:element name="allocID" type="tns:IDType"/>
832      <xsd:element name="segmentdescription" 
833        type="tns:experimentDescriptionType"/>
834      <xsd:element name="service" type="tns:serviceInfoType" minOccurs="0"
835        maxOccurs="unbounded" />
836      <xsd:element name="connection" type="tns:connectionInfoType" 
837        minOccurs="0" maxOccurs="unbounded"/>
838      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
839        maxOccurs="unbounded"/>
840    </xsd:sequence>
841  </xsd:complexType>
842
843  <xsd:complexType name="startSegmentResponseType">
844    <xsd:annotation>
845      <xsd:documentation>
846        Indication that the segment started successfully
847      </xsd:documentation>
848    </xsd:annotation>
849    <xsd:sequence>
850      <xsd:element name="allocID" type="tns:IDType"/>
851      <xsd:element name="allocationLog" type="xsd:string" minOccurs="0"
852        maxOccurs="1"/>
853      <xsd:element name="segmentdescription" 
854        type="tns:experimentDescriptionType"/>
855      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
856        maxOccurs="unbounded"/>
857      <xsd:element name="proof" type="tns:proofType" />
858    </xsd:sequence>
859  </xsd:complexType>
860
861  <xsd:complexType name="terminateSegmentRequestType">
862    <xsd:annotation>
863      <xsd:documentation>
864        Request to terminate an experiment.
865      </xsd:documentation>
866    </xsd:annotation>
867    <xsd:sequence>
868      <xsd:element name="allocID" type="tns:IDType"/>
869      <xsd:element name="force" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
870    </xsd:sequence>
871  </xsd:complexType>
872
873  <xsd:complexType name="terminateSegmentResponseType">
874    <xsd:annotation>
875      <xsd:documentation>
876        Indication that the experiment has been terminated.
877      </xsd:documentation>
878    </xsd:annotation>
879    <xsd:sequence>
880      <xsd:element name="allocID" type="tns:IDType"/>
881      <xsd:element name="deallocationLog" type="xsd:string" minOccurs="0"
882        maxOccurs="1"/>
883      <xsd:element name="proof" type="tns:proofType" />
884    </xsd:sequence>
885  </xsd:complexType>
886
887  <xsd:complexType name="infoSegmentRequestType">
888    <xsd:annotation>
889      <xsd:documentation>
890        Request current status of the segment
891      </xsd:documentation>
892    </xsd:annotation>
893    <xsd:sequence>
894      <xsd:element name="allocID" type="tns:IDType"/>
895    </xsd:sequence>
896  </xsd:complexType>
897
898
899  <xsd:complexType name="infoSegmentResponseType">
900    <xsd:annotation>
901      <xsd:documentation>
902        Current status of the allocation
903      </xsd:documentation>
904    </xsd:annotation>
905    <xsd:sequence>
906      <xsd:element name="allocID" type="tns:IDType"/>
907      <xsd:element name="segmentdescription" 
908        type="tns:experimentDescriptionType" minOccurs="0" maxOccurs="1"/>
909      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
910        maxOccurs="unbounded"/>
911      <xsd:element name="proof" type="tns:proofType" />
912    </xsd:sequence>
913  </xsd:complexType>
914
915  <xsd:complexType name="operationSegmentRequestType">
916    <xsd:annotation>
917      <xsd:documentation>
918        A request to operate on one or more elements of this segment (or the
919        whole segment)
920      </xsd:documentation>
921    </xsd:annotation>
922    <xsd:sequence>
923      <xsd:element name="allocID" type="tns:IDType"/>
924      <xsd:element name="operation" type="xsd:string"/>
925      <xsd:element name="target" type="xsd:string"
926        minOccurs="1" maxOccurs="unbounded"/>
927      <xsd:element name="parameter" type="tns:fedAttrType"
928        minOccurs="0" maxOccurs="unbounded"/>
929    </xsd:sequence>
930  </xsd:complexType>
931
932  <xsd:complexType name="operationSegmentResponseType">
933    <xsd:annotation>
934      <xsd:documentation>
935        A status of requested operations.
936      </xsd:documentation>
937    </xsd:annotation>
938    <xsd:sequence>
939      <xsd:element name="allocID" type="tns:IDType"/>
940      <xsd:element name="status" type="tns:operationStatusType"
941        minOccurs="1" maxOccurs="unbounded"/>
942      <xsd:element name="proof" type="tns:proofType" />
943    </xsd:sequence>
944  </xsd:complexType>
945
946  <xsd:complexType name="ns2TopdlRequestType">
947    <xsd:annotation>
948      <xsd:documentation>
949        Request to run the CEDL to topdl translator remotely.  This is
950        primarily an internal interface.
951      </xsd:documentation>
952    </xsd:annotation>
953    <xsd:sequence>
954      <xsd:element name="description" type="tns:experimentDescriptionType"/>
955    </xsd:sequence>
956  </xsd:complexType>
957
958  <xsd:complexType name="ns2TopdlResponseType">
959    <xsd:annotation>
960      <xsd:documentation>
961        Translator splitter output.  Also an internal interface
962      </xsd:documentation>
963    </xsd:annotation>
964    <xsd:sequence>
965      <xsd:element name="experimentdescription" 
966        type="tns:experimentDescriptionType"/>
967      <xsd:element name="proof" type="tns:proofType"/>
968    </xsd:sequence>
969  </xsd:complexType>
970
971  <xsd:complexType name="setValueRequestType">
972    <xsd:annotation>
973      <xsd:documentation>
974        Request to set a shared value.
975      </xsd:documentation>
976    </xsd:annotation>
977    <xsd:sequence>
978      <xsd:element name="name" type="xsd:string"/> 
979      <xsd:element name="value" type="xsd:string"/> 
980    </xsd:sequence>
981  </xsd:complexType>
982
983  <xsd:complexType name="setValueResponseType">
984    <xsd:annotation>
985      <xsd:documentation>
986        Request to set a shared value.
987      </xsd:documentation>
988    </xsd:annotation>
989    <xsd:sequence>
990      <xsd:element name="name" type="xsd:string"/> 
991      <xsd:element name="value" type="xsd:string"/> 
992      <xsd:element name="proof" type="tns:proofType"/>
993    </xsd:sequence>
994  </xsd:complexType>
995
996  <xsd:complexType name="getValueRequestType">
997    <xsd:annotation>
998      <xsd:documentation>
999        Request to set a shared value.
1000      </xsd:documentation>
1001    </xsd:annotation>
1002    <xsd:sequence>
1003      <xsd:element name="name" type="xsd:string"/> 
1004      <xsd:element name="wait" type="xsd:boolean"/> 
1005    </xsd:sequence>
1006  </xsd:complexType>
1007
1008  <xsd:complexType name="getValueResponseType">
1009    <xsd:annotation>
1010      <xsd:documentation>
1011        Request to set a shared value.
1012      </xsd:documentation>
1013    </xsd:annotation>
1014    <xsd:sequence>
1015      <xsd:element name="name" type="xsd:string"/> 
1016      <xsd:element name="value" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
1017      <xsd:element name="proof" type="tns:proofType"/>
1018    </xsd:sequence>
1019  </xsd:complexType>
1020
1021  <xsd:complexType name="faultType">
1022    <xsd:annotation>
1023      <xsd:documentation>
1024        Indication that a service has failed.  The code values are
1025
1026          1 access denied
1027          2 proxy error
1028          3 badly formed request
1029          4 server configuration error
1030          5 internal error
1031          6 partial instantiation
1032          7 federant error
1033
1034        Errstr contains the text above corresponding to the code.  Code
1035        is always present.  Desc provides additional human-readable data
1036        about the error.
1037      </xsd:documentation>
1038    </xsd:annotation>
1039    <xsd:sequence>
1040      <xsd:element name="code" type="xsd:int">
1041        <xsd:restriction>
1042          <xsd:enumeration value="1"/>  <!-- access denied -->
1043          <xsd:enumeration value="2"/>  <!-- protocol error -->
1044          <xsd:enumeration value="3"/>  <!-- badly formed request -->
1045          <xsd:enumeration value="4"/>  <!-- server configuration error -->
1046          <xsd:enumeration value="5"/>  <!-- internal error -->
1047          <xsd:enumeration value="6"/>  <!-- partial instantiation -->
1048          <xsd:enumeration value="7"/>  <!-- federant error -->
1049          <xsd:enumeration value="8"/>  <!-- connect error -->
1050        </xsd:restriction>
1051      </xsd:element>
1052      <xsd:element name="errstr" minOccurs="0" maxOccurs="1" type="xsd:string">
1053      </xsd:element>
1054      <xsd:element name="desc" type="xsd:string"/>
1055      <xsd:element name="proof" type="tns:proofType" 
1056        minOccurs="0" maxOccurs="unbounded"/>
1057    </xsd:sequence>
1058  </xsd:complexType>
1059</xsd:schema>
Note: See TracBrowser for help on using the repository browser.