source: wsdl/abac_types.xsd @ 3fee903

axis_examplecompt_changesinfo-opsversion-3.01version-3.02
Last change on this file since 3fee903 was 3fee903, checked in by Jay Jacobs <Jay.Jacobs@…>, 14 years ago

Added certificate operations.

  • Property mode set to 100644
File size: 11.9 KB
Line 
1<?xml version="1.0"?>
2<xsd:schema targetNamespace="http://www.isi.edu/faber/abac_types"
3  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4  xmlns:tns="http://www.isi.edu/faber/abac_types"
5  xmlns:xsd1="http://www.isi.edu/faber/fedd_types"
6  xmlns="http://www.w3.org/2000/10/XMLSchema">
7
8  <xsd:annotation>
9    <xsd:documentation xml:lang="en">
10      Trust negotiation schema for the ABAC Project.
11    </xsd:documentation>
12  </xsd:annotation> 
13   
14  <xsd:complexType name="negotiationType">
15    <xsd:sequence>
16      <!-- the ABAC Message converted into WSDL types -->
17      <xsd:element name="message" type="tns:messageType"
18        minOccurs="1" maxOccurs="1"/>
19      <!-- the context id and the two negotiator urls if known-->
20      <xsd:element name="contextSource" type="tns:contextInfo"/>
21      <xsd:element name="contextDest" type="tns:contextInfo"/>
22      <xsd:element name="selfURL" type="xsd:string"/>
23      <xsd:element name="oppoURL" type="xsd:string"/>
24    </xsd:sequence>
25  </xsd:complexType>
26
27  <xsd:complexType name="observationType">
28    <xsd:choice>
29      <xsd:element name="NodeOp" type="tns:nodeOpType"/>
30      <xsd:element name="EdgeOp" type="tns:edgeOpType"/>
31      <xsd:element name="Message" type="tns:messageType"/>
32      <xsd:element name="Update" type="tns:updateType"/>
33    </xsd:choice>
34    <xsd:attribute name="count" type="xsd:decimal"/>
35  </xsd:complexType>
36 
37  <xsd:complexType name="negotiationRequest">
38    <xsd:sequence>
39      <xsd:element name="context" type="tns:contextInfo"/>
40      <xsd:element name="peerURL" type="xsd:string"/>
41      <xsd:element name="peerContext" type="tns:contextInfo"/>
42      <xsd:element name="selfURL" type="xsd:string"/>
43      <xsd:element name="goal" type="xsd:string"/>
44    </xsd:sequence>
45  </xsd:complexType>
46
47  <xsd:complexType name="negotiationResult">
48    <xsd:sequence>
49      <xsd:element name="goal" type="xsd:string"/>
50      <xsd:element name="result" type="xsd:string"/>
51      <xsd:element name="provenance" type="xsd:string"
52        minOccurs="0" maxOccurs="1"/>
53    </xsd:sequence>
54  </xsd:complexType>
55
56  <xsd:complexType name="addCertificateRequest">
57    <xsd:sequence>
58      <xsd:element name="cert" type="xsd:string"/>
59    </xsd:sequence>
60  </xsd:complexType>
61
62  <xsd:complexType name="certificateAlias">
63    <xsd:sequence>
64      <xsd:element name="alias" type="xsd:string"/>
65    </xsd:sequence>
66  </xsd:complexType>
67
68  <xsd:complexType name="removeCertificateResponse">
69    <xsd:sequence>
70      <xsd:element name="result" type="xsd:string"/>
71    </xsd:sequence>
72  </xsd:complexType>
73
74
75  <xsd:complexType name="discoveryType">
76    <xsd:sequence>
77      <!-- issuedBy, byRole (defining role), bySubject -->
78      <xsd:element name="op" type="xsd:string"/>
79      <xsd:choice>
80        <xsd:element name="role" type="tns:entityType"/>
81        <xsd:element name="subject" type="tns:simpleRoleType"/>
82        <xsd:element name="issuer" type="tns:principalType"/>
83      </xsd:choice>
84      <xsd:element name="result" type="tns:credentialType" 
85              minOccurs="0" maxOccurs="unbounded"/>
86    </xsd:sequence>
87  </xsd:complexType>
88
89  <!--Context info can be: the context data, a file pointing to the data, or
90        a uid handle to the data-->
91  <xsd:complexType name="contextInfo">
92    <xsd:choice>
93      <xsd:element name="context" type="tns:negotiationContextType"/>
94      <xsd:element name="contextFile" type="xsd:string"/>
95      <xsd:element name="contextID" type="xsd:string"/>
96    </xsd:choice>
97    <xsd:element name="peerUrl" type="xsd:string"/>
98  </xsd:complexType>
99
100  <xsd:complexType name="negotiationContextType">
101    <xsd:sequence>
102      <!-- Who am I -->
103      <xsd:element name="self" type="xsd:string"
104        minOccurs="1" maxOccurs="1"/>
105      <!-- Who is my opponent -->
106      <xsd:element name="peer" type="xsd:string"
107        minOccurs="0" maxOccurs="1"/>
108      <!-- What strategy for graph satisfaction do I use -->
109      <!-- If this is omitted then the factory uses the default -->
110      <xsd:element name="strategy" type="xsd:string"
111        minOccurs="0" maxOccurs="1"/>
112      <!-- My credential frontiers (if omitted they need to be added) -->
113      <xsd:element name="frontier" type="tns:frontier"
114        minOccurs="0" maxOccurs="1"/>
115      <!-- My opponents/discovered credential evidence (optional) -->
116      <xsd:element name="oppoCache" type="tns:credentialSet"
117        minOccurs="0" maxOccurs="1"/>
118    </xsd:sequence>
119  </xsd:complexType>
120
121  <xsd:complexType name="frontier">
122    <xsd:sequence>
123      <xsd:element name="oppoCache" type="tns:credentialSet"
124        minOccurs="0" maxOccurs="unbounded"/>
125      <xsd:element name="issuerTracesAll" type="tns:roleSet"
126        minOccurs="0" maxOccurs="unbounded"/>
127      <xsd:element name="issuerTracesDef" type="tns:roleSet"
128        minOccurs="0" maxOccurs="unbounded"/>
129      <xsd:element name="subjectTraceable" type="tns:roleSet"
130        minOccurs="0" maxOccurs="unbounded"/>
131    </xsd:sequence>
132  </xsd:complexType>
133
134  <xsd:complexType name="weightTable">
135    <xsd:sequence>
136      <xsd:element name="entry" type="tns:weightEntry"
137        minOccurs="0" maxOccurs="unbounded"/>
138    </xsd:sequence>
139  </xsd:complexType>
140
141  <xsd:complexType name="weightEntry">
142    <xsd:sequence>
143      <xsd:element name="key" type="tns:entityType"/>
144      <xsd:element name="value" type="xsd:float"
145        minOccurs="0" maxOccurs="1"/>
146    </xsd:sequence>
147  </xsd:complexType>
148
149  <xsd:complexType name="accessControlPolicy">
150    <xsd:sequence>
151      <xsd:element name="acFact" type="tns:accessControlFact"
152        minOccurs="0" maxOccurs="unbounded"/>
153    </xsd:sequence>
154  </xsd:complexType>
155
156  <xsd:complexType name="accessControlFact">
157    <xsd:sequence>
158      <xsd:element name="credential" type="xsd:string"/>
159      <xsd:element name="requirement" type="tns:entityType"/>
160    </xsd:sequence>
161  </xsd:complexType>
162
163  <xsd:complexType name="acknowledgementPolicy">
164    <xsd:sequence>
165      <xsd:element name="ackFact" type="tns:accessControlFact"
166        minOccurs="0" maxOccurs="unbounded"/>
167    </xsd:sequence>
168  </xsd:complexType>
169
170  <xsd:complexType name="acknowledgementPolicyFact">
171    <xsd:sequence>
172      <xsd:element name="credential" type="xsd:string"/>
173      <xsd:element name="field" type="xsd:string"/>
174      <xsd:element name="value" type="xsd:string"
175        minOccurs="0" maxOccurs="1"/>
176      <xsd:element name="requirement" type="tns:entityType"/>
177    </xsd:sequence>
178  </xsd:complexType>
179
180  <xsd:complexType name="roleSet">
181    <xsd:sequence>
182      <xsd:element name="credential" type="tns:simpleRoleType"
183        minOccurs="0" maxOccurs="unbounded"/>
184    </xsd:sequence>
185  </xsd:complexType>
186
187  <xsd:complexType name="roleTraceability">
188    <xsd:sequence>
189      <xsd:element name="role" type="tns:simpleRoleType"
190        minOccurs="1" maxOccurs="1"/>
191      <xsd:element name="traceability" type="xsd:string"
192        minOccurs="1" maxOccurs="1"/>
193    </xsd:sequence>
194  </xsd:complexType>
195
196  <xsd:complexType name="credentialSet">
197    <xsd:sequence>
198      <xsd:element name="credential" type="xsd:string"
199        minOccurs="0" maxOccurs="unbounded"/>
200    </xsd:sequence>
201  </xsd:complexType>
202
203  <xsd:complexType name="updateRequest">
204    <xsd:sequence>
205      <xsd:element name="issuerCredentials" type="tns:credentialType"
206        minOccurs="0" maxOccurs="unbounded"/>
207      <xsd:element name="subjectCredentials" type="tns:credentialType"
208        minOccurs="0" maxOccurs="unbounded"/>
209      <xsd:element name="traces" type="tns:roleTraceability"
210        minOccurs="0" maxOccurs="unbounded"/>
211      <xsd:element name="context" type="tns:contextInfo"
212        minOccurs="1" maxOccurs="1"/>
213    </xsd:sequence>
214  </xsd:complexType>
215
216  <xsd:complexType name="updateResults">
217    <xsd:sequence>
218      <xsd:element name="response" type="xsd:string"
219        minOccurs="0" maxOccurs="unbounded"/>
220    </xsd:sequence>
221  </xsd:complexType>
222
223  <xsd:complexType name="updateType">
224    <xsd:attribute name="value" type="xsd:string"/>
225  </xsd:complexType>
226
227  <xsd:complexType name="messageType">
228    <xsd:sequence>
229      <xsd:element name="EdgeOp" type="tns:edgeOpType" minOccurs="0" 
230        maxOccurs="unbounded"/>
231      <xsd:element name="NodeOp" type="tns:nodeOpType" minOccurs="0" 
232        maxOccurs="unbounded"/>
233      <xsd:element name="OpCount" type="xsd:integer"/>
234      <xsd:element name="Evidence" type="tns:evidenceType"/>
235    </xsd:sequence>
236  </xsd:complexType> 
237
238  <xsd:complexType name="nodeOpType">
239    <xsd:sequence>
240      <xsd:element name="TrustTarget"      type="tns:goalType"/>
241      <!--xsd:element name="SatisfactionState" type="xsd:string"/-->
242      <xsd:element name="ProcessingState"  type="xsd:string"/>
243      <xsd:element name="Order"            type="xsd:integer"/>
244    </xsd:sequence>
245    <xsd:attribute name="type" type="xsd:string" use="optional"/>
246  </xsd:complexType>
247
248  <xsd:complexType name="edgeOpType">
249    <xsd:sequence>
250      <xsd:element name="Parent"           type="tns:goalType"/>
251      <xsd:element name="Child"            type="tns:goalType"/>
252      <xsd:element name="ProcessingState"  type="xsd:string"/>
253      <!--xsd:element name="SatisfactionState" type="xsd:string"/-->
254      <xsd:element name="Order"            type="xsd:integer"/>
255    </xsd:sequence>
256    <xsd:attribute name="type" type="xsd:string"/>
257    <xsd:attribute name="newChild" type="xsd:date"/>
258  </xsd:complexType>
259
260  <xsd:complexType name="goalType">
261    <xsd:sequence>
262      <xsd:element name="Verifier"   type="tns:principalType"/>
263      <xsd:choice>
264        <xsd:element name="TrustTarget" type="tns:entityType"/>
265        <xsd:element name="LinkingTarget" type="xsd:string"/>
266      </xsd:choice>
267      <xsd:element name="Subject"   type="tns:entityType"/>
268      <!-- The type string confirms whether this is a LinkingGoal or TT -->
269      <xsd:element name="Type"     type="xsd:string"/>
270    </xsd:sequence>
271  </xsd:complexType>
272
273  <!-- Here are the new credential descriptions -->
274
275  <xsd:complexType name="entityType">
276    <xsd:choice>
277      <xsd:element name="principal" type="tns:principalType"/>
278      <xsd:element name="role" type="tns:simpleRoleType"/>
279      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
280      <xsd:element name="intersection" type="tns:intersectionType"/>
281    </xsd:choice>
282  </xsd:complexType>
283
284  <xsd:complexType name="roleType">
285    <xsd:choice>
286      <xsd:element name="role" type="tns:simpleRoleType"/>
287      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
288    </xsd:choice>
289  </xsd:complexType>
290
291  <!-- This is a copy of fedd's IDType, included in case we have to expand or
292       restrict it. XSD isn't wonderful at expressing these kinds of synonyms
293       between complex types. -->
294  <xsd:complexType name="principalType">
295    <xsd:choice>
296      <xsd:element name="uuid" type="xsd:base64Binary"/>
297      <xsd:element name="fedid" type="xsd:base64Binary"/>
298      <xsd:element name="uri" type="xsd:string"/>
299      <xsd:element name="localname" type="xsd:string"/>
300      <xsd:element name="kerberosUsername" type="xsd:string"/>
301    </xsd:choice>
302  </xsd:complexType>
303
304  <xsd:complexType name="simpleRoleType">
305    <xsd:sequence>
306      <xsd:element name="principal" type="tns:principalType"/>
307      <xsd:element name="rolename" type="xsd:string"/>
308    </xsd:sequence>
309  </xsd:complexType>
310
311  <xsd:complexType name="linkedRoleType">
312    <xsd:sequence>
313      <xsd:element name="linkingrole" type="tns:simpleRoleType"/>
314      <xsd:element name="rolename" type="xsd:string"/>
315    </xsd:sequence>
316  </xsd:complexType>
317
318  <xsd:complexType name="intersectionType">
319    <xsd:sequence>
320      <xsd:element name="role" type="tns:roleType" minOccurs="2" 
321        maxOccurs="unbounded"/>
322    </xsd:sequence>
323  </xsd:complexType>
324
325  <xsd:complexType name="credentialType">
326    <xsd:sequence>
327      <xsd:element name="role" type="tns:roleType"/>
328      <xsd:element name="requirement" type="tns:entityType"/>
329      <xsd:choice>
330        <!-- test should not be used in production -->
331        <xsd:element name="test" type="xsd:string"/>
332        <xsd:element name="x509" type="xsd:string"/>
333      </xsd:choice>
334    </xsd:sequence>
335  </xsd:complexType>
336
337  <xsd:complexType name="evidenceType">
338    <xsd:sequence>
339      <xsd:element name="credential" type="tns:credentialType" minOccurs="1"
340        maxOccurs="unbounded"/>
341    </xsd:sequence>
342  </xsd:complexType>
343
344</xsd:schema>
Note: See TracBrowser for help on using the repository browser.