account-lookup-service 15.5.0-iso.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. package/.circleci/config.yml +11 -0
  2. package/.ncurc.yaml +6 -0
  3. package/.nvmrc +1 -0
  4. package/.nycrc.yml +20 -0
  5. package/.versionrc +15 -0
  6. package/CHANGELOG.md +330 -0
  7. package/CODEOWNERS +38 -0
  8. package/Dockerfile +45 -0
  9. package/LICENSE.md +10 -0
  10. package/README.md +252 -0
  11. package/audit-ci.jsonc +32 -0
  12. package/audit-resolve.json +161 -0
  13. package/config/default.json +109 -0
  14. package/config/knexfile.js +21 -0
  15. package/docker/account-lookup-service/default.json +106 -0
  16. package/docker/account-lookup-service/make-default-json.sh +5 -0
  17. package/docker/account-lookup-service/override.json +15 -0
  18. package/docker/central-ledger/default.json +458 -0
  19. package/docker/config-modifier/account-lookup-service.js +31 -0
  20. package/docker/kafka/consumer.properties +26 -0
  21. package/docker/kafka/producer.properties +45 -0
  22. package/docker/kafka/server.properties +143 -0
  23. package/docker/kafka/tools-log4j.properties +21 -0
  24. package/docker/mock-proxy/Dockerfile +15 -0
  25. package/docker/mock-proxy/package-lock.json +4986 -0
  26. package/docker/mock-proxy/package.json +24 -0
  27. package/docker/mock-proxy/src/config.ts +14 -0
  28. package/docker/mock-proxy/src/server.ts +94 -0
  29. package/docker/mock-proxy/src/utils.ts +29 -0
  30. package/docker/mock-proxy/tsconfig.json +24 -0
  31. package/docker/sql-init/01_permissions.sql +2 -0
  32. package/docker/sql-init-central-ledger/01_permissions.sql +2 -0
  33. package/docker/wait-for/wait-for-account-lookup-service.sh +10 -0
  34. package/docker/wait-for/wait-for-central-ledger.sh +11 -0
  35. package/docker/wait-for/wait-for-kafka.sh +7 -0
  36. package/docker/wait-for/wait-for-ml-api-adapter.sh +9 -0
  37. package/docker/wait-for/wait-for-mockserver.sh +20 -0
  38. package/docker/wait-for/wait-for-mysql-als.sh +14 -0
  39. package/docker/wait-for/wait-for-mysql-central-ledger.sh +11 -0
  40. package/docker/wait-for/wait-for-mysql.sh +11 -0
  41. package/docker/wait-for/wait-for-objstore.sh +12 -0
  42. package/docker/wait-for/wait-for.env +18 -0
  43. package/docker/wait-for/wait-for.sh +81 -0
  44. package/docker-compose.integration.yml +29 -0
  45. package/docker-compose.yml +243 -0
  46. package/jest-int.config.js +8 -0
  47. package/jest.config.js +16 -0
  48. package/jsdoc.json +38 -0
  49. package/migrations/01_currency.js +42 -0
  50. package/migrations/02_endpointType.js +43 -0
  51. package/migrations/03_endpointType-indexes.js +37 -0
  52. package/migrations/04_partyIdType.js +43 -0
  53. package/migrations/05_partyIdType-indexes.js +38 -0
  54. package/migrations/08_oracleEndpoint.js +51 -0
  55. package/migrations/09_oracleEndpoint-indexes.js +41 -0
  56. package/migrations/10_oracleEndpoint-remove-constraints.js +38 -0
  57. package/package.json +180 -0
  58. package/scripts/_wait4_all.js +143 -0
  59. package/scripts/test-functional.sh +76 -0
  60. package/secrets/jwsSigningKey.key +27 -0
  61. package/seeds/currency.js +765 -0
  62. package/seeds/endpointType.js +65 -0
  63. package/seeds/partyIdType.js +79 -0
  64. package/src/api/endpointcache.js +67 -0
  65. package/src/api/health.js +66 -0
  66. package/src/api/index.js +85 -0
  67. package/src/api/oracles/{ID}.js +100 -0
  68. package/src/api/oracles.js +96 -0
  69. package/src/api/participants/{ID}/error.js +44 -0
  70. package/src/api/participants/{ID}.js +44 -0
  71. package/src/api/participants/{Type}/{ID}/error.js +74 -0
  72. package/src/api/participants/{Type}/{ID}/{SubId}/error.js +68 -0
  73. package/src/api/participants/{Type}/{ID}/{SubId}.js +113 -0
  74. package/src/api/participants/{Type}/{ID}.js +133 -0
  75. package/src/api/participants.js +63 -0
  76. package/src/api/parties/{Type}/{ID}/error.js +66 -0
  77. package/src/api/parties/{Type}/{ID}/{SubId}/error.js +56 -0
  78. package/src/api/parties/{Type}/{ID}/{SubId}.js +77 -0
  79. package/src/api/parties/{Type}/{ID}.js +98 -0
  80. package/src/api/routes.js +294 -0
  81. package/src/constants.js +16 -0
  82. package/src/domain/oracle/index.js +33 -0
  83. package/src/domain/oracle/oracle.js +234 -0
  84. package/src/domain/participants/index.js +35 -0
  85. package/src/domain/participants/participants.js +560 -0
  86. package/src/domain/parties/getPartiesByTypeAndID.js +239 -0
  87. package/src/domain/parties/index.js +32 -0
  88. package/src/domain/parties/parties.js +215 -0
  89. package/src/domain/parties/utils.js +84 -0
  90. package/src/domain/timeout/dto.js +48 -0
  91. package/src/domain/timeout/index.js +104 -0
  92. package/src/handlers/TimeoutHandler.js +94 -0
  93. package/src/handlers/index.js +70 -0
  94. package/src/handlers/monitoring/index.js +51 -0
  95. package/src/handlers/monitoring/plugins/health.js +61 -0
  96. package/src/handlers/monitoring/plugins/metrics.js +48 -0
  97. package/src/handlers/register.js +102 -0
  98. package/src/index.js +66 -0
  99. package/src/interface/admin-swagger.yaml +804 -0
  100. package/src/interface/admin_swagger.json +959 -0
  101. package/src/interface/api-swagger-iso20022-parties.yaml +1734 -0
  102. package/src/interface/api-swagger.yaml +1733 -0
  103. package/src/interface/api_swagger.json +3046 -0
  104. package/src/interface/fspiop-rest-v2.0-ISO20022_parties.yaml +2256 -0
  105. package/src/interface/thirdparty/admin-swagger.yaml +808 -0
  106. package/src/interface/thirdparty/admin_swagger.json +961 -0
  107. package/src/interface/thirdparty/api-swagger.yaml +1739 -0
  108. package/src/interface/thirdparty/api_swagger.json +3142 -0
  109. package/src/lib/argv.js +39 -0
  110. package/src/lib/cache.js +126 -0
  111. package/src/lib/config.js +183 -0
  112. package/src/lib/db.js +26 -0
  113. package/src/lib/headers.js +53 -0
  114. package/src/lib/healthCheck/subServiceHealth.js +84 -0
  115. package/src/lib/index.js +11 -0
  116. package/src/lib/migrator.js +17 -0
  117. package/src/lib/requestLogger.js +54 -0
  118. package/src/lib/util.js +66 -0
  119. package/src/metrics/handler.js +33 -0
  120. package/src/metrics/plugin.js +52 -0
  121. package/src/metrics/routes.js +43 -0
  122. package/src/models/currency/currency.js +48 -0
  123. package/src/models/currency/index.js +32 -0
  124. package/src/models/endpointType/endpointType.js +48 -0
  125. package/src/models/endpointType/index.js +32 -0
  126. package/src/models/misc/migrationLock.js +49 -0
  127. package/src/models/oracle/facade.js +341 -0
  128. package/src/models/oracle/index.js +41 -0
  129. package/src/models/oracle/oracleEndpoint.js +192 -0
  130. package/src/models/oracle/oracleEndpointCached.js +108 -0
  131. package/src/models/participantEndpoint/facade.js +238 -0
  132. package/src/models/partyIdType/index.js +32 -0
  133. package/src/models/partyIdType/partyIdType.js +41 -0
  134. package/src/plugins.js +139 -0
  135. package/src/server.js +199 -0
  136. package/test/fixtures/index.js +131 -0
  137. package/test/fixtures/iso.js +110 -0
  138. package/test/integration/.env +8 -0
  139. package/test/integration/api/parties.test.js +137 -0
  140. package/test/integration/constants.js +20 -0
  141. package/test/integration/domain/oracle/index.test.js +324 -0
  142. package/test/integration/domain/timeout/index.test.js +75 -0
  143. package/test/integration/env.sh +15 -0
  144. package/test/integration/example.test.js +12 -0
  145. package/test/integration/models/currency/currency.test.js +68 -0
  146. package/test/integration/plugins.test.js +62 -0
  147. package/test/integration/prepareTestParticipants.js +30 -0
  148. package/test/integration/setup.js +5 -0
  149. package/test/integration-config.json +81 -0
  150. package/test/integration-runner.sh +108 -0
  151. package/test/unit/api/health.test.js +142 -0
  152. package/test/unit/api/oracles/{ID}.test.js +264 -0
  153. package/test/unit/api/oracles.test.js +173 -0
  154. package/test/unit/api/participants/participants.test.js +117 -0
  155. package/test/unit/api/participants/{Type}/{ID}/error.test.js +155 -0
  156. package/test/unit/api/participants/{Type}/{ID}/{SubId}/error.test.js +131 -0
  157. package/test/unit/api/participants/{Type}/{ID}/{SubId}.test.js +377 -0
  158. package/test/unit/api/participants/{Type}/{ID}.test.js +383 -0
  159. package/test/unit/api/participants.test.js +108 -0
  160. package/test/unit/api/parties/endpointcache.test.js +83 -0
  161. package/test/unit/api/parties/parties.test.js +102 -0
  162. package/test/unit/api/parties/{Type}/{ID}/error.test.js +145 -0
  163. package/test/unit/api/parties/{Type}/{ID}/{SubId}/error.test.js +141 -0
  164. package/test/unit/api/parties/{Type}/{ID}/{SubId}.test.js +241 -0
  165. package/test/unit/api/parties/{Type}/{ID}.test.js +240 -0
  166. package/test/unit/domain/oracle/oracle.test.js +505 -0
  167. package/test/unit/domain/participants/participants.test.js +1724 -0
  168. package/test/unit/domain/parties/parties.test.js +940 -0
  169. package/test/unit/domain/timeout/dto.test.js +28 -0
  170. package/test/unit/domain/timeout/index.test.js +81 -0
  171. package/test/unit/handlers/TimeoutHandler.test.js +125 -0
  172. package/test/unit/handlers/index.test.js +56 -0
  173. package/test/unit/handlers/register.test.js +90 -0
  174. package/test/unit/index.test.js +139 -0
  175. package/test/unit/iso20022/partiesValidation.test.js +129 -0
  176. package/test/unit/lib/TransformFacades.test.js +18 -0
  177. package/test/unit/lib/argv.test.js +40 -0
  178. package/test/unit/lib/cache.test.js +172 -0
  179. package/test/unit/lib/config.test.js +108 -0
  180. package/test/unit/lib/healthCheck/subServiceHealth.test.js +89 -0
  181. package/test/unit/lib/migrator.test.js +52 -0
  182. package/test/unit/lib/requestLogger.test.js +115 -0
  183. package/test/unit/lib/util.test.js +68 -0
  184. package/test/unit/mocks.js +66 -0
  185. package/test/unit/models/currency/currency.test.js +91 -0
  186. package/test/unit/models/endpointType/endpointType.test.js +69 -0
  187. package/test/unit/models/misc/migrationLock.test.js +96 -0
  188. package/test/unit/models/oracle/facade.test.js +546 -0
  189. package/test/unit/models/oracle/oracleEndpoint.test.js +409 -0
  190. package/test/unit/models/oracle/oracleEndpointCached.test.js +153 -0
  191. package/test/unit/models/participantEndpoint/facade.test.js +295 -0
  192. package/test/unit/models/partyIdType/partyIdType.test.js +88 -0
  193. package/test/unit/plugins.test.js +89 -0
  194. package/test/unit/setup.js +7 -0
  195. package/test/util/apiClients/AlsApiClient.js +44 -0
  196. package/test/util/apiClients/BasicApiClient.js +34 -0
  197. package/test/util/apiClients/ProxyApiClient.js +25 -0
  198. package/test/util/apiClients/index.js +7 -0
  199. package/test/util/helper.js +332 -0
  200. package/test/util/index.js +11 -0
  201. package/test/util/mockgen.js +43 -0
  202. package/test/util/onboarding.js +132 -0
  203. package/test/util/scripts/addAlsDb.sh +33 -0
  204. package/test/util/scripts/configureMockServer.sh +35 -0
  205. package/test/util/scripts/env.sh +19 -0
  206. package/test/util/scripts/populateTestData.sh +62 -0
  207. package/test/util/scripts/startMockCentralServer.sh +45 -0
  208. package/test/util/scripts/startMockOracleServer.sh +45 -0
  209. package/test/util/testConfig.js +44 -0
@@ -0,0 +1,808 @@
1
+ openapi: 3.0.1
2
+ info:
3
+ title: Open API for ALS Admin API Extended
4
+ description: Open API for ALS Admin API
5
+ license:
6
+ name: Apache 2.0
7
+ version: "1.1"
8
+ servers:
9
+ - url: /
10
+ paths:
11
+ /oracles:
12
+ parameters:
13
+ - $ref: '#/components/parameters/Content-Type'
14
+ - $ref: '#/components/parameters/Date'
15
+ get:
16
+ tags:
17
+ - admin
18
+ - sampled
19
+ summary: Get Oracles
20
+ description: The HTTP request GET /oracles is used to return the list of all
21
+ oracle endpoints. There are optional fields for type and currency i.e. /admin/oracles?type=MSISDN&currency=USD
22
+ which can be used to get more filtered results or a specific entry
23
+ operationId: OraclesGet
24
+ parameters:
25
+ - $ref: '#/components/parameters/type'
26
+ - $ref: '#/components/parameters/currency'
27
+ - $ref: '#/components/parameters/Accept'
28
+ responses:
29
+ 200:
30
+ $ref: '#/components/responses/Response200'
31
+ 400:
32
+ $ref: '#/components/responses/ErrorResponse400'
33
+ 401:
34
+ $ref: '#/components/responses/ErrorResponse401'
35
+ 403:
36
+ $ref: '#/components/responses/ErrorResponse403'
37
+ 404:
38
+ $ref: '#/components/responses/ErrorResponse404'
39
+ 405:
40
+ $ref: '#/components/responses/ErrorResponse405'
41
+ 406:
42
+ $ref: '#/components/responses/ErrorResponse406'
43
+ 501:
44
+ $ref: '#/components/responses/ErrorResponse501'
45
+ 503:
46
+ $ref: '#/components/responses/ErrorResponse503'
47
+ post:
48
+ tags:
49
+ - admin
50
+ - sampled
51
+ summary: Create Oracles
52
+ description: The HTTP request POST /oracles is used to create information in
53
+ the server regarding the provided oracles. This request should be used for
54
+ creation of Oracle information.
55
+ operationId: OraclesPost
56
+ parameters:
57
+ - $ref: '#/components/parameters/Accept'
58
+ requestBody:
59
+ content:
60
+ application/json:
61
+ schema:
62
+ $ref: '#/components/schemas/OracleInfo'
63
+ required: true
64
+ responses:
65
+ 201:
66
+ $ref: '#/components/responses/Response201'
67
+ 400:
68
+ $ref: '#/components/responses/ErrorResponse400'
69
+ 401:
70
+ $ref: '#/components/responses/ErrorResponse401'
71
+ 403:
72
+ $ref: '#/components/responses/ErrorResponse403'
73
+ 404:
74
+ $ref: '#/components/responses/ErrorResponse404'
75
+ 405:
76
+ $ref: '#/components/responses/ErrorResponse405'
77
+ 406:
78
+ $ref: '#/components/responses/ErrorResponse406'
79
+ 501:
80
+ $ref: '#/components/responses/ErrorResponse501'
81
+ 503:
82
+ $ref: '#/components/responses/ErrorResponse503'
83
+ /oracles/{ID}:
84
+ parameters:
85
+ - $ref: '#/components/parameters/Content-Type'
86
+ - $ref: '#/components/parameters/Date'
87
+ - $ref: '#/components/parameters/ID'
88
+ put:
89
+ tags:
90
+ - admin
91
+ - sampled
92
+ summary: Update Oracle
93
+ description: The HTTP request PUT /oracles/{ID} is used to update information
94
+ in the server regarding the provided oracle. This request should be used for
95
+ individual update of Oracle information.
96
+ operationId: OraclesByIdPut
97
+ parameters:
98
+ - $ref: '#/components/parameters/Content-Length'
99
+ requestBody:
100
+ content:
101
+ application/json:
102
+ schema:
103
+ $ref: '#/components/schemas/OracleInfo'
104
+ required: true
105
+ responses:
106
+ 204:
107
+ $ref: '#/components/responses/Response204'
108
+ 400:
109
+ $ref: '#/components/responses/ErrorResponse400'
110
+ 401:
111
+ $ref: '#/components/responses/ErrorResponse401'
112
+ 403:
113
+ $ref: '#/components/responses/ErrorResponse403'
114
+ 404:
115
+ $ref: '#/components/responses/ErrorResponse404'
116
+ 405:
117
+ $ref: '#/components/responses/ErrorResponse405'
118
+ 406:
119
+ $ref: '#/components/responses/ErrorResponse406'
120
+ 501:
121
+ $ref: '#/components/responses/ErrorResponse501'
122
+ 503:
123
+ $ref: '#/components/responses/ErrorResponse503'
124
+ delete:
125
+ tags:
126
+ - admin
127
+ - sampled
128
+ summary: Delete Oracle
129
+ description: The HTTP request DELETE /oracles/{ID} is used to delete information
130
+ in the server regarding the provided oracle.
131
+ operationId: OraclesByIdDelete
132
+ parameters:
133
+ - $ref: '#/components/parameters/Accept'
134
+ responses:
135
+ 204:
136
+ $ref: '#/components/responses/Response204'
137
+ 400:
138
+ $ref: '#/components/responses/ErrorResponse400'
139
+ 401:
140
+ $ref: '#/components/responses/ErrorResponse401'
141
+ 403:
142
+ $ref: '#/components/responses/ErrorResponse403'
143
+ 404:
144
+ $ref: '#/components/responses/ErrorResponse404'
145
+ 405:
146
+ $ref: '#/components/responses/ErrorResponse405'
147
+ 406:
148
+ $ref: '#/components/responses/ErrorResponse406'
149
+ 501:
150
+ $ref: '#/components/responses/ErrorResponse501'
151
+ 503:
152
+ $ref: '#/components/responses/ErrorResponse503'
153
+ /health:
154
+ get:
155
+ tags:
156
+ - admin
157
+ summary: Get Oracles
158
+ description: The HTTP request GET /health is used to return the current status
159
+ of the Admin API.
160
+ operationId: HealthGet
161
+ responses:
162
+ 200:
163
+ $ref: '#/components/responses/ResponseHealth200'
164
+ 400:
165
+ $ref: '#/components/responses/ErrorResponse400'
166
+ 401:
167
+ $ref: '#/components/responses/ErrorResponse401'
168
+ 403:
169
+ $ref: '#/components/responses/ErrorResponse403'
170
+ 404:
171
+ $ref: '#/components/responses/ErrorResponse404'
172
+ 405:
173
+ $ref: '#/components/responses/ErrorResponse405'
174
+ 406:
175
+ $ref: '#/components/responses/ErrorResponse406'
176
+ 501:
177
+ $ref: '#/components/responses/ErrorResponse501'
178
+ 503:
179
+ $ref: '#/components/responses/ErrorResponse503'
180
+ components:
181
+ schemas:
182
+ ErrorCode:
183
+ title: ErrorCode
184
+ pattern: ^[1-9]\d{3}$
185
+ type: string
186
+ description: The API data type ErrorCode is a JSON String of four characters,
187
+ consisting of digits only. Negative numbers are not allowed. A leading zero
188
+ is not allowed. Each error code in the API is a four-digit number, for example,
189
+ 1234, where the first number (1 in the example) represents the high-level
190
+ error category, the second number (2 in the example) represents the low-level
191
+ error category, and the last two numbers (34 in the example) represents the
192
+ specific error.
193
+ ErrorDescription:
194
+ title: ErrorDescription
195
+ maxLength: 128
196
+ minLength: 1
197
+ type: string
198
+ description: Error description string.
199
+ ExtensionKey:
200
+ title: ExtensionKey
201
+ maxLength: 32
202
+ minLength: 1
203
+ type: string
204
+ description: Extension key.
205
+ ExtensionValue:
206
+ title: ExtensionValue
207
+ maxLength: 128
208
+ minLength: 1
209
+ type: string
210
+ description: Extension value.
211
+ Currency:
212
+ title: CurrencyEnum
213
+ maxLength: 3
214
+ minLength: 3
215
+ type: string
216
+ description: The currency codes defined in ISO 4217 as three-letter alphabetic
217
+ codes are used as the standard naming representation for currencies.
218
+ enum:
219
+ - AED
220
+ - AFN
221
+ - ALL
222
+ - AMD
223
+ - ANG
224
+ - AOA
225
+ - ARS
226
+ - AUD
227
+ - AWG
228
+ - AZN
229
+ - BAM
230
+ - BBD
231
+ - BDT
232
+ - BGN
233
+ - BHD
234
+ - BIF
235
+ - BMD
236
+ - BND
237
+ - BOB
238
+ - BRL
239
+ - BSD
240
+ - BTN
241
+ - BWP
242
+ - BYN
243
+ - BZD
244
+ - CAD
245
+ - CDF
246
+ - CHF
247
+ - CLP
248
+ - CNY
249
+ - COP
250
+ - CRC
251
+ - CUC
252
+ - CUP
253
+ - CVE
254
+ - CZK
255
+ - DJF
256
+ - DKK
257
+ - DOP
258
+ - DZD
259
+ - EGP
260
+ - ERN
261
+ - ETB
262
+ - EUR
263
+ - FJD
264
+ - FKP
265
+ - GBP
266
+ - GEL
267
+ - GGP
268
+ - GHS
269
+ - GIP
270
+ - GMD
271
+ - GNF
272
+ - GTQ
273
+ - GYD
274
+ - HKD
275
+ - HNL
276
+ - HRK
277
+ - HTG
278
+ - HUF
279
+ - IDR
280
+ - ILS
281
+ - IMP
282
+ - INR
283
+ - IQD
284
+ - IRR
285
+ - ISK
286
+ - JEP
287
+ - JMD
288
+ - JOD
289
+ - JPY
290
+ - KES
291
+ - KGS
292
+ - KHR
293
+ - KMF
294
+ - KPW
295
+ - KRW
296
+ - KWD
297
+ - KYD
298
+ - KZT
299
+ - LAK
300
+ - LBP
301
+ - LKR
302
+ - LRD
303
+ - LSL
304
+ - LYD
305
+ - MAD
306
+ - MDL
307
+ - MGA
308
+ - MKD
309
+ - MMK
310
+ - MNT
311
+ - MOP
312
+ - MRO
313
+ - MUR
314
+ - MVR
315
+ - MWK
316
+ - MXN
317
+ - MYR
318
+ - MZN
319
+ - NAD
320
+ - NGN
321
+ - NIO
322
+ - NOK
323
+ - NPR
324
+ - NZD
325
+ - OMR
326
+ - PAB
327
+ - PEN
328
+ - PGK
329
+ - PHP
330
+ - PKR
331
+ - PLN
332
+ - PYG
333
+ - QAR
334
+ - RON
335
+ - RSD
336
+ - RUB
337
+ - RWF
338
+ - SAR
339
+ - SBD
340
+ - SCR
341
+ - SDG
342
+ - SEK
343
+ - SGD
344
+ - SHP
345
+ - SLL
346
+ - SOS
347
+ - SPL
348
+ - SRD
349
+ - STD
350
+ - SVC
351
+ - SYP
352
+ - SZL
353
+ - THB
354
+ - TJS
355
+ - TMT
356
+ - TND
357
+ - TOP
358
+ - TRY
359
+ - TTD
360
+ - TVD
361
+ - TWD
362
+ - TZS
363
+ - UAH
364
+ - UGX
365
+ - USD
366
+ - UYU
367
+ - UZS
368
+ - VEF
369
+ - VND
370
+ - VUV
371
+ - WST
372
+ - XAF
373
+ - XCD
374
+ - XDR
375
+ - XOF
376
+ - XPF
377
+ - XTS
378
+ - XXX
379
+ - YER
380
+ - ZAR
381
+ - ZMW
382
+ - ZWD
383
+ ErrorInformation:
384
+ title: ErrorInformation
385
+ required:
386
+ - errorCode
387
+ - errorDescription
388
+ type: object
389
+ properties:
390
+ errorCode:
391
+ $ref: '#/components/schemas/ErrorCode'
392
+ errorDescription:
393
+ $ref: '#/components/schemas/ErrorDescription'
394
+ extensionList:
395
+ $ref: '#/components/schemas/ExtensionList'
396
+ description: Data model for the complex type ErrorInformation.
397
+ ErrorInformationResponse:
398
+ title: ErrorInformationResponse
399
+ type: object
400
+ properties:
401
+ errorInformation:
402
+ $ref: '#/components/schemas/ErrorInformation'
403
+ description: Data model for the complex type object that contains an optional
404
+ element ErrorInformation used along with 4xx and 5xx responses.
405
+ Extension:
406
+ title: Extension
407
+ required:
408
+ - key
409
+ - value
410
+ type: object
411
+ properties:
412
+ key:
413
+ $ref: '#/components/schemas/ExtensionKey'
414
+ value:
415
+ $ref: '#/components/schemas/ExtensionValue'
416
+ description: Data model for the complex type Extension
417
+ ExtensionList:
418
+ title: ExtensionList
419
+ required:
420
+ - extension
421
+ type: object
422
+ properties:
423
+ extension:
424
+ maxItems: 16
425
+ minItems: 1
426
+ type: array
427
+ description: Number of Extension elements
428
+ items:
429
+ $ref: '#/components/schemas/Extension'
430
+ description: Data model for the complex type ExtensionList
431
+ Endpoint:
432
+ title: Endpoint
433
+ required:
434
+ - endpointType
435
+ - value
436
+ type: object
437
+ properties:
438
+ value:
439
+ type: string
440
+ description: An endpoint for the Oracle.
441
+ endpointType:
442
+ $ref: '#/components/schemas/EndpointType'
443
+ description: Contains information about an endpoint
444
+ EndpointType:
445
+ title: EndpointType
446
+ type: string
447
+ description: The type of endpoint requested
448
+ enum:
449
+ - URL
450
+ HealthStatusType:
451
+ title: HealthStatusType
452
+ type: string
453
+ description: Below are the allowed values for the enumeration HealthStatusType
454
+ - OK - DOWN
455
+ enum:
456
+ - OK
457
+ - DOWN
458
+ HealthServicesType:
459
+ title: HealthServicesType
460
+ type: object
461
+ properties:
462
+ name:
463
+ type: string
464
+ status:
465
+ $ref: '#/components/schemas/HealthStatusType'
466
+ description: Data model for the complex type HealthServicesType. Contains health
467
+ services information.
468
+ OracleInfo:
469
+ title: OracleInfo
470
+ required:
471
+ - endpoint
472
+ - oracleIdType
473
+ type: object
474
+ properties:
475
+ oracleIdType:
476
+ $ref: '#/components/schemas/PartyIdType'
477
+ endpoint:
478
+ $ref: '#/components/schemas/Endpoint'
479
+ currency:
480
+ $ref: '#/components/schemas/Currency'
481
+ isDefault:
482
+ type: boolean
483
+ description: Is the endpoint default or not
484
+ description: Data model for the complex type OracleInfo.
485
+ OracleInfoGetResponse:
486
+ title: OracleInfoGetResponse
487
+ required:
488
+ - endpoint
489
+ - oracleIdType
490
+ type: object
491
+ properties:
492
+ oracleId:
493
+ type: string
494
+ description: Oracle type entry's unique identified
495
+ oracleIdType:
496
+ $ref: '#/components/schemas/PartyIdType'
497
+ endpoint:
498
+ $ref: '#/components/schemas/Endpoint'
499
+ currency:
500
+ $ref: '#/components/schemas/Currency'
501
+ isDefault:
502
+ type: boolean
503
+ description: Is the endpoint default or not
504
+ description: Data model for the complex type OracleInfo.
505
+ OracleInfoGetResponseList:
506
+ title: OracleInfoGetResponseList
507
+ type: array
508
+ description: List of OracleInfoGetResponse
509
+ items:
510
+ $ref: '#/components/schemas/OracleInfoGetResponse'
511
+ PartyIdType:
512
+ title: PartyIdTypeEnum
513
+ type: string
514
+ description: Below are the allowed values for the enumeration - MSISDN An MSISDN
515
+ (Mobile Station International Subscriber Directory Number, that is, the phone
516
+ number) is used as reference to a participant. The MSISDN identifier should
517
+ be in international format according to the ITU-T E.164 standard. Optionally,
518
+ the MSISDN may be prefixed by a single plus sign, indicating the international
519
+ prefix. - EMAIL An email is used as reference to a participant. The format
520
+ of the email should be according to the informational RFC 3696. - PERSONAL_ID
521
+ A personal identifier is used as reference to a participant. Examples of personal
522
+ identification are passport number, birth certificate number, and national
523
+ registration number. The identifier number is added in the PartyIdentifier
524
+ element. The personal identifier type is added in the PartySubIdOrType element.
525
+ - BUSINESS A specific Business (for example, an organization or a company)
526
+ is used as reference to a participant. The BUSINESS identifier can be in any
527
+ format. To make a transaction connected to a specific username or bill number
528
+ in a Business, the PartySubIdOrType element should be used. - DEVICE A specific
529
+ device (for example, a POS or ATM) ID connected to a specific business or
530
+ organization is used as reference to a Party. For referencing a specific device
531
+ under a specific business or organization, use the PartySubIdOrType element.
532
+ - ACCOUNT_ID A bank account number or FSP account ID should be used as reference
533
+ to a participant. The ACCOUNT_ID identifier can be in any format, as formats
534
+ can greatly differ depending on country and FSP. - IBAN A bank account number
535
+ or FSP account ID is used as reference to a participant. The IBAN identifier
536
+ can consist of up to 34 alphanumeric characters and should be entered without
537
+ whitespace. - ALIAS An alias is used as reference to a participant. The alias
538
+ should be created in the FSP as an alternative reference to an account owner.
539
+ Another example of an alias is a username in the FSP system. The ALIAS identifier
540
+ can be in any format. It is also possible to use the PartySubIdOrType element
541
+ for identifying an account under an Alias defined by the PartyIdentifier.
542
+ - CONSENT - TBD
543
+ - THIRD_PARTY_LINK - TBD
544
+ enum:
545
+ - MSISDN
546
+ - EMAIL
547
+ - PERSONAL_ID
548
+ - BUSINESS
549
+ - DEVICE
550
+ - ACCOUNT_ID
551
+ - IBAN
552
+ - ALIAS
553
+ - CONSENT
554
+ - THIRD_PARTY_LINK
555
+ Status:
556
+ title: Status
557
+ type: object
558
+ properties:
559
+ status:
560
+ type: string
561
+ description: The return status, usually "OK"
562
+ uptime:
563
+ type: number
564
+ description: The amount of time in seconds that the server has been up for.
565
+ startTime:
566
+ type: string
567
+ description: The UTC time that the server started up
568
+ versionNumber:
569
+ type: string
570
+ description: Current version of the API
571
+ services:
572
+ type: array
573
+ description: An list of the statuses of services that the API requires
574
+ items:
575
+ $ref: '#/components/schemas/HealthServicesType'
576
+ description: Data model for the api status.
577
+ responses:
578
+ ErrorResponse400:
579
+ description: Bad Request - The application cannot process the request; for example,
580
+ due to malformed syntax or the payload exceeded size restrictions.
581
+ headers:
582
+ Content-Length:
583
+ description: The Content-Length header field indicates the anticipated size
584
+ of the payload body. Only sent if there is a body.
585
+ schema:
586
+ type: integer
587
+ Content-Type:
588
+ description: The Content-Type header indicates the specific version of the
589
+ API used to send the payload body.
590
+ schema:
591
+ type: string
592
+ content:
593
+ application/json:
594
+ schema:
595
+ $ref: '#/components/schemas/ErrorInformationResponse'
596
+ ErrorResponse401:
597
+ description: Unauthorized - The request requires authentication in order to
598
+ be processed.
599
+ headers:
600
+ Content-Length:
601
+ description: The Content-Length header field indicates the anticipated size
602
+ of the payload body. Only sent if there is a body.
603
+ schema:
604
+ type: integer
605
+ Content-Type:
606
+ description: The Content-Type header indicates the specific version of the
607
+ API used to send the payload body.
608
+ schema:
609
+ type: string
610
+ content:
611
+ application/json:
612
+ schema:
613
+ $ref: '#/components/schemas/ErrorInformationResponse'
614
+ ErrorResponse403:
615
+ description: Forbidden - The request was denied and will be denied in the future.
616
+ headers:
617
+ Content-Length:
618
+ description: The Content-Length header field indicates the anticipated size
619
+ of the payload body. Only sent if there is a body.
620
+ schema:
621
+ type: integer
622
+ Content-Type:
623
+ description: The Content-Type header indicates the specific version of the
624
+ API used to send the payload body.
625
+ schema:
626
+ type: string
627
+ content:
628
+ application/json:
629
+ schema:
630
+ $ref: '#/components/schemas/ErrorInformationResponse'
631
+ ErrorResponse404:
632
+ description: Not Found - The resource specified in the URI was not found.
633
+ headers:
634
+ Content-Length:
635
+ description: The Content-Length header field indicates the anticipated size
636
+ of the payload body. Only sent if there is a body.
637
+ schema:
638
+ type: integer
639
+ Content-Type:
640
+ description: The Content-Type header indicates the specific version of the
641
+ API used to send the payload body.
642
+ schema:
643
+ type: string
644
+ content:
645
+ application/json:
646
+ schema:
647
+ $ref: '#/components/schemas/ErrorInformationResponse'
648
+ ErrorResponse405:
649
+ description: Method Not Allowed - An unsupported HTTP method for the request
650
+ was used.
651
+ headers:
652
+ Content-Length:
653
+ description: The Content-Length header field indicates the anticipated size
654
+ of the payload body. Only sent if there is a body.
655
+ schema:
656
+ type: integer
657
+ Content-Type:
658
+ description: The Content-Type header indicates the specific version of the
659
+ API used to send the payload body.
660
+ schema:
661
+ type: string
662
+ content:
663
+ application/json:
664
+ schema:
665
+ $ref: '#/components/schemas/ErrorInformationResponse'
666
+ ErrorResponse406:
667
+ description: Not acceptable - The server is not capable of generating content
668
+ according to the Accept headers sent in the request. Used in the API to indicate
669
+ that the server does not support the version that the client is requesting.
670
+ headers:
671
+ Content-Length:
672
+ description: The Content-Length header field indicates the anticipated size
673
+ of the payload body. Only sent if there is a body.
674
+ schema:
675
+ type: integer
676
+ Content-Type:
677
+ description: The Content-Type header indicates the specific version of the
678
+ API used to send the payload body.
679
+ schema:
680
+ type: string
681
+ content:
682
+ application/json:
683
+ schema:
684
+ $ref: '#/components/schemas/ErrorInformationResponse'
685
+ ErrorResponse501:
686
+ description: Not Implemented - The server does not support the requested service.
687
+ The client should not retry.
688
+ headers:
689
+ Content-Length:
690
+ description: The Content-Length header field indicates the anticipated size
691
+ of the payload body. Only sent if there is a body.
692
+ schema:
693
+ type: integer
694
+ Content-Type:
695
+ description: The Content-Type header indicates the specific version of the
696
+ API used to send the payload body.
697
+ schema:
698
+ type: string
699
+ content:
700
+ application/json:
701
+ schema:
702
+ $ref: '#/components/schemas/ErrorInformationResponse'
703
+ ErrorResponse503:
704
+ description: Service Unavailable - The server is currently unavailable to accept
705
+ any new service requests. This should be a temporary state, and the client
706
+ should retry within a reasonable time frame.
707
+ headers:
708
+ Content-Length:
709
+ description: The Content-Length header field indicates the anticipated size
710
+ of the payload body. Only sent if there is a body.
711
+ schema:
712
+ type: integer
713
+ Content-Type:
714
+ description: The Content-Type header indicates the specific version of the
715
+ API used to send the payload body.
716
+ schema:
717
+ type: string
718
+ content:
719
+ application/json:
720
+ schema:
721
+ $ref: '#/components/schemas/ErrorInformationResponse'
722
+ Response200:
723
+ description: OK
724
+ headers:
725
+ Content-Length:
726
+ description: The Content-Length header field indicates the anticipated size
727
+ of the payload body. Only sent if there is a body.
728
+ schema:
729
+ type: integer
730
+ Content-Type:
731
+ description: The Content-Type header indicates the specific version of the
732
+ API used to send the payload body.
733
+ schema:
734
+ type: string
735
+ content:
736
+ application/json:
737
+ schema:
738
+ $ref: '#/components/schemas/OracleInfoGetResponseList'
739
+ Response201:
740
+ description: Created
741
+ content: {}
742
+ Response204:
743
+ description: No Content
744
+ content: {}
745
+ ResponseHealth200:
746
+ description: OK
747
+ content:
748
+ application/json:
749
+ schema:
750
+ $ref: '#/components/schemas/Status'
751
+ parameters:
752
+ Accept:
753
+ name: accept
754
+ in: header
755
+ description: The Accept header field indicates the version of the API the client
756
+ would like the server to use.
757
+ required: true
758
+ schema:
759
+ type: string
760
+ Accept-Optional:
761
+ name: accept
762
+ in: header
763
+ description: The Accept header field indicates the version of the API the client
764
+ would like the server to use.
765
+ schema:
766
+ type: string
767
+ Content-Length:
768
+ name: content-length
769
+ in: header
770
+ description: The Content-Length header field indicates the anticipated size
771
+ of the payload body. Only sent if there is a body. Note - The API supports
772
+ a maximum size of 5242880 bytes (5 Megabytes)
773
+ schema:
774
+ type: integer
775
+ Content-Type:
776
+ name: content-type
777
+ in: header
778
+ description: The Content-Type header indicates the specific version of the API
779
+ used to send the payload body.
780
+ required: true
781
+ schema:
782
+ type: string
783
+ Date:
784
+ name: date
785
+ in: header
786
+ description: The Date header field indicates the date when the request was sent.
787
+ required: true
788
+ schema:
789
+ type: string
790
+ ID:
791
+ name: ID
792
+ in: path
793
+ description: ID relating to the oracle endpoint entry
794
+ required: true
795
+ schema:
796
+ type: string
797
+ type:
798
+ name: type
799
+ in: query
800
+ description: type of oracle entry
801
+ schema:
802
+ type: string
803
+ currency:
804
+ name: currency
805
+ in: query
806
+ description: currency relating to the oracle endpoint entry
807
+ schema:
808
+ type: string