AT&T 2.0.19 Code drop, stage 4
[aaf/authz.git] / authz-gui / theme / aaf_2_0.xsd
1 <!-- 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         Note: jan 22, 2015.  Deprecating the "force" element in the "Request" Structure.  Do that
10         with Query Params. 
11         
12         Eliminate in 3.0 
13  -->
14 <!--
15         Errors
16         Note: This Error Structure has been made to conform to the AT&T TSS Policies
17         
18          
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:date" 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         Permissions 
65 -->     
66         <xs:complexType name = "pkey">
67                 <xs:sequence>
68                         <xs:element name="type" type="xs:string"/>
69                         <xs:element name="instance" type="xs:string"/>
70                         <xs:element name="action" type="xs:string"/>
71                 </xs:sequence>
72         </xs:complexType>
73
74         <xs:element name="permKey">
75                 <xs:complexType >
76                         <xs:complexContent>
77                                 <xs:extension base="aaf:pkey" />
78                         </xs:complexContent>
79                 </xs:complexType>
80         </xs:element>
81         
82         <xs:element name="perm">
83                 <xs:complexType >
84                         <xs:complexContent>
85                                 <xs:extension base="aaf:pkey">
86                                         <xs:sequence>                                   
87                                                 <xs:element name="roles" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
88                                                 <!-- Note: feb 23, 2015.  Added description field. Verify backward compatibility. JR -->
89                                                 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
90                                         </xs:sequence>
91                                 </xs:extension>
92                         </xs:complexContent>
93                 </xs:complexType>
94         </xs:element>
95         
96         <xs:element name="perms">
97                 <xs:complexType>
98                         <xs:sequence>
99                                 <xs:element ref="aaf:perm" minOccurs="0" maxOccurs="unbounded"/>
100                         </xs:sequence>
101                 </xs:complexType>
102         </xs:element>
103
104         <xs:element name="permRequest">
105                 <xs:complexType>
106                         <xs:complexContent>
107                                 <xs:extension base="aaf:Request">
108                                         <xs:sequence>
109                                                 <xs:element name="type" type="xs:string"/>
110                                                 <xs:element name="instance" type="xs:string"/>
111                                                 <xs:element name="action" type="xs:string"/>
112                                                 <!-- Note: feb 23, 2015.  Added description field. Verify backward compatibility. JR -->
113                                                 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
114                                         </xs:sequence>
115                                 </xs:extension>
116                         </xs:complexContent>
117                 </xs:complexType>
118         </xs:element>
119
120
121 <!-- 
122         Roles 
123 -->     
124         <xs:complexType name="rkey">
125                 <xs:sequence>
126                         <xs:element name="name" type="xs:string"/>
127                 </xs:sequence>
128         </xs:complexType>
129         
130         <xs:element name="roleKey">
131                 <xs:complexType >
132                         <xs:complexContent>
133                                 <xs:extension base="aaf:rkey" />
134                         </xs:complexContent>
135                 </xs:complexType>
136         </xs:element>
137
138         <xs:element name="role">
139                 <xs:complexType>
140                         <xs:complexContent>
141                                 <xs:extension base="aaf:rkey">
142                                         <xs:sequence>
143                                                 <xs:element name="perms" type="aaf:pkey" minOccurs="0" maxOccurs="unbounded"/>
144                                                 <!-- Note: feb 23, 2015.  Added description field. Verify backward compatibility. JR -->
145                                                 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
146                                         </xs:sequence>
147                                 </xs:extension>
148                         </xs:complexContent>
149                 </xs:complexType>
150         </xs:element>
151         
152         <xs:element name="roles">
153                 <xs:complexType>
154                         <xs:sequence>
155                                 <xs:element ref="aaf:role" minOccurs="0" maxOccurs="unbounded"/>
156                         </xs:sequence>
157                 </xs:complexType>
158         </xs:element>
159
160         <xs:element name="roleRequest">
161                 <xs:complexType>
162                         <xs:complexContent>
163                                 <xs:extension base="aaf:Request">
164                                         <xs:sequence>
165                                                 <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
166                                                 <!-- Note: feb 23, 2015.  Added description field. Verify backward compatibility. JR -->
167                                                 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
168                                         </xs:sequence>
169                                 </xs:extension>
170                         </xs:complexContent>
171                 </xs:complexType>
172         </xs:element>
173
174         <xs:element name="userRoleRequest">
175                 <xs:complexType>
176                         <xs:complexContent>
177                                 <xs:extension base="aaf:Request">
178                                         <xs:sequence>
179                                                 <xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
180                                                 <xs:element name="role" type="xs:string" minOccurs="1" maxOccurs="1"/>
181                                         </xs:sequence>
182                                 </xs:extension>
183                         </xs:complexContent>
184                 </xs:complexType>
185         </xs:element>
186         
187         <xs:element name="rolePermRequest">
188                 <xs:complexType>
189                         <xs:complexContent>
190                                 <xs:extension base="aaf:Request">
191                                         <xs:sequence>
192                                                 <xs:element name="perm" type="aaf:pkey" minOccurs="1" maxOccurs="1"/>
193                                                 <xs:element name="role" type="xs:string" minOccurs="1" maxOccurs="1"/>
194                                         </xs:sequence>
195                                 </xs:extension>
196                         </xs:complexContent>
197                 </xs:complexType>
198         </xs:element>
199         
200
201         <xs:element name="nsRequest">
202                 <xs:complexType>
203                         <xs:complexContent>
204                                 <xs:extension base="aaf:Request">
205                                         <xs:sequence>
206                                                 <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
207                                                 <xs:element name="admin" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
208                                                 <xs:element name="responsible" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
209                                                 <xs:element name="scope" type="xs:int" minOccurs="0" maxOccurs="1"/>
210                                                 <!-- Note: feb 23, 2015.  Added description field. Verify backward compatibility. JR -->
211                                                 <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
212                                         </xs:sequence>
213                                 </xs:extension>
214                         </xs:complexContent>
215                 </xs:complexType>
216         </xs:element>
217         
218         <xs:element name = "nss">
219                 <xs:complexType>
220                         <xs:sequence>
221                                 <xs:element name = "ns" minOccurs="0" maxOccurs="unbounded">
222                                         <xs:complexType>
223                                                 <xs:sequence>
224                                                         <xs:element name = "name" type = "xs:string" minOccurs="1" maxOccurs="1"/>
225                                                         <xs:element name = "responsible" type = "xs:string" minOccurs="0" maxOccurs="unbounded"/>
226                                                         <xs:element name = "admin" type = "xs:string" minOccurs="0" maxOccurs="unbounded"/>
227                                                         <!-- Note: feb 23, 2015.  Added description field. Verify backward compatibility. JR -->
228                                                         <xs:element name = "description" type = "xs:string" minOccurs="0" maxOccurs="1"/>
229                                                 </xs:sequence>
230                                         </xs:complexType>
231                                 </xs:element>
232                         </xs:sequence>
233                 </xs:complexType>
234         </xs:element>
235
236 <!-- 
237         Users 
238 -->     
239         <xs:element name="users">
240                 <xs:complexType>
241                         <xs:sequence>
242                                 <xs:element name="user" minOccurs="0" maxOccurs="unbounded">
243                                         <xs:complexType>
244                                                 <xs:sequence>
245                                                 <xs:element name="id" type="xs:string"  minOccurs="1" maxOccurs="1" />
246                                                 <xs:element name="expires" type="xs:date" minOccurs="1" maxOccurs="1" />
247                                                 </xs:sequence>
248                                         </xs:complexType>
249                                 </xs:element>
250                         </xs:sequence>
251                 </xs:complexType>
252         </xs:element>
253
254
255 <!-- 
256         Credentials 
257 -->     
258         <xs:element name="credRequest">
259                 <xs:complexType>
260                         <xs:complexContent>
261                                 <xs:extension base="aaf:Request">
262                                         <xs:sequence>
263                                                 <xs:element name="id" type="xs:string"/>
264                                                 <xs:element name="type" type="xs:int" minOccurs="0" maxOccurs="1"/>
265                                                 <xs:choice >
266                                                         <xs:element name="password" type="xs:string" />
267                                                         <xs:element name="entry" type="xs:string" />
268                                                 </xs:choice>
269                                         </xs:sequence>
270                                 </xs:extension>
271                         </xs:complexContent>
272                 </xs:complexType>
273         </xs:element>
274         
275 <!--
276         History 
277  -->
278         <xs:element name="history">
279                 <xs:complexType>
280                         <xs:sequence>
281                                 <xs:element name="item" minOccurs="0" maxOccurs="unbounded">
282                                         <xs:complexType>
283                                                 <xs:sequence>
284                                                         <xs:element name="YYYYMM" type="xs:string" minOccurs="1" maxOccurs="1"/>
285                                                         <xs:element name="timestamp" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
286                                                         <xs:element name="subject" type="xs:string" minOccurs="1" maxOccurs="1"/>
287                                                         <xs:element name="target" type = "xs:string" minOccurs="1" maxOccurs="1"/>
288                                                         <xs:element name="action" type="xs:string" minOccurs="1" maxOccurs="1"/>
289                                                         <xs:element name="memo" type="xs:string" minOccurs="1" maxOccurs="1"/>
290                                                         <xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
291                                                 </xs:sequence>
292                                         </xs:complexType>
293                                 </xs:element>
294                         </xs:sequence>
295                  </xs:complexType>
296         </xs:element>
297  
298 <!-- 
299         Approvals
300  -->
301         <xs:complexType name="approval">
302            <xs:sequence>
303                    <!-- Note, id is set by system -->
304                    <xs:element name="id" type="xs:string" minOccurs="0" maxOccurs="1"/>
305                    <xs:element name="ticket" type="xs:string"/>
306                <xs:element name="user" type="xs:string"/>
307                <xs:element name="approver" type="xs:string"/>
308                <xs:element name="type" type="xs:string"/>
309                <xs:element name="memo" type="xs:string"/>
310                <xs:element name="updated" type="xs:dateTime"/>
311                <xs:element name="status">
312                           <xs:simpleType>
313                             <xs:restriction base="xs:string">
314                               <xs:enumeration value="approve"/>
315                               <xs:enumeration value="reject"/>
316                               <xs:enumeration value="pending"/>
317                             </xs:restriction>
318                           </xs:simpleType>
319                    </xs:element>        
320                    <xs:element name="operation">
321                           <xs:simpleType>
322                             <xs:restriction base="xs:string">
323                               <xs:enumeration value="C"/>
324                               <xs:enumeration value="U"/>
325                               <xs:enumeration value="D"/>
326                               <xs:enumeration value="G"/>
327                               <xs:enumeration value="UG"/>
328                             </xs:restriction>
329                           </xs:simpleType>
330                    </xs:element>        
331            </xs:sequence>
332         </xs:complexType>
333         <xs:element name="approvals">
334                 <xs:complexType>
335                         <xs:sequence>
336                                 <xs:element name="approvals" type="aaf:approval" minOccurs="1" maxOccurs="unbounded"/>
337                         </xs:sequence>
338                 </xs:complexType>
339         </xs:element>
340         
341 <!-- 
342         Delegates 
343 -->     
344         <xs:complexType name="delg">
345            <xs:sequence>
346                <xs:element name="user" type="xs:string"/>
347                <xs:element name="delegate" type="xs:string"/>
348                <xs:element name="expires" type="xs:date"/>
349            </xs:sequence>
350         </xs:complexType>
351         
352         <xs:element name="delgRequest">
353                 <xs:complexType>
354                         <xs:complexContent>
355                                 <xs:extension base="aaf:Request">
356                                         <xs:sequence>
357                                        <xs:element name="user" type="xs:string" minOccurs="1" maxOccurs="1"/>
358                                        <xs:element name="delegate" type="xs:string" minOccurs="1" maxOccurs="1"/>
359                                         </xs:sequence>
360                                 </xs:extension>
361                         </xs:complexContent>
362                 </xs:complexType>
363         </xs:element>
364
365         <xs:element name="delgs">
366                 <xs:complexType>
367                         <xs:sequence>
368                                 <xs:element name="delgs" type="aaf:delg" minOccurs="0" maxOccurs="unbounded"/>
369                         </xs:sequence>
370                 </xs:complexType>
371         </xs:element>
372         
373         <!-- jg 3/11/2015 New for 2.0.8 -->
374         <xs:element name="api">
375                 <xs:complexType>
376                         <xs:sequence>
377                                 <xs:element name="route" minOccurs="0" maxOccurs="unbounded">
378                                         <xs:complexType>
379                                                 <xs:sequence>
380                                                         <xs:element name="meth" type="xs:string" minOccurs="1" maxOccurs="1"/>
381                                                         <xs:element name="path" type="xs:string" minOccurs="1" maxOccurs="1"/>
382                                                         <xs:element name="param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
383                                                         <xs:element name="desc" type="xs:string" minOccurs="1" maxOccurs="1"/>
384                                                         <xs:element name="comments" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
385                                                         <xs:element name="contentType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
386                                                         <xs:element name="expected" type="xs:int" minOccurs="1" maxOccurs="1"/>
387                                                         <xs:element name="explicitErr" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
388                                                 </xs:sequence>  
389                                         </xs:complexType>
390                                 </xs:element>
391                         </xs:sequence>
392                 </xs:complexType>
393         </xs:element>
394 </xs:schema>