initial commit
[BroadWorks-OCI.git] / share / OCISchemaAS / OCISchemaLogin.xsd
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 \r
3 <!-- ********************************************************************** -->\r
4 <!-- Copyright (c) 2000-2012 BroadSoft, Inc.  All rights reserved.          -->\r
5 <!-- ********************************************************************** -->\r
6 <!-- O C I   X M L   S C H E M A  :  L O G I N  P A R T                     -->\r
7 <!--                                                                        -->\r
8 <!-- This file defines the XML Schema for the BroadSoft Application Server  -->\r
9 <!-- Open Client Interface (OCI).                                           -->\r
10 <!-- ********************************************************************** -->\r
11 \r
12 <xs:schema xmlns:xs             = "http://www.w3.org/2001/XMLSchema"\r
13            xmlns:core           = "C"\r
14            xmlns                = ""\r
15            attributeFormDefault = "qualified"\r
16            elementFormDefault   = "qualified">\r
17   \r
18   <xs:import namespace      = "C"\r
19              schemaLocation = "OCISchemaBASE.xsd"/>\r
20   \r
21   <xs:include schemaLocation="OCISchemaDataTypes.xsd"/>\r
22   \r
23   <!-- ********************************************************************************** -->\r
24   <!-- L O G I N  P A R T    R E Q U E S T S  A N D  R E S P O N S E S                    -->\r
25   <!-- ********************************************************************************** -->\r
26   <!--\r
27   Requests and responses are listed here in alphabetical order.\r
28   The non-primitive attributes inside the commands are defined in another\r
29   section of the schema.\r
30 \r
31   Requests in this schema file:\r
32     AuthenticationRequest    \r
33     AuthenticationVerifyRequest14sp8    \r
34     AvailabilityTestRequest    \r
35     DeviceManagementFileAuthLocationGetRequest21    \r
36     DeviceManagementPutFileRequest    \r
37     ExternalAuthenticationAuthorizeTokenRequest    \r
38     ExternalAuthenticationCreateLoginTokenRequest    \r
39     LoginRequest14sp4    \r
40     LogoutRequest    \r
41     PasswordModifyRequest    \r
42     PrimaryInfoGetRequest    \r
43     PublicClusterGetFullyQualifiedDomainNameRequest    \r
44     TutorialFlagGetRequest    \r
45     TutorialFlagModifyRequest    \r
46     UserGetLoginInfoRequest    \r
47     UserSingleSignOnCreateDeviceTokenRequest    \r
48     VerifySessionIsValidRequest    \r
49     \r
50   --> \r
51   \r
52   <xs:complexType name="AuthenticationRequest">\r
53     <xs:annotation>\r
54       <xs:documentation>\r
55         AuthenticationRequest is 1st stage of the 2 stage OCI login process.\r
56       </xs:documentation>\r
57     </xs:annotation>\r
58     <xs:complexContent>\r
59       <xs:extension base="core:OCIRequest">\r
60         <xs:sequence>\r
61           <xs:element name="userId" type="UserId"/>\r
62         </xs:sequence>\r
63       </xs:extension>\r
64     </xs:complexContent>\r
65   </xs:complexType>    \r
66     \r
67   <xs:complexType name="AuthenticationResponse">\r
68     <xs:annotation>\r
69       <xs:documentation>\r
70         AuthenticationRequest/Response is 1st stage of the 2 stage OCI login process.\r
71       </xs:documentation>\r
72     </xs:annotation>\r
73     <xs:complexContent>\r
74       <xs:extension base="core:OCIDataResponse">\r
75         <xs:sequence>\r
76           <xs:element name="userId" type="UserId"/>\r
77           <xs:element name="nonce" type="xs:string"/>\r
78           <xs:element name="passwordAlgorithm" type="DigitalSignatureAlgorithm"/>\r
79         </xs:sequence>\r
80       </xs:extension>\r
81     </xs:complexContent>\r
82   </xs:complexType>    \r
83     \r
84   <xs:complexType name="AuthenticationVerifyRequest14sp8">\r
85     <xs:annotation>\r
86       <xs:documentation>\r
87         AuthenticationVerifyRequest14sp8 is used to authenticate a user either by userId/password, userId/sip username/sip password,\r
88         dn/passcode or a token previously authorized with the ExternalAuthenticationAuthorizeTokenRequest. \r
89         The phone number may be any DN associated with a user.\r
90         The response is a AuthenticationVerifyResponse14sp8 or an ErrorResponse\r
91       </xs:documentation>\r
92     </xs:annotation>\r
93     <xs:complexContent>\r
94       <xs:extension base="core:OCIRequest">\r
95         <xs:choice>\r
96           <xs:sequence>\r
97             <xs:element name="userId" type="UserId"/>\r
98             <xs:element name="password" type="Password"/>\r
99           </xs:sequence>\r
100           <xs:sequence>\r
101             <xs:element name="phoneNumber" type="DN"/>\r
102             <xs:element name="passcode" type="Passcode"/>\r
103           </xs:sequence>\r
104           <xs:sequence>\r
105             <xs:element name="loginToken" type="LoginToken"/>\r
106           </xs:sequence>\r
107           <xs:sequence>\r
108             <xs:element name="sipAuthenticationUserName" type="SIPAuthenticationUserName"/>\r
109             <xs:element name="sipAuthenticationPassword" type="SIPAuthenticationPassword"/>\r
110             <xs:element name="userId" type="UserId"/>\r
111           </xs:sequence>\r
112         </xs:choice>\r
113       </xs:extension>\r
114     </xs:complexContent>\r
115   </xs:complexType>    \r
116     \r
117   <xs:complexType name="AuthenticationVerifyResponse14sp8">\r
118     <xs:annotation>\r
119       <xs:documentation>\r
120         Response to AuthenticationVerifyRequest14sp8\r
121         If a phoneNumber is returned, it will be the primay DN of the user\r
122       </xs:documentation>\r
123     </xs:annotation>\r
124     <xs:complexContent>\r
125       <xs:extension base="core:OCIDataResponse">\r
126         <xs:sequence>\r
127           <xs:element name="loginType" type="LoginType"/>\r
128           <xs:element name="locale" type="OCILocale"/>\r
129           <xs:element name="encoding" type="Encoding"/>\r
130           <xs:element name="groupId" type="GroupId" minOccurs="0"/>\r
131           <xs:element name="serviceProviderId" type="ServiceProviderId" minOccurs="0"/>\r
132           <xs:element name="isEnterprise" type="xs:boolean"/>\r
133           <xs:element name="passwordExpiresDays" type="xs:int" minOccurs="0"/>\r
134           <xs:element name="lastName" type="LastName" minOccurs="0"/>\r
135           <xs:element name="firstName" type="FirstName" minOccurs="0"/>\r
136           <xs:element name="userId" type="UserId"/>\r
137           <xs:element name="phoneNumber" type="DN" minOccurs="0"/>\r
138         </xs:sequence>\r
139       </xs:extension>\r
140     </xs:complexContent>\r
141   </xs:complexType>    \r
142     \r
143   <xs:complexType name="AvailabilityTestRequest">\r
144     <xs:annotation>\r
145       <xs:documentation>\r
146         AvailabilityTestRequest is for high-availability support. Response is either SuccessResponse\r
147         or ErrorResponse.\r
148       </xs:documentation>\r
149     </xs:annotation>\r
150     <xs:complexContent>\r
151       <xs:extension base="core:OCIRequest">\r
152         <xs:sequence/>\r
153       </xs:extension>\r
154     </xs:complexContent>\r
155   </xs:complexType>    \r
156     \r
157   <xs:complexType name="DeviceManagementFileAuthLocationGetRequest21">\r
158     <xs:annotation>\r
159       <xs:documentation>\r
160         Get the address and credentials of the File Repository hosting the requested access device file. \r
161         Also get the file name and path on the File Repository. \r
162         The response is either DeviceManagementFileAuthLocationGetResponse21 or ErrorResponse.\r
163         The following elements are only used in AS data mode and will fail in HSS data mode:\r
164           deviceToken\r
165       </xs:documentation>\r
166     </xs:annotation>\r
167     <xs:complexContent>\r
168       <xs:extension base="core:OCIRequest">\r
169         <xs:sequence>\r
170           <xs:element name="deviceAccessProtocol" type="DeviceAccessProtocol16"/>\r
171           <xs:element name="deviceAccessMethod" type="FileRepositoryAccessType"/>\r
172           <xs:element name="deviceAccessURI" type="DeviceManagementAccessURI"/>\r
173           <xs:element name="accessDeviceUserName" type="UserId" minOccurs="0"/>\r
174           <xs:element name="accessDeviceUserPassword" type="Password" minOccurs="0"/>\r
175           <xs:element name="deviceToken" type="LoginToken" minOccurs="0"/>\r
176           <xs:element name="signedPassword" type="SignedPassword" minOccurs="0"/>\r
177           <xs:element name="macAddress" type="AccessDeviceMACAddress" minOccurs="0"/>\r
178           <xs:element name="realmName" type="RealmName" minOccurs="0"/>\r
179           <xs:element name="digestHa1Complement" type="DigestHa1Complement" minOccurs="0"/>\r
180           <xs:element name="digestResponse" type="Md5Hash" minOccurs="0"/>\r
181         </xs:sequence>\r
182       </xs:extension>\r
183     </xs:complexContent>\r
184   </xs:complexType>    \r
185     \r
186   <xs:complexType name="DeviceManagementFileAuthLocationGetResponse21">\r
187     <xs:annotation>\r
188       <xs:documentation>\r
189         This is a response to DeviceManagementFileAuthLocationGetRequest21.\r
190         Return the address and credentials of the File Repository hosting the requested access device file. \r
191         Also return the file name and path on the File Repository.\r
192         Also returns the status of the file authentication.        \r
193       </xs:documentation>\r
194     </xs:annotation>\r
195     <xs:complexContent>\r
196       <xs:extension base="core:OCIDataResponse">\r
197         <xs:sequence>\r
198           <xs:element name="status" type="DeviceManagementFileAuthenticationStatus" minOccurs="0"/>\r
199           <xs:element name="fileRepositoryUserName" type="FileRepositoryUserName"/>\r
200           <xs:element name="fileRepositoryPassword" type="FileRepositoryUserPassword"/>\r
201           <xs:element name="netAddress" type="NetAddress"/>\r
202           <xs:element name="remoteFileFormat" type="DeviceManagementFileFormat"/>\r
203           <xs:element name="portNumber" type="Port" minOccurs="0"/>\r
204           <xs:element name="rootDirectory" type="CPEFileDirectory" minOccurs="0"/>\r
205           <xs:element name="cpeFileDirectory" type="CPEFileDirectory" minOccurs="0"/>\r
206           <xs:element name="secure" type="xs:boolean" minOccurs="0"/>\r
207           <xs:element name="macInNonRequestURI" type="xs:boolean" minOccurs="0"/>\r
208           <xs:element name="macFormatInNonRequestURI" type="DeviceManagementAccessURI" minOccurs="0"/>\r
209           <xs:element name="useHttpDigestAuthentication" type="xs:boolean" minOccurs="0"/>\r
210           <xs:element name="macBasedFileAuthentication" type="xs:boolean" minOccurs="0"/>\r
211           <xs:element name="userNamePasswordFileAuthentication" type="xs:boolean" minOccurs="0"/>\r
212           <xs:element name="completionNotification" type="xs:boolean" minOccurs="0"/>\r
213           <xs:element name="fileCategory" type="DeviceManagementFileCategory" minOccurs="0"/>\r
214           <xs:element name="enableCaching" type="xs:boolean" minOccurs="0"/>\r
215           <xs:element name="notifyFileUpload" type="xs:boolean" minOccurs="0"/>\r
216         </xs:sequence>\r
217       </xs:extension>\r
218     </xs:complexContent>\r
219   </xs:complexType>    \r
220     \r
221   <xs:complexType name="DeviceManagementPutFileRequest">\r
222     <xs:annotation>\r
223       <xs:documentation>\r
224           Informs BroadWorks that a file was uploaded to the repository. The response is always a SuccessResponse.\r
225         </xs:documentation>\r
226     </xs:annotation>\r
227     <xs:complexContent>\r
228       <xs:extension base="core:OCIRequest">\r
229         <xs:sequence>\r
230           <xs:element name="deviceAccessURI" type="DeviceManagementAccessURI"/>\r
231           <xs:element name="ipAddress" type="NetAddress"/>\r
232         </xs:sequence>\r
233       </xs:extension>\r
234     </xs:complexContent>\r
235   </xs:complexType>    \r
236     \r
237   <xs:complexType name="ExternalAuthenticationAuthorizeTokenRequest">\r
238     <xs:annotation>\r
239       <xs:documentation>\r
240         This command is part of the Portal API.\r
241         Sent when a Web or CLI user logs in using external authentication.\r
242         The password must be hashed. The password hashing algorithm is:\r
243         1) The message digest of the user's plain password is calculated using the SHA algorithm.\r
244         2) For every four bits in the 160-bit digest, starting from the first bit, it is\r
245            converted into a character in ASCII Hex format (0 through 9, a through f).\r
246            The result is a 40-character string, for example, f7a9e24777ec23212c54d7a350bc5bea5477fdbb.\r
247         3) The above string then is used to populate the password field in the request.\r
248         The response is either SuccessResponse or ErrorResponse.\r
249       </xs:documentation>\r
250     </xs:annotation>\r
251     <xs:complexContent>\r
252       <xs:extension base="core:OCIRequest">\r
253         <xs:sequence>\r
254           <xs:element name="userId" type="UserId"/>\r
255           <xs:element name="password" type="Password" minOccurs="0"/>\r
256           <xs:element name="loginToken" type="LoginToken"/>\r
257         </xs:sequence>\r
258       </xs:extension>\r
259     </xs:complexContent>\r
260   </xs:complexType>    \r
261     \r
262   <xs:complexType name="ExternalAuthenticationCreateLoginTokenRequest">\r
263     <xs:annotation>\r
264       <xs:appinfo>\r
265         <asDataModeSupported>true</asDataModeSupported>\r
266         <hssDataModeSupported>false</hssDataModeSupported>\r
267       </xs:appinfo>\r
268       <xs:documentation>\r
269         This command allows a BroadWorks or Third-Party Client Application to\r
270         create a Single Sign-On token for a user.\r
271         The response is either ExternalAuthenticationCreateLoginTokenResponse\r
272         or ErrorResponse.\r
273       </xs:documentation>\r
274     </xs:annotation>\r
275     <xs:complexContent>\r
276       <xs:extension base="core:OCIRequest">\r
277         <xs:sequence>\r
278           <xs:element name="userId" type="UserId"/>\r
279         </xs:sequence>\r
280       </xs:extension>\r
281     </xs:complexContent>\r
282   </xs:complexType>    \r
283     \r
284   <xs:complexType name="ExternalAuthenticationCreateLoginTokenResponse">\r
285     <xs:annotation>\r
286       <xs:appinfo>\r
287         <asDataModeSupported>true</asDataModeSupported>\r
288         <hssDataModeSupported>false</hssDataModeSupported>\r
289       </xs:appinfo>\r
290       <xs:documentation>\r
291         Response to ExternalAuthenticationCreateLoginTokenRequest.\r
292       </xs:documentation>\r
293     </xs:annotation>\r
294     <xs:complexContent>\r
295       <xs:extension base="core:OCIDataResponse">\r
296         <xs:sequence>\r
297           <xs:element name="loginToken" type="LoginToken"/>\r
298         </xs:sequence>\r
299       </xs:extension>\r
300     </xs:complexContent>\r
301   </xs:complexType>    \r
302     \r
303   <xs:complexType name="LoginRequest14sp4">\r
304     <xs:annotation>\r
305       <xs:documentation>\r
306         LoginRequest14sp4 is 2nd stage of the 2 stage OCI login process.\r
307         The signedPassword is not required for external authentication login from a trusted host (ACL).\r
308       </xs:documentation>\r
309     </xs:annotation>\r
310     <xs:complexContent>\r
311       <xs:extension base="core:OCIRequest">\r
312         <xs:sequence>\r
313           <xs:element name="userId" type="UserId"/>\r
314           <xs:element name="signedPassword" type="SignedPassword" minOccurs="0"/>\r
315           <xs:element name="plainTextPassword" type="Password" minOccurs="0"/>\r
316         </xs:sequence>\r
317       </xs:extension>\r
318     </xs:complexContent>\r
319   </xs:complexType>    \r
320     \r
321   <xs:complexType name="LoginResponse14sp4">\r
322     <xs:annotation>\r
323       <xs:documentation>\r
324         LoginRequest14sp4/Response14sp4 is 2nd stage of the 2 stage OCI login process.\r
325       </xs:documentation>\r
326     </xs:annotation>\r
327     <xs:complexContent>\r
328       <xs:extension base="core:OCIDataResponse">\r
329         <xs:sequence>\r
330           <xs:element name="loginType" type="LoginType"/>\r
331           <xs:element name="locale" type="OCILocale"/>\r
332           <xs:element name="encoding" type="Encoding"/>\r
333           <xs:element name="groupId" type="GroupId" minOccurs="0"/>\r
334           <xs:element name="serviceProviderId" type="ServiceProviderId" minOccurs="0"/>\r
335           <xs:element name="isEnterprise" type="xs:boolean"/>\r
336           <xs:element name="passwordExpiresDays" type="xs:int" minOccurs="0"/>\r
337           <xs:element name="userDomain" type="NetAddress"/>\r
338         </xs:sequence>\r
339       </xs:extension>\r
340     </xs:complexContent>\r
341   </xs:complexType>    \r
342     \r
343   <xs:complexType name="LogoutRequest">\r
344     <xs:annotation>\r
345       <xs:documentation>\r
346         LogoutRequest is sent when an OCI user logs out or when connection is lost.\r
347         This command can be sent either to the server, or to the client from OCS.\r
348         Response is either SuccessResponse or ErrorResponse.\r
349       </xs:documentation>\r
350     </xs:annotation>\r
351     <xs:complexContent>\r
352       <xs:extension base="core:OCIRequest">\r
353         <xs:sequence>\r
354           <xs:element name="userId" type="UserId"/>\r
355           <xs:element name="reason" type="LogoutRequestReason" minOccurs="0"/>\r
356         </xs:sequence>\r
357       </xs:extension>\r
358     </xs:complexContent>\r
359   </xs:complexType>    \r
360     \r
361   <xs:complexType name="PasswordModifyRequest">\r
362     <xs:annotation>\r
363       <xs:documentation>\r
364         Modify the password for a user/administrator.\r
365         When oldPassword is specified, password rule applies. If oldPassword in not specified,\r
366         any password rule related to old password does not apply.        \r
367         The response is either a SuccessResponse or an ErrorResponse.\r
368       </xs:documentation>\r
369     </xs:annotation>\r
370     <xs:complexContent>\r
371       <xs:extension base="core:OCIRequest">\r
372         <xs:sequence>\r
373           <xs:element name="userId" type="UserId"/>\r
374           <xs:element name="oldPassword" type="Password" minOccurs="0"/>\r
375           <xs:element name="newPassword" type="Password"/>\r
376         </xs:sequence>\r
377       </xs:extension>\r
378     </xs:complexContent>\r
379   </xs:complexType>    \r
380     \r
381   <xs:complexType name="PrimaryInfoGetRequest">\r
382     <xs:annotation>\r
383       <xs:documentation>\r
384         Requests information about the primary server for high-availability support.\r
385       </xs:documentation>\r
386     </xs:annotation>\r
387     <xs:complexContent>\r
388       <xs:extension base="core:OCIRequest">\r
389         <xs:sequence>\r
390           <xs:element name="isPrivate" type="xs:boolean">\r
391             <xs:annotation>\r
392               <xs:documentation>\r
393                 Dual homed side is private?\r
394               </xs:documentation>\r
395             </xs:annotation>\r
396           </xs:element>\r
397           <xs:element name="isAddressInfoRequested" type="xs:boolean">\r
398             <xs:annotation>\r
399               <xs:documentation>\r
400                 For optimization, we only get the hostname and addresses for primary if\r
401                 they are explicitly requested or if the current server is not the primary.\r
402                 So you might get back the list of server addresses even if you did not\r
403                 ask for the list if the request is not serviced by the primary server.\r
404               </xs:documentation>\r
405             </xs:annotation>\r
406           </xs:element>\r
407         </xs:sequence>\r
408       </xs:extension>\r
409     </xs:complexContent>\r
410   </xs:complexType>    \r
411     \r
412   <xs:complexType name="PrimaryInfoGetResponse">\r
413     <xs:annotation>\r
414       <xs:documentation>\r
415         Information about the primary server in the high-availablity cluster.\r
416         For optimization, we only get the hostname and addresses for primary if they are\r
417         explicitly requested or if the current server is not the primary.\r
418       </xs:documentation>\r
419     </xs:annotation>\r
420     <xs:complexContent>\r
421       <xs:extension base="core:OCIDataResponse">\r
422         <xs:sequence>\r
423           <xs:element name="isPrimary" type="xs:boolean">\r
424             <xs:annotation>\r
425               <xs:documentation>Is the server that processed this request the primary in the cluster?</xs:documentation>\r
426             </xs:annotation>\r
427           </xs:element>\r
428           <xs:element name="hostnameForPrimary" type="NetAddress" minOccurs="0">\r
429             <xs:annotation>\r
430               <xs:documentation>Primary server's hostname.</xs:documentation>\r
431             </xs:annotation>\r
432           </xs:element>\r
433           <xs:element name="addressForPrimary" type="NetAddress" minOccurs="0" maxOccurs="unbounded">\r
434             <xs:annotation>\r
435               <xs:documentation>List of addresses for primary server in cluster.</xs:documentation>\r
436             </xs:annotation>\r
437           </xs:element>\r
438           <xs:element name="privateAddressForPrimary" type="NetAddress" minOccurs="0" maxOccurs="unbounded">\r
439             <xs:annotation>\r
440               <xs:documentation>List of private addresses for primary server in cluster.</xs:documentation>\r
441             </xs:annotation>\r
442           </xs:element>\r
443         </xs:sequence>\r
444       </xs:extension>\r
445     </xs:complexContent>\r
446   </xs:complexType>    \r
447     \r
448   <xs:complexType name="PublicClusterGetFullyQualifiedDomainNameRequest">\r
449     <xs:annotation>\r
450       <xs:documentation>\r
451         Get the public cluster fully qualified domain name (FQDN).\r
452         The response is either a PublicClusterGetFullyQualifiedDomainNameResponse\r
453         or an ErrorResponse.\r
454       </xs:documentation>\r
455     </xs:annotation>\r
456     <xs:complexContent>\r
457       <xs:extension base="core:OCIRequest">\r
458         <xs:sequence/>\r
459       </xs:extension>\r
460     </xs:complexContent>\r
461   </xs:complexType>    \r
462     \r
463   <xs:complexType name="PublicClusterGetFullyQualifiedDomainNameResponse">\r
464     <xs:annotation>\r
465       <xs:documentation>\r
466         Response to PublicClusterGetFullyQualifiedDomainNameRequest.\r
467       </xs:documentation>\r
468     </xs:annotation>\r
469     <xs:complexContent>\r
470       <xs:extension base="core:OCIDataResponse">\r
471         <xs:sequence>\r
472           <xs:element name="publicClusterFQDN" type="DomainName" minOccurs="0"/>\r
473         </xs:sequence>\r
474       </xs:extension>\r
475     </xs:complexContent>\r
476   </xs:complexType>    \r
477     \r
478   <xs:complexType name="TutorialFlagGetRequest">\r
479     <xs:annotation>\r
480       <xs:documentation>\r
481         Get the tutorial flag setting for a user or admin.\r
482         The response is either a TutorialFlagGetResponse or an ErrorResponse.\r
483       </xs:documentation>\r
484     </xs:annotation>\r
485     <xs:complexContent>\r
486       <xs:extension base="core:OCIRequest">\r
487         <xs:sequence>\r
488           <xs:element name="userId" type="UserId"/>\r
489         </xs:sequence>\r
490       </xs:extension>\r
491     </xs:complexContent>\r
492   </xs:complexType>    \r
493     \r
494   <xs:complexType name="TutorialFlagGetResponse">\r
495     <xs:annotation>\r
496       <xs:documentation>\r
497         Response to the TutorialFlagGetRequest.\r
498       </xs:documentation>\r
499     </xs:annotation>\r
500     <xs:complexContent>\r
501       <xs:extension base="core:OCIDataResponse">\r
502         <xs:sequence>\r
503           <xs:element name="enableTutorial" type="xs:boolean"/>\r
504         </xs:sequence>\r
505       </xs:extension>\r
506     </xs:complexContent>\r
507   </xs:complexType>    \r
508     \r
509   <xs:complexType name="TutorialFlagModifyRequest">\r
510     <xs:annotation>\r
511       <xs:documentation>\r
512         Modify the tutorial flag setting for a user or admin.\r
513         The response is either a SuccessResponse or an ErrorResponse.\r
514       </xs:documentation>\r
515     </xs:annotation>\r
516     <xs:complexContent>\r
517       <xs:extension base="core:OCIRequest">\r
518         <xs:sequence>\r
519           <xs:element name="userId" type="UserId"/>\r
520           <xs:element name="enableTutorial" type="xs:boolean" minOccurs="0"/>\r
521         </xs:sequence>\r
522       </xs:extension>\r
523     </xs:complexContent>\r
524   </xs:complexType>    \r
525     \r
526   <xs:complexType name="UserGetLoginInfoRequest">\r
527     <xs:annotation>\r
528       <xs:documentation>\r
529         UserGetLoginInfoRequest is used to access login information for a user\r
530         either by a userId or dn.  The phone number may be any\r
531         DN associated with a user.\r
532         The response is a UserGetLoginInfoResponse or an ErrorResponse\r
533       </xs:documentation>\r
534     </xs:annotation>\r
535     <xs:complexContent>\r
536       <xs:extension base="core:OCIRequest">\r
537         <xs:sequence>\r
538           <xs:choice>\r
539             <xs:element name="userId" type="UserId"/>\r
540             <xs:element name="phoneNumber" type="DN"/>\r
541           </xs:choice>\r
542         </xs:sequence>\r
543       </xs:extension>\r
544     </xs:complexContent>\r
545   </xs:complexType>    \r
546     \r
547   <xs:complexType name="UserGetLoginInfoResponse">\r
548     <xs:annotation>\r
549       <xs:documentation>\r
550         Response to UserGetLoginInfoRequest\r
551         If a phoneNumber is returned, it will be the primay DN of the user\r
552       </xs:documentation>\r
553     </xs:annotation>\r
554     <xs:complexContent>\r
555       <xs:extension base="core:OCIDataResponse">\r
556         <xs:sequence>\r
557           <xs:element name="loginType" type="LoginType"/>\r
558           <xs:element name="locale" type="OCILocale"/>\r
559           <xs:element name="encoding" type="Encoding"/>\r
560           <xs:element name="groupId" type="GroupId" minOccurs="0"/>\r
561           <xs:element name="serviceProviderId" type="ServiceProviderId" minOccurs="0"/>\r
562           <xs:element name="isEnterprise" type="xs:boolean"/>\r
563           <xs:element name="passwordExpiresDays" type="xs:int" minOccurs="0"/>\r
564           <xs:element name="lastName" type="LastName" minOccurs="0"/>\r
565           <xs:element name="firstName" type="FirstName" minOccurs="0"/>\r
566           <xs:element name="userId" type="UserId"/>\r
567           <xs:element name="phoneNumber" type="DN" minOccurs="0"/>\r
568         </xs:sequence>\r
569       </xs:extension>\r
570     </xs:complexContent>\r
571   </xs:complexType>    \r
572     \r
573   <xs:complexType name="UserSingleSignOnCreateDeviceTokenRequest">\r
574     <xs:annotation>\r
575       <xs:appinfo>\r
576         <asDataModeSupported>true</asDataModeSupported>\r
577         <hssDataModeSupported>false</hssDataModeSupported>\r
578       </xs:appinfo>\r
579       <xs:documentation>\r
580         This command allows a BroadWorks or Third-Party Client Application to\r
581         create a Single Sign-On token for a device of a user.\r
582         The token is created only if:\r
583         1. the specified user is the owner of a lineport on the specified device\r
584            (including a trunk user on a trunk device).\r
585         2. and, the specified device is not in locked state.\r
586         3. and, the device type of the device does support Device Management.\r
587         The response is either UserSingleSignOnCreateDeviceTokenResponse\r
588         or ErrorResponse.\r
589       </xs:documentation>\r
590     </xs:annotation>\r
591     <xs:complexContent>\r
592       <xs:extension base="core:OCIRequest">\r
593         <xs:sequence>\r
594           <xs:element name="userId" type="UserId"/>\r
595           <xs:element name="deviceLevel" type="AccessDeviceLevel"/>\r
596           <xs:element name="deviceName" type="AccessDeviceName"/>\r
597         </xs:sequence>\r
598       </xs:extension>\r
599     </xs:complexContent>\r
600   </xs:complexType>    \r
601     \r
602   <xs:complexType name="UserSingleSignOnCreateDeviceTokenResponse">\r
603     <xs:annotation>\r
604       <xs:appinfo>\r
605         <asDataModeSupported>true</asDataModeSupported>\r
606         <hssDataModeSupported>false</hssDataModeSupported>\r
607       </xs:appinfo>\r
608       <xs:documentation>\r
609         Response to UserSingleSignOnCreateDeviceTokenRequest.\r
610       </xs:documentation>\r
611     </xs:annotation>\r
612     <xs:complexContent>\r
613       <xs:extension base="core:OCIDataResponse">\r
614         <xs:sequence>\r
615           <xs:element name="deviceToken" type="LoginToken"/>\r
616         </xs:sequence>\r
617       </xs:extension>\r
618     </xs:complexContent>\r
619   </xs:complexType>    \r
620     \r
621   <xs:complexType name="VerifySessionIsValidRequest">\r
622     <xs:annotation>\r
623       <xs:documentation>\r
624         Query the provisioning server to verify the session is authorized. Most\r
625         applications should not need this command, because the provisioning server\r
626         verifies the session is authorized for all commands.\r
627         The response is either a SuccessResponse or an ErrorResponse.\r
628       </xs:documentation>\r
629     </xs:annotation>\r
630     <xs:complexContent>\r
631       <xs:extension base="core:OCIRequest">\r
632         <xs:sequence/>\r
633       </xs:extension>\r
634     </xs:complexContent>\r
635   </xs:complexType>    \r
636     \r
637   <xs:simpleType name="LogoutRequestReason">\r
638     <xs:annotation>\r
639       <xs:documentation>\r
640         Logout request reason.\r
641       </xs:documentation>\r
642     </xs:annotation>\r
643     <xs:restriction base="xs:token">\r
644       <xs:enumeration value="Client Logout"/>\r
645       <xs:enumeration value="Server Connection Failure"/>\r
646       <xs:enumeration value="Open Client Server Forced Logout"/>\r
647     </xs:restriction>\r
648   </xs:simpleType>    \r
649     \r
650   <xs:simpleType name="DeviceManagementFileAuthenticationStatus">\r
651     <xs:annotation>\r
652       <xs:documentation>\r
653         The status of a Device Management File Authentication.\r
654         The possible values are:\r
655           "Challenge" : authentication is required.\r
656           "Need Digest Authntication" : client needs to use digest authentication.\r
657           "Need User Password Authntication" : client needs to use user/pass authentication.\r
658       </xs:documentation>\r
659     </xs:annotation>\r
660     <xs:restriction base="xs:token">\r
661       <xs:enumeration value="Challenge"/>\r
662       <xs:enumeration value="Need Digest Authentication"/>\r
663       <xs:enumeration value="Need User Password Authentication"/>\r
664     </xs:restriction>\r
665   </xs:simpleType>    \r
666     \r
667 </xs:schema>\r