@lanes-sh/link 0.3.2 → 0.4.1

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 (69) hide show
  1. package/README.md +11 -3
  2. package/instructions/agents/lanes-link-scout.md +2 -2
  3. package/instructions/skills/lanes-link/SKILL.md +135 -11
  4. package/package.json +3 -1
  5. package/src/cli/argv.ts +52 -0
  6. package/src/cli/commands/connect/authorise.ts +5 -0
  7. package/src/cli/commands/connect/custom/ask.ts +167 -0
  8. package/src/cli/commands/connect/custom/credential.ts +143 -0
  9. package/src/cli/commands/connect/custom/derive.ts +229 -0
  10. package/src/cli/commands/connect/custom/index.ts +285 -0
  11. package/src/cli/commands/connect/custom/prompts.ts +160 -0
  12. package/src/cli/commands/connect/custom/spec.ts +293 -0
  13. package/src/cli/commands/connect/custom/values.ts +53 -0
  14. package/src/cli/commands/connect/custom/write.ts +166 -0
  15. package/src/cli/commands/connect/grant.ts +27 -0
  16. package/src/cli/commands/connect/index.ts +24 -27
  17. package/src/cli/commands/connect/outcome.ts +3 -1
  18. package/src/cli/commands/connect/requirements.ts +11 -1
  19. package/src/cli/commands/connect/settle.ts +17 -0
  20. package/src/cli/commands/connect/setup.ts +9 -1
  21. package/src/cli/commands/connect/strategy.ts +87 -0
  22. package/src/cli/commands/connect/unknown.ts +41 -0
  23. package/src/cli/commands/mcp/list.ts +123 -29
  24. package/src/cli/identity.ts +29 -5
  25. package/src/cli/main.ts +42 -14
  26. package/src/cli/oauth.ts +89 -36
  27. package/src/cli/runtime/open.ts +13 -1
  28. package/src/cli/runtime/registry.ts +12 -0
  29. package/src/cli/selection.ts +12 -0
  30. package/src/cli/usage.ts +9 -1
  31. package/src/connectivity/auth/README.md +8 -1
  32. package/src/connectivity/auth/strategy/index.ts +128 -4
  33. package/src/connectivity/connector.ts +11 -0
  34. package/src/connectivity/index.ts +11 -1
  35. package/src/connectivity/manifest/auth.ts +19 -0
  36. package/src/connectivity/manifest/connector.ts +21 -0
  37. package/src/connectivity/manifest/primitives.ts +5 -1
  38. package/src/connectivity/manifest/provider.ts +30 -12
  39. package/src/connectivity/provider.ts +55 -0
  40. package/src/connectivity/transports/factory.ts +1 -0
  41. package/src/connectivity/transports/http/index.ts +73 -2
  42. package/src/dispatch/dispatch.ts +44 -5
  43. package/src/providers/bunq/hints.ts +45 -0
  44. package/src/providers/bunq/index.ts +87 -0
  45. package/src/providers/bunq/redact.ts +75 -0
  46. package/src/providers/bunq/specs/bunq.v1.json +883 -0
  47. package/src/providers/bunq/specs/vendor.ts +396 -0
  48. package/src/providers/bunq/strategy/handshake.ts +211 -0
  49. package/src/providers/bunq/strategy/index.ts +298 -0
  50. package/src/providers/bunq/strategy/keys.ts +72 -0
  51. package/src/providers/custom/index.ts +1 -6
  52. package/src/providers/custom/load.ts +56 -14
  53. package/src/providers/custom/template.ts +1 -1
  54. package/src/providers/discord/hints.ts +195 -0
  55. package/src/providers/discord/index.ts +121 -0
  56. package/src/providers/discord/redact.ts +99 -0
  57. package/src/providers/discord/specs/discord.v10.json +2333 -0
  58. package/src/providers/discord/specs/vendor.ts +164 -0
  59. package/src/providers/google/specs/vendor.ts +32 -317
  60. package/src/providers/index.ts +9 -0
  61. package/src/providers/reddit/index.ts +113 -0
  62. package/src/providers/reddit/oauth.ts +77 -0
  63. package/src/providers/reddit/redact.ts +33 -0
  64. package/src/providers/reddit/scopes.ts +27 -0
  65. package/src/providers/reddit/specs/reddit.v1.json +700 -0
  66. package/src/providers/scopes.ts +2 -0
  67. package/src/providers/shared/openapi.ts +155 -0
  68. package/src/providers/shared/vendor-operations.ts +179 -0
  69. package/src/providers/shared/vendor-spec.ts +309 -0
@@ -0,0 +1,883 @@
1
+ {
2
+ "openapi": "3.0.0",
3
+ "info": {
4
+ "title": "bunq API",
5
+ "description": "Trimmed from the published bunq specification. See x-vendored-from for the original, and https://doc.bunq.com for the reference.",
6
+ "termsOfService": "http://bunq.com/terms-api/",
7
+ "contact": {
8
+ "name": "bunq Developer Support",
9
+ "url": "http://bunq.com/developer"
10
+ },
11
+ "license": {
12
+ "name": "Apache 2.0",
13
+ "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
14
+ },
15
+ "version": "1.0",
16
+ "x-vendored-from": "https://raw.githubusercontent.com/bunq/doc/master/swagger.json",
17
+ "x-vendored-note": "Trimmed by src/providers/bunq/specs/vendor.ts. Committed deliberately: a spec decides which paths are called with the operator credential, and this one can move money."
18
+ },
19
+ "servers": [
20
+ {
21
+ "url": "https://api.bunq.com/v1"
22
+ }
23
+ ],
24
+ "paths": {
25
+ "/user/{userID}/monetary-account/{monetary-accountID}/draft-payment": {
26
+ "post": {
27
+ "tags": [
28
+ "draft-payment"
29
+ ],
30
+ "summary": "",
31
+ "operationId": "CREATE_DraftPayment_for_User_MonetaryAccount",
32
+ "description": "Create a new DraftPayment.",
33
+ "parameters": [
34
+ {
35
+ "in": "path",
36
+ "name": "userID",
37
+ "description": "",
38
+ "required": true,
39
+ "schema": {
40
+ "type": "integer"
41
+ }
42
+ },
43
+ {
44
+ "in": "path",
45
+ "name": "monetary-accountID",
46
+ "description": "",
47
+ "required": true,
48
+ "schema": {
49
+ "type": "integer"
50
+ }
51
+ }
52
+ ],
53
+ "requestBody": {
54
+ "description": "",
55
+ "required": true,
56
+ "content": {
57
+ "application/json": {
58
+ "schema": {
59
+ "$ref": "#/components/schemas/DraftPayment"
60
+ }
61
+ }
62
+ }
63
+ },
64
+ "responses": {
65
+ "200": {
66
+ "description": "Success. The response body is returned verbatim."
67
+ }
68
+ }
69
+ },
70
+ "get": {
71
+ "tags": [
72
+ "draft-payment"
73
+ ],
74
+ "summary": "",
75
+ "operationId": "List_all_DraftPayment_for_User_MonetaryAccount",
76
+ "description": "Get a listing of all DraftPayments from a given MonetaryAccount.",
77
+ "parameters": [
78
+ {
79
+ "in": "path",
80
+ "name": "userID",
81
+ "description": "",
82
+ "required": true,
83
+ "schema": {
84
+ "type": "integer"
85
+ }
86
+ },
87
+ {
88
+ "in": "path",
89
+ "name": "monetary-accountID",
90
+ "description": "",
91
+ "required": true,
92
+ "schema": {
93
+ "type": "integer"
94
+ }
95
+ }
96
+ ],
97
+ "responses": {
98
+ "200": {
99
+ "description": "Success. The response body is returned verbatim."
100
+ }
101
+ }
102
+ }
103
+ },
104
+ "/user/{userID}/monetary-account/{monetary-accountID}/draft-payment/{itemId}": {
105
+ "put": {
106
+ "tags": [
107
+ "draft-payment"
108
+ ],
109
+ "summary": "",
110
+ "operationId": "UPDATE_DraftPayment_for_User_MonetaryAccount",
111
+ "description": "Update a DraftPayment.",
112
+ "parameters": [
113
+ {
114
+ "in": "path",
115
+ "name": "userID",
116
+ "description": "",
117
+ "required": true,
118
+ "schema": {
119
+ "type": "integer"
120
+ }
121
+ },
122
+ {
123
+ "in": "path",
124
+ "name": "monetary-accountID",
125
+ "description": "",
126
+ "required": true,
127
+ "schema": {
128
+ "type": "integer"
129
+ }
130
+ },
131
+ {
132
+ "in": "path",
133
+ "name": "itemId",
134
+ "description": "",
135
+ "required": true,
136
+ "schema": {
137
+ "type": "integer"
138
+ }
139
+ }
140
+ ],
141
+ "requestBody": {
142
+ "description": "",
143
+ "required": true,
144
+ "content": {
145
+ "application/json": {
146
+ "schema": {
147
+ "type": "object",
148
+ "description": "The whole of what this call takes. bunq refuses any other field here as superfluous — the rest of the schema it shares belongs to the call that creates one.",
149
+ "properties": {
150
+ "status": {
151
+ "type": "string",
152
+ "description": "The status of the DraftPayment.",
153
+ "readOnly": false,
154
+ "writeOnly": false
155
+ },
156
+ "previous_updated_timestamp": {
157
+ "type": "string",
158
+ "description": "The last updated_timestamp that you received for this DraftPayment. This needs to be provided to prevent race conditions.",
159
+ "readOnly": false,
160
+ "writeOnly": true
161
+ }
162
+ },
163
+ "required": [
164
+ "status",
165
+ "previous_updated_timestamp"
166
+ ]
167
+ }
168
+ }
169
+ }
170
+ },
171
+ "responses": {
172
+ "200": {
173
+ "description": "Success. The response body is returned verbatim."
174
+ }
175
+ }
176
+ },
177
+ "get": {
178
+ "tags": [
179
+ "draft-payment"
180
+ ],
181
+ "summary": "",
182
+ "operationId": "READ_DraftPayment_for_User_MonetaryAccount",
183
+ "description": "Get a specific DraftPayment.",
184
+ "parameters": [
185
+ {
186
+ "in": "path",
187
+ "name": "userID",
188
+ "description": "",
189
+ "required": true,
190
+ "schema": {
191
+ "type": "integer"
192
+ }
193
+ },
194
+ {
195
+ "in": "path",
196
+ "name": "monetary-accountID",
197
+ "description": "",
198
+ "required": true,
199
+ "schema": {
200
+ "type": "integer"
201
+ }
202
+ },
203
+ {
204
+ "in": "path",
205
+ "name": "itemId",
206
+ "description": "",
207
+ "required": true,
208
+ "schema": {
209
+ "type": "integer"
210
+ }
211
+ }
212
+ ],
213
+ "responses": {
214
+ "200": {
215
+ "description": "Success. The response body is returned verbatim."
216
+ }
217
+ }
218
+ }
219
+ },
220
+ "/user/{userID}/monetary-account": {
221
+ "get": {
222
+ "tags": [
223
+ "monetary-account"
224
+ ],
225
+ "summary": "",
226
+ "operationId": "List_all_MonetaryAccount_for_User",
227
+ "description": "Get a collection of all your MonetaryAccounts.",
228
+ "parameters": [
229
+ {
230
+ "in": "path",
231
+ "name": "userID",
232
+ "description": "",
233
+ "required": true,
234
+ "schema": {
235
+ "type": "integer"
236
+ }
237
+ }
238
+ ],
239
+ "responses": {
240
+ "200": {
241
+ "description": "Success. The response body is returned verbatim."
242
+ }
243
+ }
244
+ }
245
+ },
246
+ "/user/{userID}/monetary-account/{monetary-accountID}/payment": {
247
+ "post": {
248
+ "tags": [
249
+ "payment"
250
+ ],
251
+ "summary": "",
252
+ "operationId": "CREATE_Payment_for_User_MonetaryAccount",
253
+ "description": "Create a new Payment.",
254
+ "parameters": [
255
+ {
256
+ "in": "path",
257
+ "name": "userID",
258
+ "description": "",
259
+ "required": true,
260
+ "schema": {
261
+ "type": "integer"
262
+ }
263
+ },
264
+ {
265
+ "in": "path",
266
+ "name": "monetary-accountID",
267
+ "description": "",
268
+ "required": true,
269
+ "schema": {
270
+ "type": "integer"
271
+ }
272
+ }
273
+ ],
274
+ "requestBody": {
275
+ "description": "",
276
+ "required": true,
277
+ "content": {
278
+ "application/json": {
279
+ "schema": {
280
+ "$ref": "#/components/schemas/Payment"
281
+ }
282
+ }
283
+ }
284
+ },
285
+ "responses": {
286
+ "200": {
287
+ "description": "Success. The response body is returned verbatim."
288
+ }
289
+ }
290
+ },
291
+ "get": {
292
+ "tags": [
293
+ "payment"
294
+ ],
295
+ "summary": "",
296
+ "operationId": "List_all_Payment_for_User_MonetaryAccount",
297
+ "description": "Get a listing of all Payments performed on a given MonetaryAccount (incoming and outgoing).",
298
+ "parameters": [
299
+ {
300
+ "in": "path",
301
+ "name": "userID",
302
+ "description": "",
303
+ "required": true,
304
+ "schema": {
305
+ "type": "integer"
306
+ }
307
+ },
308
+ {
309
+ "in": "path",
310
+ "name": "monetary-accountID",
311
+ "description": "",
312
+ "required": true,
313
+ "schema": {
314
+ "type": "integer"
315
+ }
316
+ }
317
+ ],
318
+ "responses": {
319
+ "200": {
320
+ "description": "Success. The response body is returned verbatim."
321
+ }
322
+ }
323
+ }
324
+ },
325
+ "/user/{userID}/monetary-account/{monetary-accountID}/payment/{itemId}": {
326
+ "get": {
327
+ "tags": [
328
+ "payment"
329
+ ],
330
+ "summary": "",
331
+ "operationId": "READ_Payment_for_User_MonetaryAccount",
332
+ "description": "Get a specific previous Payment.",
333
+ "parameters": [
334
+ {
335
+ "in": "path",
336
+ "name": "userID",
337
+ "description": "",
338
+ "required": true,
339
+ "schema": {
340
+ "type": "integer"
341
+ }
342
+ },
343
+ {
344
+ "in": "path",
345
+ "name": "monetary-accountID",
346
+ "description": "",
347
+ "required": true,
348
+ "schema": {
349
+ "type": "integer"
350
+ }
351
+ },
352
+ {
353
+ "in": "path",
354
+ "name": "itemId",
355
+ "description": "",
356
+ "required": true,
357
+ "schema": {
358
+ "type": "integer"
359
+ }
360
+ }
361
+ ],
362
+ "responses": {
363
+ "200": {
364
+ "description": "Success. The response body is returned verbatim."
365
+ }
366
+ }
367
+ }
368
+ },
369
+ "/user/{userID}/monetary-account/{monetary-accountID}/payment-batch": {
370
+ "post": {
371
+ "tags": [
372
+ "payment-batch"
373
+ ],
374
+ "summary": "",
375
+ "operationId": "CREATE_PaymentBatch_for_User_MonetaryAccount",
376
+ "description": "Create a payment batch by sending an array of single payment objects, that will become part of the batch.",
377
+ "parameters": [
378
+ {
379
+ "in": "path",
380
+ "name": "userID",
381
+ "description": "",
382
+ "required": true,
383
+ "schema": {
384
+ "type": "integer"
385
+ }
386
+ },
387
+ {
388
+ "in": "path",
389
+ "name": "monetary-accountID",
390
+ "description": "",
391
+ "required": true,
392
+ "schema": {
393
+ "type": "integer"
394
+ }
395
+ }
396
+ ],
397
+ "requestBody": {
398
+ "description": "",
399
+ "required": true,
400
+ "content": {
401
+ "application/json": {
402
+ "schema": {
403
+ "$ref": "#/components/schemas/PaymentBatch"
404
+ }
405
+ }
406
+ }
407
+ },
408
+ "responses": {
409
+ "200": {
410
+ "description": "Success. The response body is returned verbatim."
411
+ }
412
+ }
413
+ },
414
+ "get": {
415
+ "tags": [
416
+ "payment-batch"
417
+ ],
418
+ "summary": "",
419
+ "operationId": "List_all_PaymentBatch_for_User_MonetaryAccount",
420
+ "description": "Return all the payment batches for a monetary account.",
421
+ "parameters": [
422
+ {
423
+ "in": "path",
424
+ "name": "userID",
425
+ "description": "",
426
+ "required": true,
427
+ "schema": {
428
+ "type": "integer"
429
+ }
430
+ },
431
+ {
432
+ "in": "path",
433
+ "name": "monetary-accountID",
434
+ "description": "",
435
+ "required": true,
436
+ "schema": {
437
+ "type": "integer"
438
+ }
439
+ }
440
+ ],
441
+ "responses": {
442
+ "200": {
443
+ "description": "Success. The response body is returned verbatim."
444
+ }
445
+ }
446
+ }
447
+ },
448
+ "/user": {
449
+ "get": {
450
+ "tags": [
451
+ "user"
452
+ ],
453
+ "summary": "",
454
+ "operationId": "List_all_User",
455
+ "description": "Get a collection of all available users.",
456
+ "responses": {
457
+ "200": {
458
+ "description": "Success. The response body is returned verbatim."
459
+ }
460
+ }
461
+ }
462
+ }
463
+ },
464
+ "components": {
465
+ "schemas": {
466
+ "Address": {
467
+ "type": "object",
468
+ "properties": {
469
+ "street": {
470
+ "type": "string",
471
+ "description": "The street.",
472
+ "readOnly": false,
473
+ "writeOnly": false
474
+ },
475
+ "house_number": {
476
+ "type": "string",
477
+ "description": "The house number.",
478
+ "readOnly": false,
479
+ "writeOnly": false
480
+ },
481
+ "po_box": {
482
+ "type": "string",
483
+ "description": "The PO box.",
484
+ "readOnly": false,
485
+ "writeOnly": false
486
+ },
487
+ "postal_code": {
488
+ "type": "string",
489
+ "description": "The postal code.",
490
+ "readOnly": false,
491
+ "writeOnly": false
492
+ },
493
+ "city": {
494
+ "type": "string",
495
+ "description": "The city.",
496
+ "readOnly": false,
497
+ "writeOnly": false
498
+ },
499
+ "country": {
500
+ "type": "string",
501
+ "description": "The country as an ISO 3166-1 alpha-2 country code.",
502
+ "readOnly": false,
503
+ "writeOnly": false
504
+ },
505
+ "extra": {
506
+ "type": "string",
507
+ "description": "The apartment, building or other extra information for addresses.",
508
+ "readOnly": false,
509
+ "writeOnly": false
510
+ },
511
+ "mailbox_name": {
512
+ "type": "string",
513
+ "description": "The name on the mailbox (only used for Postal and Shipping addresses).",
514
+ "readOnly": false,
515
+ "writeOnly": false
516
+ }
517
+ }
518
+ },
519
+ "Amount": {
520
+ "type": "object",
521
+ "properties": {
522
+ "value": {
523
+ "type": "string",
524
+ "description": "The amount formatted to two decimal places.",
525
+ "readOnly": false,
526
+ "writeOnly": false
527
+ },
528
+ "currency": {
529
+ "type": "string",
530
+ "description": "The currency of the amount. It is an ISO 4217 formatted currency code.",
531
+ "readOnly": false,
532
+ "writeOnly": false
533
+ }
534
+ }
535
+ },
536
+ "AttachmentMonetaryAccountPayment": {
537
+ "type": "object",
538
+ "properties": {
539
+ "id": {
540
+ "type": "integer",
541
+ "description": "The id of the attached Attachment.",
542
+ "readOnly": false,
543
+ "writeOnly": false
544
+ }
545
+ }
546
+ },
547
+ "Avatar": {
548
+ "type": "object",
549
+ "properties": {
550
+ "uuid": {
551
+ "type": "string",
552
+ "description": "The public UUID of the avatar.",
553
+ "readOnly": false,
554
+ "writeOnly": false
555
+ }
556
+ }
557
+ },
558
+ "DraftPayment": {
559
+ "type": "object",
560
+ "properties": {
561
+ "status": {
562
+ "type": "string",
563
+ "description": "The status of the DraftPayment.",
564
+ "readOnly": false,
565
+ "writeOnly": false
566
+ },
567
+ "entries": {
568
+ "type": "array",
569
+ "description": "The list of entries in the DraftPayment. Each entry will result in a payment when the DraftPayment is accepted.",
570
+ "readOnly": false,
571
+ "writeOnly": false,
572
+ "items": {
573
+ "$ref": "#/components/schemas/DraftPaymentEntry"
574
+ }
575
+ },
576
+ "previous_updated_timestamp": {
577
+ "type": "string",
578
+ "description": "The last updated_timestamp that you received for this DraftPayment. This needs to be provided to prevent race conditions.",
579
+ "readOnly": false,
580
+ "writeOnly": true
581
+ },
582
+ "number_of_required_accepts": {
583
+ "type": "integer",
584
+ "description": "The number of accepts that are required for the draft payment to receive status ACCEPTED. Currently only 1 is valid.",
585
+ "readOnly": false,
586
+ "writeOnly": true
587
+ },
588
+ "schedule": {
589
+ "type": "object",
590
+ "description": "The schedule details when creating or updating a scheduled payment.",
591
+ "readOnly": false,
592
+ "writeOnly": false,
593
+ "$ref": "#/components/schemas/Schedule"
594
+ }
595
+ },
596
+ "required": [
597
+ "entries",
598
+ "number_of_required_accepts"
599
+ ]
600
+ },
601
+ "DraftPaymentEntry": {
602
+ "type": "object",
603
+ "properties": {
604
+ "amount": {
605
+ "type": "object",
606
+ "description": "The amount of the payment.",
607
+ "readOnly": false,
608
+ "writeOnly": false,
609
+ "$ref": "#/components/schemas/Amount"
610
+ },
611
+ "counterparty_alias": {
612
+ "type": "object",
613
+ "description": "The LabelMonetaryAccount containing the public information of the other (counterparty) side of the DraftPayment.",
614
+ "readOnly": false,
615
+ "writeOnly": false,
616
+ "$ref": "#/components/schemas/LabelMonetaryAccount"
617
+ },
618
+ "description": {
619
+ "type": "string",
620
+ "description": "The description for the DraftPayment. Maximum 140 characters for DraftPayments to external IBANs, 9000 characters for DraftPayments to only other bunq MonetaryAccounts.",
621
+ "readOnly": false,
622
+ "writeOnly": false
623
+ },
624
+ "merchant_reference": {
625
+ "type": "string",
626
+ "description": "Optional data to be included with the Payment specific to the merchant.",
627
+ "readOnly": false,
628
+ "writeOnly": false
629
+ },
630
+ "attachment": {
631
+ "type": "array",
632
+ "description": "The Attachments attached to the DraftPayment.",
633
+ "readOnly": false,
634
+ "writeOnly": false,
635
+ "items": {
636
+ "$ref": "#/components/schemas/AttachmentMonetaryAccountPayment"
637
+ }
638
+ }
639
+ }
640
+ },
641
+ "Error": {
642
+ "type": "array",
643
+ "items": {
644
+ "type": "object",
645
+ "properties": {
646
+ "error_description": {
647
+ "type": "string",
648
+ "description": "The error description in English."
649
+ },
650
+ "error_description_translated": {
651
+ "type": "string",
652
+ "description": "The error description translated to the user's language."
653
+ }
654
+ }
655
+ }
656
+ },
657
+ "Geolocation": {
658
+ "type": "object",
659
+ "properties": {
660
+ "latitude": {
661
+ "type": "integer",
662
+ "description": "The latitude for a geolocation restriction.",
663
+ "readOnly": false,
664
+ "writeOnly": false
665
+ },
666
+ "longitude": {
667
+ "type": "integer",
668
+ "description": "The longitude for a geolocation restriction.",
669
+ "readOnly": false,
670
+ "writeOnly": false
671
+ },
672
+ "altitude": {
673
+ "type": "integer",
674
+ "description": "The altitude for a geolocation restriction.",
675
+ "readOnly": false,
676
+ "writeOnly": false
677
+ },
678
+ "radius": {
679
+ "type": "integer",
680
+ "description": "The radius for a geolocation restriction.",
681
+ "readOnly": false,
682
+ "writeOnly": false
683
+ }
684
+ }
685
+ },
686
+ "GinmonTransaction": {
687
+ "type": "object",
688
+ "additionalProperties": true,
689
+ "description": "Every field bunq documents here is read-only, so its request shape is not described by the specification — send the object the tool description names."
690
+ },
691
+ "Image": {
692
+ "type": "object",
693
+ "additionalProperties": true,
694
+ "description": "Every field bunq documents here is read-only, so its request shape is not described by the specification — send the object the tool description names."
695
+ },
696
+ "LabelMonetaryAccount": {
697
+ "type": "object",
698
+ "additionalProperties": true,
699
+ "description": "Every field bunq documents here is read-only, so its request shape is not described by the specification — send the object the tool description names."
700
+ },
701
+ "LabelUser": {
702
+ "type": "object",
703
+ "properties": {
704
+ "uuid": {
705
+ "type": "string",
706
+ "description": "The public UUID of the label-user.",
707
+ "readOnly": false,
708
+ "writeOnly": false
709
+ },
710
+ "display_name": {
711
+ "type": "string",
712
+ "description": "The name to be displayed for this user, as it was given on the request.",
713
+ "readOnly": false,
714
+ "writeOnly": false
715
+ },
716
+ "country": {
717
+ "type": "string",
718
+ "description": "The country of the user. 000 stands for \"unknown\"",
719
+ "readOnly": false,
720
+ "writeOnly": false
721
+ }
722
+ }
723
+ },
724
+ "Payment": {
725
+ "type": "object",
726
+ "properties": {
727
+ "amount": {
728
+ "type": "object",
729
+ "description": "The Amount transferred by the Payment. Will be negative for outgoing Payments and positive for incoming Payments (relative to the MonetaryAccount indicated by monetary_account_id).",
730
+ "readOnly": false,
731
+ "writeOnly": false,
732
+ "$ref": "#/components/schemas/Amount"
733
+ },
734
+ "counterparty_alias": {
735
+ "type": "object",
736
+ "description": "The LabelMonetaryAccount containing the public information of the other (counterparty) side of the Payment.",
737
+ "readOnly": false,
738
+ "writeOnly": false,
739
+ "$ref": "#/components/schemas/LabelMonetaryAccount"
740
+ },
741
+ "description": {
742
+ "type": "string",
743
+ "description": "The description for the Payment. Maximum 140 characters for Payments to external IBANs, 9000 characters for Payments to only other bunq MonetaryAccounts.",
744
+ "readOnly": false,
745
+ "writeOnly": false
746
+ },
747
+ "attachment": {
748
+ "type": "array",
749
+ "description": "The Attachments attached to the Payment.",
750
+ "readOnly": false,
751
+ "writeOnly": false,
752
+ "items": {
753
+ "$ref": "#/components/schemas/AttachmentMonetaryAccountPayment"
754
+ }
755
+ },
756
+ "merchant_reference": {
757
+ "type": "string",
758
+ "description": "Optional data included with the Payment specific to the merchant.",
759
+ "readOnly": false,
760
+ "writeOnly": false
761
+ },
762
+ "allow_bunqto": {
763
+ "type": "boolean",
764
+ "description": "Whether or not sending a bunq.to payment is allowed.",
765
+ "readOnly": false,
766
+ "writeOnly": true
767
+ }
768
+ }
769
+ },
770
+ "PaymentArrivalExpected": {
771
+ "type": "object",
772
+ "additionalProperties": true,
773
+ "description": "Every field bunq documents here is read-only, so its request shape is not described by the specification — send the object the tool description names."
774
+ },
775
+ "PaymentAutoAllocateInstance": {
776
+ "type": "object",
777
+ "additionalProperties": true,
778
+ "description": "Every field bunq documents here is read-only, so its request shape is not described by the specification — send the object the tool description names."
779
+ },
780
+ "PaymentBatch": {
781
+ "type": "object",
782
+ "properties": {
783
+ "payments": {
784
+ "type": "object",
785
+ "description": "The list of mutations that were made.",
786
+ "readOnly": false,
787
+ "writeOnly": false,
788
+ "$ref": "#/components/schemas/PaymentBatchAnchoredPayment"
789
+ }
790
+ }
791
+ },
792
+ "PaymentBatchAnchoredPayment": {
793
+ "type": "object",
794
+ "additionalProperties": true,
795
+ "description": "Every field bunq documents here is read-only, so its request shape is not described by the specification — send the object the tool description names."
796
+ },
797
+ "PaymentFee": {
798
+ "type": "object",
799
+ "additionalProperties": true,
800
+ "description": "Every field bunq documents here is read-only, so its request shape is not described by the specification — send the object the tool description names."
801
+ },
802
+ "PaymentSuspendedOutgoing": {
803
+ "type": "object",
804
+ "properties": {
805
+ "status": {
806
+ "type": "string",
807
+ "description": "The status of the payment.",
808
+ "readOnly": false,
809
+ "writeOnly": false
810
+ }
811
+ }
812
+ },
813
+ "Pointer": {
814
+ "type": "object",
815
+ "properties": {
816
+ "type": {
817
+ "type": "string",
818
+ "description": "The alias type, can be: EMAIL|PHONE_NUMBER|IBAN.",
819
+ "readOnly": false,
820
+ "writeOnly": false
821
+ },
822
+ "value": {
823
+ "type": "string",
824
+ "description": "The alias value.",
825
+ "readOnly": false,
826
+ "writeOnly": false
827
+ },
828
+ "name": {
829
+ "type": "string",
830
+ "description": "The alias name.",
831
+ "readOnly": false,
832
+ "writeOnly": false
833
+ },
834
+ "service": {
835
+ "type": "string",
836
+ "description": "The pointer service. Only required for external counterparties.",
837
+ "readOnly": false,
838
+ "writeOnly": true
839
+ }
840
+ }
841
+ },
842
+ "RequestInquiryReference": {
843
+ "type": "object",
844
+ "additionalProperties": true,
845
+ "description": "Every field bunq documents here is read-only, so its request shape is not described by the specification — send the object the tool description names."
846
+ },
847
+ "Schedule": {
848
+ "type": "object",
849
+ "properties": {
850
+ "time_start": {
851
+ "type": "string",
852
+ "description": "The schedule start time (UTC).",
853
+ "readOnly": false,
854
+ "writeOnly": false
855
+ },
856
+ "time_end": {
857
+ "type": "string",
858
+ "description": "The schedule end time (UTC).",
859
+ "readOnly": false,
860
+ "writeOnly": false
861
+ },
862
+ "recurrence_unit": {
863
+ "type": "string",
864
+ "description": "The schedule recurrence unit, options: ONCE, HOURLY, DAILY, WEEKLY, MONTHLY, YEARLY",
865
+ "readOnly": false,
866
+ "writeOnly": false
867
+ },
868
+ "recurrence_size": {
869
+ "type": "integer",
870
+ "description": "The schedule recurrence size. For example size 4 and unit WEEKLY means the recurrence is every 4 weeks.",
871
+ "readOnly": false,
872
+ "writeOnly": false
873
+ }
874
+ }
875
+ },
876
+ "ScheduleAnchorObject": {
877
+ "type": "object",
878
+ "additionalProperties": true,
879
+ "description": "Every field bunq documents here is read-only, so its request shape is not described by the specification — send the object the tool description names."
880
+ }
881
+ }
882
+ }
883
+ }