@mhome/messaging-protocol 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +71 -0
  3. package/fixtures/actor-link-claim-confirm.request.json +1 -0
  4. package/fixtures/actor-link-claim-confirm.response.json +1 -0
  5. package/fixtures/actor-link-claim-event.response.json +1 -0
  6. package/fixtures/actor-link-claim-status.request.json +1 -0
  7. package/fixtures/actor-link-claim-status.response.json +1 -0
  8. package/fixtures/actor-link-code-create.request.json +1 -0
  9. package/fixtures/actor-link-code-create.response.json +1 -0
  10. package/fixtures/actor-link-delete.request.json +1 -0
  11. package/fixtures/actor-link-delete.response.json +1 -0
  12. package/fixtures/actor-link-list.request.json +1 -0
  13. package/fixtures/actor-link-list.response.json +1 -0
  14. package/fixtures/invalid/mismatched-direction.json +5 -0
  15. package/fixtures/invalid/missing-required-extension.json +5 -0
  16. package/fixtures/invalid/unknown-request-field.json +5 -0
  17. package/fixtures/messaging-commands.conformance.json +20 -0
  18. package/fixtures/normalized-inbound.conformance.json +148 -0
  19. package/fixtures/normalized-inbound.shared-text.json +25 -0
  20. package/fixtures/provider-account-delete.request.json +9 -0
  21. package/fixtures/provider-account-delete.response.json +5 -0
  22. package/fixtures/provider-account-list.request.json +5 -0
  23. package/fixtures/provider-account-list.response.json +21 -0
  24. package/fixtures/provider-account-status.request.json +5 -0
  25. package/fixtures/provider-account-status.response.json +12 -0
  26. package/fixtures/provider-account-test.request.json +5 -0
  27. package/fixtures/provider-account-test.response.json +5 -0
  28. package/fixtures/provider-account-update.request.json +10 -0
  29. package/fixtures/provider-account-update.response.json +15 -0
  30. package/fixtures/provider-list.request.json +14 -0
  31. package/fixtures/provider-list.response.json +31 -0
  32. package/fixtures/route-delete.request.json +5 -0
  33. package/fixtures/route-delete.response.json +5 -0
  34. package/fixtures/route-list.request.json +5 -0
  35. package/fixtures/route-list.response.json +37 -0
  36. package/fixtures/route-update.request.json +12 -0
  37. package/fixtures/route-update.response.json +20 -0
  38. package/fixtures/setup-options.request.json +5 -0
  39. package/fixtures/setup-options.response.json +5 -0
  40. package/fixtures/setup-start.request.json +9 -0
  41. package/fixtures/setup-start.response.json +12 -0
  42. package/fixtures/setup-status.request.json +5 -0
  43. package/fixtures/setup-status.response.json +14 -0
  44. package/fixtures/shared-account-grant-create.request.json +5 -0
  45. package/fixtures/shared-account-grant-create.response.json +5 -0
  46. package/fixtures/shared-account-grant-delete.request.json +5 -0
  47. package/fixtures/shared-account-grant-delete.response.json +5 -0
  48. package/fixtures/shared-account-grant-list.request.json +5 -0
  49. package/fixtures/shared-account-grant-list.response.json +9 -0
  50. package/fixtures/surface-bind-code-create.request.json +1 -0
  51. package/fixtures/surface-bind-code-create.response.json +1 -0
  52. package/fixtures/surface-dismiss.request.json +1 -0
  53. package/fixtures/surface-dismiss.response.json +1 -0
  54. package/fixtures/surface-list.request.json +1 -0
  55. package/fixtures/surface-list.response.json +1 -0
  56. package/manifest/targets.v1.json +57 -0
  57. package/package.json +43 -0
  58. package/protocol.json +16 -0
  59. package/schema/messaging-commands.v1.schema.json +67 -0
  60. package/schema/messaging-frame.v3.schema.json +2534 -0
  61. package/schema/normalized-inbound.v4.schema.json +117 -0
@@ -0,0 +1,2534 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:mhome:messaging-api:frame:v3",
4
+ "title": "mHome messaging management API conformance frame v3",
5
+ "$ref": "#/$defs/frame",
6
+ "$defs": {
7
+ "id": {
8
+ "type": "string",
9
+ "minLength": 1
10
+ },
11
+ "providerId": {
12
+ "type": "string",
13
+ "pattern": "^[a-z][a-z0-9_]*$"
14
+ },
15
+ "placement": {
16
+ "enum": [
17
+ "local",
18
+ "cloud"
19
+ ]
20
+ },
21
+ "extension": {
22
+ "type": "object"
23
+ },
24
+ "audience": {
25
+ "enum": [
26
+ "personal",
27
+ "shared"
28
+ ]
29
+ },
30
+ "contentCapability": {
31
+ "enum": [
32
+ "text",
33
+ "markdown",
34
+ "image",
35
+ "audio",
36
+ "video",
37
+ "file",
38
+ "action"
39
+ ]
40
+ },
41
+ "deliveryMode": {
42
+ "enum": [
43
+ "unrestricted",
44
+ "session_window"
45
+ ]
46
+ },
47
+ "managementOperation": {
48
+ "enum": [
49
+ "provider_account.list",
50
+ "provider_account.update",
51
+ "provider_account.delete",
52
+ "provider_account.test",
53
+ "provider_account.status",
54
+ "shared_account_grant.create",
55
+ "shared_account_grant.delete",
56
+ "shared_account_grant.list",
57
+ "route.list",
58
+ "route.update",
59
+ "route.delete",
60
+ "setup.options",
61
+ "setup.start",
62
+ "setup.status",
63
+ "surface.list",
64
+ "surface.dismiss",
65
+ "surface.bind_code.create",
66
+ "actor.link_code.create",
67
+ "actor.link_claim.status",
68
+ "actor.link_claim.confirm",
69
+ "actor.link.list",
70
+ "actor.link.delete"
71
+ ]
72
+ },
73
+ "frontendProvider": {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "required": [
77
+ "provider",
78
+ "deprecated",
79
+ "supportedPlacements"
80
+ ],
81
+ "properties": {
82
+ "provider": {
83
+ "$ref": "#/$defs/providerId"
84
+ },
85
+ "deprecated": {
86
+ "type": "boolean"
87
+ },
88
+ "supportedPlacements": {
89
+ "type": "array",
90
+ "minItems": 1,
91
+ "uniqueItems": true,
92
+ "items": {
93
+ "$ref": "#/$defs/placement"
94
+ }
95
+ }
96
+ }
97
+ },
98
+ "providerMetadata": {
99
+ "type": "object",
100
+ "additionalProperties": false,
101
+ "required": [
102
+ "provider",
103
+ "displayName",
104
+ "placement",
105
+ "deprecated",
106
+ "available",
107
+ "setupFlow",
108
+ "audiences",
109
+ "inboundCapabilities",
110
+ "outboundCapabilities",
111
+ "deliveryMode",
112
+ "managementOperations",
113
+ "providerData"
114
+ ],
115
+ "properties": {
116
+ "provider": {
117
+ "$ref": "#/$defs/providerId"
118
+ },
119
+ "displayName": {
120
+ "$ref": "#/$defs/id"
121
+ },
122
+ "placement": {
123
+ "$ref": "#/$defs/placement"
124
+ },
125
+ "deprecated": {
126
+ "type": "boolean"
127
+ },
128
+ "available": {
129
+ "type": "boolean"
130
+ },
131
+ "disabledReason": {
132
+ "$ref": "#/$defs/id"
133
+ },
134
+ "setupFlow": {
135
+ "$ref": "#/$defs/id"
136
+ },
137
+ "audiences": {
138
+ "type": "array",
139
+ "uniqueItems": true,
140
+ "items": {
141
+ "$ref": "#/$defs/audience"
142
+ }
143
+ },
144
+ "inboundCapabilities": {
145
+ "type": "array",
146
+ "uniqueItems": true,
147
+ "items": {
148
+ "$ref": "#/$defs/contentCapability"
149
+ }
150
+ },
151
+ "outboundCapabilities": {
152
+ "type": "array",
153
+ "uniqueItems": true,
154
+ "items": {
155
+ "$ref": "#/$defs/contentCapability"
156
+ }
157
+ },
158
+ "deliveryMode": {
159
+ "$ref": "#/$defs/deliveryMode"
160
+ },
161
+ "managementOperations": {
162
+ "type": "array",
163
+ "uniqueItems": true,
164
+ "items": {
165
+ "$ref": "#/$defs/managementOperation"
166
+ }
167
+ },
168
+ "providerData": {
169
+ "$ref": "#/$defs/extension"
170
+ }
171
+ }
172
+ },
173
+ "providerAccountOwnership": {
174
+ "enum": [
175
+ "system",
176
+ "user"
177
+ ]
178
+ },
179
+ "providerAccount": {
180
+ "type": "object",
181
+ "additionalProperties": false,
182
+ "required": [
183
+ "provider",
184
+ "placement",
185
+ "accountId",
186
+ "ownership",
187
+ "enabled",
188
+ "status",
189
+ "providerData"
190
+ ],
191
+ "properties": {
192
+ "provider": {
193
+ "$ref": "#/$defs/providerId"
194
+ },
195
+ "placement": {
196
+ "$ref": "#/$defs/placement"
197
+ },
198
+ "accountId": {
199
+ "$ref": "#/$defs/id"
200
+ },
201
+ "ownership": {
202
+ "$ref": "#/$defs/providerAccountOwnership"
203
+ },
204
+ "displayName": {
205
+ "$ref": "#/$defs/id"
206
+ },
207
+ "enabled": {
208
+ "type": "boolean"
209
+ },
210
+ "status": {
211
+ "$ref": "#/$defs/id"
212
+ },
213
+ "statusMessage": {
214
+ "$ref": "#/$defs/id"
215
+ },
216
+ "providerData": {
217
+ "$ref": "#/$defs/extension"
218
+ }
219
+ }
220
+ },
221
+ "providerStatus": {
222
+ "type": "object",
223
+ "additionalProperties": false,
224
+ "required": [
225
+ "provider",
226
+ "placement",
227
+ "enabled",
228
+ "providerData"
229
+ ],
230
+ "properties": {
231
+ "provider": {
232
+ "$ref": "#/$defs/providerId"
233
+ },
234
+ "placement": {
235
+ "$ref": "#/$defs/placement"
236
+ },
237
+ "enabled": {
238
+ "type": "boolean"
239
+ },
240
+ "providerData": {
241
+ "$ref": "#/$defs/extension"
242
+ }
243
+ }
244
+ },
245
+ "sharedAccountGrant": {
246
+ "type": "object",
247
+ "additionalProperties": false,
248
+ "required": [
249
+ "provider",
250
+ "placement",
251
+ "accountId",
252
+ "tenantId",
253
+ "scopeId",
254
+ "grantedByUserId",
255
+ "createdAtMs",
256
+ "updatedAtMs"
257
+ ],
258
+ "properties": {
259
+ "provider": {
260
+ "$ref": "#/$defs/providerId"
261
+ },
262
+ "placement": {
263
+ "$ref": "#/$defs/placement"
264
+ },
265
+ "accountId": {
266
+ "$ref": "#/$defs/id"
267
+ },
268
+ "tenantId": {
269
+ "$ref": "#/$defs/id"
270
+ },
271
+ "scopeId": {
272
+ "$ref": "#/$defs/id"
273
+ },
274
+ "grantedByUserId": {
275
+ "$ref": "#/$defs/id"
276
+ },
277
+ "createdAtMs": {
278
+ "type": "integer"
279
+ },
280
+ "updatedAtMs": {
281
+ "type": "integer"
282
+ }
283
+ }
284
+ },
285
+ "messagingRoute": {
286
+ "oneOf": [
287
+ {
288
+ "type": "object",
289
+ "additionalProperties": false,
290
+ "required": [
291
+ "audience",
292
+ "provider",
293
+ "placement",
294
+ "routeId",
295
+ "accountId",
296
+ "conversationId",
297
+ "externalActorId",
298
+ "tenantId",
299
+ "userId",
300
+ "scopeId",
301
+ "enabled",
302
+ "providerData"
303
+ ],
304
+ "properties": {
305
+ "audience": {
306
+ "const": "personal"
307
+ },
308
+ "provider": {
309
+ "$ref": "#/$defs/providerId"
310
+ },
311
+ "placement": {
312
+ "$ref": "#/$defs/placement"
313
+ },
314
+ "routeId": {
315
+ "$ref": "#/$defs/id"
316
+ },
317
+ "accountId": {
318
+ "$ref": "#/$defs/id"
319
+ },
320
+ "conversationId": {
321
+ "$ref": "#/$defs/id"
322
+ },
323
+ "tenantId": {
324
+ "$ref": "#/$defs/id"
325
+ },
326
+ "scopeId": {
327
+ "$ref": "#/$defs/id"
328
+ },
329
+ "displayName": {
330
+ "$ref": "#/$defs/id"
331
+ },
332
+ "enabled": {
333
+ "type": "boolean"
334
+ },
335
+ "providerData": {
336
+ "$ref": "#/$defs/extension"
337
+ },
338
+ "externalActorId": {
339
+ "$ref": "#/$defs/id"
340
+ },
341
+ "userId": {
342
+ "$ref": "#/$defs/id"
343
+ }
344
+ }
345
+ },
346
+ {
347
+ "type": "object",
348
+ "additionalProperties": false,
349
+ "required": [
350
+ "audience",
351
+ "provider",
352
+ "placement",
353
+ "routeId",
354
+ "accountId",
355
+ "conversationId",
356
+ "tenantId",
357
+ "scopeId",
358
+ "boundByUserId",
359
+ "enabled",
360
+ "providerData"
361
+ ],
362
+ "properties": {
363
+ "audience": {
364
+ "const": "shared"
365
+ },
366
+ "provider": {
367
+ "$ref": "#/$defs/providerId"
368
+ },
369
+ "placement": {
370
+ "$ref": "#/$defs/placement"
371
+ },
372
+ "routeId": {
373
+ "$ref": "#/$defs/id"
374
+ },
375
+ "accountId": {
376
+ "$ref": "#/$defs/id"
377
+ },
378
+ "conversationId": {
379
+ "$ref": "#/$defs/id"
380
+ },
381
+ "tenantId": {
382
+ "$ref": "#/$defs/id"
383
+ },
384
+ "scopeId": {
385
+ "$ref": "#/$defs/id"
386
+ },
387
+ "displayName": {
388
+ "$ref": "#/$defs/id"
389
+ },
390
+ "enabled": {
391
+ "type": "boolean"
392
+ },
393
+ "providerData": {
394
+ "$ref": "#/$defs/extension"
395
+ },
396
+ "boundByUserId": {
397
+ "$ref": "#/$defs/id"
398
+ }
399
+ }
400
+ }
401
+ ]
402
+ },
403
+ "setupAction": {
404
+ "type": "object",
405
+ "additionalProperties": false,
406
+ "required": [
407
+ "type"
408
+ ],
409
+ "properties": {
410
+ "type": {
411
+ "$ref": "#/$defs/id"
412
+ },
413
+ "url": {
414
+ "type": "string",
415
+ "format": "uri"
416
+ }
417
+ }
418
+ },
419
+ "setupState": {
420
+ "type": "object",
421
+ "additionalProperties": false,
422
+ "required": [
423
+ "status",
424
+ "providerData"
425
+ ],
426
+ "properties": {
427
+ "setupId": {
428
+ "$ref": "#/$defs/id"
429
+ },
430
+ "status": {
431
+ "$ref": "#/$defs/id"
432
+ },
433
+ "expiresAtMs": {
434
+ "type": "integer",
435
+ "minimum": 0
436
+ },
437
+ "action": {
438
+ "$ref": "#/$defs/setupAction"
439
+ },
440
+ "providerData": {
441
+ "$ref": "#/$defs/extension"
442
+ },
443
+ "accountId": {
444
+ "$ref": "#/$defs/id"
445
+ },
446
+ "routeId": {
447
+ "$ref": "#/$defs/id"
448
+ },
449
+ "message": {
450
+ "type": "string"
451
+ }
452
+ }
453
+ },
454
+ "surfaceState": {
455
+ "enum": [
456
+ "pending",
457
+ "bound",
458
+ "dismissed"
459
+ ]
460
+ },
461
+ "messagingSurface": {
462
+ "type": "object",
463
+ "additionalProperties": false,
464
+ "required": [
465
+ "provider",
466
+ "placement",
467
+ "accountId",
468
+ "surfaceId",
469
+ "state",
470
+ "firstSeenAtMs",
471
+ "lastSeenAtMs"
472
+ ],
473
+ "properties": {
474
+ "provider": {
475
+ "$ref": "#/$defs/providerId"
476
+ },
477
+ "placement": {
478
+ "$ref": "#/$defs/placement"
479
+ },
480
+ "accountId": {
481
+ "$ref": "#/$defs/id"
482
+ },
483
+ "surfaceId": {
484
+ "$ref": "#/$defs/id"
485
+ },
486
+ "displayName": {
487
+ "$ref": "#/$defs/id"
488
+ },
489
+ "state": {
490
+ "$ref": "#/$defs/surfaceState"
491
+ },
492
+ "scopeId": {
493
+ "$ref": "#/$defs/id"
494
+ },
495
+ "firstSeenAtMs": {
496
+ "type": "integer",
497
+ "minimum": 0
498
+ },
499
+ "lastSeenAtMs": {
500
+ "type": "integer",
501
+ "minimum": 0
502
+ }
503
+ }
504
+ },
505
+ "challengeCode": {
506
+ "type": "object",
507
+ "additionalProperties": false,
508
+ "required": [
509
+ "code",
510
+ "command",
511
+ "expiresAtMs"
512
+ ],
513
+ "properties": {
514
+ "code": {
515
+ "$ref": "#/$defs/id"
516
+ },
517
+ "command": {
518
+ "$ref": "#/$defs/id"
519
+ },
520
+ "expiresAtMs": {
521
+ "type": "integer",
522
+ "minimum": 0
523
+ }
524
+ }
525
+ },
526
+ "actorLinkView": {
527
+ "type": "object",
528
+ "additionalProperties": false,
529
+ "required": [
530
+ "linkId",
531
+ "provider",
532
+ "placement",
533
+ "accountId",
534
+ "externalUserId",
535
+ "createdAtMs",
536
+ "updatedAtMs"
537
+ ],
538
+ "properties": {
539
+ "linkId": {
540
+ "$ref": "#/$defs/id"
541
+ },
542
+ "provider": {
543
+ "$ref": "#/$defs/providerId"
544
+ },
545
+ "placement": {
546
+ "$ref": "#/$defs/placement"
547
+ },
548
+ "accountId": {
549
+ "$ref": "#/$defs/id"
550
+ },
551
+ "externalUserId": {
552
+ "$ref": "#/$defs/id"
553
+ },
554
+ "displayName": {
555
+ "$ref": "#/$defs/id"
556
+ },
557
+ "createdAtMs": {
558
+ "type": "integer",
559
+ "minimum": 0
560
+ },
561
+ "updatedAtMs": {
562
+ "type": "integer",
563
+ "minimum": 0
564
+ }
565
+ }
566
+ },
567
+ "mutationBody": {
568
+ "type": "object",
569
+ "additionalProperties": false,
570
+ "required": [
571
+ "success"
572
+ ],
573
+ "properties": {
574
+ "success": {
575
+ "type": "boolean"
576
+ }
577
+ }
578
+ },
579
+ "providerListBody": {
580
+ "type": "object",
581
+ "additionalProperties": false,
582
+ "required": [
583
+ "placement",
584
+ "frontendProviders"
585
+ ],
586
+ "properties": {
587
+ "placement": {
588
+ "$ref": "#/$defs/placement"
589
+ },
590
+ "frontendProviders": {
591
+ "type": "array",
592
+ "items": {
593
+ "$ref": "#/$defs/frontendProvider"
594
+ }
595
+ }
596
+ }
597
+ },
598
+ "providerPlacementBody": {
599
+ "type": "object",
600
+ "additionalProperties": false,
601
+ "required": [
602
+ "provider",
603
+ "placement"
604
+ ],
605
+ "properties": {
606
+ "provider": {
607
+ "$ref": "#/$defs/providerId"
608
+ },
609
+ "placement": {
610
+ "$ref": "#/$defs/placement"
611
+ }
612
+ }
613
+ },
614
+ "providerAccountUpdateBody": {
615
+ "type": "object",
616
+ "additionalProperties": false,
617
+ "required": [
618
+ "provider",
619
+ "placement",
620
+ "accountId",
621
+ "data"
622
+ ],
623
+ "properties": {
624
+ "provider": {
625
+ "$ref": "#/$defs/providerId"
626
+ },
627
+ "placement": {
628
+ "$ref": "#/$defs/placement"
629
+ },
630
+ "accountId": {
631
+ "$ref": "#/$defs/id"
632
+ },
633
+ "data": {
634
+ "$ref": "#/$defs/extension"
635
+ }
636
+ }
637
+ },
638
+ "providerAccountBody": {
639
+ "type": "object",
640
+ "additionalProperties": false,
641
+ "required": [
642
+ "provider",
643
+ "placement",
644
+ "accountId"
645
+ ],
646
+ "properties": {
647
+ "provider": {
648
+ "$ref": "#/$defs/providerId"
649
+ },
650
+ "placement": {
651
+ "$ref": "#/$defs/placement"
652
+ },
653
+ "accountId": {
654
+ "$ref": "#/$defs/id"
655
+ }
656
+ }
657
+ },
658
+ "providerAccountTestBody": {
659
+ "type": "object",
660
+ "additionalProperties": false,
661
+ "required": [
662
+ "provider",
663
+ "placement",
664
+ "data"
665
+ ],
666
+ "properties": {
667
+ "provider": {
668
+ "$ref": "#/$defs/providerId"
669
+ },
670
+ "placement": {
671
+ "$ref": "#/$defs/placement"
672
+ },
673
+ "data": {
674
+ "$ref": "#/$defs/extension"
675
+ }
676
+ }
677
+ },
678
+ "sharedAccountGrantBody": {
679
+ "type": "object",
680
+ "additionalProperties": false,
681
+ "required": [
682
+ "provider",
683
+ "placement",
684
+ "accountId"
685
+ ],
686
+ "properties": {
687
+ "provider": {
688
+ "$ref": "#/$defs/providerId"
689
+ },
690
+ "placement": {
691
+ "$ref": "#/$defs/placement"
692
+ },
693
+ "accountId": {
694
+ "$ref": "#/$defs/id"
695
+ }
696
+ }
697
+ },
698
+ "sharedAccountGrantListBody": {
699
+ "type": "object",
700
+ "additionalProperties": false,
701
+ "required": [
702
+ "provider",
703
+ "placement"
704
+ ],
705
+ "properties": {
706
+ "provider": {
707
+ "$ref": "#/$defs/providerId"
708
+ },
709
+ "placement": {
710
+ "$ref": "#/$defs/placement"
711
+ },
712
+ "accountId": {
713
+ "$ref": "#/$defs/id"
714
+ }
715
+ }
716
+ },
717
+ "routeListBody": {
718
+ "type": "object",
719
+ "additionalProperties": false,
720
+ "required": [
721
+ "provider",
722
+ "placement"
723
+ ],
724
+ "properties": {
725
+ "provider": {
726
+ "$ref": "#/$defs/providerId"
727
+ },
728
+ "placement": {
729
+ "$ref": "#/$defs/placement"
730
+ },
731
+ "accountId": {
732
+ "$ref": "#/$defs/id"
733
+ },
734
+ "audience": {
735
+ "$ref": "#/$defs/audience"
736
+ }
737
+ }
738
+ },
739
+ "routeBody": {
740
+ "type": "object",
741
+ "additionalProperties": false,
742
+ "required": [
743
+ "provider",
744
+ "placement",
745
+ "routeId"
746
+ ],
747
+ "properties": {
748
+ "provider": {
749
+ "$ref": "#/$defs/providerId"
750
+ },
751
+ "placement": {
752
+ "$ref": "#/$defs/placement"
753
+ },
754
+ "routeId": {
755
+ "$ref": "#/$defs/id"
756
+ }
757
+ }
758
+ },
759
+ "routeUpdateBody": {
760
+ "oneOf": [
761
+ {
762
+ "type": "object",
763
+ "additionalProperties": false,
764
+ "required": [
765
+ "audience",
766
+ "provider",
767
+ "placement",
768
+ "routeId"
769
+ ],
770
+ "properties": {
771
+ "audience": {
772
+ "const": "personal"
773
+ },
774
+ "provider": {
775
+ "$ref": "#/$defs/providerId"
776
+ },
777
+ "placement": {
778
+ "$ref": "#/$defs/placement"
779
+ },
780
+ "routeId": {
781
+ "$ref": "#/$defs/id"
782
+ },
783
+ "scopeId": {
784
+ "$ref": "#/$defs/id"
785
+ },
786
+ "enabled": {
787
+ "type": "boolean"
788
+ }
789
+ }
790
+ },
791
+ {
792
+ "type": "object",
793
+ "additionalProperties": false,
794
+ "required": [
795
+ "audience",
796
+ "provider",
797
+ "placement",
798
+ "routeId"
799
+ ],
800
+ "properties": {
801
+ "audience": {
802
+ "const": "shared"
803
+ },
804
+ "provider": {
805
+ "$ref": "#/$defs/providerId"
806
+ },
807
+ "placement": {
808
+ "$ref": "#/$defs/placement"
809
+ },
810
+ "routeId": {
811
+ "$ref": "#/$defs/id"
812
+ },
813
+ "enabled": {
814
+ "type": "boolean"
815
+ }
816
+ }
817
+ }
818
+ ]
819
+ },
820
+ "setupStartBody": {
821
+ "type": "object",
822
+ "additionalProperties": false,
823
+ "required": [
824
+ "provider",
825
+ "placement",
826
+ "data"
827
+ ],
828
+ "properties": {
829
+ "provider": {
830
+ "$ref": "#/$defs/providerId"
831
+ },
832
+ "placement": {
833
+ "$ref": "#/$defs/placement"
834
+ },
835
+ "data": {
836
+ "$ref": "#/$defs/extension"
837
+ }
838
+ }
839
+ },
840
+ "setupStatusBody": {
841
+ "type": "object",
842
+ "additionalProperties": false,
843
+ "required": [
844
+ "provider",
845
+ "placement",
846
+ "setupId"
847
+ ],
848
+ "properties": {
849
+ "provider": {
850
+ "$ref": "#/$defs/providerId"
851
+ },
852
+ "placement": {
853
+ "$ref": "#/$defs/placement"
854
+ },
855
+ "setupId": {
856
+ "$ref": "#/$defs/id"
857
+ }
858
+ }
859
+ },
860
+ "surfaceListBody": {
861
+ "type": "object",
862
+ "additionalProperties": false,
863
+ "required": [
864
+ "provider",
865
+ "placement"
866
+ ],
867
+ "properties": {
868
+ "provider": {
869
+ "$ref": "#/$defs/providerId"
870
+ },
871
+ "placement": {
872
+ "$ref": "#/$defs/placement"
873
+ },
874
+ "accountId": {
875
+ "$ref": "#/$defs/id"
876
+ },
877
+ "state": {
878
+ "$ref": "#/$defs/surfaceState"
879
+ }
880
+ }
881
+ },
882
+ "surfaceBody": {
883
+ "type": "object",
884
+ "additionalProperties": false,
885
+ "required": [
886
+ "provider",
887
+ "placement",
888
+ "surfaceId"
889
+ ],
890
+ "properties": {
891
+ "provider": {
892
+ "$ref": "#/$defs/providerId"
893
+ },
894
+ "placement": {
895
+ "$ref": "#/$defs/placement"
896
+ },
897
+ "surfaceId": {
898
+ "$ref": "#/$defs/id"
899
+ }
900
+ }
901
+ },
902
+ "surfaceBindCodeBody": {
903
+ "type": "object",
904
+ "additionalProperties": false,
905
+ "required": [
906
+ "provider",
907
+ "placement",
908
+ "surfaceId",
909
+ "scopeId"
910
+ ],
911
+ "properties": {
912
+ "provider": {
913
+ "$ref": "#/$defs/providerId"
914
+ },
915
+ "placement": {
916
+ "$ref": "#/$defs/placement"
917
+ },
918
+ "surfaceId": {
919
+ "$ref": "#/$defs/id"
920
+ },
921
+ "scopeId": {
922
+ "$ref": "#/$defs/id"
923
+ }
924
+ }
925
+ },
926
+ "actorLinkCodeBody": {
927
+ "type": "object",
928
+ "additionalProperties": false,
929
+ "required": [
930
+ "provider",
931
+ "placement",
932
+ "accountId",
933
+ "target"
934
+ ],
935
+ "properties": {
936
+ "provider": {
937
+ "$ref": "#/$defs/providerId"
938
+ },
939
+ "placement": {
940
+ "$ref": "#/$defs/placement"
941
+ },
942
+ "accountId": {
943
+ "$ref": "#/$defs/id"
944
+ },
945
+ "target": {
946
+ "$ref": "#/$defs/actorLinkTarget"
947
+ }
948
+ }
949
+ },
950
+ "actorLinkListBody": {
951
+ "type": "object",
952
+ "additionalProperties": false,
953
+ "required": [
954
+ "provider",
955
+ "placement"
956
+ ],
957
+ "properties": {
958
+ "provider": {
959
+ "$ref": "#/$defs/providerId"
960
+ },
961
+ "placement": {
962
+ "$ref": "#/$defs/placement"
963
+ },
964
+ "accountId": {
965
+ "$ref": "#/$defs/id"
966
+ }
967
+ }
968
+ },
969
+ "actorLinkDeleteBody": {
970
+ "type": "object",
971
+ "additionalProperties": false,
972
+ "required": [
973
+ "provider",
974
+ "placement",
975
+ "linkId"
976
+ ],
977
+ "properties": {
978
+ "provider": {
979
+ "$ref": "#/$defs/providerId"
980
+ },
981
+ "placement": {
982
+ "$ref": "#/$defs/placement"
983
+ },
984
+ "linkId": {
985
+ "$ref": "#/$defs/id"
986
+ }
987
+ }
988
+ },
989
+ "providerListRequest": {
990
+ "type": "object",
991
+ "additionalProperties": false,
992
+ "required": [
993
+ "target",
994
+ "direction",
995
+ "body"
996
+ ],
997
+ "properties": {
998
+ "target": {
999
+ "const": "/messaging/provider/list"
1000
+ },
1001
+ "direction": {
1002
+ "const": "request"
1003
+ },
1004
+ "body": {
1005
+ "$ref": "#/$defs/providerListBody"
1006
+ }
1007
+ }
1008
+ },
1009
+ "providerListResponse": {
1010
+ "type": "object",
1011
+ "additionalProperties": false,
1012
+ "required": [
1013
+ "target",
1014
+ "direction",
1015
+ "body"
1016
+ ],
1017
+ "properties": {
1018
+ "target": {
1019
+ "const": "/messaging/provider/list"
1020
+ },
1021
+ "direction": {
1022
+ "const": "response"
1023
+ },
1024
+ "body": {
1025
+ "type": "object",
1026
+ "additionalProperties": false,
1027
+ "required": [
1028
+ "providers"
1029
+ ],
1030
+ "properties": {
1031
+ "providers": {
1032
+ "type": "array",
1033
+ "items": {
1034
+ "$ref": "#/$defs/providerMetadata"
1035
+ }
1036
+ }
1037
+ }
1038
+ }
1039
+ }
1040
+ },
1041
+ "providerAccountListRequest": {
1042
+ "type": "object",
1043
+ "additionalProperties": false,
1044
+ "required": [
1045
+ "target",
1046
+ "direction",
1047
+ "body"
1048
+ ],
1049
+ "properties": {
1050
+ "target": {
1051
+ "const": "/messaging/provider-account/list"
1052
+ },
1053
+ "direction": {
1054
+ "const": "request"
1055
+ },
1056
+ "body": {
1057
+ "$ref": "#/$defs/providerPlacementBody"
1058
+ }
1059
+ }
1060
+ },
1061
+ "providerAccountListResponse": {
1062
+ "type": "object",
1063
+ "additionalProperties": false,
1064
+ "required": [
1065
+ "target",
1066
+ "direction",
1067
+ "body"
1068
+ ],
1069
+ "properties": {
1070
+ "target": {
1071
+ "const": "/messaging/provider-account/list"
1072
+ },
1073
+ "direction": {
1074
+ "const": "response"
1075
+ },
1076
+ "body": {
1077
+ "type": "object",
1078
+ "additionalProperties": false,
1079
+ "required": [
1080
+ "accounts"
1081
+ ],
1082
+ "properties": {
1083
+ "accounts": {
1084
+ "type": "array",
1085
+ "items": {
1086
+ "$ref": "#/$defs/providerAccount"
1087
+ }
1088
+ }
1089
+ }
1090
+ }
1091
+ }
1092
+ },
1093
+ "providerAccountUpdateRequest": {
1094
+ "type": "object",
1095
+ "additionalProperties": false,
1096
+ "required": [
1097
+ "target",
1098
+ "direction",
1099
+ "body"
1100
+ ],
1101
+ "properties": {
1102
+ "target": {
1103
+ "const": "/messaging/provider-account/update"
1104
+ },
1105
+ "direction": {
1106
+ "const": "request"
1107
+ },
1108
+ "body": {
1109
+ "$ref": "#/$defs/providerAccountUpdateBody"
1110
+ }
1111
+ }
1112
+ },
1113
+ "providerAccountUpdateResponse": {
1114
+ "type": "object",
1115
+ "additionalProperties": false,
1116
+ "required": [
1117
+ "target",
1118
+ "direction",
1119
+ "body"
1120
+ ],
1121
+ "properties": {
1122
+ "target": {
1123
+ "const": "/messaging/provider-account/update"
1124
+ },
1125
+ "direction": {
1126
+ "const": "response"
1127
+ },
1128
+ "body": {
1129
+ "type": "object",
1130
+ "additionalProperties": false,
1131
+ "required": [
1132
+ "account"
1133
+ ],
1134
+ "properties": {
1135
+ "account": {
1136
+ "$ref": "#/$defs/providerAccount"
1137
+ }
1138
+ }
1139
+ }
1140
+ }
1141
+ },
1142
+ "providerAccountDeleteRequest": {
1143
+ "type": "object",
1144
+ "additionalProperties": false,
1145
+ "required": [
1146
+ "target",
1147
+ "direction",
1148
+ "body"
1149
+ ],
1150
+ "properties": {
1151
+ "target": {
1152
+ "const": "/messaging/provider-account/delete"
1153
+ },
1154
+ "direction": {
1155
+ "const": "request"
1156
+ },
1157
+ "body": {
1158
+ "$ref": "#/$defs/providerAccountBody"
1159
+ }
1160
+ }
1161
+ },
1162
+ "providerAccountDeleteResponse": {
1163
+ "type": "object",
1164
+ "additionalProperties": false,
1165
+ "required": [
1166
+ "target",
1167
+ "direction",
1168
+ "body"
1169
+ ],
1170
+ "properties": {
1171
+ "target": {
1172
+ "const": "/messaging/provider-account/delete"
1173
+ },
1174
+ "direction": {
1175
+ "const": "response"
1176
+ },
1177
+ "body": {
1178
+ "$ref": "#/$defs/mutationBody"
1179
+ }
1180
+ }
1181
+ },
1182
+ "providerAccountTestRequest": {
1183
+ "type": "object",
1184
+ "additionalProperties": false,
1185
+ "required": [
1186
+ "target",
1187
+ "direction",
1188
+ "body"
1189
+ ],
1190
+ "properties": {
1191
+ "target": {
1192
+ "const": "/messaging/provider-account/test"
1193
+ },
1194
+ "direction": {
1195
+ "const": "request"
1196
+ },
1197
+ "body": {
1198
+ "$ref": "#/$defs/providerAccountTestBody"
1199
+ }
1200
+ }
1201
+ },
1202
+ "providerAccountTestResponse": {
1203
+ "type": "object",
1204
+ "additionalProperties": false,
1205
+ "required": [
1206
+ "target",
1207
+ "direction",
1208
+ "body"
1209
+ ],
1210
+ "properties": {
1211
+ "target": {
1212
+ "const": "/messaging/provider-account/test"
1213
+ },
1214
+ "direction": {
1215
+ "const": "response"
1216
+ },
1217
+ "body": {
1218
+ "type": "object",
1219
+ "additionalProperties": false,
1220
+ "required": [
1221
+ "result"
1222
+ ],
1223
+ "properties": {
1224
+ "result": {
1225
+ "$ref": "#/$defs/extension"
1226
+ }
1227
+ }
1228
+ }
1229
+ }
1230
+ },
1231
+ "providerAccountStatusRequest": {
1232
+ "type": "object",
1233
+ "additionalProperties": false,
1234
+ "required": [
1235
+ "target",
1236
+ "direction",
1237
+ "body"
1238
+ ],
1239
+ "properties": {
1240
+ "target": {
1241
+ "const": "/messaging/provider-account/status"
1242
+ },
1243
+ "direction": {
1244
+ "const": "request"
1245
+ },
1246
+ "body": {
1247
+ "$ref": "#/$defs/providerPlacementBody"
1248
+ }
1249
+ }
1250
+ },
1251
+ "providerAccountStatusResponse": {
1252
+ "type": "object",
1253
+ "additionalProperties": false,
1254
+ "required": [
1255
+ "target",
1256
+ "direction",
1257
+ "body"
1258
+ ],
1259
+ "properties": {
1260
+ "target": {
1261
+ "const": "/messaging/provider-account/status"
1262
+ },
1263
+ "direction": {
1264
+ "const": "response"
1265
+ },
1266
+ "body": {
1267
+ "type": "object",
1268
+ "additionalProperties": false,
1269
+ "required": [
1270
+ "status"
1271
+ ],
1272
+ "properties": {
1273
+ "status": {
1274
+ "$ref": "#/$defs/providerStatus"
1275
+ }
1276
+ }
1277
+ }
1278
+ }
1279
+ },
1280
+ "sharedAccountGrantCreateRequest": {
1281
+ "type": "object",
1282
+ "additionalProperties": false,
1283
+ "required": [
1284
+ "target",
1285
+ "direction",
1286
+ "body"
1287
+ ],
1288
+ "properties": {
1289
+ "target": {
1290
+ "const": "/messaging/shared-account-grant/create"
1291
+ },
1292
+ "direction": {
1293
+ "const": "request"
1294
+ },
1295
+ "body": {
1296
+ "$ref": "#/$defs/sharedAccountGrantBody"
1297
+ }
1298
+ }
1299
+ },
1300
+ "sharedAccountGrantCreateResponse": {
1301
+ "type": "object",
1302
+ "additionalProperties": false,
1303
+ "required": [
1304
+ "target",
1305
+ "direction",
1306
+ "body"
1307
+ ],
1308
+ "properties": {
1309
+ "target": {
1310
+ "const": "/messaging/shared-account-grant/create"
1311
+ },
1312
+ "direction": {
1313
+ "const": "response"
1314
+ },
1315
+ "body": {
1316
+ "$ref": "#/$defs/mutationBody"
1317
+ }
1318
+ }
1319
+ },
1320
+ "sharedAccountGrantDeleteRequest": {
1321
+ "type": "object",
1322
+ "additionalProperties": false,
1323
+ "required": [
1324
+ "target",
1325
+ "direction",
1326
+ "body"
1327
+ ],
1328
+ "properties": {
1329
+ "target": {
1330
+ "const": "/messaging/shared-account-grant/delete"
1331
+ },
1332
+ "direction": {
1333
+ "const": "request"
1334
+ },
1335
+ "body": {
1336
+ "$ref": "#/$defs/sharedAccountGrantBody"
1337
+ }
1338
+ }
1339
+ },
1340
+ "sharedAccountGrantDeleteResponse": {
1341
+ "type": "object",
1342
+ "additionalProperties": false,
1343
+ "required": [
1344
+ "target",
1345
+ "direction",
1346
+ "body"
1347
+ ],
1348
+ "properties": {
1349
+ "target": {
1350
+ "const": "/messaging/shared-account-grant/delete"
1351
+ },
1352
+ "direction": {
1353
+ "const": "response"
1354
+ },
1355
+ "body": {
1356
+ "$ref": "#/$defs/mutationBody"
1357
+ }
1358
+ }
1359
+ },
1360
+ "sharedAccountGrantListRequest": {
1361
+ "type": "object",
1362
+ "additionalProperties": false,
1363
+ "required": [
1364
+ "target",
1365
+ "direction",
1366
+ "body"
1367
+ ],
1368
+ "properties": {
1369
+ "target": {
1370
+ "const": "/messaging/shared-account-grant/list"
1371
+ },
1372
+ "direction": {
1373
+ "const": "request"
1374
+ },
1375
+ "body": {
1376
+ "$ref": "#/$defs/sharedAccountGrantListBody"
1377
+ }
1378
+ }
1379
+ },
1380
+ "sharedAccountGrantListResponse": {
1381
+ "type": "object",
1382
+ "additionalProperties": false,
1383
+ "required": [
1384
+ "target",
1385
+ "direction",
1386
+ "body"
1387
+ ],
1388
+ "properties": {
1389
+ "target": {
1390
+ "const": "/messaging/shared-account-grant/list"
1391
+ },
1392
+ "direction": {
1393
+ "const": "response"
1394
+ },
1395
+ "body": {
1396
+ "type": "object",
1397
+ "additionalProperties": false,
1398
+ "required": [
1399
+ "grants"
1400
+ ],
1401
+ "properties": {
1402
+ "grants": {
1403
+ "type": "array",
1404
+ "items": {
1405
+ "$ref": "#/$defs/sharedAccountGrant"
1406
+ }
1407
+ }
1408
+ }
1409
+ }
1410
+ }
1411
+ },
1412
+ "routeListRequest": {
1413
+ "type": "object",
1414
+ "additionalProperties": false,
1415
+ "required": [
1416
+ "target",
1417
+ "direction",
1418
+ "body"
1419
+ ],
1420
+ "properties": {
1421
+ "target": {
1422
+ "const": "/messaging/route/list"
1423
+ },
1424
+ "direction": {
1425
+ "const": "request"
1426
+ },
1427
+ "body": {
1428
+ "$ref": "#/$defs/routeListBody"
1429
+ }
1430
+ }
1431
+ },
1432
+ "routeListResponse": {
1433
+ "type": "object",
1434
+ "additionalProperties": false,
1435
+ "required": [
1436
+ "target",
1437
+ "direction",
1438
+ "body"
1439
+ ],
1440
+ "properties": {
1441
+ "target": {
1442
+ "const": "/messaging/route/list"
1443
+ },
1444
+ "direction": {
1445
+ "const": "response"
1446
+ },
1447
+ "body": {
1448
+ "type": "object",
1449
+ "additionalProperties": false,
1450
+ "required": [
1451
+ "routes"
1452
+ ],
1453
+ "properties": {
1454
+ "routes": {
1455
+ "type": "array",
1456
+ "items": {
1457
+ "$ref": "#/$defs/messagingRoute"
1458
+ }
1459
+ }
1460
+ }
1461
+ }
1462
+ }
1463
+ },
1464
+ "routeUpdateRequest": {
1465
+ "type": "object",
1466
+ "additionalProperties": false,
1467
+ "required": [
1468
+ "target",
1469
+ "direction",
1470
+ "body"
1471
+ ],
1472
+ "properties": {
1473
+ "target": {
1474
+ "const": "/messaging/route/update"
1475
+ },
1476
+ "direction": {
1477
+ "const": "request"
1478
+ },
1479
+ "body": {
1480
+ "$ref": "#/$defs/routeUpdateBody"
1481
+ }
1482
+ }
1483
+ },
1484
+ "routeUpdateResponse": {
1485
+ "type": "object",
1486
+ "additionalProperties": false,
1487
+ "required": [
1488
+ "target",
1489
+ "direction",
1490
+ "body"
1491
+ ],
1492
+ "properties": {
1493
+ "target": {
1494
+ "const": "/messaging/route/update"
1495
+ },
1496
+ "direction": {
1497
+ "const": "response"
1498
+ },
1499
+ "body": {
1500
+ "type": "object",
1501
+ "additionalProperties": false,
1502
+ "required": [
1503
+ "route"
1504
+ ],
1505
+ "properties": {
1506
+ "route": {
1507
+ "$ref": "#/$defs/messagingRoute"
1508
+ }
1509
+ }
1510
+ }
1511
+ }
1512
+ },
1513
+ "routeDeleteRequest": {
1514
+ "type": "object",
1515
+ "additionalProperties": false,
1516
+ "required": [
1517
+ "target",
1518
+ "direction",
1519
+ "body"
1520
+ ],
1521
+ "properties": {
1522
+ "target": {
1523
+ "const": "/messaging/route/delete"
1524
+ },
1525
+ "direction": {
1526
+ "const": "request"
1527
+ },
1528
+ "body": {
1529
+ "$ref": "#/$defs/routeBody"
1530
+ }
1531
+ }
1532
+ },
1533
+ "routeDeleteResponse": {
1534
+ "type": "object",
1535
+ "additionalProperties": false,
1536
+ "required": [
1537
+ "target",
1538
+ "direction",
1539
+ "body"
1540
+ ],
1541
+ "properties": {
1542
+ "target": {
1543
+ "const": "/messaging/route/delete"
1544
+ },
1545
+ "direction": {
1546
+ "const": "response"
1547
+ },
1548
+ "body": {
1549
+ "$ref": "#/$defs/mutationBody"
1550
+ }
1551
+ }
1552
+ },
1553
+ "setupOptionsRequest": {
1554
+ "type": "object",
1555
+ "additionalProperties": false,
1556
+ "required": [
1557
+ "target",
1558
+ "direction",
1559
+ "body"
1560
+ ],
1561
+ "properties": {
1562
+ "target": {
1563
+ "const": "/messaging/setup/options"
1564
+ },
1565
+ "direction": {
1566
+ "const": "request"
1567
+ },
1568
+ "body": {
1569
+ "$ref": "#/$defs/providerPlacementBody"
1570
+ }
1571
+ }
1572
+ },
1573
+ "setupOptionsResponse": {
1574
+ "type": "object",
1575
+ "additionalProperties": false,
1576
+ "required": [
1577
+ "target",
1578
+ "direction",
1579
+ "body"
1580
+ ],
1581
+ "properties": {
1582
+ "target": {
1583
+ "const": "/messaging/setup/options"
1584
+ },
1585
+ "direction": {
1586
+ "const": "response"
1587
+ },
1588
+ "body": {
1589
+ "type": "object",
1590
+ "additionalProperties": false,
1591
+ "required": [
1592
+ "options"
1593
+ ],
1594
+ "properties": {
1595
+ "options": {
1596
+ "$ref": "#/$defs/extension"
1597
+ }
1598
+ }
1599
+ }
1600
+ }
1601
+ },
1602
+ "setupStartRequest": {
1603
+ "type": "object",
1604
+ "additionalProperties": false,
1605
+ "required": [
1606
+ "target",
1607
+ "direction",
1608
+ "body"
1609
+ ],
1610
+ "properties": {
1611
+ "target": {
1612
+ "const": "/messaging/setup/start"
1613
+ },
1614
+ "direction": {
1615
+ "const": "request"
1616
+ },
1617
+ "body": {
1618
+ "$ref": "#/$defs/setupStartBody"
1619
+ }
1620
+ }
1621
+ },
1622
+ "setupStartResponse": {
1623
+ "type": "object",
1624
+ "additionalProperties": false,
1625
+ "required": [
1626
+ "target",
1627
+ "direction",
1628
+ "body"
1629
+ ],
1630
+ "properties": {
1631
+ "target": {
1632
+ "const": "/messaging/setup/start"
1633
+ },
1634
+ "direction": {
1635
+ "const": "response"
1636
+ },
1637
+ "body": {
1638
+ "type": "object",
1639
+ "additionalProperties": false,
1640
+ "required": [
1641
+ "setup"
1642
+ ],
1643
+ "properties": {
1644
+ "setup": {
1645
+ "$ref": "#/$defs/setupState"
1646
+ }
1647
+ }
1648
+ }
1649
+ }
1650
+ },
1651
+ "setupStatusRequest": {
1652
+ "type": "object",
1653
+ "additionalProperties": false,
1654
+ "required": [
1655
+ "target",
1656
+ "direction",
1657
+ "body"
1658
+ ],
1659
+ "properties": {
1660
+ "target": {
1661
+ "const": "/messaging/setup/status"
1662
+ },
1663
+ "direction": {
1664
+ "const": "request"
1665
+ },
1666
+ "body": {
1667
+ "$ref": "#/$defs/setupStatusBody"
1668
+ }
1669
+ }
1670
+ },
1671
+ "setupStatusResponse": {
1672
+ "type": "object",
1673
+ "additionalProperties": false,
1674
+ "required": [
1675
+ "target",
1676
+ "direction",
1677
+ "body"
1678
+ ],
1679
+ "properties": {
1680
+ "target": {
1681
+ "const": "/messaging/setup/status"
1682
+ },
1683
+ "direction": {
1684
+ "const": "response"
1685
+ },
1686
+ "body": {
1687
+ "type": "object",
1688
+ "additionalProperties": false,
1689
+ "required": [
1690
+ "setup"
1691
+ ],
1692
+ "properties": {
1693
+ "setup": {
1694
+ "$ref": "#/$defs/setupState"
1695
+ }
1696
+ }
1697
+ }
1698
+ }
1699
+ },
1700
+ "surfaceListRequest": {
1701
+ "type": "object",
1702
+ "additionalProperties": false,
1703
+ "required": [
1704
+ "target",
1705
+ "direction",
1706
+ "body"
1707
+ ],
1708
+ "properties": {
1709
+ "target": {
1710
+ "const": "/messaging/surface/list"
1711
+ },
1712
+ "direction": {
1713
+ "const": "request"
1714
+ },
1715
+ "body": {
1716
+ "$ref": "#/$defs/surfaceListBody"
1717
+ }
1718
+ }
1719
+ },
1720
+ "surfaceListResponse": {
1721
+ "type": "object",
1722
+ "additionalProperties": false,
1723
+ "required": [
1724
+ "target",
1725
+ "direction",
1726
+ "body"
1727
+ ],
1728
+ "properties": {
1729
+ "target": {
1730
+ "const": "/messaging/surface/list"
1731
+ },
1732
+ "direction": {
1733
+ "const": "response"
1734
+ },
1735
+ "body": {
1736
+ "type": "object",
1737
+ "additionalProperties": false,
1738
+ "required": [
1739
+ "surfaces"
1740
+ ],
1741
+ "properties": {
1742
+ "surfaces": {
1743
+ "type": "array",
1744
+ "items": {
1745
+ "$ref": "#/$defs/messagingSurface"
1746
+ }
1747
+ }
1748
+ }
1749
+ }
1750
+ }
1751
+ },
1752
+ "surfaceDismissRequest": {
1753
+ "type": "object",
1754
+ "additionalProperties": false,
1755
+ "required": [
1756
+ "target",
1757
+ "direction",
1758
+ "body"
1759
+ ],
1760
+ "properties": {
1761
+ "target": {
1762
+ "const": "/messaging/surface/dismiss"
1763
+ },
1764
+ "direction": {
1765
+ "const": "request"
1766
+ },
1767
+ "body": {
1768
+ "$ref": "#/$defs/surfaceBody"
1769
+ }
1770
+ }
1771
+ },
1772
+ "surfaceDismissResponse": {
1773
+ "type": "object",
1774
+ "additionalProperties": false,
1775
+ "required": [
1776
+ "target",
1777
+ "direction",
1778
+ "body"
1779
+ ],
1780
+ "properties": {
1781
+ "target": {
1782
+ "const": "/messaging/surface/dismiss"
1783
+ },
1784
+ "direction": {
1785
+ "const": "response"
1786
+ },
1787
+ "body": {
1788
+ "$ref": "#/$defs/mutationBody"
1789
+ }
1790
+ }
1791
+ },
1792
+ "surfaceBindCodeCreateRequest": {
1793
+ "type": "object",
1794
+ "additionalProperties": false,
1795
+ "required": [
1796
+ "target",
1797
+ "direction",
1798
+ "body"
1799
+ ],
1800
+ "properties": {
1801
+ "target": {
1802
+ "const": "/messaging/surface/bind-code/create"
1803
+ },
1804
+ "direction": {
1805
+ "const": "request"
1806
+ },
1807
+ "body": {
1808
+ "$ref": "#/$defs/surfaceBindCodeBody"
1809
+ }
1810
+ }
1811
+ },
1812
+ "surfaceBindCodeCreateResponse": {
1813
+ "type": "object",
1814
+ "additionalProperties": false,
1815
+ "required": [
1816
+ "target",
1817
+ "direction",
1818
+ "body"
1819
+ ],
1820
+ "properties": {
1821
+ "target": {
1822
+ "const": "/messaging/surface/bind-code/create"
1823
+ },
1824
+ "direction": {
1825
+ "const": "response"
1826
+ },
1827
+ "body": {
1828
+ "type": "object",
1829
+ "additionalProperties": false,
1830
+ "required": [
1831
+ "challenge"
1832
+ ],
1833
+ "properties": {
1834
+ "challenge": {
1835
+ "$ref": "#/$defs/challengeCode"
1836
+ }
1837
+ }
1838
+ }
1839
+ }
1840
+ },
1841
+ "actorLinkCodeCreateRequest": {
1842
+ "type": "object",
1843
+ "additionalProperties": false,
1844
+ "required": [
1845
+ "target",
1846
+ "direction",
1847
+ "body"
1848
+ ],
1849
+ "properties": {
1850
+ "target": {
1851
+ "const": "/messaging/actor/link-code/create"
1852
+ },
1853
+ "direction": {
1854
+ "const": "request"
1855
+ },
1856
+ "body": {
1857
+ "$ref": "#/$defs/actorLinkCodeBody"
1858
+ }
1859
+ }
1860
+ },
1861
+ "actorLinkCodeCreateResponse": {
1862
+ "type": "object",
1863
+ "additionalProperties": false,
1864
+ "required": [
1865
+ "target",
1866
+ "direction",
1867
+ "body"
1868
+ ],
1869
+ "properties": {
1870
+ "target": {
1871
+ "const": "/messaging/actor/link-code/create"
1872
+ },
1873
+ "direction": {
1874
+ "const": "response"
1875
+ },
1876
+ "body": {
1877
+ "type": "object",
1878
+ "additionalProperties": false,
1879
+ "required": [
1880
+ "challenge"
1881
+ ],
1882
+ "properties": {
1883
+ "challenge": {
1884
+ "$ref": "#/$defs/actorLinkChallenge"
1885
+ }
1886
+ }
1887
+ }
1888
+ }
1889
+ },
1890
+ "actorLinkListRequest": {
1891
+ "type": "object",
1892
+ "additionalProperties": false,
1893
+ "required": [
1894
+ "target",
1895
+ "direction",
1896
+ "body"
1897
+ ],
1898
+ "properties": {
1899
+ "target": {
1900
+ "const": "/messaging/actor/link/list"
1901
+ },
1902
+ "direction": {
1903
+ "const": "request"
1904
+ },
1905
+ "body": {
1906
+ "$ref": "#/$defs/actorLinkListBody"
1907
+ }
1908
+ }
1909
+ },
1910
+ "actorLinkListResponse": {
1911
+ "type": "object",
1912
+ "additionalProperties": false,
1913
+ "required": [
1914
+ "target",
1915
+ "direction",
1916
+ "body"
1917
+ ],
1918
+ "properties": {
1919
+ "target": {
1920
+ "const": "/messaging/actor/link/list"
1921
+ },
1922
+ "direction": {
1923
+ "const": "response"
1924
+ },
1925
+ "body": {
1926
+ "type": "object",
1927
+ "additionalProperties": false,
1928
+ "required": [
1929
+ "links"
1930
+ ],
1931
+ "properties": {
1932
+ "links": {
1933
+ "type": "array",
1934
+ "items": {
1935
+ "$ref": "#/$defs/actorLinkView"
1936
+ }
1937
+ }
1938
+ }
1939
+ }
1940
+ }
1941
+ },
1942
+ "actorLinkDeleteRequest": {
1943
+ "type": "object",
1944
+ "additionalProperties": false,
1945
+ "required": [
1946
+ "target",
1947
+ "direction",
1948
+ "body"
1949
+ ],
1950
+ "properties": {
1951
+ "target": {
1952
+ "const": "/messaging/actor/link/delete"
1953
+ },
1954
+ "direction": {
1955
+ "const": "request"
1956
+ },
1957
+ "body": {
1958
+ "$ref": "#/$defs/actorLinkDeleteBody"
1959
+ }
1960
+ }
1961
+ },
1962
+ "actorLinkDeleteResponse": {
1963
+ "type": "object",
1964
+ "additionalProperties": false,
1965
+ "required": [
1966
+ "target",
1967
+ "direction",
1968
+ "body"
1969
+ ],
1970
+ "properties": {
1971
+ "target": {
1972
+ "const": "/messaging/actor/link/delete"
1973
+ },
1974
+ "direction": {
1975
+ "const": "response"
1976
+ },
1977
+ "body": {
1978
+ "$ref": "#/$defs/mutationBody"
1979
+ }
1980
+ }
1981
+ },
1982
+ "requestFrame": {
1983
+ "oneOf": [
1984
+ {
1985
+ "$ref": "#/$defs/providerListRequest"
1986
+ },
1987
+ {
1988
+ "$ref": "#/$defs/providerAccountListRequest"
1989
+ },
1990
+ {
1991
+ "$ref": "#/$defs/providerAccountUpdateRequest"
1992
+ },
1993
+ {
1994
+ "$ref": "#/$defs/providerAccountDeleteRequest"
1995
+ },
1996
+ {
1997
+ "$ref": "#/$defs/providerAccountTestRequest"
1998
+ },
1999
+ {
2000
+ "$ref": "#/$defs/providerAccountStatusRequest"
2001
+ },
2002
+ {
2003
+ "$ref": "#/$defs/sharedAccountGrantCreateRequest"
2004
+ },
2005
+ {
2006
+ "$ref": "#/$defs/sharedAccountGrantDeleteRequest"
2007
+ },
2008
+ {
2009
+ "$ref": "#/$defs/sharedAccountGrantListRequest"
2010
+ },
2011
+ {
2012
+ "$ref": "#/$defs/routeListRequest"
2013
+ },
2014
+ {
2015
+ "$ref": "#/$defs/routeUpdateRequest"
2016
+ },
2017
+ {
2018
+ "$ref": "#/$defs/routeDeleteRequest"
2019
+ },
2020
+ {
2021
+ "$ref": "#/$defs/setupOptionsRequest"
2022
+ },
2023
+ {
2024
+ "$ref": "#/$defs/setupStartRequest"
2025
+ },
2026
+ {
2027
+ "$ref": "#/$defs/setupStatusRequest"
2028
+ },
2029
+ {
2030
+ "$ref": "#/$defs/surfaceListRequest"
2031
+ },
2032
+ {
2033
+ "$ref": "#/$defs/surfaceDismissRequest"
2034
+ },
2035
+ {
2036
+ "$ref": "#/$defs/surfaceBindCodeCreateRequest"
2037
+ },
2038
+ {
2039
+ "$ref": "#/$defs/actorLinkCodeCreateRequest"
2040
+ },
2041
+ {
2042
+ "$ref": "#/$defs/actorLinkClaimStatusRequest"
2043
+ },
2044
+ {
2045
+ "$ref": "#/$defs/actorLinkClaimConfirmRequest"
2046
+ },
2047
+ {
2048
+ "$ref": "#/$defs/actorLinkListRequest"
2049
+ },
2050
+ {
2051
+ "$ref": "#/$defs/actorLinkDeleteRequest"
2052
+ }
2053
+ ]
2054
+ },
2055
+ "responseFrame": {
2056
+ "oneOf": [
2057
+ {
2058
+ "$ref": "#/$defs/providerListResponse"
2059
+ },
2060
+ {
2061
+ "$ref": "#/$defs/providerAccountListResponse"
2062
+ },
2063
+ {
2064
+ "$ref": "#/$defs/providerAccountUpdateResponse"
2065
+ },
2066
+ {
2067
+ "$ref": "#/$defs/providerAccountDeleteResponse"
2068
+ },
2069
+ {
2070
+ "$ref": "#/$defs/providerAccountTestResponse"
2071
+ },
2072
+ {
2073
+ "$ref": "#/$defs/providerAccountStatusResponse"
2074
+ },
2075
+ {
2076
+ "$ref": "#/$defs/sharedAccountGrantCreateResponse"
2077
+ },
2078
+ {
2079
+ "$ref": "#/$defs/sharedAccountGrantDeleteResponse"
2080
+ },
2081
+ {
2082
+ "$ref": "#/$defs/sharedAccountGrantListResponse"
2083
+ },
2084
+ {
2085
+ "$ref": "#/$defs/routeListResponse"
2086
+ },
2087
+ {
2088
+ "$ref": "#/$defs/routeUpdateResponse"
2089
+ },
2090
+ {
2091
+ "$ref": "#/$defs/routeDeleteResponse"
2092
+ },
2093
+ {
2094
+ "$ref": "#/$defs/setupOptionsResponse"
2095
+ },
2096
+ {
2097
+ "$ref": "#/$defs/setupStartResponse"
2098
+ },
2099
+ {
2100
+ "$ref": "#/$defs/setupStatusResponse"
2101
+ },
2102
+ {
2103
+ "$ref": "#/$defs/surfaceListResponse"
2104
+ },
2105
+ {
2106
+ "$ref": "#/$defs/surfaceDismissResponse"
2107
+ },
2108
+ {
2109
+ "$ref": "#/$defs/surfaceBindCodeCreateResponse"
2110
+ },
2111
+ {
2112
+ "$ref": "#/$defs/actorLinkCodeCreateResponse"
2113
+ },
2114
+ {
2115
+ "$ref": "#/$defs/actorLinkClaimStatusResponse"
2116
+ },
2117
+ {
2118
+ "$ref": "#/$defs/actorLinkClaimConfirmResponse"
2119
+ },
2120
+ {
2121
+ "$ref": "#/$defs/actorLinkClaimEventResponse"
2122
+ },
2123
+ {
2124
+ "$ref": "#/$defs/actorLinkListResponse"
2125
+ },
2126
+ {
2127
+ "$ref": "#/$defs/actorLinkDeleteResponse"
2128
+ }
2129
+ ]
2130
+ },
2131
+ "frame": {
2132
+ "oneOf": [
2133
+ {
2134
+ "$ref": "#/$defs/requestFrame"
2135
+ },
2136
+ {
2137
+ "$ref": "#/$defs/responseFrame"
2138
+ }
2139
+ ]
2140
+ },
2141
+ "actorLinkTarget": {
2142
+ "oneOf": [
2143
+ {
2144
+ "type": "object",
2145
+ "additionalProperties": false,
2146
+ "required": [
2147
+ "audience"
2148
+ ],
2149
+ "properties": {
2150
+ "audience": {
2151
+ "const": "personal"
2152
+ }
2153
+ }
2154
+ },
2155
+ {
2156
+ "type": "object",
2157
+ "additionalProperties": false,
2158
+ "required": [
2159
+ "audience",
2160
+ "surfaceId"
2161
+ ],
2162
+ "properties": {
2163
+ "audience": {
2164
+ "const": "shared"
2165
+ },
2166
+ "surfaceId": {
2167
+ "$ref": "#/$defs/id"
2168
+ }
2169
+ }
2170
+ }
2171
+ ]
2172
+ },
2173
+ "messagingAddress": {
2174
+ "type": "object",
2175
+ "additionalProperties": false,
2176
+ "required": [
2177
+ "provider",
2178
+ "accountId",
2179
+ "conversationId",
2180
+ "audience"
2181
+ ],
2182
+ "properties": {
2183
+ "provider": {
2184
+ "$ref": "#/$defs/providerId"
2185
+ },
2186
+ "accountId": {
2187
+ "$ref": "#/$defs/id"
2188
+ },
2189
+ "conversationId": {
2190
+ "$ref": "#/$defs/id"
2191
+ },
2192
+ "laneId": {
2193
+ "$ref": "#/$defs/id"
2194
+ },
2195
+ "audience": {
2196
+ "$ref": "#/$defs/audience"
2197
+ }
2198
+ }
2199
+ },
2200
+ "externalActor": {
2201
+ "type": "object",
2202
+ "additionalProperties": false,
2203
+ "required": [
2204
+ "provider",
2205
+ "accountId",
2206
+ "externalUserId"
2207
+ ],
2208
+ "properties": {
2209
+ "provider": {
2210
+ "$ref": "#/$defs/providerId"
2211
+ },
2212
+ "accountId": {
2213
+ "$ref": "#/$defs/id"
2214
+ },
2215
+ "externalUserId": {
2216
+ "$ref": "#/$defs/id"
2217
+ },
2218
+ "displayName": {
2219
+ "$ref": "#/$defs/id"
2220
+ }
2221
+ }
2222
+ },
2223
+ "actorLinkCandidate": {
2224
+ "type": "object",
2225
+ "additionalProperties": false,
2226
+ "required": [
2227
+ "actor",
2228
+ "address",
2229
+ "eventId"
2230
+ ],
2231
+ "properties": {
2232
+ "actor": {
2233
+ "$ref": "#/$defs/externalActor"
2234
+ },
2235
+ "address": {
2236
+ "$ref": "#/$defs/messagingAddress"
2237
+ },
2238
+ "eventId": {
2239
+ "$ref": "#/$defs/id"
2240
+ }
2241
+ }
2242
+ },
2243
+ "actorLinkClaim": {
2244
+ "type": "object",
2245
+ "additionalProperties": false,
2246
+ "required": [
2247
+ "challengeId",
2248
+ "provider",
2249
+ "placement",
2250
+ "accountId",
2251
+ "target",
2252
+ "expiresAtMs",
2253
+ "lifecycle"
2254
+ ],
2255
+ "properties": {
2256
+ "challengeId": {
2257
+ "$ref": "#/$defs/id"
2258
+ },
2259
+ "provider": {
2260
+ "$ref": "#/$defs/providerId"
2261
+ },
2262
+ "placement": {
2263
+ "$ref": "#/$defs/placement"
2264
+ },
2265
+ "accountId": {
2266
+ "$ref": "#/$defs/id"
2267
+ },
2268
+ "target": {
2269
+ "$ref": "#/$defs/actorLinkTarget"
2270
+ },
2271
+ "expiresAtMs": {
2272
+ "type": "integer",
2273
+ "minimum": 0
2274
+ },
2275
+ "lifecycle": {
2276
+ "$ref": "#/$defs/actorLinkClaimLifecycle"
2277
+ }
2278
+ }
2279
+ },
2280
+ "actorLinkChallenge": {
2281
+ "type": "object",
2282
+ "additionalProperties": false,
2283
+ "required": [
2284
+ "challengeId",
2285
+ "code",
2286
+ "command",
2287
+ "target",
2288
+ "expiresAtMs"
2289
+ ],
2290
+ "properties": {
2291
+ "challengeId": {
2292
+ "$ref": "#/$defs/id"
2293
+ },
2294
+ "code": {
2295
+ "$ref": "#/$defs/id"
2296
+ },
2297
+ "command": {
2298
+ "$ref": "#/$defs/id"
2299
+ },
2300
+ "target": {
2301
+ "$ref": "#/$defs/actorLinkTarget"
2302
+ },
2303
+ "expiresAtMs": {
2304
+ "type": "integer",
2305
+ "minimum": 0
2306
+ }
2307
+ }
2308
+ },
2309
+ "actorLinkClaimBody": {
2310
+ "type": "object",
2311
+ "additionalProperties": false,
2312
+ "required": [
2313
+ "provider",
2314
+ "placement",
2315
+ "challengeId"
2316
+ ],
2317
+ "properties": {
2318
+ "provider": {
2319
+ "$ref": "#/$defs/providerId"
2320
+ },
2321
+ "placement": {
2322
+ "$ref": "#/$defs/placement"
2323
+ },
2324
+ "challengeId": {
2325
+ "$ref": "#/$defs/id"
2326
+ }
2327
+ }
2328
+ },
2329
+ "actorLinkClaimResponseBody": {
2330
+ "type": "object",
2331
+ "additionalProperties": false,
2332
+ "required": [
2333
+ "claim"
2334
+ ],
2335
+ "properties": {
2336
+ "claim": {
2337
+ "$ref": "#/$defs/actorLinkClaim"
2338
+ }
2339
+ }
2340
+ },
2341
+ "actorLinkClaimStatusRequest": {
2342
+ "type": "object",
2343
+ "additionalProperties": false,
2344
+ "required": [
2345
+ "target",
2346
+ "direction",
2347
+ "body"
2348
+ ],
2349
+ "properties": {
2350
+ "target": {
2351
+ "const": "/messaging/actor/link-claim/status"
2352
+ },
2353
+ "direction": {
2354
+ "const": "request"
2355
+ },
2356
+ "body": {
2357
+ "$ref": "#/$defs/actorLinkClaimBody"
2358
+ }
2359
+ }
2360
+ },
2361
+ "actorLinkClaimStatusResponse": {
2362
+ "type": "object",
2363
+ "additionalProperties": false,
2364
+ "required": [
2365
+ "target",
2366
+ "direction",
2367
+ "body"
2368
+ ],
2369
+ "properties": {
2370
+ "target": {
2371
+ "const": "/messaging/actor/link-claim/status"
2372
+ },
2373
+ "direction": {
2374
+ "const": "response"
2375
+ },
2376
+ "body": {
2377
+ "$ref": "#/$defs/actorLinkClaimResponseBody"
2378
+ }
2379
+ }
2380
+ },
2381
+ "actorLinkClaimConfirmRequest": {
2382
+ "type": "object",
2383
+ "additionalProperties": false,
2384
+ "required": [
2385
+ "target",
2386
+ "direction",
2387
+ "body"
2388
+ ],
2389
+ "properties": {
2390
+ "target": {
2391
+ "const": "/messaging/actor/link-claim/confirm"
2392
+ },
2393
+ "direction": {
2394
+ "const": "request"
2395
+ },
2396
+ "body": {
2397
+ "$ref": "#/$defs/actorLinkClaimBody"
2398
+ }
2399
+ }
2400
+ },
2401
+ "actorLinkClaimConfirmResponse": {
2402
+ "type": "object",
2403
+ "additionalProperties": false,
2404
+ "required": [
2405
+ "target",
2406
+ "direction",
2407
+ "body"
2408
+ ],
2409
+ "properties": {
2410
+ "target": {
2411
+ "const": "/messaging/actor/link-claim/confirm"
2412
+ },
2413
+ "direction": {
2414
+ "const": "response"
2415
+ },
2416
+ "body": {
2417
+ "$ref": "#/$defs/actorLinkClaimResponseBody"
2418
+ }
2419
+ }
2420
+ },
2421
+ "actorLinkClaimEventResponse": {
2422
+ "type": "object",
2423
+ "additionalProperties": false,
2424
+ "required": [
2425
+ "target",
2426
+ "direction",
2427
+ "body"
2428
+ ],
2429
+ "properties": {
2430
+ "target": {
2431
+ "const": "/messaging/actor/link-claim/event"
2432
+ },
2433
+ "direction": {
2434
+ "const": "response"
2435
+ },
2436
+ "body": {
2437
+ "$ref": "#/$defs/actorLinkClaimResponseBody"
2438
+ }
2439
+ }
2440
+ },
2441
+ "actorLinkClaimLifecycle": {
2442
+ "oneOf": [
2443
+ {
2444
+ "type": "object",
2445
+ "additionalProperties": false,
2446
+ "required": [
2447
+ "state"
2448
+ ],
2449
+ "properties": {
2450
+ "state": {
2451
+ "const": "issued"
2452
+ }
2453
+ }
2454
+ },
2455
+ {
2456
+ "type": "object",
2457
+ "additionalProperties": false,
2458
+ "required": [
2459
+ "state"
2460
+ ],
2461
+ "properties": {
2462
+ "state": {
2463
+ "const": "superseded"
2464
+ }
2465
+ }
2466
+ },
2467
+ {
2468
+ "type": "object",
2469
+ "additionalProperties": false,
2470
+ "required": [
2471
+ "state"
2472
+ ],
2473
+ "properties": {
2474
+ "state": {
2475
+ "const": "expired"
2476
+ }
2477
+ }
2478
+ },
2479
+ {
2480
+ "type": "object",
2481
+ "additionalProperties": false,
2482
+ "required": [
2483
+ "state",
2484
+ "candidate"
2485
+ ],
2486
+ "properties": {
2487
+ "state": {
2488
+ "const": "awaiting_confirmation"
2489
+ },
2490
+ "candidate": {
2491
+ "$ref": "#/$defs/actorLinkCandidate"
2492
+ }
2493
+ }
2494
+ },
2495
+ {
2496
+ "type": "object",
2497
+ "additionalProperties": false,
2498
+ "required": [
2499
+ "state",
2500
+ "candidate"
2501
+ ],
2502
+ "properties": {
2503
+ "state": {
2504
+ "const": "confirming"
2505
+ },
2506
+ "candidate": {
2507
+ "$ref": "#/$defs/actorLinkCandidate"
2508
+ }
2509
+ }
2510
+ },
2511
+ {
2512
+ "type": "object",
2513
+ "additionalProperties": false,
2514
+ "required": [
2515
+ "state",
2516
+ "candidate",
2517
+ "linkId"
2518
+ ],
2519
+ "properties": {
2520
+ "state": {
2521
+ "const": "completed"
2522
+ },
2523
+ "candidate": {
2524
+ "$ref": "#/$defs/actorLinkCandidate"
2525
+ },
2526
+ "linkId": {
2527
+ "$ref": "#/$defs/id"
2528
+ }
2529
+ }
2530
+ }
2531
+ ]
2532
+ }
2533
+ }
2534
+ }