soteria 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +2 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +77 -0
  9. data/Rakefile +5 -0
  10. data/bin/bundler +17 -0
  11. data/bin/console +17 -0
  12. data/bin/htmldiff +17 -0
  13. data/bin/ldiff +17 -0
  14. data/bin/nokogiri +17 -0
  15. data/bin/rackup +17 -0
  16. data/bin/rake +17 -0
  17. data/bin/rspec +17 -0
  18. data/bin/setup +17 -0
  19. data/bin/socksify_ruby +17 -0
  20. data/lib/soteria.rb +10 -0
  21. data/lib/soteria/client.rb +326 -0
  22. data/lib/soteria/credential.rb +154 -0
  23. data/lib/soteria/credential_types.rb +13 -0
  24. data/lib/soteria/push.rb +141 -0
  25. data/lib/soteria/sms.rb +81 -0
  26. data/lib/soteria/user.rb +409 -0
  27. data/lib/soteria/utilities.rb +45 -0
  28. data/lib/soteria/version.rb +4 -0
  29. data/soteria.gemspec +26 -0
  30. data/spec/credential_spec.rb +121 -0
  31. data/spec/fixtures/credential/authenticate_credentials_response.xml +13 -0
  32. data/spec/fixtures/credential/credential_fail.xml +11 -0
  33. data/spec/fixtures/credential/credential_success.xml +12 -0
  34. data/spec/fixtures/credential/get_cred_info_response.xml +40 -0
  35. data/spec/fixtures/credential/get_server_time_response.xml +11 -0
  36. data/spec/fixtures/credential/register_sms_response.xml +12 -0
  37. data/spec/fixtures/push/authenticate_with_push_error.xml +9 -0
  38. data/spec/fixtures/push/authenticate_with_push_response.xml +14 -0
  39. data/spec/fixtures/sms/check_otp_success_response.xml +13 -0
  40. data/spec/fixtures/sms/send_sms_success_response.xml +10 -0
  41. data/spec/fixtures/user/add_credential_response.xml +9 -0
  42. data/spec/fixtures/user/clear_temp_password_response.xml +10 -0
  43. data/spec/fixtures/user/clear_user_pin_response.xml +10 -0
  44. data/spec/fixtures/user/create_user_response.xml +9 -0
  45. data/spec/fixtures/user/delete_user_response.xml +10 -0
  46. data/spec/fixtures/user/get_temp_pass_attr_response.xml +14 -0
  47. data/spec/fixtures/user/remove_credential_response.xml +10 -0
  48. data/spec/fixtures/user/set_temp_pass_attr_response.xml +10 -0
  49. data/spec/fixtures/user/set_temp_pass_response.xml +11 -0
  50. data/spec/fixtures/user/update_credential_response.xml +10 -0
  51. data/spec/fixtures/user/update_user_response.xml +10 -0
  52. data/spec/fixtures/wsdl/vipuserservices-1.7.xsd +1015 -0
  53. data/spec/fixtures/wsdl/vipuserservices-auth-1.7.wsdl +155 -0
  54. data/spec/fixtures/wsdl/vipuserservices-mgmt-1.7.wsdl +246 -0
  55. data/spec/fixtures/wsdl/vipuserservices-query-1.7.wsdl +114 -0
  56. data/spec/push_spec.rb +148 -0
  57. data/spec/sms_spec.rb +84 -0
  58. data/spec/soteria_spec.rb +8 -0
  59. data/spec/spec_helper.rb +2 -0
  60. data/spec/user_spec.rb +245 -0
  61. metadata +206 -0
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
3
+ <S:Body>
4
+ <SetTemporaryPasswordAttributesResponse xmlns="https://schemas.vip.symantec.com">
5
+ <requestId>KSOfaUFH52</requestId>
6
+ <status>0000</status>
7
+ <statusMessage>Success</statusMessage>
8
+ </SetTemporaryPasswordAttributesResponse>
9
+ </S:Body>
10
+ </S:Envelope>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
3
+ <S:Body>
4
+ <SetTemporaryPasswordResponse xmlns="https://schemas.vip.symantec.com">
5
+ <requestId>1234abcd</requestId>
6
+ <status>0000</status>
7
+ <statusMessage>Success</statusMessage>
8
+ <temporaryPassword>321345</temporaryPassword>
9
+ </SetTemporaryPasswordResponse>
10
+ </S:Body>
11
+ </S:Envelope>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
3
+ <S:Body>
4
+ <UpdateCredentialResponse xmlns="https://schemas.vip.symantec.com">
5
+ <requestId>6dtFnd3qpK</requestId>
6
+ <status>0000</status>
7
+ <statusMessage>Success</statusMessage>
8
+ </UpdateCredentialResponse>
9
+ </S:Body>
10
+ </S:Envelope>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
3
+ <S:Body>
4
+ <UpdateUserResponse xmlns="http://chemas.vip.symantec.com">
5
+ <requestId>123456</requestId>
6
+ <status>0000</status>
7
+ <statusMessage>Success</statusMessage>
8
+ </UpdateUserResponse>
9
+ </S:Body>
10
+ </S:Envelope>
@@ -0,0 +1,1015 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- edited with XMLSpy v2010 rel. 2 (http://www.altova.com) by Roy (VeriSign Inc.) -->
3
+ <xs:schema xmlns="https://schemas.symantec.com/vip/2011/04/vipuserservices" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="https://schemas.symantec.com/vip/2011/04/vipuserservices" elementFormDefault="qualified" attributeFormDefault="unqualified">
4
+ <xs:complexType name="BaseRequestType" abstract="true">
5
+ <xs:annotation>
6
+ <xs:documentation>Acts as the base type for all the requests.</xs:documentation>
7
+ </xs:annotation>
8
+ <xs:sequence>
9
+ <xs:element name="requestId" type="RequestIdType"/>
10
+ </xs:sequence>
11
+ </xs:complexType>
12
+ <xs:complexType name="BaseRequestWithAccountIdType" abstract="true">
13
+ <xs:annotation>
14
+ <xs:documentation>Acts as the base type for all the requests that are sent on behalf of another account ID. In such cases,
15
+ the sender will either be a super admin or a parent of the onBehalfOfAccountId.</xs:documentation>
16
+ </xs:annotation>
17
+ <xs:complexContent>
18
+ <xs:extension base="BaseRequestType">
19
+ <xs:sequence>
20
+ <xs:element name="onBehalfOfAccountId" type="AccountIdType" minOccurs="0"/>
21
+ </xs:sequence>
22
+ </xs:extension>
23
+ </xs:complexContent>
24
+ </xs:complexType>
25
+ <xs:complexType name="BaseResponseType" abstract="true">
26
+ <xs:annotation>
27
+ <xs:documentation>Acts as the base type for all the responses.</xs:documentation>
28
+ </xs:annotation>
29
+ <xs:sequence>
30
+ <xs:element name="requestId" type="RequestIdType"/>
31
+ <xs:element name="status" type="xs:hexBinary"/>
32
+ <xs:element name="statusMessage" type="xs:string"/>
33
+ <xs:element name="detail" type="xs:hexBinary" minOccurs="0"/>
34
+ <xs:element name="detailMessage" type="xs:string" minOccurs="0"/>
35
+ </xs:sequence>
36
+ </xs:complexType>
37
+ <xs:element name="GetServerTimeRequest" type="GetServerTimeRequestType"/>
38
+ <xs:complexType name="GetServerTimeRequestType" abstract="false">
39
+ <xs:complexContent>
40
+ <xs:extension base="BaseRequestWithAccountIdType"/>
41
+ </xs:complexContent>
42
+ </xs:complexType>
43
+ <xs:element name="GetServerTimeResponse" type="GetServerTimeResponseType"/>
44
+ <xs:complexType name="GetServerTimeResponseType" abstract="false">
45
+ <xs:complexContent>
46
+ <xs:extension base="BaseResponseType">
47
+ <xs:sequence minOccurs="0">
48
+ <xs:element name="timestamp" type="xs:dateTime" minOccurs="0"/>
49
+ </xs:sequence>
50
+ </xs:extension>
51
+ </xs:complexContent>
52
+ </xs:complexType>
53
+ <xs:element name="CreateUserRequest" type="CreateUserRequestType"/>
54
+ <xs:complexType name="CreateUserRequestType" abstract="false">
55
+ <xs:complexContent>
56
+ <xs:extension base="BaseRequestWithAccountIdType">
57
+ <xs:sequence>
58
+ <xs:element name="userId" type="UserIdType"/>
59
+ <xs:element name="pin" type="PinType" minOccurs="0"/>
60
+ <xs:element name="forcePinChange" type="xs:boolean" minOccurs="0"/>
61
+ </xs:sequence>
62
+ </xs:extension>
63
+ </xs:complexContent>
64
+ </xs:complexType>
65
+ <xs:element name="CreateUserResponse" type="CreateUserResponseType"/>
66
+ <xs:complexType name="CreateUserResponseType" abstract="false">
67
+ <xs:complexContent>
68
+ <xs:extension base="BaseResponseType"/>
69
+ </xs:complexContent>
70
+ </xs:complexType>
71
+ <xs:element name="UpdateUserRequest" type="UpdateUserRequestType"/>
72
+ <xs:complexType name="UpdateUserRequestType" abstract="false">
73
+ <xs:annotation>
74
+ <xs:documentation>
75
+ This request object can be used to rename the user.
76
+ </xs:documentation>
77
+ </xs:annotation>
78
+ <xs:complexContent>
79
+ <xs:extension base="BaseRequestWithAccountIdType">
80
+ <xs:sequence>
81
+ <xs:element name="userId" type="UserIdType"/>
82
+ <xs:element name="newUserId" type="UserIdType" minOccurs="0"/>
83
+ <xs:element name="newUserStatus" type="UserStatusEnum" minOccurs="0"/>
84
+ <xs:element name="oldPin" type="PinType" minOccurs="0"/>
85
+ <xs:element name="newPin" type="PinType" minOccurs="0"/>
86
+ <xs:element name="forcePinChange" type="xs:boolean" minOccurs="0"/>
87
+ </xs:sequence>
88
+ </xs:extension>
89
+ </xs:complexContent>
90
+ </xs:complexType>
91
+ <xs:element name="UpdateUserResponse" type="UpdateUserResponseType"/>
92
+ <xs:complexType name="UpdateUserResponseType" abstract="false">
93
+ <xs:complexContent>
94
+ <xs:extension base="BaseResponseType"/>
95
+ </xs:complexContent>
96
+ </xs:complexType>
97
+ <xs:element name="DeleteUserRequest" type="DeleteUserRequestType"/>
98
+ <xs:complexType name="DeleteUserRequestType" abstract="false">
99
+ <xs:complexContent>
100
+ <xs:extension base="BaseRequestWithAccountIdType">
101
+ <xs:sequence>
102
+ <xs:element name="userId" type="UserIdType"/>
103
+ </xs:sequence>
104
+ </xs:extension>
105
+ </xs:complexContent>
106
+ </xs:complexType>
107
+ <xs:element name="DeleteUserResponse" type="DeleteUserResponseType"/>
108
+ <xs:complexType name="DeleteUserResponseType" abstract="false">
109
+ <xs:complexContent>
110
+ <xs:extension base="BaseResponseType"/>
111
+ </xs:complexContent>
112
+ </xs:complexType>
113
+ <xs:element name="ClearUserPinRequest" type="ClearUserPinRequestType"/>
114
+ <xs:complexType name="ClearUserPinRequestType" abstract="false">
115
+ <xs:complexContent>
116
+ <xs:extension base="BaseRequestWithAccountIdType">
117
+ <xs:sequence>
118
+ <xs:element name="userId" type="UserIdType"/>
119
+ </xs:sequence>
120
+ </xs:extension>
121
+ </xs:complexContent>
122
+ </xs:complexType>
123
+ <xs:element name="ClearUserPinResponse" type="ClearUserPinResponseType"/>
124
+ <xs:complexType name="ClearUserPinResponseType" abstract="false">
125
+ <xs:complexContent>
126
+ <xs:extension base="BaseResponseType"/>
127
+ </xs:complexContent>
128
+ </xs:complexType>
129
+ <xs:element name="AddCredentialRequest" type="AddCredentialRequestType"/>
130
+ <xs:complexType name="AddCredentialRequestType" abstract="false">
131
+ <xs:annotation>
132
+ <xs:documentation>
133
+ Request for adding a credential under a user.
134
+ </xs:documentation>
135
+ </xs:annotation>
136
+ <xs:complexContent>
137
+ <xs:extension base="BaseRequestWithAccountIdType">
138
+ <xs:sequence>
139
+ <xs:element name="userId" type="UserIdType"/>
140
+ <xs:element name="credentialDetail" type="CredentialDetailType"/>
141
+ <xs:choice id="addCredAuthDataTypeChoice" minOccurs="0">
142
+ <xs:element name="otpAuthData" type="OtpAuthDataType"/>
143
+ </xs:choice>
144
+ <xs:element name="trustedDevice" type="xs:boolean" minOccurs="0"/>
145
+ </xs:sequence>
146
+ </xs:extension>
147
+ </xs:complexContent>
148
+ </xs:complexType>
149
+ <xs:element name="AddCredentialResponse" type="AddCredentialResponseType"/>
150
+ <xs:complexType name="AddCredentialResponseType" abstract="false">
151
+ <xs:complexContent>
152
+ <xs:extension base="BaseResponseType"/>
153
+ </xs:complexContent>
154
+ </xs:complexType>
155
+ <xs:element name="UpdateCredentialRequest" type="UpdateCredentialRequestType"/>
156
+ <xs:complexType name="UpdateCredentialRequestType" abstract="false">
157
+ <xs:annotation>
158
+ <xs:documentation> To update credential's friendly name.
159
+ </xs:documentation>
160
+ </xs:annotation>
161
+ <xs:complexContent>
162
+ <xs:extension base="BaseRequestWithAccountIdType">
163
+ <xs:sequence>
164
+ <xs:element name="userId" type="UserIdType"/>
165
+ <xs:element name="credentialId" type="CredentialIdType"/>
166
+ <xs:element name="credentialType" type="CredentialTypeEnum"/>
167
+ <xs:element name="friendlyName" type="FriendlyNameType" />
168
+ </xs:sequence>
169
+ </xs:extension>
170
+ </xs:complexContent>
171
+ </xs:complexType>
172
+ <xs:element name="UpdateCredentialResponse" type="UpdateCredentialResponseType"/>
173
+ <xs:complexType name="UpdateCredentialResponseType" abstract="false">
174
+ <xs:complexContent>
175
+ <xs:extension base="BaseResponseType"/>
176
+ </xs:complexContent>
177
+ </xs:complexType>
178
+ <xs:element name="RemoveCredentialRequest" type="RemoveCredentialRequestType"/>
179
+ <xs:complexType name="RemoveCredentialRequestType" abstract="false">
180
+ <xs:complexContent>
181
+ <xs:extension base="BaseRequestWithAccountIdType">
182
+ <xs:sequence>
183
+ <xs:element name="userId" type="UserIdType"/>
184
+ <xs:element name="credentialId" type="CredentialIdType"/>
185
+ <xs:element name="credentialType" type="CredentialTypeEnum"/>
186
+ <xs:element name="trustedDevice" type="xs:boolean" minOccurs="0"/>
187
+ </xs:sequence>
188
+ </xs:extension>
189
+ </xs:complexContent>
190
+ </xs:complexType>
191
+ <xs:element name="RemoveCredentialResponse" type="RemoveCredentialResponseType"/>
192
+ <xs:complexType name="RemoveCredentialResponseType" abstract="false">
193
+ <xs:complexContent>
194
+ <xs:extension base="BaseResponseType"/>
195
+ </xs:complexContent>
196
+ </xs:complexType>
197
+ <xs:element name="GetUserInfoRequest" type="GetUserInfoRequestType"/>
198
+ <xs:complexType name="GetUserInfoRequestType" abstract="false">
199
+ <xs:complexContent>
200
+ <xs:extension base="BaseRequestWithAccountIdType">
201
+ <xs:sequence>
202
+ <xs:element name="userId" type="UserIdType" />
203
+ <xs:element name="iaInfo" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true"></xs:element>
204
+ <xs:element name="includePushAttributes" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true"></xs:element>
205
+ </xs:sequence>
206
+ </xs:extension>
207
+ </xs:complexContent>
208
+ </xs:complexType>
209
+ <xs:element name="GetUserInfoResponse" type="GetUserInfoResponseType"/>
210
+ <xs:complexType name="GetUserInfoResponseType" abstract="false">
211
+ <xs:complexContent>
212
+ <xs:extension base="BaseResponseType">
213
+ <xs:sequence minOccurs="0">
214
+ <xs:element name="userId" type="UserIdType" minOccurs="0"/>
215
+ <xs:element name="userCreationTime" type="xs:dateTime" minOccurs="0"/>
216
+ <xs:element name="userStatus" type="UserStatusEnum" minOccurs="0"/>
217
+ <xs:element name="numBindings" type="xs:integer" minOccurs="0"/>
218
+ <xs:element name="credentialBindingDetail" type="CredentialBindingDetailType" minOccurs="0" maxOccurs="unbounded"/>
219
+ <xs:element name="isPinSet" type="xs:boolean" minOccurs="0"/>
220
+ <xs:element name="isTempPasswordSet" type="xs:boolean" minOccurs="0"/>
221
+ <xs:element name="pinExpirationTime" type="xs:dateTime" minOccurs="0"/>
222
+ </xs:sequence>
223
+ </xs:extension>
224
+ </xs:complexContent>
225
+ </xs:complexType>
226
+ <xs:element name="GetCredentialInfoRequest" type="GetCredentialInfoRequestType"/>
227
+ <xs:complexType name="GetCredentialInfoRequestType" abstract="false">
228
+ <xs:complexContent>
229
+ <xs:extension base="BaseRequestWithAccountIdType">
230
+ <xs:sequence>
231
+ <xs:element name="credentialId" type="CredentialIdType"/>
232
+ <xs:element name="credentialType" type="CredentialTypeEnum"/>
233
+ <xs:element name="includePushAttributes" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true"></xs:element>
234
+ </xs:sequence>
235
+ </xs:extension>
236
+ </xs:complexContent>
237
+ </xs:complexType>
238
+ <xs:element name="GetCredentialInfoResponse" type="GetCredentialInfoResponseType"/>
239
+ <xs:complexType name="GetCredentialInfoResponseType" abstract="false">
240
+ <xs:complexContent>
241
+ <xs:extension base="BaseResponseType">
242
+ <xs:sequence minOccurs="0">
243
+ <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
244
+ <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>
245
+ <xs:element name="credentialStatus" type="CredentialStatusType" minOccurs="0"/>
246
+ <xs:element name="numBindings" type="xs:integer" minOccurs="0"/>
247
+ <xs:element name="pushAttributes" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
248
+ <xs:element name="userBindingDetail" type="UserBindingDetailType" minOccurs="0" maxOccurs="unbounded"/>
249
+ </xs:sequence>
250
+ </xs:extension>
251
+ </xs:complexContent>
252
+ </xs:complexType>
253
+ <xs:element name="AuthenticateUserRequest" type="AuthenticateUserRequestType"/>
254
+ <xs:complexType name="AuthenticateUserRequestType" abstract="false">
255
+ <xs:complexContent>
256
+ <xs:extension base="BaseRequestWithAccountIdType">
257
+ <xs:sequence>
258
+ <xs:element name="userId" type="UserIdType"/>
259
+ <xs:element name="pin" type="PinType" minOccurs="0"/>
260
+ <xs:choice id="authUserAuthDataTypeChoice" minOccurs="0">
261
+ <xs:element name="otpAuthData" type="OtpAuthDataType" minOccurs="0"/>
262
+ </xs:choice>
263
+ <xs:element name="authContext" type="AuthContext" minOccurs="0" />
264
+ </xs:sequence>
265
+ </xs:extension>
266
+ </xs:complexContent>
267
+ </xs:complexType>
268
+ <xs:element name="AuthenticateUserResponse" type="AuthenticateUserResponseType"/>
269
+ <xs:complexType name="AuthenticateUserResponseType" abstract="false">
270
+ <xs:complexContent>
271
+ <xs:extension base="BaseResponseType">
272
+ <xs:sequence minOccurs="0">
273
+ <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
274
+ <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>
275
+ <xs:element name="authnId" type="AuthnIdType" minOccurs="0"/>
276
+ <xs:element name="isPinExpired" type="xs:boolean" minOccurs="0"/>
277
+ <xs:element name="pinExpirationTime" type="xs:dateTime" minOccurs="0"/>
278
+ <xs:element name="authContext" type="AuthContext" minOccurs="0" />
279
+ </xs:sequence>
280
+ </xs:extension>
281
+ </xs:complexContent>
282
+ </xs:complexType>
283
+ <xs:element name="SetTemporaryPasswordRequest" type="SetTemporaryPasswordRequestType"/>
284
+ <xs:complexType name="SetTemporaryPasswordRequestType" abstract="false">
285
+ <xs:complexContent>
286
+ <xs:extension base="BaseRequestWithAccountIdType">
287
+ <xs:sequence>
288
+ <xs:element name="userId" type="UserIdType"/>
289
+ <xs:element name="temporaryPassword" type="TemporaryPasswordType" minOccurs="0"/>
290
+ <xs:element name="temporaryPasswordAttributes" type="TemporaryPasswordAttributesType" minOccurs="0"/>
291
+ <xs:choice id="deliveryInfoChoice" minOccurs="0">
292
+ <xs:element name="smsDeliveryInfo" type="SmsDeliveryInfoType" minOccurs="0"/>
293
+ <xs:element name="voiceDeliveryInfo" type="VoiceDeliveryInfoType" minOccurs="0"/>
294
+ </xs:choice>
295
+ </xs:sequence>
296
+ </xs:extension>
297
+ </xs:complexContent>
298
+ </xs:complexType>
299
+ <xs:element name="SetTemporaryPasswordResponse" type="SetTemporaryPasswordResponseType"/>
300
+ <xs:complexType name="SetTemporaryPasswordResponseType" abstract="false">
301
+ <xs:complexContent>
302
+ <xs:extension base="BaseResponseType">
303
+ <xs:sequence>
304
+ <xs:element name="temporaryPassword" type="TemporaryPasswordType" minOccurs="0"/>
305
+ </xs:sequence>
306
+ </xs:extension>
307
+ </xs:complexContent>
308
+ </xs:complexType>
309
+ <xs:element name="ClearTemporaryPasswordRequest" type="ClearTemporaryPasswordRequestType"/>
310
+ <xs:complexType name="ClearTemporaryPasswordRequestType" abstract="false">
311
+ <xs:complexContent>
312
+ <xs:extension base="BaseRequestWithAccountIdType">
313
+ <xs:sequence>
314
+ <xs:element name="userId" type="UserIdType"/>
315
+ </xs:sequence>
316
+ </xs:extension>
317
+ </xs:complexContent>
318
+ </xs:complexType>
319
+ <xs:element name="ClearTemporaryPasswordResponse" type="ClearTemporaryPasswordResponseType"/>
320
+ <xs:complexType name="ClearTemporaryPasswordResponseType" abstract="false">
321
+ <xs:complexContent>
322
+ <xs:extension base="BaseResponseType"/>
323
+ </xs:complexContent>
324
+ </xs:complexType>
325
+ <xs:element name="SetTemporaryPasswordAttributesRequest" type="SetTemporaryPasswordAttributesRequestType"/>
326
+ <xs:complexType name="SetTemporaryPasswordAttributesRequestType" abstract="false">
327
+ <xs:complexContent>
328
+ <xs:extension base="BaseRequestWithAccountIdType">
329
+ <xs:sequence>
330
+ <xs:element name="userId" type="UserIdType"/>
331
+ <xs:element name="temporaryPasswordAttributes" type="TemporaryPasswordAttributesType"/>
332
+ </xs:sequence>
333
+ </xs:extension>
334
+ </xs:complexContent>
335
+ </xs:complexType>
336
+ <xs:element name="SetTemporaryPasswordAttributesResponse" type="SetTemporaryPasswordAttributesResponseType"/>
337
+ <xs:complexType name="SetTemporaryPasswordAttributesResponseType" abstract="false">
338
+ <xs:complexContent>
339
+ <xs:extension base="BaseResponseType"/>
340
+ </xs:complexContent>
341
+ </xs:complexType>
342
+ <xs:element name="GetTemporaryPasswordAttributesRequest" type="GetTemporaryPasswordAttributesRequestType"/>
343
+ <xs:complexType name="GetTemporaryPasswordAttributesRequestType" abstract="false">
344
+ <xs:complexContent>
345
+ <xs:extension base="BaseRequestWithAccountIdType">
346
+ <xs:sequence>
347
+ <xs:element name="userId" type="UserIdType"/>
348
+ </xs:sequence>
349
+ </xs:extension>
350
+ </xs:complexContent>
351
+ </xs:complexType>
352
+ <xs:element name="GetTemporaryPasswordAttributesResponse" type="GetTemporaryPasswordAttributesResponseType"/>
353
+ <xs:complexType name="GetTemporaryPasswordAttributesResponseType" abstract="false">
354
+ <xs:complexContent>
355
+ <xs:extension base="BaseResponseType">
356
+ <xs:sequence>
357
+ <xs:element name="tempPwdAttributes" type="TemporaryPasswordAttributesType" minOccurs="0"/>
358
+ </xs:sequence>
359
+ </xs:extension>
360
+ </xs:complexContent>
361
+ </xs:complexType>
362
+ <xs:element name="SendOtpRequest" type="SendOtpRequestType"/>
363
+ <xs:complexType name="SendOtpRequestType" abstract="false">
364
+ <xs:complexContent>
365
+ <xs:extension base="BaseRequestWithAccountIdType">
366
+ <xs:sequence>
367
+ <xs:element name="userId" type="UserIdType"/>
368
+ <xs:choice minOccurs="0">
369
+ <xs:element name="smsDeliveryInfo" type="SmsDeliveryInfoType" minOccurs="0"/>
370
+ <xs:element name="voiceDeliveryInfo" type="VoiceDeliveryInfoType" minOccurs="0"/>
371
+ </xs:choice>
372
+ </xs:sequence>
373
+ </xs:extension>
374
+ </xs:complexContent>
375
+ </xs:complexType>
376
+ <xs:element name="SendOtpResponse" type="SendOtpResponseType"/>
377
+ <xs:complexType name="SendOtpResponseType" abstract="false">
378
+ <xs:complexContent>
379
+ <xs:extension base="BaseResponseType"/>
380
+ </xs:complexContent>
381
+ </xs:complexType>
382
+ <xs:element name="RegisterRequest" type="RegisterRequestType"/>
383
+ <xs:complexType name="RegisterRequestType" abstract="false">
384
+ <xs:complexContent>
385
+ <xs:extension base="BaseRequestWithAccountIdType">
386
+ <xs:sequence>
387
+ <xs:choice>
388
+ <xs:element name="smsDeliveryInfo" type="SmsDeliveryInfoType"/>
389
+ <xs:element name="voiceDeliveryInfo" type="VoiceDeliveryInfoType"/>
390
+ <xs:element name="serviceOtpDeliveryInfo" type="ServiceOtpDeliveryInfoType"/>
391
+ </xs:choice>
392
+ </xs:sequence>
393
+ </xs:extension>
394
+ </xs:complexContent>
395
+ </xs:complexType>
396
+ <xs:element name="RegisterResponse" type="RegisterResponseType"/>
397
+ <xs:complexType name="RegisterResponseType" abstract="false">
398
+ <xs:complexContent>
399
+ <xs:extension base="BaseResponseType">
400
+ <xs:sequence>
401
+ <xs:element name="otp" type="OtpType" minOccurs="0"/>
402
+ </xs:sequence>
403
+ </xs:extension>
404
+ </xs:complexContent>
405
+ </xs:complexType>
406
+
407
+ <!-- ============================= -->
408
+ <!-- IntAuth related types -->
409
+ <!-- ============================= -->
410
+
411
+ <xs:element name="EvaluateRiskRequest" type="EvaluateRiskRequestType"/>
412
+ <xs:complexType name="EvaluateRiskRequestType" abstract="false">
413
+ <xs:complexContent>
414
+ <xs:extension base="BaseRequestWithAccountIdType">
415
+ <xs:sequence>
416
+ <xs:element name="UserId" type="UserIdType" />
417
+ <xs:element name="Ip" type="IpAddressType" />
418
+ <xs:element name="UserAgent" type="UserAgentType" />
419
+ <xs:element name="IAAuthData" type="IAAuthDataType" minOccurs="0" />
420
+ <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
421
+ </xs:sequence>
422
+ </xs:extension>
423
+ </xs:complexContent>
424
+ </xs:complexType>
425
+ <xs:element name="EvaluateRiskResponse" type="EvaluateRiskResponseType"/>
426
+ <xs:complexType name="EvaluateRiskResponseType" abstract="false">
427
+ <xs:complexContent>
428
+ <xs:extension base="BaseResponseType">
429
+ <xs:sequence>
430
+ <xs:element name="Risky" type="xs:boolean" minOccurs="0" />
431
+ <xs:element name="RiskScore" type="RiskScoreType" minOccurs="0" />
432
+ <xs:element name="RiskThreshold" type="RiskScoreType" minOccurs="0" />
433
+ <xs:element name="RiskReason" type="xs:string" minOccurs="0" />
434
+ <xs:element name="PolicyVersion" type="xs:string" minOccurs="0" />
435
+ <xs:element name="EventId" type="EventIdType" minOccurs="0" />
436
+ <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
437
+ </xs:sequence>
438
+ </xs:extension>
439
+ </xs:complexContent>
440
+ </xs:complexType>
441
+
442
+ <xs:element name="ConfirmRiskRequest" type="ConfirmRiskRequestType"/>
443
+ <xs:complexType name="ConfirmRiskRequestType" abstract="false">
444
+ <xs:complexContent>
445
+ <xs:extension base="BaseRequestWithAccountIdType">
446
+ <xs:sequence>
447
+ <xs:element name="UserId" type="UserIdType" />
448
+ <xs:element name="EventId" type="EventIdType" />
449
+ <xs:element name="VerifyMethod" type="VerifyMethodType" minOccurs="0" />
450
+ <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
451
+ </xs:sequence>
452
+ </xs:extension>
453
+ </xs:complexContent>
454
+ </xs:complexType>
455
+ <xs:element name="ConfirmRiskResponse" type="ConfirmRiskResponseType"/>
456
+ <xs:complexType name="ConfirmRiskResponseType" abstract="false">
457
+ <xs:complexContent>
458
+ <xs:extension base="BaseResponseType">
459
+ <xs:sequence>
460
+ <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
461
+ </xs:sequence>
462
+ </xs:extension>
463
+ </xs:complexContent>
464
+ </xs:complexType>
465
+ <xs:element name="DenyRiskRequest" type="DenyRiskRequestType"/>
466
+ <xs:complexType name="DenyRiskRequestType" abstract="false">
467
+ <xs:complexContent>
468
+ <xs:extension base="BaseRequestWithAccountIdType">
469
+ <xs:sequence>
470
+ <xs:element name="UserId" type="UserIdType" />
471
+ <xs:element name="EventId" type="EventIdType" />
472
+ <xs:element name="VerifyMethod" type="VerifyMethodType" minOccurs="0" />
473
+ <xs:element name="IAAuthData" type="IAAuthDataType" minOccurs="0" />
474
+ <xs:element name="RememberDevice" type="xs:boolean" minOccurs="0" />
475
+ <xs:element name="FriendlyName" type="FriendlyNameType" minOccurs="0" />
476
+ <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
477
+ </xs:sequence>
478
+ </xs:extension>
479
+ </xs:complexContent>
480
+ </xs:complexType>
481
+ <xs:element name="DenyRiskResponse" type="DenyRiskResponseType"/>
482
+ <xs:complexType name="DenyRiskResponseType" abstract="false">
483
+ <xs:complexContent>
484
+ <xs:extension base="BaseResponseType">
485
+ <xs:sequence>
486
+ <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
487
+ </xs:sequence>
488
+ </xs:extension>
489
+ </xs:complexContent>
490
+ </xs:complexType>
491
+ <xs:complexType name="KeyValuePairType">
492
+ <xs:sequence>
493
+ <xs:element name="Key" type="KeyType"> </xs:element>
494
+ <xs:element name="Value" type="ValueType"></xs:element>
495
+ </xs:sequence>
496
+ </xs:complexType>
497
+
498
+ <xs:simpleType name="KeyType">
499
+ <xs:restriction base="xs:string">
500
+ <xs:minLength value="1"/>
501
+ <xs:maxLength value="125"/>
502
+ </xs:restriction>
503
+ </xs:simpleType>
504
+ <xs:simpleType name="ValueType">
505
+ <xs:restriction base="xs:string">
506
+ <xs:minLength value="0"/>
507
+ <xs:maxLength value="250"/>
508
+ </xs:restriction>
509
+ </xs:simpleType>
510
+
511
+ <!-- ============================= -->
512
+ <!-- COMMON TYPES -->
513
+ <!-- ============================= -->
514
+ <xs:simpleType name="RequestIdType">
515
+ <xs:restriction base="xs:string">
516
+ <xs:minLength value="4"/>
517
+ <xs:maxLength value="40"/>
518
+ <xs:pattern value="[0-9A-Za-z_]+"/>
519
+ </xs:restriction>
520
+ </xs:simpleType>
521
+ <xs:simpleType name="AccountIdType">
522
+ <xs:restriction base="xs:string">
523
+ <xs:minLength value="3"/>
524
+ <xs:maxLength value="50"/>
525
+ <xs:pattern value="[0-9A-Za-z]+"/>
526
+ </xs:restriction>
527
+ </xs:simpleType>
528
+ <xs:simpleType name="UserIdType">
529
+ <xs:restriction base="xs:string">
530
+ <xs:minLength value="1"/>
531
+ <xs:maxLength value="128"/>
532
+ </xs:restriction>
533
+ </xs:simpleType>
534
+ <xs:simpleType name="CredentialIdType">
535
+ <xs:restriction base="xs:string">
536
+ <xs:minLength value="4"/>
537
+ <xs:maxLength value="100"/>
538
+ <xs:pattern value="[0-9A-Za-z,#.*]+"/>
539
+ </xs:restriction>
540
+ </xs:simpleType>
541
+ <xs:simpleType name="CredentialTypeEnum">
542
+ <xs:restriction base="xs:string">
543
+ <xs:enumeration value="STANDARD_OTP"/>
544
+ <xs:enumeration value="SMS_OTP"/>
545
+ <xs:enumeration value="VOICE_OTP"/>
546
+ <xs:enumeration value="SERVICE_OTP"/>
547
+ <xs:enumeration value="CERTIFICATE"/>
548
+ <xs:enumeration value="IA"/>
549
+ </xs:restriction>
550
+ </xs:simpleType>
551
+ <xs:simpleType name="UserStatusEnum">
552
+ <xs:restriction base="xs:string">
553
+ <xs:enumeration value="ACTIVE"/>
554
+ <xs:enumeration value="DISABLED"/>
555
+ <xs:enumeration value="LOCKED"/>
556
+ </xs:restriction>
557
+ </xs:simpleType>
558
+ <xs:simpleType name="BindStatusEnum">
559
+ <xs:restriction base="xs:string">
560
+ <xs:enumeration value="ENABLED"/>
561
+ <xs:enumeration value="DISABLED"/>
562
+ </xs:restriction>
563
+ </xs:simpleType>
564
+ <xs:simpleType name="CredentialStatusType">
565
+ <xs:restriction base="xs:string">
566
+ <xs:minLength value="1"/>
567
+ <xs:maxLength value="50"/>
568
+ </xs:restriction>
569
+ </xs:simpleType>
570
+ <xs:simpleType name="FriendlyNameType">
571
+ <xs:restriction base="xs:string">
572
+ <xs:minLength value="1"/>
573
+ <xs:maxLength value="125"/>
574
+ </xs:restriction>
575
+ </xs:simpleType>
576
+ <xs:simpleType name="ClientVersionType">
577
+ <xs:restriction base="xs:string">
578
+ <xs:minLength value="1"/>
579
+ <xs:maxLength value="10"/>
580
+ <xs:pattern value="[0-9.]+"/>
581
+ </xs:restriction>
582
+ </xs:simpleType>
583
+ <xs:simpleType name="ClientTypeType">
584
+ <xs:restriction base="xs:string">
585
+ <xs:minLength value="1"/>
586
+ <xs:maxLength value="20"/>
587
+ </xs:restriction>
588
+ </xs:simpleType>
589
+ <xs:complexType name="CredentialDetailType">
590
+ <xs:sequence>
591
+ <xs:element name="credentialId" type="CredentialIdType"/>
592
+ <xs:element name="credentialType" type="CredentialTypeEnum"/>
593
+ <xs:element name="friendlyName" type="FriendlyNameType" minOccurs="0"/>
594
+ <xs:element name="trustedDevice" type="xs:boolean" minOccurs="0"/>
595
+ </xs:sequence>
596
+ </xs:complexType>
597
+ <xs:complexType name="BindingDetailType">
598
+ <xs:sequence>
599
+ <xs:element name="bindStatus" type="BindStatusEnum"/>
600
+ <xs:element name="friendlyName" type="FriendlyNameType" minOccurs="0"/>
601
+ <xs:element name="trustedDevice" type="xs:boolean" minOccurs="0"/>
602
+ <xs:element name="clientVersion" type="ClientVersionType" minOccurs="0"/>
603
+ <xs:element name="clientType" type="ClientTypeType" minOccurs="0"/>
604
+ <xs:element name="lastBindTime" type="xs:dateTime"/>
605
+ <xs:element name="lastAuthnTime" type="xs:dateTime" minOccurs="0"/>
606
+ <xs:element name="lastAuthnId" type="AuthnIdType" minOccurs="0"/>
607
+ </xs:sequence>
608
+ </xs:complexType>
609
+ <xs:complexType name="CredentialBindingDetailType">
610
+ <xs:sequence>
611
+ <xs:element name="credentialId" type="CredentialIdType"/>
612
+ <xs:element name="credentialType" type="CredentialTypeEnum"/>
613
+ <xs:element name="credentialStatus" type="CredentialStatusType" minOccurs="0"/>
614
+ <xs:element name="bindingDetail" type="BindingDetailType"/>
615
+ <xs:element name="pushAttributes" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
616
+ </xs:sequence>
617
+ </xs:complexType>
618
+ <xs:complexType name="UserBindingDetailType">
619
+ <xs:sequence>
620
+ <xs:element name="userId" type="UserIdType"/>
621
+ <xs:element name="userStatus" type="UserStatusEnum"/>
622
+ <xs:element name="bindingDetail" type="BindingDetailType"/>
623
+ </xs:sequence>
624
+ </xs:complexType>
625
+ <xs:simpleType name="OtpType">
626
+ <xs:restriction base="xs:string">
627
+ <xs:minLength value="6"/>
628
+ <xs:maxLength value="10"/>
629
+ <xs:pattern value="[0-9A-Za-z]+"/>
630
+ </xs:restriction>
631
+ </xs:simpleType>
632
+ <xs:simpleType name="DeviceFingerPrintType">
633
+ <xs:restriction base="xs:string">
634
+ <xs:minLength value="1"/>
635
+ <xs:maxLength value="2048"/>
636
+ </xs:restriction>
637
+ </xs:simpleType>
638
+
639
+ <xs:simpleType name="IpAddressType">
640
+ <xs:restriction base="xs:string">
641
+ <xs:pattern value="(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])" />
642
+ </xs:restriction>
643
+ </xs:simpleType>
644
+
645
+ <xs:complexType name="AbstractAuthDataType" abstract="true"/>
646
+ <xs:complexType name="OtpAuthDataType" abstract="false">
647
+ <xs:complexContent>
648
+ <xs:extension base="AbstractAuthDataType">
649
+ <xs:sequence>
650
+ <xs:element name="otp" type="OtpType"/>
651
+ <xs:element name="otp2" type="OtpType" minOccurs="0"/>
652
+ </xs:sequence>
653
+ </xs:extension>
654
+ </xs:complexContent>
655
+ </xs:complexType>
656
+
657
+ <xs:complexType name="CredentialDefinitionType" abstract="false">
658
+ <xs:complexContent>
659
+ <xs:extension base="AbstractAuthDataType">
660
+ <xs:sequence>
661
+ <xs:element name="credentialId" type="CredentialIdType"/>
662
+ <xs:element name="credentialType" type="CredentialTypeEnum"/>
663
+ </xs:sequence>
664
+ </xs:extension>
665
+ </xs:complexContent>
666
+ </xs:complexType>
667
+
668
+ <xs:simpleType name="AuthnIdType">
669
+ <xs:restriction base="xs:string">
670
+ <xs:minLength value="4"/>
671
+ <xs:maxLength value="30"/>
672
+ </xs:restriction>
673
+ </xs:simpleType>
674
+ <xs:simpleType name="TemporaryPasswordType">
675
+ <xs:annotation>
676
+ <xs:documentation xml:lang="en">
677
+ One Time Password. Limited to 6 bytes.
678
+ </xs:documentation>
679
+ </xs:annotation>
680
+ <xs:restriction base="xs:string">
681
+ <xs:pattern value="[0-9]{6,6}"/>
682
+ </xs:restriction>
683
+ </xs:simpleType>
684
+ <xs:complexType name="TemporaryPasswordAttributesType">
685
+ <xs:annotation>
686
+ <xs:documentation xml:lang="en">
687
+
688
+ </xs:documentation>
689
+ </xs:annotation>
690
+ <xs:sequence>
691
+ <xs:element name="expirationTime" type="xs:dateTime" minOccurs="0"/>
692
+ <xs:element name="oneTimeUseOnly" type="xs:boolean" minOccurs="0"/>
693
+ </xs:sequence>
694
+ </xs:complexType>
695
+ <!-- DestinationType -->
696
+ <xs:complexType name="DestinationType">
697
+ <xs:annotation>
698
+ <xs:documentation xml:lang="en">
699
+ Destination type.
700
+ </xs:documentation>
701
+ </xs:annotation>
702
+ <xs:simpleContent>
703
+ <xs:extension base="xs:string">
704
+ <xs:attribute name="type" type="PhoneNumberType" use="required"/>
705
+ </xs:extension>
706
+ </xs:simpleContent>
707
+ </xs:complexType>
708
+ <xs:simpleType name="PhoneNumberType">
709
+ <xs:restriction base="xs:string">
710
+ <xs:pattern value="[0-9]{5,20}(x[0-9,#.*]{1,20})?"/>
711
+ </xs:restriction>
712
+ </xs:simpleType>
713
+ <!--SmsDeliveryInfoType-->
714
+ <xs:complexType name="SmsDeliveryInfoType">
715
+ <xs:annotation>
716
+ <xs:documentation xml:lang="en">
717
+ Contains the branding information.
718
+ </xs:documentation>
719
+ </xs:annotation>
720
+ <xs:sequence>
721
+ <xs:element name="phoneNumber" type="PhoneNumberType"/>
722
+ <xs:element name="smsFrom" type="SmsFromType" minOccurs="0"/>
723
+ <xs:element name="messageTemplate" type="SmsMessageTemplateType" minOccurs="0"/>
724
+ <xs:element name="gatewayAcctInfo" type="GatewayAcctInfoType" minOccurs="0"/>
725
+ </xs:sequence>
726
+ </xs:complexType>
727
+ <!--GatewayAcctInfo-->
728
+ <xs:complexType name="GatewayAcctInfoType">
729
+ <xs:annotation>
730
+ <xs:documentation xml:lang="en">
731
+ Contains the IMN gateway account information.
732
+ </xs:documentation>
733
+ </xs:annotation>
734
+ <xs:sequence>
735
+ <xs:element name="Id">
736
+ <xs:simpleType>
737
+ <xs:restriction base="xs:string">
738
+ <xs:minLength value="1"/>
739
+ <xs:maxLength value="15"/>
740
+ </xs:restriction>
741
+ </xs:simpleType>
742
+ </xs:element>
743
+ <xs:element name="Password">
744
+ <xs:simpleType>
745
+ <xs:restriction base="xs:string">
746
+ <xs:minLength value="1"/>
747
+ <xs:maxLength value="64"/>
748
+ </xs:restriction>
749
+ </xs:simpleType>
750
+ </xs:element>
751
+ </xs:sequence>
752
+ </xs:complexType>
753
+ <xs:simpleType name="SmsFromType">
754
+ <xs:restriction base="xs:string">
755
+ <xs:pattern value="[0-9]{3,20}"/>
756
+ </xs:restriction>
757
+ </xs:simpleType>
758
+ <xs:simpleType name="SmsMessageTemplateType">
759
+ <xs:restriction base="xs:string">
760
+ <xs:minLength value="5"/>
761
+ <xs:maxLength value="140"/>
762
+ </xs:restriction>
763
+ </xs:simpleType>
764
+ <!--VoiceDeliveryInfoType-->
765
+ <xs:complexType name="VoiceDeliveryInfoType">
766
+ <xs:annotation>
767
+ <xs:documentation xml:lang="en">Contains the elements for voice type</xs:documentation>
768
+ </xs:annotation>
769
+ <xs:sequence>
770
+ <xs:element name="phoneNumber" type="PhoneNumberType"/>
771
+ <xs:element name="Language" type="xs:language" minOccurs="0"/>
772
+ </xs:sequence>
773
+ </xs:complexType>
774
+ <xs:complexType name="ServiceOtpDeliveryInfoType">
775
+ <xs:annotation>
776
+ <xs:documentation xml:lang="en">Contains the elements for voice type</xs:documentation>
777
+ </xs:annotation>
778
+ <xs:sequence>
779
+ <xs:element name="id" type="CredentialIdType"/>
780
+ </xs:sequence>
781
+ </xs:complexType>
782
+ <xs:simpleType name="PinType">
783
+ <xs:restriction base="xs:string">
784
+ <xs:minLength value="4"/>
785
+ <xs:maxLength value="128"/>
786
+ </xs:restriction>
787
+ </xs:simpleType>
788
+ <xs:simpleType name="UserAgentType">
789
+ <xs:restriction base="xs:string">
790
+ <xs:minLength value="1"/>
791
+ <xs:maxLength value="250"/>
792
+ </xs:restriction>
793
+ </xs:simpleType>
794
+ <xs:simpleType name="IAAuthDataType">
795
+ <xs:restriction base="xs:string">
796
+ <xs:minLength value="1"/>
797
+ <xs:maxLength value="2000"/>
798
+ </xs:restriction>
799
+ </xs:simpleType>
800
+
801
+ <xs:simpleType name="EventIdType">
802
+ <xs:restriction base="xs:string">
803
+ <xs:minLength value="1"/>
804
+ <xs:maxLength value="18"/>
805
+ <xs:pattern value="[0-9]+"/>
806
+ </xs:restriction>
807
+ </xs:simpleType>
808
+ <xs:simpleType name="VerifyMethodType">
809
+ <xs:restriction base="xs:string">
810
+ <xs:minLength value="1"/>
811
+ <xs:maxLength value="64"/>
812
+ </xs:restriction>
813
+ </xs:simpleType>
814
+ <xs:simpleType name="RiskScoreType">
815
+ <xs:restriction base="xs:integer">
816
+ <xs:minInclusive value="0"/>
817
+ <xs:maxInclusive value="100"/>
818
+ </xs:restriction>
819
+ </xs:simpleType>
820
+
821
+ <xs:simpleType name="NormalizedRiskScoreType">
822
+ <xs:restriction base="xs:double">
823
+ <xs:minInclusive value="0"/>
824
+ <xs:maxInclusive value="1"/>
825
+ </xs:restriction>
826
+ </xs:simpleType>
827
+
828
+
829
+ <xs:simpleType name="IDType">
830
+ <xs:restriction base="xs:string">
831
+ <xs:minLength value="3"></xs:minLength>
832
+ <xs:maxLength value="64"></xs:maxLength>
833
+ <xs:pattern value="[0-9A-Za-z]+"></xs:pattern>
834
+ </xs:restriction>
835
+ </xs:simpleType>
836
+ <xs:simpleType name="StringDescType">
837
+ <xs:restriction base="xs:string">
838
+ <xs:minLength value="0"></xs:minLength>
839
+ <xs:maxLength value="256"></xs:maxLength>
840
+ </xs:restriction>
841
+ </xs:simpleType>
842
+
843
+
844
+ <!-- ============================= -->
845
+ <!-- Push Auth related Types -->
846
+ <!-- ============================= -->
847
+
848
+ <xs:simpleType name="PushTransactionIdType">
849
+ <xs:restriction base="xs:string">
850
+ <xs:minLength value="4"/>
851
+ <xs:maxLength value="16"/>
852
+ <xs:pattern value="[0-9A-Za-z_]+"/>
853
+ </xs:restriction>
854
+ </xs:simpleType>
855
+
856
+ <xs:complexType name="PushAuthDataType" abstract="false">
857
+ <xs:complexContent>
858
+ <xs:extension base="AbstractAuthDataType">
859
+ <xs:sequence>
860
+ <xs:element name="displayParameters" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
861
+ <xs:element name="requestParameters" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
862
+ </xs:sequence>
863
+ </xs:extension>
864
+ </xs:complexContent>
865
+ </xs:complexType>
866
+
867
+ <xs:complexType name="PushDetailType" abstract="false">
868
+ <xs:sequence>
869
+ <xs:element name="pushCredentialId" type="xs:string" minOccurs="1"/>
870
+ <xs:element name="pushSent" type="xs:boolean" minOccurs="1"/>
871
+ </xs:sequence>
872
+ </xs:complexType>
873
+
874
+ <xs:complexType name="PushTransactionStatusType" abstract="false">
875
+ <xs:sequence>
876
+ <xs:element name="transactionId" type="PushTransactionIdType"/>
877
+ <xs:element name="status" type="xs:hexBinary"/>
878
+ <xs:element name="statusMessage" type="xs:string"/>
879
+ <xs:element name="detail" type="xs:hexBinary" minOccurs="0"/>
880
+ <xs:element name="detailMessage" type="xs:string" minOccurs="0"/>
881
+ <xs:element name="authnTime" type="xs:dateTime" minOccurs="0"/>
882
+ <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
883
+ <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>
884
+ <xs:element name="isPinExpired" type="xs:boolean" minOccurs="0"/>
885
+ <xs:element name="pinExpirationTime" type="xs:dateTime" minOccurs="0"/>
886
+
887
+ </xs:sequence>
888
+ </xs:complexType>
889
+
890
+ <xs:element name="CheckOtpRequest" type="CheckOtpRequestType"/>
891
+ <xs:complexType name="CheckOtpRequestType" abstract="false">
892
+ <xs:complexContent>
893
+ <xs:extension base="BaseRequestWithAccountIdType">
894
+ <xs:sequence>
895
+ <xs:element name="userId" type="UserIdType"/>
896
+ <xs:element name="otpAuthData" type="OtpAuthDataType" />
897
+ <xs:element name="authContext" type="AuthContext" minOccurs="0" />
898
+ </xs:sequence>
899
+ </xs:extension>
900
+ </xs:complexContent>
901
+ </xs:complexType>
902
+ <xs:element name="CheckOtpResponse" type="CheckOtpResponseType"/>
903
+ <xs:complexType name="CheckOtpResponseType" abstract="false">
904
+ <xs:complexContent>
905
+ <xs:extension base="BaseResponseType">
906
+ <xs:sequence minOccurs="0">
907
+ <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
908
+ <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>
909
+ <xs:element name="authnId" type="AuthnIdType" minOccurs="0"/>
910
+ <xs:element name="authContext" type="AuthContext" minOccurs="0" />
911
+ </xs:sequence>
912
+ </xs:extension>
913
+ </xs:complexContent>
914
+ </xs:complexType>
915
+
916
+
917
+ <xs:element name="AuthenticateUserWithPushRequest" type="AuthenticateUserWithPushRequestType"/>
918
+ <xs:complexType name="AuthenticateUserWithPushRequestType" abstract="false">
919
+ <xs:complexContent>
920
+ <xs:extension base="BaseRequestWithAccountIdType">
921
+ <xs:sequence>
922
+ <xs:element name="userId" type="UserIdType"/>
923
+ <xs:element name="pin" type="PinType" minOccurs="0" maxOccurs="1"/>
924
+ <xs:element name="pushAuthData" type="PushAuthDataType" />
925
+ <xs:element name="authContext" type="AuthContext" minOccurs="0" />
926
+ </xs:sequence>
927
+ </xs:extension>
928
+ </xs:complexContent>
929
+ </xs:complexType>
930
+
931
+ <xs:element name="AuthenticateUserWithPushResponse" type="AuthenticateUserWithPushResponseType"/>
932
+ <xs:complexType name="AuthenticateUserWithPushResponseType" abstract="false">
933
+ <xs:complexContent>
934
+ <xs:extension base="BaseResponseType">
935
+ <xs:sequence minOccurs="0">
936
+ <xs:element name="transactionId" type="PushTransactionIdType" minOccurs="0"/>
937
+ <xs:element name="isPinExpired" type="xs:boolean" minOccurs="0"/>
938
+ <xs:element name="pinExpirationTime" type="xs:dateTime" minOccurs="0"/>
939
+ <xs:sequence minOccurs="0" maxOccurs="20">
940
+ <xs:element name="pushDetail" type="PushDetailType" />
941
+ </xs:sequence>
942
+ <xs:element name="authContext" type="AuthContext" minOccurs="0" />
943
+ </xs:sequence>
944
+ </xs:extension>
945
+ </xs:complexContent>
946
+ </xs:complexType>
947
+
948
+ <xs:element name="AuthenticateCredentialsRequest" type="AuthenticateCredentialsRequestType"/>
949
+ <xs:complexType name="AuthenticateCredentialsRequestType" abstract="false">
950
+ <xs:complexContent>
951
+ <xs:extension base="BaseRequestWithAccountIdType">
952
+ <xs:sequence>
953
+ <xs:element name="credentials" type="CredentialDefinitionType" minOccurs="1" maxOccurs="5"/>
954
+ <xs:element name="activate" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false"></xs:element>
955
+ <xs:choice>
956
+ <xs:element name="otpAuthData" type="OtpAuthDataType"/>
957
+ <xs:element name="pushAuthData" type="PushAuthDataType"/>
958
+ </xs:choice>
959
+ <xs:element name="authContext" type="AuthContext" minOccurs="0" />
960
+ </xs:sequence>
961
+ </xs:extension>
962
+ </xs:complexContent>
963
+ </xs:complexType>
964
+
965
+ <xs:element name="AuthenticateCredentialsResponse" type="AuthenticateCredentialsResponseType"/>
966
+ <xs:complexType name="AuthenticateCredentialsResponseType" abstract="false">
967
+ <xs:complexContent>
968
+ <xs:extension base="BaseResponseType">
969
+ <xs:sequence minOccurs="0">
970
+ <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
971
+ <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>
972
+ <xs:element name="transactionId" type="PushTransactionIdType" minOccurs="0"/>
973
+ <xs:sequence minOccurs="0" maxOccurs="20">
974
+ <xs:element name="pushDetail" type="PushDetailType" />
975
+ </xs:sequence>
976
+ <xs:element name="authContext" type="AuthContext" minOccurs="0" />
977
+ </xs:sequence>
978
+ </xs:extension>
979
+ </xs:complexContent>
980
+ </xs:complexType>
981
+
982
+ <xs:element name="PollPushStatusRequest" type="PollPushStatusRequestType"/>
983
+ <xs:complexType name="PollPushStatusRequestType" abstract="false">
984
+ <xs:complexContent>
985
+ <xs:extension base="BaseRequestWithAccountIdType">
986
+ <xs:sequence>
987
+ <xs:element name="transactionId" type="PushTransactionIdType" minOccurs="1" maxOccurs="20"/>
988
+ </xs:sequence>
989
+ </xs:extension>
990
+ </xs:complexContent>
991
+ </xs:complexType>
992
+
993
+ <xs:element name="PollPushStatusResponse" type="PollPushStatusResponseType"/>
994
+ <xs:complexType name="PollPushStatusResponseType" abstract="false">
995
+ <xs:complexContent>
996
+ <xs:extension base="BaseResponseType">
997
+ <xs:sequence minOccurs="0">
998
+ <xs:element name="transactionStatus" type="PushTransactionStatusType" minOccurs="0" maxOccurs="20" />
999
+ </xs:sequence>
1000
+ </xs:extension>
1001
+ </xs:complexContent>
1002
+ </xs:complexType>
1003
+
1004
+ <xs:complexType name="AuthContext">
1005
+ <xs:annotation>
1006
+ <xs:documentation>
1007
+ This field contains key-value pairs of parameters required to perform authentication. For instance,
1008
+ authentication level.
1009
+ </xs:documentation>
1010
+ </xs:annotation>
1011
+ <xs:sequence>
1012
+ <xs:element name="params" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
1013
+ </xs:sequence>
1014
+ </xs:complexType>
1015
+ </xs:schema>