blob: 59d4331b222311269fc2d404549075f5d5050937 [file] [log] [blame]
Instrumental12f7f462018-04-23 15:43:47 -05001<!-- Used by AAF (ATT inc 2013) -->
2<xs:schema
3 xmlns:xs="http://www.w3.org/2001/XMLSchema"
4 xmlns:aaf="urn:aaf:v2_0"
5 targetNamespace="urn:aaf:v2_0"
6 elementFormDefault="qualified">
7
8<!--
9 June 2, 2017, adding Roles, Perms, etc to NSRequest for Onboarding purposes.
10
11 Note: jan 22, 2015. Deprecating the "force" element in the "Request" Structure. Do that
12 with Query Params.
13
14 Eliminate in 3.0
15 -->
16<!--
17 Errors
18 Note: This Error Structure has been made to conform to the AT&T TSS Policies
19 -->
20 <xs:element name="error">
21 <xs:complexType>
22 <xs:sequence>
23 <!--
24 Unique message identifier of the format ‘ABCnnnn’ where ‘ABC’ is
25 either ‘SVC’ for Service Exceptions or ‘POL’ for Policy Exception.
26 Exception numbers may be in the range of 0001 to 9999 where :
27 * 0001 to 0199 are reserved for common exception messages
28 * 0200 to 0999 are reserved for Parlay Web Services specification use
29 * 1000-9999 are available for exceptions
30 -->
31 <xs:element name="messageId" type="xs:string" minOccurs="1" maxOccurs="1"/>
32
33 <!--
34 Message text, with replacement
35 variables marked with %n, where n is
36 an index into the list of <variables>
37 elements, starting at 1
38 -->
39 <xs:element name="text" type="xs:string" minOccurs="1" maxOccurs="1"/>
40
41 <!--
42 List of zero or more strings that
43 represent the contents of the variables
44 used by the message text. -->
45 <xs:element name="variables" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
46 </xs:sequence>
47 </xs:complexType>
48 </xs:element>
49
50<!--
51 Requests
52 -->
53 <xs:complexType name="Request">
54 <xs:sequence>
55 <xs:element name="start" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
56 <xs:element name="end" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
57 <!-- Deprecated. Use Query Command
58 <xs:element name="force" type="xs:string" minOccurs="1" maxOccurs="1" default="false"/>
59 -->
60 </xs:sequence>
61 </xs:complexType>
62
63<!--
64 Keys
65 -->
66 <xs:element name="keys">
67 <xs:complexType>
68 <xs:sequence>
69 <xs:element name="key" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
70 </xs:sequence>
71 </xs:complexType>
72 </xs:element>
73
74
75<!--
76 Permissions
77-->
78 <xs:complexType name = "pkey">
79 <xs:sequence>
80 <xs:element name="type" type="xs:string"/>
81 <xs:element name="instance" type="xs:string"/>
82 <xs:element name="action" type="xs:string"/>
83 </xs:sequence>
84 </xs:complexType>
85
86 <xs:element name="permKey">
87 <xs:complexType >
88 <xs:complexContent>
89 <xs:extension base="aaf:pkey" />
90 </xs:complexContent>
91 </xs:complexType>
92 </xs:element>
93
94 <xs:element name="perm">
95 <xs:complexType >
96 <xs:complexContent>
97 <xs:extension base="aaf:pkey">
98 <xs:sequence>
99 <xs:element name="roles" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
100 <!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
101 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
102 <!-- This data not filled in unless Requested -->
103 <xs:element name="ns" type="xs:string" minOccurs="0" maxOccurs="1"/>
104 </xs:sequence>
105 </xs:extension>
106 </xs:complexContent>
107 </xs:complexType>
108 </xs:element>
109
110 <xs:element name="perms">
111 <xs:complexType>
112 <xs:sequence>
113 <xs:element ref="aaf:perm" minOccurs="0" maxOccurs="unbounded"/>
114 </xs:sequence>
115 </xs:complexType>
116 </xs:element>
117
118 <xs:element name="permRequest">
119 <xs:complexType>
120 <xs:complexContent>
121 <xs:extension base="aaf:Request">
122 <xs:sequence>
123 <xs:element name="type" type="xs:string"/>
124 <xs:element name="instance" type="xs:string"/>
125 <xs:element name="action" type="xs:string"/>
126 <!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
127 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
128 </xs:sequence>
129 </xs:extension>
130 </xs:complexContent>
131 </xs:complexType>
132 </xs:element>
133
134
135<!--
136 Roles
137-->
138 <xs:complexType name="rkey">
139 <xs:sequence>
140 <xs:element name="name" type="xs:string"/>
141 </xs:sequence>
142 </xs:complexType>
143
144 <xs:element name="roleKey">
145 <xs:complexType >
146 <xs:complexContent>
147 <xs:extension base="aaf:rkey" />
148 </xs:complexContent>
149 </xs:complexType>
150 </xs:element>
151
152 <xs:element name="role">
153 <xs:complexType>
154 <xs:complexContent>
155 <xs:extension base="aaf:rkey">
156 <xs:sequence>
157 <xs:element name="perms" type="aaf:pkey" minOccurs="0" maxOccurs="unbounded"/>
158 <!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
159 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
160 <!-- This data not filled in unless Requested -->
161 <xs:element name="ns" type="xs:string" minOccurs="0" maxOccurs="1"/>
162 </xs:sequence>
163 </xs:extension>
164 </xs:complexContent>
165 </xs:complexType>
166 </xs:element>
167
168 <xs:element name="roles">
169 <xs:complexType>
170 <xs:sequence>
171 <xs:element ref="aaf:role" minOccurs="0" maxOccurs="unbounded"/>
172 </xs:sequence>
173 </xs:complexType>
174 </xs:element>
175
176 <xs:element name="roleRequest">
177 <xs:complexType>
178 <xs:complexContent>
179 <xs:extension base="aaf:Request">
180 <xs:sequence>
181 <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
182 <!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
183 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
184 </xs:sequence>
185 </xs:extension>
186 </xs:complexContent>
187 </xs:complexType>
188 </xs:element>
189
190 <!-- Added userRole return types jg1555 9/16/2015 -->
191 <xs:element name="userRole">
192 <xs:complexType>
193 <xs:sequence>
194 <xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
195 <xs:element name="role" type="xs:string" minOccurs="1" maxOccurs="1"/>
196 <xs:element name="expires" type="xs:date" minOccurs="1" maxOccurs="1" />
197 </xs:sequence>
198 </xs:complexType>
199 </xs:element>
200
201 <!-- Added userRoles return types jg1555 9/16/2015 -->
202 <xs:element name="userRoles">
203 <xs:complexType>
204 <xs:sequence>
205 <xs:element ref="aaf:userRole" minOccurs="0" maxOccurs="unbounded"/>
206 </xs:sequence>
207 </xs:complexType>
208 </xs:element>
209
210 <xs:element name="userRoleRequest">
211 <xs:complexType>
212 <xs:complexContent>
213 <xs:extension base="aaf:Request">
214 <xs:sequence>
215 <xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
216 <xs:element name="role" type="xs:string" minOccurs="1" maxOccurs="1"/>
217 </xs:sequence>
218 </xs:extension>
219 </xs:complexContent>
220 </xs:complexType>
221 </xs:element>
222
223 <xs:element name="rolePermRequest">
224 <xs:complexType>
225 <xs:complexContent>
226 <xs:extension base="aaf:Request">
227 <xs:sequence>
228 <xs:element name="perm" type="aaf:pkey" minOccurs="1" maxOccurs="1"/>
229 <xs:element name="role" type="xs:string" minOccurs="1" maxOccurs="1"/>
230 </xs:sequence>
231 </xs:extension>
232 </xs:complexContent>
233 </xs:complexType>
234 </xs:element>
235
236 <xs:element name="nsRequest">
237 <xs:complexType>
238 <xs:complexContent>
239 <xs:extension base="aaf:Request">
240 <xs:sequence>
241 <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
242 <xs:element name="admin" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
243 <xs:element name="responsible" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
244 <!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
245 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
246 <!-- Note: dec 11, 2015. Request-able NS Type JG -->
247 <xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="1"/>
248
249 <!-- "scope" is deprecated and unused as of AAF 2.0.11. It will be removed in future versions
250 <xs:element name="scope" type="xs:int" minOccurs="0" maxOccurs="1"/>
251
252
253 <xs:element ref="aaf:roleRequest" minOccurs="0" maxOccurs="unbounded"/>
254 <xs:element ref="aaf:permRequest" minOccurs="0" maxOccurs="unbounded"/>
255 <xs:element name="aaf_id" type="xs:string" minOccurs="0" maxOccurs="1"/>
256 <xs:element ref="aaf:userRoleRequest" minOccurs="0" maxOccurs="unbounded"/>
257 <xs:element name = "attrib" minOccurs="0" maxOccurs="unbounded">
258 <xs:complexType>
259 <xs:sequence>
260 <xs:element name = "key" type="xs:string" minOccurs="1" maxOccurs="1"/>
261 <xs:element name = "value" type="xs:string" minOccurs="0" maxOccurs="1"/>
262 </xs:sequence>
263 </xs:complexType>
264 </xs:element>
265
266
267 -->
268 </xs:sequence>
269 </xs:extension>
270 </xs:complexContent>
271 </xs:complexType>
272 </xs:element>
273
274 <xs:element name="nsAttribRequest">
275 <xs:complexType>
276 <xs:complexContent>
277 <xs:extension base="aaf:Request">
278 <xs:sequence>
279 <xs:element name="ns" type="xs:string" minOccurs="1" maxOccurs="1"/>
280 <xs:element name = "attrib" minOccurs="0" maxOccurs="unbounded">
281 <xs:complexType>
282 <xs:sequence>
283 <xs:element name = "key" type="xs:string" minOccurs="1" maxOccurs="1"/>
284 <xs:element name = "value" type="xs:string" minOccurs="0" maxOccurs="1"/>
285 </xs:sequence>
286 </xs:complexType>
287 </xs:element>
288 </xs:sequence>
289 </xs:extension>
290 </xs:complexContent>
291 </xs:complexType>
292 </xs:element>
293
294 <xs:element name = "nss">
295 <xs:complexType>
296 <xs:sequence>
297 <xs:element name = "ns" minOccurs="0" maxOccurs="unbounded">
298 <xs:complexType>
299 <xs:sequence>
300 <xs:element name = "name" type = "xs:string" minOccurs="1" maxOccurs="1"/>
301 <xs:element name = "responsible" type = "xs:string" minOccurs="0" maxOccurs="unbounded"/>
302 <xs:element name = "admin" type = "xs:string" minOccurs="0" maxOccurs="unbounded"/>
303 <!-- Note: feb 23, 2015. Added description field. Verify backward compatibility. JR -->
304 <xs:element name = "description" type = "xs:string" minOccurs="0" maxOccurs="1"/>
305 <!-- Note: Dec 16, 2015. Added description field. Verify backward compatibility. JG -->
306 <xs:element name = "attrib" minOccurs="0" maxOccurs="unbounded">
307 <xs:complexType>
308 <xs:sequence>
309 <xs:element name = "key" type="xs:string" minOccurs="1" maxOccurs="1"/>
310 <xs:element name = "value" type="xs:string" minOccurs="0" maxOccurs="1"/>
311 </xs:sequence>
312 </xs:complexType>
313 </xs:element>
314 </xs:sequence>
315 </xs:complexType>
316 </xs:element>
317 </xs:sequence>
318 </xs:complexType>
319 </xs:element>
320
321<!--
322 Users
323-->
324 <xs:element name="users">
325 <xs:complexType>
326 <xs:sequence>
327 <xs:element name="user" minOccurs="0" maxOccurs="unbounded">
328 <xs:complexType>
329 <xs:sequence>
330 <xs:element name="id" type="xs:string" minOccurs="1" maxOccurs="1" />
331 <!-- Changed type to dateTime, because of importance of Certs -->
332 <xs:element name="expires" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
333 <!-- need to differentiate User Cred Types, jg1555 5/20/2015
334 This Return Object is shared by multiple functions:
335 Type is not returned for "UserRole", but only "Cred"
336 -->
337 <xs:element name="type" type="xs:int" minOccurs="0" maxOccurs="1" />
338 </xs:sequence>
339 </xs:complexType>
340 </xs:element>
341 </xs:sequence>
342 </xs:complexType>
343 </xs:element>
344
345<!--
346 Certs
347 Added jg1555 5/20/2015 to support identifying Certificate based Services
348 -->
349 <xs:element name="certs">
350 <xs:complexType>
351 <xs:sequence>
352 <xs:element name="cert" minOccurs="0" maxOccurs="unbounded">
353 <xs:complexType>
354 <xs:sequence>
355 <xs:element name="id" type="xs:string" minOccurs="1" maxOccurs="1" />
356 <xs:element name="x500" type="xs:string" minOccurs="1" maxOccurs="1" />
357 <xs:element name="expires" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
358 <xs:element name="fingerprint" type="xs:hexBinary" minOccurs="1" maxOccurs="1" />
359 </xs:sequence>
360 </xs:complexType>
361 </xs:element>
362 </xs:sequence>
363 </xs:complexType>
364 </xs:element>
365
366<!--
367 Credentials
368-->
369 <xs:element name="credRequest">
370 <xs:complexType>
371 <xs:complexContent>
372 <xs:extension base="aaf:Request">
373 <xs:sequence>
374 <xs:element name="id" type="xs:string"/>
375 <xs:element name="type" type="xs:int" minOccurs="0" maxOccurs="1"/>
376 <xs:choice >
377 <xs:element name="password" type="xs:string" />
378 <xs:element name="entry" type="xs:string" />
379 </xs:choice>
380 </xs:sequence>
381 </xs:extension>
382 </xs:complexContent>
383 </xs:complexType>
384 </xs:element>
385
386<!--
387 Multi Request
388 -->
389
390 <xs:element name="multiRequest">
391 <xs:complexType>
392 <xs:complexContent>
393 <xs:extension base="aaf:Request">
394 <xs:sequence>
395 <xs:element ref="aaf:nsRequest" minOccurs="0" maxOccurs="1"/>
396 <xs:element ref="aaf:nsAttribRequest" minOccurs="0" maxOccurs="unbounded"/>
397 <xs:element ref="aaf:roleRequest" minOccurs="0" maxOccurs="unbounded"/>
398 <xs:element ref="aaf:permRequest" minOccurs="0" maxOccurs="unbounded"/>
399 <xs:element ref="aaf:credRequest" minOccurs="0" maxOccurs="unbounded"/>
400 <xs:element ref="aaf:userRoleRequest" minOccurs="0" maxOccurs="unbounded"/>
401 <xs:element ref="aaf:rolePermRequest" minOccurs="0" maxOccurs="unbounded"/>
402 </xs:sequence>
403 </xs:extension>
404 </xs:complexContent>
405 </xs:complexType>
406 </xs:element>
407
408<!--
409 History
410 -->
411 <xs:element name="history">
412 <xs:complexType>
413 <xs:sequence>
414 <xs:element name="item" minOccurs="0" maxOccurs="unbounded">
415 <xs:complexType>
416 <xs:sequence>
417 <xs:element name="YYYYMM" type="xs:string" minOccurs="1" maxOccurs="1"/>
418 <xs:element name="timestamp" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
419 <xs:element name="subject" type="xs:string" minOccurs="1" maxOccurs="1"/>
420 <xs:element name="target" type = "xs:string" minOccurs="1" maxOccurs="1"/>
421 <xs:element name="action" type="xs:string" minOccurs="1" maxOccurs="1"/>
422 <xs:element name="memo" type="xs:string" minOccurs="1" maxOccurs="1"/>
423 <xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
424 </xs:sequence>
425 </xs:complexType>
426 </xs:element>
427 </xs:sequence>
428 </xs:complexType>
429 </xs:element>
430
431<!--
432 Approvals
433 -->
434 <xs:complexType name="approval">
435 <xs:sequence>
436 <!-- Note, id is set by system -->
437 <xs:element name="id" type="xs:string" minOccurs="0" maxOccurs="1"/>
438 <xs:element name="ticket" type="xs:string"/>
439 <xs:element name="user" type="xs:string"/>
440 <xs:element name="approver" type="xs:string"/>
441 <xs:element name="type" type="xs:string"/>
442 <xs:element name="memo" type="xs:string"/>
443 <xs:element name="updated" type="xs:dateTime"/>
444 <xs:element name="status">
445 <xs:simpleType>
446 <xs:restriction base="xs:string">
447 <xs:enumeration value="approve"/>
448 <xs:enumeration value="reject"/>
449 <xs:enumeration value="pending"/>
450 </xs:restriction>
451 </xs:simpleType>
452 </xs:element>
453 <xs:element name="operation">
454 <xs:simpleType>
455 <xs:restriction base="xs:string">
456 <xs:enumeration value="C"/>
457 <xs:enumeration value="U"/>
458 <xs:enumeration value="D"/>
459 <xs:enumeration value="G"/>
460 <xs:enumeration value="UG"/>
461 </xs:restriction>
462 </xs:simpleType>
463 </xs:element>
464 </xs:sequence>
465 </xs:complexType>
466 <xs:element name="approvals">
467 <xs:complexType>
468 <xs:sequence>
469 <xs:element name="approvals" type="aaf:approval" minOccurs="1" maxOccurs="unbounded"/>
470 </xs:sequence>
471 </xs:complexType>
472 </xs:element>
473
474<!--
475 Delegates
476-->
477 <xs:complexType name="delg">
478 <xs:sequence>
479 <xs:element name="user" type="xs:string"/>
480 <xs:element name="delegate" type="xs:string"/>
481 <xs:element name="expires" type="xs:date"/>
482 </xs:sequence>
483 </xs:complexType>
484
485 <xs:element name="delgRequest">
486 <xs:complexType>
487 <xs:complexContent>
488 <xs:extension base="aaf:Request">
489 <xs:sequence>
490 <xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
491 <xs:element name="delegate" type="xs:string" minOccurs="1" maxOccurs="1"/>
492 </xs:sequence>
493 </xs:extension>
494 </xs:complexContent>
495 </xs:complexType>
496 </xs:element>
497
498 <xs:element name="delgs">
499 <xs:complexType>
500 <xs:sequence>
501 <xs:element name="delgs" type="aaf:delg" minOccurs="0" maxOccurs="unbounded"/>
502 </xs:sequence>
503 </xs:complexType>
504 </xs:element>
505
506 <!-- jg 3/11/2015 New for 2.0.8 -->
507 <xs:element name="api">
508 <xs:complexType>
509 <xs:sequence>
510 <xs:element name="route" minOccurs="0" maxOccurs="unbounded">
511 <xs:complexType>
512 <xs:sequence>
513 <xs:element name="meth" type="xs:string" minOccurs="1" maxOccurs="1"/>
514 <xs:element name="path" type="xs:string" minOccurs="1" maxOccurs="1"/>
515 <xs:element name="param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
516 <xs:element name="desc" type="xs:string" minOccurs="1" maxOccurs="1"/>
517 <xs:element name="comments" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
518 <xs:element name="contentType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
519 <xs:element name="expected" type="xs:int" minOccurs="1" maxOccurs="1"/>
520 <xs:element name="explicitErr" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
521 </xs:sequence>
522 </xs:complexType>
523 </xs:element>
524 </xs:sequence>
525 </xs:complexType>
526 </xs:element>
527</xs:schema>