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,804 @@
1
+ openapi: 3.0.1
2
+ info:
3
+ title: Open API for ALS Admin API
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
+ enum:
543
+ - MSISDN
544
+ - EMAIL
545
+ - PERSONAL_ID
546
+ - BUSINESS
547
+ - DEVICE
548
+ - ACCOUNT_ID
549
+ - IBAN
550
+ - ALIAS
551
+ Status:
552
+ title: Status
553
+ type: object
554
+ properties:
555
+ status:
556
+ type: string
557
+ description: The return status, usually "OK"
558
+ uptime:
559
+ type: number
560
+ description: The amount of time in seconds that the server has been up for.
561
+ startTime:
562
+ type: string
563
+ description: The UTC time that the server started up
564
+ versionNumber:
565
+ type: string
566
+ description: Current version of the API
567
+ services:
568
+ type: array
569
+ description: An list of the statuses of services that the API requires
570
+ items:
571
+ $ref: '#/components/schemas/HealthServicesType'
572
+ description: Data model for the api status.
573
+ responses:
574
+ ErrorResponse400:
575
+ description: Bad Request - The application cannot process the request; for example,
576
+ due to malformed syntax or the payload exceeded size restrictions.
577
+ headers:
578
+ Content-Length:
579
+ description: The Content-Length header field indicates the anticipated size
580
+ of the payload body. Only sent if there is a body.
581
+ schema:
582
+ type: integer
583
+ Content-Type:
584
+ description: The Content-Type header indicates the specific version of the
585
+ API used to send the payload body.
586
+ schema:
587
+ type: string
588
+ content:
589
+ application/json:
590
+ schema:
591
+ $ref: '#/components/schemas/ErrorInformationResponse'
592
+ ErrorResponse401:
593
+ description: Unauthorized - The request requires authentication in order to
594
+ be processed.
595
+ headers:
596
+ Content-Length:
597
+ description: The Content-Length header field indicates the anticipated size
598
+ of the payload body. Only sent if there is a body.
599
+ schema:
600
+ type: integer
601
+ Content-Type:
602
+ description: The Content-Type header indicates the specific version of the
603
+ API used to send the payload body.
604
+ schema:
605
+ type: string
606
+ content:
607
+ application/json:
608
+ schema:
609
+ $ref: '#/components/schemas/ErrorInformationResponse'
610
+ ErrorResponse403:
611
+ description: Forbidden - The request was denied and will be denied in the future.
612
+ headers:
613
+ Content-Length:
614
+ description: The Content-Length header field indicates the anticipated size
615
+ of the payload body. Only sent if there is a body.
616
+ schema:
617
+ type: integer
618
+ Content-Type:
619
+ description: The Content-Type header indicates the specific version of the
620
+ API used to send the payload body.
621
+ schema:
622
+ type: string
623
+ content:
624
+ application/json:
625
+ schema:
626
+ $ref: '#/components/schemas/ErrorInformationResponse'
627
+ ErrorResponse404:
628
+ description: Not Found - The resource specified in the URI was not found.
629
+ headers:
630
+ Content-Length:
631
+ description: The Content-Length header field indicates the anticipated size
632
+ of the payload body. Only sent if there is a body.
633
+ schema:
634
+ type: integer
635
+ Content-Type:
636
+ description: The Content-Type header indicates the specific version of the
637
+ API used to send the payload body.
638
+ schema:
639
+ type: string
640
+ content:
641
+ application/json:
642
+ schema:
643
+ $ref: '#/components/schemas/ErrorInformationResponse'
644
+ ErrorResponse405:
645
+ description: Method Not Allowed - An unsupported HTTP method for the request
646
+ was used.
647
+ headers:
648
+ Content-Length:
649
+ description: The Content-Length header field indicates the anticipated size
650
+ of the payload body. Only sent if there is a body.
651
+ schema:
652
+ type: integer
653
+ Content-Type:
654
+ description: The Content-Type header indicates the specific version of the
655
+ API used to send the payload body.
656
+ schema:
657
+ type: string
658
+ content:
659
+ application/json:
660
+ schema:
661
+ $ref: '#/components/schemas/ErrorInformationResponse'
662
+ ErrorResponse406:
663
+ description: Not acceptable - The server is not capable of generating content
664
+ according to the Accept headers sent in the request. Used in the API to indicate
665
+ that the server does not support the version that the client is requesting.
666
+ headers:
667
+ Content-Length:
668
+ description: The Content-Length header field indicates the anticipated size
669
+ of the payload body. Only sent if there is a body.
670
+ schema:
671
+ type: integer
672
+ Content-Type:
673
+ description: The Content-Type header indicates the specific version of the
674
+ API used to send the payload body.
675
+ schema:
676
+ type: string
677
+ content:
678
+ application/json:
679
+ schema:
680
+ $ref: '#/components/schemas/ErrorInformationResponse'
681
+ ErrorResponse501:
682
+ description: Not Implemented - The server does not support the requested service.
683
+ The client should not retry.
684
+ headers:
685
+ Content-Length:
686
+ description: The Content-Length header field indicates the anticipated size
687
+ of the payload body. Only sent if there is a body.
688
+ schema:
689
+ type: integer
690
+ Content-Type:
691
+ description: The Content-Type header indicates the specific version of the
692
+ API used to send the payload body.
693
+ schema:
694
+ type: string
695
+ content:
696
+ application/json:
697
+ schema:
698
+ $ref: '#/components/schemas/ErrorInformationResponse'
699
+ ErrorResponse503:
700
+ description: Service Unavailable - The server is currently unavailable to accept
701
+ any new service requests. This should be a temporary state, and the client
702
+ should retry within a reasonable time frame.
703
+ headers:
704
+ Content-Length:
705
+ description: The Content-Length header field indicates the anticipated size
706
+ of the payload body. Only sent if there is a body.
707
+ schema:
708
+ type: integer
709
+ Content-Type:
710
+ description: The Content-Type header indicates the specific version of the
711
+ API used to send the payload body.
712
+ schema:
713
+ type: string
714
+ content:
715
+ application/json:
716
+ schema:
717
+ $ref: '#/components/schemas/ErrorInformationResponse'
718
+ Response200:
719
+ description: OK
720
+ headers:
721
+ Content-Length:
722
+ description: The Content-Length header field indicates the anticipated size
723
+ of the payload body. Only sent if there is a body.
724
+ schema:
725
+ type: integer
726
+ Content-Type:
727
+ description: The Content-Type header indicates the specific version of the
728
+ API used to send the payload body.
729
+ schema:
730
+ type: string
731
+ content:
732
+ application/json:
733
+ schema:
734
+ $ref: '#/components/schemas/OracleInfoGetResponseList'
735
+ Response201:
736
+ description: Created
737
+ content: {}
738
+ Response204:
739
+ description: No Content
740
+ content: {}
741
+ ResponseHealth200:
742
+ description: OK
743
+ content:
744
+ application/json:
745
+ schema:
746
+ $ref: '#/components/schemas/Status'
747
+ parameters:
748
+ Accept:
749
+ name: accept
750
+ in: header
751
+ description: The Accept header field indicates the version of the API the client
752
+ would like the server to use.
753
+ required: true
754
+ schema:
755
+ type: string
756
+ Accept-Optional:
757
+ name: accept
758
+ in: header
759
+ description: The Accept header field indicates the version of the API the client
760
+ would like the server to use.
761
+ schema:
762
+ type: string
763
+ Content-Length:
764
+ name: content-length
765
+ in: header
766
+ description: The Content-Length header field indicates the anticipated size
767
+ of the payload body. Only sent if there is a body. Note - The API supports
768
+ a maximum size of 5242880 bytes (5 Megabytes)
769
+ schema:
770
+ type: integer
771
+ Content-Type:
772
+ name: content-type
773
+ in: header
774
+ description: The Content-Type header indicates the specific version of the API
775
+ used to send the payload body.
776
+ required: true
777
+ schema:
778
+ type: string
779
+ Date:
780
+ name: date
781
+ in: header
782
+ description: The Date header field indicates the date when the request was sent.
783
+ required: true
784
+ schema:
785
+ type: string
786
+ ID:
787
+ name: ID
788
+ in: path
789
+ description: ID relating to the oracle endpoint entry
790
+ required: true
791
+ schema:
792
+ type: string
793
+ type:
794
+ name: type
795
+ in: query
796
+ description: type of oracle entry
797
+ schema:
798
+ type: string
799
+ currency:
800
+ name: currency
801
+ in: query
802
+ description: currency relating to the oracle endpoint entry
803
+ schema:
804
+ type: string