@mdbase-dev/connect-protocol 0.1.0-beta.21 → 0.1.0-beta.23

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.
@@ -0,0 +1,3893 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.mdbase.dev/connect/problem/v1",
4
+ "title": "mdbase connect problem v1",
5
+ "oneOf": [
6
+ {
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "required": [
10
+ "problem_version",
11
+ "code",
12
+ "category",
13
+ "recovery",
14
+ "message"
15
+ ],
16
+ "properties": {
17
+ "problem_version": {
18
+ "const": 1
19
+ },
20
+ "code": {
21
+ "const": "access_denied"
22
+ },
23
+ "category": {
24
+ "const": "authorization"
25
+ },
26
+ "recovery": {
27
+ "const": "reauthorize"
28
+ },
29
+ "message": {
30
+ "type": "string",
31
+ "minLength": 1
32
+ },
33
+ "operation_outcome": {
34
+ "enum": [
35
+ "not_sent",
36
+ "rejected",
37
+ "unknown"
38
+ ]
39
+ },
40
+ "trace_id": {
41
+ "type": "string",
42
+ "minLength": 1
43
+ },
44
+ "details": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "required": [],
48
+ "properties": {
49
+ "return_to": {
50
+ "type": "string"
51
+ }
52
+ }
53
+ }
54
+ }
55
+ },
56
+ {
57
+ "type": "object",
58
+ "additionalProperties": false,
59
+ "required": [
60
+ "problem_version",
61
+ "code",
62
+ "category",
63
+ "recovery",
64
+ "message"
65
+ ],
66
+ "properties": {
67
+ "problem_version": {
68
+ "const": 1
69
+ },
70
+ "code": {
71
+ "const": "access_paused"
72
+ },
73
+ "category": {
74
+ "const": "availability"
75
+ },
76
+ "recovery": {
77
+ "const": "resume_connector_access"
78
+ },
79
+ "message": {
80
+ "type": "string",
81
+ "minLength": 1
82
+ },
83
+ "operation_outcome": {
84
+ "enum": [
85
+ "not_sent",
86
+ "rejected",
87
+ "unknown"
88
+ ]
89
+ },
90
+ "trace_id": {
91
+ "type": "string",
92
+ "minLength": 1
93
+ }
94
+ }
95
+ },
96
+ {
97
+ "type": "object",
98
+ "additionalProperties": false,
99
+ "required": [
100
+ "problem_version",
101
+ "code",
102
+ "category",
103
+ "recovery",
104
+ "message",
105
+ "details"
106
+ ],
107
+ "properties": {
108
+ "problem_version": {
109
+ "const": 1
110
+ },
111
+ "code": {
112
+ "const": "approval_window_blocked"
113
+ },
114
+ "category": {
115
+ "const": "authorization"
116
+ },
117
+ "recovery": {
118
+ "const": "reauthorize"
119
+ },
120
+ "message": {
121
+ "type": "string",
122
+ "minLength": 1
123
+ },
124
+ "operation_outcome": {
125
+ "enum": [
126
+ "not_sent",
127
+ "rejected",
128
+ "unknown"
129
+ ]
130
+ },
131
+ "trace_id": {
132
+ "type": "string",
133
+ "minLength": 1
134
+ },
135
+ "details": {
136
+ "type": "object",
137
+ "additionalProperties": false,
138
+ "required": [
139
+ "user_code",
140
+ "verification_uri",
141
+ "verification_uri_complete",
142
+ "expires_at",
143
+ "interval_seconds"
144
+ ],
145
+ "properties": {
146
+ "user_code": {
147
+ "type": "string"
148
+ },
149
+ "verification_uri": {
150
+ "type": "string"
151
+ },
152
+ "verification_uri_complete": {
153
+ "type": "string"
154
+ },
155
+ "expires_at": {
156
+ "type": "integer"
157
+ },
158
+ "interval_seconds": {
159
+ "type": "integer"
160
+ }
161
+ }
162
+ }
163
+ }
164
+ },
165
+ {
166
+ "type": "object",
167
+ "additionalProperties": false,
168
+ "required": [
169
+ "problem_version",
170
+ "code",
171
+ "category",
172
+ "recovery",
173
+ "message"
174
+ ],
175
+ "properties": {
176
+ "problem_version": {
177
+ "const": 1
178
+ },
179
+ "code": {
180
+ "const": "authority_authorization_changed"
181
+ },
182
+ "category": {
183
+ "const": "authorization"
184
+ },
185
+ "recovery": {
186
+ "const": "reauthorize"
187
+ },
188
+ "message": {
189
+ "type": "string",
190
+ "minLength": 1
191
+ },
192
+ "operation_outcome": {
193
+ "enum": [
194
+ "not_sent",
195
+ "rejected",
196
+ "unknown"
197
+ ]
198
+ },
199
+ "trace_id": {
200
+ "type": "string",
201
+ "minLength": 1
202
+ }
203
+ }
204
+ },
205
+ {
206
+ "type": "object",
207
+ "additionalProperties": false,
208
+ "required": [
209
+ "problem_version",
210
+ "code",
211
+ "category",
212
+ "recovery",
213
+ "message"
214
+ ],
215
+ "properties": {
216
+ "problem_version": {
217
+ "const": 1
218
+ },
219
+ "code": {
220
+ "const": "authorization_cancelled"
221
+ },
222
+ "category": {
223
+ "const": "cancellation"
224
+ },
225
+ "recovery": {
226
+ "const": "none"
227
+ },
228
+ "message": {
229
+ "type": "string",
230
+ "minLength": 1
231
+ },
232
+ "operation_outcome": {
233
+ "enum": [
234
+ "not_sent",
235
+ "rejected",
236
+ "unknown"
237
+ ]
238
+ },
239
+ "trace_id": {
240
+ "type": "string",
241
+ "minLength": 1
242
+ }
243
+ }
244
+ },
245
+ {
246
+ "type": "object",
247
+ "additionalProperties": false,
248
+ "required": [
249
+ "problem_version",
250
+ "code",
251
+ "category",
252
+ "recovery",
253
+ "message"
254
+ ],
255
+ "properties": {
256
+ "problem_version": {
257
+ "const": 1
258
+ },
259
+ "code": {
260
+ "const": "authorization_expired"
261
+ },
262
+ "category": {
263
+ "const": "authorization"
264
+ },
265
+ "recovery": {
266
+ "const": "reauthorize"
267
+ },
268
+ "message": {
269
+ "type": "string",
270
+ "minLength": 1
271
+ },
272
+ "operation_outcome": {
273
+ "enum": [
274
+ "not_sent",
275
+ "rejected",
276
+ "unknown"
277
+ ]
278
+ },
279
+ "trace_id": {
280
+ "type": "string",
281
+ "minLength": 1
282
+ }
283
+ }
284
+ },
285
+ {
286
+ "type": "object",
287
+ "additionalProperties": false,
288
+ "required": [
289
+ "problem_version",
290
+ "code",
291
+ "category",
292
+ "recovery",
293
+ "message"
294
+ ],
295
+ "properties": {
296
+ "problem_version": {
297
+ "const": 1
298
+ },
299
+ "code": {
300
+ "const": "browser_required"
301
+ },
302
+ "category": {
303
+ "const": "compatibility"
304
+ },
305
+ "recovery": {
306
+ "const": "none"
307
+ },
308
+ "message": {
309
+ "type": "string",
310
+ "minLength": 1
311
+ },
312
+ "operation_outcome": {
313
+ "enum": [
314
+ "not_sent",
315
+ "rejected",
316
+ "unknown"
317
+ ]
318
+ },
319
+ "trace_id": {
320
+ "type": "string",
321
+ "minLength": 1
322
+ }
323
+ }
324
+ },
325
+ {
326
+ "type": "object",
327
+ "additionalProperties": false,
328
+ "required": [
329
+ "problem_version",
330
+ "code",
331
+ "category",
332
+ "recovery",
333
+ "message"
334
+ ],
335
+ "properties": {
336
+ "problem_version": {
337
+ "const": 1
338
+ },
339
+ "code": {
340
+ "const": "callback_url_required"
341
+ },
342
+ "category": {
343
+ "const": "validation"
344
+ },
345
+ "recovery": {
346
+ "const": "fix_request"
347
+ },
348
+ "message": {
349
+ "type": "string",
350
+ "minLength": 1
351
+ },
352
+ "operation_outcome": {
353
+ "enum": [
354
+ "not_sent",
355
+ "rejected",
356
+ "unknown"
357
+ ]
358
+ },
359
+ "trace_id": {
360
+ "type": "string",
361
+ "minLength": 1
362
+ }
363
+ }
364
+ },
365
+ {
366
+ "type": "object",
367
+ "additionalProperties": false,
368
+ "required": [
369
+ "problem_version",
370
+ "code",
371
+ "category",
372
+ "recovery",
373
+ "message"
374
+ ],
375
+ "properties": {
376
+ "problem_version": {
377
+ "const": 1
378
+ },
379
+ "code": {
380
+ "const": "change_cursor_reset"
381
+ },
382
+ "category": {
383
+ "const": "conflict"
384
+ },
385
+ "recovery": {
386
+ "const": "refresh"
387
+ },
388
+ "message": {
389
+ "type": "string",
390
+ "minLength": 1
391
+ },
392
+ "operation_outcome": {
393
+ "enum": [
394
+ "not_sent",
395
+ "rejected",
396
+ "unknown"
397
+ ]
398
+ },
399
+ "trace_id": {
400
+ "type": "string",
401
+ "minLength": 1
402
+ }
403
+ }
404
+ },
405
+ {
406
+ "type": "object",
407
+ "additionalProperties": false,
408
+ "required": [
409
+ "problem_version",
410
+ "code",
411
+ "category",
412
+ "recovery",
413
+ "message"
414
+ ],
415
+ "properties": {
416
+ "problem_version": {
417
+ "const": 1
418
+ },
419
+ "code": {
420
+ "const": "collection_access_denied"
421
+ },
422
+ "category": {
423
+ "const": "authorization"
424
+ },
425
+ "recovery": {
426
+ "const": "reauthorize"
427
+ },
428
+ "message": {
429
+ "type": "string",
430
+ "minLength": 1
431
+ },
432
+ "operation_outcome": {
433
+ "enum": [
434
+ "not_sent",
435
+ "rejected",
436
+ "unknown"
437
+ ]
438
+ },
439
+ "trace_id": {
440
+ "type": "string",
441
+ "minLength": 1
442
+ }
443
+ }
444
+ },
445
+ {
446
+ "type": "object",
447
+ "additionalProperties": false,
448
+ "required": [
449
+ "problem_version",
450
+ "code",
451
+ "category",
452
+ "recovery",
453
+ "message",
454
+ "details"
455
+ ],
456
+ "properties": {
457
+ "problem_version": {
458
+ "const": 1
459
+ },
460
+ "code": {
461
+ "const": "collection_configuration_invalid"
462
+ },
463
+ "category": {
464
+ "const": "validation"
465
+ },
466
+ "recovery": {
467
+ "const": "repair_collection"
468
+ },
469
+ "message": {
470
+ "type": "string",
471
+ "minLength": 1
472
+ },
473
+ "operation_outcome": {
474
+ "enum": [
475
+ "not_sent",
476
+ "rejected",
477
+ "unknown"
478
+ ]
479
+ },
480
+ "trace_id": {
481
+ "type": "string",
482
+ "minLength": 1
483
+ },
484
+ "details": {
485
+ "type": "object",
486
+ "additionalProperties": false,
487
+ "required": [
488
+ "diagnostics"
489
+ ],
490
+ "properties": {
491
+ "diagnostics": {
492
+ "type": "array",
493
+ "items": {
494
+ "type": "object"
495
+ }
496
+ }
497
+ }
498
+ }
499
+ }
500
+ },
501
+ {
502
+ "type": "object",
503
+ "additionalProperties": false,
504
+ "required": [
505
+ "problem_version",
506
+ "code",
507
+ "category",
508
+ "recovery",
509
+ "message",
510
+ "details"
511
+ ],
512
+ "properties": {
513
+ "problem_version": {
514
+ "const": 1
515
+ },
516
+ "code": {
517
+ "const": "collection_contracts_missing"
518
+ },
519
+ "category": {
520
+ "const": "compatibility"
521
+ },
522
+ "recovery": {
523
+ "const": "choose_collection"
524
+ },
525
+ "message": {
526
+ "type": "string",
527
+ "minLength": 1
528
+ },
529
+ "operation_outcome": {
530
+ "enum": [
531
+ "not_sent",
532
+ "rejected",
533
+ "unknown"
534
+ ]
535
+ },
536
+ "trace_id": {
537
+ "type": "string",
538
+ "minLength": 1
539
+ },
540
+ "details": {
541
+ "type": "object",
542
+ "additionalProperties": false,
543
+ "required": [
544
+ "contracts"
545
+ ],
546
+ "properties": {
547
+ "contracts": {
548
+ "type": "array",
549
+ "items": {
550
+ "type": "object",
551
+ "additionalProperties": false,
552
+ "required": [
553
+ "id",
554
+ "version"
555
+ ],
556
+ "properties": {
557
+ "id": {
558
+ "type": "string"
559
+ },
560
+ "version": {
561
+ "type": "string"
562
+ }
563
+ }
564
+ }
565
+ }
566
+ }
567
+ }
568
+ }
569
+ },
570
+ {
571
+ "type": "object",
572
+ "additionalProperties": false,
573
+ "required": [
574
+ "problem_version",
575
+ "code",
576
+ "category",
577
+ "recovery",
578
+ "message"
579
+ ],
580
+ "properties": {
581
+ "problem_version": {
582
+ "const": 1
583
+ },
584
+ "code": {
585
+ "const": "collection_incompatible"
586
+ },
587
+ "category": {
588
+ "const": "compatibility"
589
+ },
590
+ "recovery": {
591
+ "const": "choose_collection"
592
+ },
593
+ "message": {
594
+ "type": "string",
595
+ "minLength": 1
596
+ },
597
+ "operation_outcome": {
598
+ "enum": [
599
+ "not_sent",
600
+ "rejected",
601
+ "unknown"
602
+ ]
603
+ },
604
+ "trace_id": {
605
+ "type": "string",
606
+ "minLength": 1
607
+ }
608
+ }
609
+ },
610
+ {
611
+ "type": "object",
612
+ "additionalProperties": false,
613
+ "required": [
614
+ "problem_version",
615
+ "code",
616
+ "category",
617
+ "recovery",
618
+ "message",
619
+ "details"
620
+ ],
621
+ "properties": {
622
+ "problem_version": {
623
+ "const": 1
624
+ },
625
+ "code": {
626
+ "const": "collection_invalid"
627
+ },
628
+ "category": {
629
+ "const": "validation"
630
+ },
631
+ "recovery": {
632
+ "const": "repair_collection"
633
+ },
634
+ "message": {
635
+ "type": "string",
636
+ "minLength": 1
637
+ },
638
+ "operation_outcome": {
639
+ "enum": [
640
+ "not_sent",
641
+ "rejected",
642
+ "unknown"
643
+ ]
644
+ },
645
+ "trace_id": {
646
+ "type": "string",
647
+ "minLength": 1
648
+ },
649
+ "details": {
650
+ "type": "object",
651
+ "additionalProperties": false,
652
+ "required": [
653
+ "diagnostics"
654
+ ],
655
+ "properties": {
656
+ "diagnostics": {
657
+ "type": "array",
658
+ "items": {
659
+ "type": "object"
660
+ }
661
+ }
662
+ }
663
+ }
664
+ }
665
+ },
666
+ {
667
+ "type": "object",
668
+ "additionalProperties": false,
669
+ "required": [
670
+ "problem_version",
671
+ "code",
672
+ "category",
673
+ "recovery",
674
+ "message"
675
+ ],
676
+ "properties": {
677
+ "problem_version": {
678
+ "const": 1
679
+ },
680
+ "code": {
681
+ "const": "collection_kind_unsupported"
682
+ },
683
+ "category": {
684
+ "const": "compatibility"
685
+ },
686
+ "recovery": {
687
+ "const": "choose_collection"
688
+ },
689
+ "message": {
690
+ "type": "string",
691
+ "minLength": 1
692
+ },
693
+ "operation_outcome": {
694
+ "enum": [
695
+ "not_sent",
696
+ "rejected",
697
+ "unknown"
698
+ ]
699
+ },
700
+ "trace_id": {
701
+ "type": "string",
702
+ "minLength": 1
703
+ }
704
+ }
705
+ },
706
+ {
707
+ "type": "object",
708
+ "additionalProperties": false,
709
+ "required": [
710
+ "problem_version",
711
+ "code",
712
+ "category",
713
+ "recovery",
714
+ "message"
715
+ ],
716
+ "properties": {
717
+ "problem_version": {
718
+ "const": 1
719
+ },
720
+ "code": {
721
+ "const": "collection_mismatch"
722
+ },
723
+ "category": {
724
+ "const": "selection"
725
+ },
726
+ "recovery": {
727
+ "const": "choose_collection"
728
+ },
729
+ "message": {
730
+ "type": "string",
731
+ "minLength": 1
732
+ },
733
+ "operation_outcome": {
734
+ "enum": [
735
+ "not_sent",
736
+ "rejected",
737
+ "unknown"
738
+ ]
739
+ },
740
+ "trace_id": {
741
+ "type": "string",
742
+ "minLength": 1
743
+ }
744
+ }
745
+ },
746
+ {
747
+ "type": "object",
748
+ "additionalProperties": false,
749
+ "required": [
750
+ "problem_version",
751
+ "code",
752
+ "category",
753
+ "recovery",
754
+ "message"
755
+ ],
756
+ "properties": {
757
+ "problem_version": {
758
+ "const": 1
759
+ },
760
+ "code": {
761
+ "const": "collection_not_found"
762
+ },
763
+ "category": {
764
+ "const": "selection"
765
+ },
766
+ "recovery": {
767
+ "const": "choose_collection"
768
+ },
769
+ "message": {
770
+ "type": "string",
771
+ "minLength": 1
772
+ },
773
+ "operation_outcome": {
774
+ "enum": [
775
+ "not_sent",
776
+ "rejected",
777
+ "unknown"
778
+ ]
779
+ },
780
+ "trace_id": {
781
+ "type": "string",
782
+ "minLength": 1
783
+ }
784
+ }
785
+ },
786
+ {
787
+ "type": "object",
788
+ "additionalProperties": false,
789
+ "required": [
790
+ "problem_version",
791
+ "code",
792
+ "category",
793
+ "recovery",
794
+ "message"
795
+ ],
796
+ "properties": {
797
+ "problem_version": {
798
+ "const": 1
799
+ },
800
+ "code": {
801
+ "const": "collection_not_ready"
802
+ },
803
+ "category": {
804
+ "const": "selection"
805
+ },
806
+ "recovery": {
807
+ "const": "choose_collection"
808
+ },
809
+ "message": {
810
+ "type": "string",
811
+ "minLength": 1
812
+ },
813
+ "operation_outcome": {
814
+ "enum": [
815
+ "not_sent",
816
+ "rejected",
817
+ "unknown"
818
+ ]
819
+ },
820
+ "trace_id": {
821
+ "type": "string",
822
+ "minLength": 1
823
+ }
824
+ }
825
+ },
826
+ {
827
+ "type": "object",
828
+ "additionalProperties": false,
829
+ "required": [
830
+ "problem_version",
831
+ "code",
832
+ "category",
833
+ "recovery",
834
+ "message"
835
+ ],
836
+ "properties": {
837
+ "problem_version": {
838
+ "const": 1
839
+ },
840
+ "code": {
841
+ "const": "collection_not_selected"
842
+ },
843
+ "category": {
844
+ "const": "selection"
845
+ },
846
+ "recovery": {
847
+ "const": "choose_collection"
848
+ },
849
+ "message": {
850
+ "type": "string",
851
+ "minLength": 1
852
+ },
853
+ "operation_outcome": {
854
+ "enum": [
855
+ "not_sent",
856
+ "rejected",
857
+ "unknown"
858
+ ]
859
+ },
860
+ "trace_id": {
861
+ "type": "string",
862
+ "minLength": 1
863
+ }
864
+ }
865
+ },
866
+ {
867
+ "type": "object",
868
+ "additionalProperties": false,
869
+ "required": [
870
+ "problem_version",
871
+ "code",
872
+ "category",
873
+ "recovery",
874
+ "message",
875
+ "details"
876
+ ],
877
+ "properties": {
878
+ "problem_version": {
879
+ "const": 1
880
+ },
881
+ "code": {
882
+ "const": "collection_type_registry_invalid"
883
+ },
884
+ "category": {
885
+ "const": "validation"
886
+ },
887
+ "recovery": {
888
+ "const": "repair_collection"
889
+ },
890
+ "message": {
891
+ "type": "string",
892
+ "minLength": 1
893
+ },
894
+ "operation_outcome": {
895
+ "enum": [
896
+ "not_sent",
897
+ "rejected",
898
+ "unknown"
899
+ ]
900
+ },
901
+ "trace_id": {
902
+ "type": "string",
903
+ "minLength": 1
904
+ },
905
+ "details": {
906
+ "type": "object",
907
+ "additionalProperties": false,
908
+ "required": [
909
+ "diagnostics"
910
+ ],
911
+ "properties": {
912
+ "diagnostics": {
913
+ "type": "array",
914
+ "items": {
915
+ "type": "object"
916
+ }
917
+ }
918
+ }
919
+ }
920
+ }
921
+ },
922
+ {
923
+ "type": "object",
924
+ "additionalProperties": false,
925
+ "required": [
926
+ "problem_version",
927
+ "code",
928
+ "category",
929
+ "recovery",
930
+ "message",
931
+ "details"
932
+ ],
933
+ "properties": {
934
+ "problem_version": {
935
+ "const": 1
936
+ },
937
+ "code": {
938
+ "const": "collection_version_unsupported"
939
+ },
940
+ "category": {
941
+ "const": "compatibility"
942
+ },
943
+ "recovery": {
944
+ "const": "upgrade_collection"
945
+ },
946
+ "message": {
947
+ "type": "string",
948
+ "minLength": 1
949
+ },
950
+ "operation_outcome": {
951
+ "enum": [
952
+ "not_sent",
953
+ "rejected",
954
+ "unknown"
955
+ ]
956
+ },
957
+ "trace_id": {
958
+ "type": "string",
959
+ "minLength": 1
960
+ },
961
+ "details": {
962
+ "type": "object",
963
+ "additionalProperties": false,
964
+ "required": [
965
+ "current_version",
966
+ "required_version"
967
+ ],
968
+ "properties": {
969
+ "current_version": {
970
+ "type": "string"
971
+ },
972
+ "required_version": {
973
+ "type": "string"
974
+ }
975
+ }
976
+ }
977
+ }
978
+ },
979
+ {
980
+ "type": "object",
981
+ "additionalProperties": false,
982
+ "required": [
983
+ "problem_version",
984
+ "code",
985
+ "category",
986
+ "recovery",
987
+ "message"
988
+ ],
989
+ "properties": {
990
+ "problem_version": {
991
+ "const": 1
992
+ },
993
+ "code": {
994
+ "const": "concurrent_modification"
995
+ },
996
+ "category": {
997
+ "const": "conflict"
998
+ },
999
+ "recovery": {
1000
+ "const": "refresh"
1001
+ },
1002
+ "message": {
1003
+ "type": "string",
1004
+ "minLength": 1
1005
+ },
1006
+ "operation_outcome": {
1007
+ "enum": [
1008
+ "not_sent",
1009
+ "rejected",
1010
+ "unknown"
1011
+ ]
1012
+ },
1013
+ "trace_id": {
1014
+ "type": "string",
1015
+ "minLength": 1
1016
+ }
1017
+ }
1018
+ },
1019
+ {
1020
+ "type": "object",
1021
+ "additionalProperties": false,
1022
+ "required": [
1023
+ "problem_version",
1024
+ "code",
1025
+ "category",
1026
+ "recovery",
1027
+ "message"
1028
+ ],
1029
+ "properties": {
1030
+ "problem_version": {
1031
+ "const": 1
1032
+ },
1033
+ "code": {
1034
+ "const": "connector_identity_changed"
1035
+ },
1036
+ "category": {
1037
+ "const": "integrity"
1038
+ },
1039
+ "recovery": {
1040
+ "const": "reauthorize"
1041
+ },
1042
+ "message": {
1043
+ "type": "string",
1044
+ "minLength": 1
1045
+ },
1046
+ "operation_outcome": {
1047
+ "enum": [
1048
+ "not_sent",
1049
+ "rejected",
1050
+ "unknown"
1051
+ ]
1052
+ },
1053
+ "trace_id": {
1054
+ "type": "string",
1055
+ "minLength": 1
1056
+ }
1057
+ }
1058
+ },
1059
+ {
1060
+ "type": "object",
1061
+ "additionalProperties": false,
1062
+ "required": [
1063
+ "problem_version",
1064
+ "code",
1065
+ "category",
1066
+ "recovery",
1067
+ "message"
1068
+ ],
1069
+ "properties": {
1070
+ "problem_version": {
1071
+ "const": 1
1072
+ },
1073
+ "code": {
1074
+ "const": "connector_offline"
1075
+ },
1076
+ "category": {
1077
+ "const": "availability"
1078
+ },
1079
+ "recovery": {
1080
+ "const": "retry"
1081
+ },
1082
+ "message": {
1083
+ "type": "string",
1084
+ "minLength": 1
1085
+ },
1086
+ "operation_outcome": {
1087
+ "enum": [
1088
+ "not_sent",
1089
+ "rejected",
1090
+ "unknown"
1091
+ ]
1092
+ },
1093
+ "trace_id": {
1094
+ "type": "string",
1095
+ "minLength": 1
1096
+ },
1097
+ "details": {
1098
+ "type": "object",
1099
+ "additionalProperties": false,
1100
+ "required": [],
1101
+ "properties": {
1102
+ "connector_name": {
1103
+ "type": "string"
1104
+ }
1105
+ }
1106
+ }
1107
+ }
1108
+ },
1109
+ {
1110
+ "type": "object",
1111
+ "additionalProperties": false,
1112
+ "required": [
1113
+ "problem_version",
1114
+ "code",
1115
+ "category",
1116
+ "recovery",
1117
+ "message"
1118
+ ],
1119
+ "properties": {
1120
+ "problem_version": {
1121
+ "const": 1
1122
+ },
1123
+ "code": {
1124
+ "const": "connector_upgrade_required"
1125
+ },
1126
+ "category": {
1127
+ "const": "compatibility"
1128
+ },
1129
+ "recovery": {
1130
+ "const": "upgrade_connector"
1131
+ },
1132
+ "message": {
1133
+ "type": "string",
1134
+ "minLength": 1
1135
+ },
1136
+ "operation_outcome": {
1137
+ "enum": [
1138
+ "not_sent",
1139
+ "rejected",
1140
+ "unknown"
1141
+ ]
1142
+ },
1143
+ "trace_id": {
1144
+ "type": "string",
1145
+ "minLength": 1
1146
+ }
1147
+ }
1148
+ },
1149
+ {
1150
+ "type": "object",
1151
+ "additionalProperties": false,
1152
+ "required": [
1153
+ "problem_version",
1154
+ "code",
1155
+ "category",
1156
+ "recovery",
1157
+ "message"
1158
+ ],
1159
+ "properties": {
1160
+ "problem_version": {
1161
+ "const": 1
1162
+ },
1163
+ "code": {
1164
+ "const": "device_authorization_failed"
1165
+ },
1166
+ "category": {
1167
+ "const": "authorization"
1168
+ },
1169
+ "recovery": {
1170
+ "const": "reauthorize"
1171
+ },
1172
+ "message": {
1173
+ "type": "string",
1174
+ "minLength": 1
1175
+ },
1176
+ "operation_outcome": {
1177
+ "enum": [
1178
+ "not_sent",
1179
+ "rejected",
1180
+ "unknown"
1181
+ ]
1182
+ },
1183
+ "trace_id": {
1184
+ "type": "string",
1185
+ "minLength": 1
1186
+ }
1187
+ }
1188
+ },
1189
+ {
1190
+ "type": "object",
1191
+ "additionalProperties": false,
1192
+ "required": [
1193
+ "problem_version",
1194
+ "code",
1195
+ "category",
1196
+ "recovery",
1197
+ "message"
1198
+ ],
1199
+ "properties": {
1200
+ "problem_version": {
1201
+ "const": 1
1202
+ },
1203
+ "code": {
1204
+ "const": "direct_operation_rejected"
1205
+ },
1206
+ "category": {
1207
+ "const": "authorization"
1208
+ },
1209
+ "recovery": {
1210
+ "const": "reauthorize"
1211
+ },
1212
+ "message": {
1213
+ "type": "string",
1214
+ "minLength": 1
1215
+ },
1216
+ "operation_outcome": {
1217
+ "enum": [
1218
+ "not_sent",
1219
+ "rejected",
1220
+ "unknown"
1221
+ ]
1222
+ },
1223
+ "trace_id": {
1224
+ "type": "string",
1225
+ "minLength": 1
1226
+ }
1227
+ }
1228
+ },
1229
+ {
1230
+ "type": "object",
1231
+ "additionalProperties": false,
1232
+ "required": [
1233
+ "problem_version",
1234
+ "code",
1235
+ "category",
1236
+ "recovery",
1237
+ "message"
1238
+ ],
1239
+ "properties": {
1240
+ "problem_version": {
1241
+ "const": 1
1242
+ },
1243
+ "code": {
1244
+ "const": "discovery_failed"
1245
+ },
1246
+ "category": {
1247
+ "const": "availability"
1248
+ },
1249
+ "recovery": {
1250
+ "const": "retry"
1251
+ },
1252
+ "message": {
1253
+ "type": "string",
1254
+ "minLength": 1
1255
+ },
1256
+ "operation_outcome": {
1257
+ "enum": [
1258
+ "not_sent",
1259
+ "rejected",
1260
+ "unknown"
1261
+ ]
1262
+ },
1263
+ "trace_id": {
1264
+ "type": "string",
1265
+ "minLength": 1
1266
+ }
1267
+ }
1268
+ },
1269
+ {
1270
+ "type": "object",
1271
+ "additionalProperties": false,
1272
+ "required": [
1273
+ "problem_version",
1274
+ "code",
1275
+ "category",
1276
+ "recovery",
1277
+ "message"
1278
+ ],
1279
+ "properties": {
1280
+ "problem_version": {
1281
+ "const": 1
1282
+ },
1283
+ "code": {
1284
+ "const": "encrypted_relay_rejected"
1285
+ },
1286
+ "category": {
1287
+ "const": "authorization"
1288
+ },
1289
+ "recovery": {
1290
+ "const": "reauthorize"
1291
+ },
1292
+ "message": {
1293
+ "type": "string",
1294
+ "minLength": 1
1295
+ },
1296
+ "operation_outcome": {
1297
+ "enum": [
1298
+ "not_sent",
1299
+ "rejected",
1300
+ "unknown"
1301
+ ]
1302
+ },
1303
+ "trace_id": {
1304
+ "type": "string",
1305
+ "minLength": 1
1306
+ }
1307
+ }
1308
+ },
1309
+ {
1310
+ "type": "object",
1311
+ "additionalProperties": false,
1312
+ "required": [
1313
+ "problem_version",
1314
+ "code",
1315
+ "category",
1316
+ "recovery",
1317
+ "message"
1318
+ ],
1319
+ "properties": {
1320
+ "problem_version": {
1321
+ "const": 1
1322
+ },
1323
+ "code": {
1324
+ "const": "encryption_required"
1325
+ },
1326
+ "category": {
1327
+ "const": "authorization"
1328
+ },
1329
+ "recovery": {
1330
+ "const": "reauthorize"
1331
+ },
1332
+ "message": {
1333
+ "type": "string",
1334
+ "minLength": 1
1335
+ },
1336
+ "operation_outcome": {
1337
+ "enum": [
1338
+ "not_sent",
1339
+ "rejected",
1340
+ "unknown"
1341
+ ]
1342
+ },
1343
+ "trace_id": {
1344
+ "type": "string",
1345
+ "minLength": 1
1346
+ }
1347
+ }
1348
+ },
1349
+ {
1350
+ "type": "object",
1351
+ "additionalProperties": false,
1352
+ "required": [
1353
+ "problem_version",
1354
+ "code",
1355
+ "category",
1356
+ "recovery",
1357
+ "message"
1358
+ ],
1359
+ "properties": {
1360
+ "problem_version": {
1361
+ "const": 1
1362
+ },
1363
+ "code": {
1364
+ "const": "expired_token"
1365
+ },
1366
+ "category": {
1367
+ "const": "authorization"
1368
+ },
1369
+ "recovery": {
1370
+ "const": "reauthorize"
1371
+ },
1372
+ "message": {
1373
+ "type": "string",
1374
+ "minLength": 1
1375
+ },
1376
+ "operation_outcome": {
1377
+ "enum": [
1378
+ "not_sent",
1379
+ "rejected",
1380
+ "unknown"
1381
+ ]
1382
+ },
1383
+ "trace_id": {
1384
+ "type": "string",
1385
+ "minLength": 1
1386
+ }
1387
+ }
1388
+ },
1389
+ {
1390
+ "type": "object",
1391
+ "additionalProperties": false,
1392
+ "required": [
1393
+ "problem_version",
1394
+ "code",
1395
+ "category",
1396
+ "recovery",
1397
+ "message"
1398
+ ],
1399
+ "properties": {
1400
+ "problem_version": {
1401
+ "const": 1
1402
+ },
1403
+ "code": {
1404
+ "const": "file_changed_during_move"
1405
+ },
1406
+ "category": {
1407
+ "const": "conflict"
1408
+ },
1409
+ "recovery": {
1410
+ "const": "refresh"
1411
+ },
1412
+ "message": {
1413
+ "type": "string",
1414
+ "minLength": 1
1415
+ },
1416
+ "operation_outcome": {
1417
+ "enum": [
1418
+ "not_sent",
1419
+ "rejected",
1420
+ "unknown"
1421
+ ]
1422
+ },
1423
+ "trace_id": {
1424
+ "type": "string",
1425
+ "minLength": 1
1426
+ }
1427
+ }
1428
+ },
1429
+ {
1430
+ "type": "object",
1431
+ "additionalProperties": false,
1432
+ "required": [
1433
+ "problem_version",
1434
+ "code",
1435
+ "category",
1436
+ "recovery",
1437
+ "message"
1438
+ ],
1439
+ "properties": {
1440
+ "problem_version": {
1441
+ "const": 1
1442
+ },
1443
+ "code": {
1444
+ "const": "file_changed_during_read"
1445
+ },
1446
+ "category": {
1447
+ "const": "conflict"
1448
+ },
1449
+ "recovery": {
1450
+ "const": "refresh"
1451
+ },
1452
+ "message": {
1453
+ "type": "string",
1454
+ "minLength": 1
1455
+ },
1456
+ "operation_outcome": {
1457
+ "enum": [
1458
+ "not_sent",
1459
+ "rejected",
1460
+ "unknown"
1461
+ ]
1462
+ },
1463
+ "trace_id": {
1464
+ "type": "string",
1465
+ "minLength": 1
1466
+ }
1467
+ }
1468
+ },
1469
+ {
1470
+ "type": "object",
1471
+ "additionalProperties": false,
1472
+ "required": [
1473
+ "problem_version",
1474
+ "code",
1475
+ "category",
1476
+ "recovery",
1477
+ "message"
1478
+ ],
1479
+ "properties": {
1480
+ "problem_version": {
1481
+ "const": 1
1482
+ },
1483
+ "code": {
1484
+ "const": "file_move_failed"
1485
+ },
1486
+ "category": {
1487
+ "const": "internal"
1488
+ },
1489
+ "recovery": {
1490
+ "const": "contact_support"
1491
+ },
1492
+ "message": {
1493
+ "type": "string",
1494
+ "minLength": 1
1495
+ },
1496
+ "operation_outcome": {
1497
+ "enum": [
1498
+ "not_sent",
1499
+ "rejected",
1500
+ "unknown"
1501
+ ]
1502
+ },
1503
+ "trace_id": {
1504
+ "type": "string",
1505
+ "minLength": 1
1506
+ }
1507
+ }
1508
+ },
1509
+ {
1510
+ "type": "object",
1511
+ "additionalProperties": false,
1512
+ "required": [
1513
+ "problem_version",
1514
+ "code",
1515
+ "category",
1516
+ "recovery",
1517
+ "message"
1518
+ ],
1519
+ "properties": {
1520
+ "problem_version": {
1521
+ "const": 1
1522
+ },
1523
+ "code": {
1524
+ "const": "file_mutation_conflict"
1525
+ },
1526
+ "category": {
1527
+ "const": "conflict"
1528
+ },
1529
+ "recovery": {
1530
+ "const": "resolve_conflict"
1531
+ },
1532
+ "message": {
1533
+ "type": "string",
1534
+ "minLength": 1
1535
+ },
1536
+ "operation_outcome": {
1537
+ "enum": [
1538
+ "not_sent",
1539
+ "rejected",
1540
+ "unknown"
1541
+ ]
1542
+ },
1543
+ "trace_id": {
1544
+ "type": "string",
1545
+ "minLength": 1
1546
+ }
1547
+ }
1548
+ },
1549
+ {
1550
+ "type": "object",
1551
+ "additionalProperties": false,
1552
+ "required": [
1553
+ "problem_version",
1554
+ "code",
1555
+ "category",
1556
+ "recovery",
1557
+ "message"
1558
+ ],
1559
+ "properties": {
1560
+ "problem_version": {
1561
+ "const": 1
1562
+ },
1563
+ "code": {
1564
+ "const": "file_not_found"
1565
+ },
1566
+ "category": {
1567
+ "const": "conflict"
1568
+ },
1569
+ "recovery": {
1570
+ "const": "refresh"
1571
+ },
1572
+ "message": {
1573
+ "type": "string",
1574
+ "minLength": 1
1575
+ },
1576
+ "operation_outcome": {
1577
+ "enum": [
1578
+ "not_sent",
1579
+ "rejected",
1580
+ "unknown"
1581
+ ]
1582
+ },
1583
+ "trace_id": {
1584
+ "type": "string",
1585
+ "minLength": 1
1586
+ }
1587
+ }
1588
+ },
1589
+ {
1590
+ "type": "object",
1591
+ "additionalProperties": false,
1592
+ "required": [
1593
+ "problem_version",
1594
+ "code",
1595
+ "category",
1596
+ "recovery",
1597
+ "message"
1598
+ ],
1599
+ "properties": {
1600
+ "problem_version": {
1601
+ "const": 1
1602
+ },
1603
+ "code": {
1604
+ "const": "file_source_mismatch"
1605
+ },
1606
+ "category": {
1607
+ "const": "conflict"
1608
+ },
1609
+ "recovery": {
1610
+ "const": "refresh"
1611
+ },
1612
+ "message": {
1613
+ "type": "string",
1614
+ "minLength": 1
1615
+ },
1616
+ "operation_outcome": {
1617
+ "enum": [
1618
+ "not_sent",
1619
+ "rejected",
1620
+ "unknown"
1621
+ ]
1622
+ },
1623
+ "trace_id": {
1624
+ "type": "string",
1625
+ "minLength": 1
1626
+ }
1627
+ }
1628
+ },
1629
+ {
1630
+ "type": "object",
1631
+ "additionalProperties": false,
1632
+ "required": [
1633
+ "problem_version",
1634
+ "code",
1635
+ "category",
1636
+ "recovery",
1637
+ "message"
1638
+ ],
1639
+ "properties": {
1640
+ "problem_version": {
1641
+ "const": 1
1642
+ },
1643
+ "code": {
1644
+ "const": "file_upload_incomplete"
1645
+ },
1646
+ "category": {
1647
+ "const": "conflict"
1648
+ },
1649
+ "recovery": {
1650
+ "const": "retry"
1651
+ },
1652
+ "message": {
1653
+ "type": "string",
1654
+ "minLength": 1
1655
+ },
1656
+ "operation_outcome": {
1657
+ "enum": [
1658
+ "not_sent",
1659
+ "rejected",
1660
+ "unknown"
1661
+ ]
1662
+ },
1663
+ "trace_id": {
1664
+ "type": "string",
1665
+ "minLength": 1
1666
+ }
1667
+ }
1668
+ },
1669
+ {
1670
+ "type": "object",
1671
+ "additionalProperties": false,
1672
+ "required": [
1673
+ "problem_version",
1674
+ "code",
1675
+ "category",
1676
+ "recovery",
1677
+ "message"
1678
+ ],
1679
+ "properties": {
1680
+ "problem_version": {
1681
+ "const": 1
1682
+ },
1683
+ "code": {
1684
+ "const": "hosted_provider_unavailable"
1685
+ },
1686
+ "category": {
1687
+ "const": "availability"
1688
+ },
1689
+ "recovery": {
1690
+ "const": "retry"
1691
+ },
1692
+ "message": {
1693
+ "type": "string",
1694
+ "minLength": 1
1695
+ },
1696
+ "operation_outcome": {
1697
+ "enum": [
1698
+ "not_sent",
1699
+ "rejected",
1700
+ "unknown"
1701
+ ]
1702
+ },
1703
+ "trace_id": {
1704
+ "type": "string",
1705
+ "minLength": 1
1706
+ }
1707
+ }
1708
+ },
1709
+ {
1710
+ "type": "object",
1711
+ "additionalProperties": false,
1712
+ "required": [
1713
+ "problem_version",
1714
+ "code",
1715
+ "category",
1716
+ "recovery",
1717
+ "message",
1718
+ "details"
1719
+ ],
1720
+ "properties": {
1721
+ "problem_version": {
1722
+ "const": 1
1723
+ },
1724
+ "code": {
1725
+ "const": "insufficient_access"
1726
+ },
1727
+ "category": {
1728
+ "const": "authorization"
1729
+ },
1730
+ "recovery": {
1731
+ "const": "reauthorize"
1732
+ },
1733
+ "message": {
1734
+ "type": "string",
1735
+ "minLength": 1
1736
+ },
1737
+ "operation_outcome": {
1738
+ "enum": [
1739
+ "not_sent",
1740
+ "rejected",
1741
+ "unknown"
1742
+ ]
1743
+ },
1744
+ "trace_id": {
1745
+ "type": "string",
1746
+ "minLength": 1
1747
+ },
1748
+ "details": {
1749
+ "type": "object",
1750
+ "additionalProperties": false,
1751
+ "required": [
1752
+ "required_operations",
1753
+ "granted_operations",
1754
+ "missing_operations"
1755
+ ],
1756
+ "properties": {
1757
+ "required_operations": {
1758
+ "type": "array",
1759
+ "items": {
1760
+ "type": "string"
1761
+ }
1762
+ },
1763
+ "granted_operations": {
1764
+ "type": "array",
1765
+ "items": {
1766
+ "type": "string"
1767
+ }
1768
+ },
1769
+ "missing_operations": {
1770
+ "type": "array",
1771
+ "items": {
1772
+ "type": "string"
1773
+ }
1774
+ }
1775
+ }
1776
+ }
1777
+ }
1778
+ },
1779
+ {
1780
+ "type": "object",
1781
+ "additionalProperties": false,
1782
+ "required": [
1783
+ "problem_version",
1784
+ "code",
1785
+ "category",
1786
+ "recovery",
1787
+ "message"
1788
+ ],
1789
+ "properties": {
1790
+ "problem_version": {
1791
+ "const": 1
1792
+ },
1793
+ "code": {
1794
+ "const": "invalid_application_manifest"
1795
+ },
1796
+ "category": {
1797
+ "const": "validation"
1798
+ },
1799
+ "recovery": {
1800
+ "const": "fix_request"
1801
+ },
1802
+ "message": {
1803
+ "type": "string",
1804
+ "minLength": 1
1805
+ },
1806
+ "operation_outcome": {
1807
+ "enum": [
1808
+ "not_sent",
1809
+ "rejected",
1810
+ "unknown"
1811
+ ]
1812
+ },
1813
+ "trace_id": {
1814
+ "type": "string",
1815
+ "minLength": 1
1816
+ }
1817
+ }
1818
+ },
1819
+ {
1820
+ "type": "object",
1821
+ "additionalProperties": false,
1822
+ "required": [
1823
+ "problem_version",
1824
+ "code",
1825
+ "category",
1826
+ "recovery",
1827
+ "message"
1828
+ ],
1829
+ "properties": {
1830
+ "problem_version": {
1831
+ "const": 1
1832
+ },
1833
+ "code": {
1834
+ "const": "invalid_callback"
1835
+ },
1836
+ "category": {
1837
+ "const": "validation"
1838
+ },
1839
+ "recovery": {
1840
+ "const": "fix_request"
1841
+ },
1842
+ "message": {
1843
+ "type": "string",
1844
+ "minLength": 1
1845
+ },
1846
+ "operation_outcome": {
1847
+ "enum": [
1848
+ "not_sent",
1849
+ "rejected",
1850
+ "unknown"
1851
+ ]
1852
+ },
1853
+ "trace_id": {
1854
+ "type": "string",
1855
+ "minLength": 1
1856
+ }
1857
+ }
1858
+ },
1859
+ {
1860
+ "type": "object",
1861
+ "additionalProperties": false,
1862
+ "required": [
1863
+ "problem_version",
1864
+ "code",
1865
+ "category",
1866
+ "recovery",
1867
+ "message"
1868
+ ],
1869
+ "properties": {
1870
+ "problem_version": {
1871
+ "const": 1
1872
+ },
1873
+ "code": {
1874
+ "const": "invalid_device_authorization_response"
1875
+ },
1876
+ "category": {
1877
+ "const": "integrity"
1878
+ },
1879
+ "recovery": {
1880
+ "const": "contact_support"
1881
+ },
1882
+ "message": {
1883
+ "type": "string",
1884
+ "minLength": 1
1885
+ },
1886
+ "operation_outcome": {
1887
+ "enum": [
1888
+ "not_sent",
1889
+ "rejected",
1890
+ "unknown"
1891
+ ]
1892
+ },
1893
+ "trace_id": {
1894
+ "type": "string",
1895
+ "minLength": 1
1896
+ }
1897
+ }
1898
+ },
1899
+ {
1900
+ "type": "object",
1901
+ "additionalProperties": false,
1902
+ "required": [
1903
+ "problem_version",
1904
+ "code",
1905
+ "category",
1906
+ "recovery",
1907
+ "message"
1908
+ ],
1909
+ "properties": {
1910
+ "problem_version": {
1911
+ "const": 1
1912
+ },
1913
+ "code": {
1914
+ "const": "invalid_encrypted_response"
1915
+ },
1916
+ "category": {
1917
+ "const": "integrity"
1918
+ },
1919
+ "recovery": {
1920
+ "const": "contact_support"
1921
+ },
1922
+ "message": {
1923
+ "type": "string",
1924
+ "minLength": 1
1925
+ },
1926
+ "operation_outcome": {
1927
+ "enum": [
1928
+ "not_sent",
1929
+ "rejected",
1930
+ "unknown"
1931
+ ]
1932
+ },
1933
+ "trace_id": {
1934
+ "type": "string",
1935
+ "minLength": 1
1936
+ }
1937
+ }
1938
+ },
1939
+ {
1940
+ "type": "object",
1941
+ "additionalProperties": false,
1942
+ "required": [
1943
+ "problem_version",
1944
+ "code",
1945
+ "category",
1946
+ "recovery",
1947
+ "message"
1948
+ ],
1949
+ "properties": {
1950
+ "problem_version": {
1951
+ "const": 1
1952
+ },
1953
+ "code": {
1954
+ "const": "invalid_loopback_url"
1955
+ },
1956
+ "category": {
1957
+ "const": "validation"
1958
+ },
1959
+ "recovery": {
1960
+ "const": "fix_request"
1961
+ },
1962
+ "message": {
1963
+ "type": "string",
1964
+ "minLength": 1
1965
+ },
1966
+ "operation_outcome": {
1967
+ "enum": [
1968
+ "not_sent",
1969
+ "rejected",
1970
+ "unknown"
1971
+ ]
1972
+ },
1973
+ "trace_id": {
1974
+ "type": "string",
1975
+ "minLength": 1
1976
+ }
1977
+ }
1978
+ },
1979
+ {
1980
+ "type": "object",
1981
+ "additionalProperties": false,
1982
+ "required": [
1983
+ "problem_version",
1984
+ "code",
1985
+ "category",
1986
+ "recovery",
1987
+ "message"
1988
+ ],
1989
+ "properties": {
1990
+ "problem_version": {
1991
+ "const": 1
1992
+ },
1993
+ "code": {
1994
+ "const": "invalid_mutation_id"
1995
+ },
1996
+ "category": {
1997
+ "const": "validation"
1998
+ },
1999
+ "recovery": {
2000
+ "const": "fix_request"
2001
+ },
2002
+ "message": {
2003
+ "type": "string",
2004
+ "minLength": 1
2005
+ },
2006
+ "operation_outcome": {
2007
+ "enum": [
2008
+ "not_sent",
2009
+ "rejected",
2010
+ "unknown"
2011
+ ]
2012
+ },
2013
+ "trace_id": {
2014
+ "type": "string",
2015
+ "minLength": 1
2016
+ }
2017
+ }
2018
+ },
2019
+ {
2020
+ "type": "object",
2021
+ "additionalProperties": false,
2022
+ "required": [
2023
+ "problem_version",
2024
+ "code",
2025
+ "category",
2026
+ "recovery",
2027
+ "message"
2028
+ ],
2029
+ "properties": {
2030
+ "problem_version": {
2031
+ "const": 1
2032
+ },
2033
+ "code": {
2034
+ "const": "invalid_operation_response"
2035
+ },
2036
+ "category": {
2037
+ "const": "integrity"
2038
+ },
2039
+ "recovery": {
2040
+ "const": "contact_support"
2041
+ },
2042
+ "message": {
2043
+ "type": "string",
2044
+ "minLength": 1
2045
+ },
2046
+ "operation_outcome": {
2047
+ "enum": [
2048
+ "not_sent",
2049
+ "rejected",
2050
+ "unknown"
2051
+ ]
2052
+ },
2053
+ "trace_id": {
2054
+ "type": "string",
2055
+ "minLength": 1
2056
+ }
2057
+ }
2058
+ },
2059
+ {
2060
+ "type": "object",
2061
+ "additionalProperties": false,
2062
+ "required": [
2063
+ "problem_version",
2064
+ "code",
2065
+ "category",
2066
+ "recovery",
2067
+ "message"
2068
+ ],
2069
+ "properties": {
2070
+ "problem_version": {
2071
+ "const": 1
2072
+ },
2073
+ "code": {
2074
+ "const": "invalid_path"
2075
+ },
2076
+ "category": {
2077
+ "const": "validation"
2078
+ },
2079
+ "recovery": {
2080
+ "const": "fix_request"
2081
+ },
2082
+ "message": {
2083
+ "type": "string",
2084
+ "minLength": 1
2085
+ },
2086
+ "operation_outcome": {
2087
+ "enum": [
2088
+ "not_sent",
2089
+ "rejected",
2090
+ "unknown"
2091
+ ]
2092
+ },
2093
+ "trace_id": {
2094
+ "type": "string",
2095
+ "minLength": 1
2096
+ }
2097
+ }
2098
+ },
2099
+ {
2100
+ "type": "object",
2101
+ "additionalProperties": false,
2102
+ "required": [
2103
+ "problem_version",
2104
+ "code",
2105
+ "category",
2106
+ "recovery",
2107
+ "message"
2108
+ ],
2109
+ "properties": {
2110
+ "problem_version": {
2111
+ "const": 1
2112
+ },
2113
+ "code": {
2114
+ "const": "invalid_preflight"
2115
+ },
2116
+ "category": {
2117
+ "const": "conflict"
2118
+ },
2119
+ "recovery": {
2120
+ "const": "refresh"
2121
+ },
2122
+ "message": {
2123
+ "type": "string",
2124
+ "minLength": 1
2125
+ },
2126
+ "operation_outcome": {
2127
+ "enum": [
2128
+ "not_sent",
2129
+ "rejected",
2130
+ "unknown"
2131
+ ]
2132
+ },
2133
+ "trace_id": {
2134
+ "type": "string",
2135
+ "minLength": 1
2136
+ }
2137
+ }
2138
+ },
2139
+ {
2140
+ "type": "object",
2141
+ "additionalProperties": false,
2142
+ "required": [
2143
+ "problem_version",
2144
+ "code",
2145
+ "category",
2146
+ "recovery",
2147
+ "message"
2148
+ ],
2149
+ "properties": {
2150
+ "problem_version": {
2151
+ "const": 1
2152
+ },
2153
+ "code": {
2154
+ "const": "invalid_push_payload"
2155
+ },
2156
+ "category": {
2157
+ "const": "validation"
2158
+ },
2159
+ "recovery": {
2160
+ "const": "fix_request"
2161
+ },
2162
+ "message": {
2163
+ "type": "string",
2164
+ "minLength": 1
2165
+ },
2166
+ "operation_outcome": {
2167
+ "enum": [
2168
+ "not_sent",
2169
+ "rejected",
2170
+ "unknown"
2171
+ ]
2172
+ },
2173
+ "trace_id": {
2174
+ "type": "string",
2175
+ "minLength": 1
2176
+ }
2177
+ }
2178
+ },
2179
+ {
2180
+ "type": "object",
2181
+ "additionalProperties": false,
2182
+ "required": [
2183
+ "problem_version",
2184
+ "code",
2185
+ "category",
2186
+ "recovery",
2187
+ "message"
2188
+ ],
2189
+ "properties": {
2190
+ "problem_version": {
2191
+ "const": 1
2192
+ },
2193
+ "code": {
2194
+ "const": "invalid_push_subscription"
2195
+ },
2196
+ "category": {
2197
+ "const": "validation"
2198
+ },
2199
+ "recovery": {
2200
+ "const": "fix_request"
2201
+ },
2202
+ "message": {
2203
+ "type": "string",
2204
+ "minLength": 1
2205
+ },
2206
+ "operation_outcome": {
2207
+ "enum": [
2208
+ "not_sent",
2209
+ "rejected",
2210
+ "unknown"
2211
+ ]
2212
+ },
2213
+ "trace_id": {
2214
+ "type": "string",
2215
+ "minLength": 1
2216
+ }
2217
+ }
2218
+ },
2219
+ {
2220
+ "type": "object",
2221
+ "additionalProperties": false,
2222
+ "required": [
2223
+ "problem_version",
2224
+ "code",
2225
+ "category",
2226
+ "recovery",
2227
+ "message"
2228
+ ],
2229
+ "properties": {
2230
+ "problem_version": {
2231
+ "const": 1
2232
+ },
2233
+ "code": {
2234
+ "const": "invalid_request"
2235
+ },
2236
+ "category": {
2237
+ "const": "validation"
2238
+ },
2239
+ "recovery": {
2240
+ "const": "fix_request"
2241
+ },
2242
+ "message": {
2243
+ "type": "string",
2244
+ "minLength": 1
2245
+ },
2246
+ "operation_outcome": {
2247
+ "enum": [
2248
+ "not_sent",
2249
+ "rejected",
2250
+ "unknown"
2251
+ ]
2252
+ },
2253
+ "trace_id": {
2254
+ "type": "string",
2255
+ "minLength": 1
2256
+ }
2257
+ }
2258
+ },
2259
+ {
2260
+ "type": "object",
2261
+ "additionalProperties": false,
2262
+ "required": [
2263
+ "problem_version",
2264
+ "code",
2265
+ "category",
2266
+ "recovery",
2267
+ "message"
2268
+ ],
2269
+ "properties": {
2270
+ "problem_version": {
2271
+ "const": 1
2272
+ },
2273
+ "code": {
2274
+ "const": "invalid_token_response"
2275
+ },
2276
+ "category": {
2277
+ "const": "integrity"
2278
+ },
2279
+ "recovery": {
2280
+ "const": "contact_support"
2281
+ },
2282
+ "message": {
2283
+ "type": "string",
2284
+ "minLength": 1
2285
+ },
2286
+ "operation_outcome": {
2287
+ "enum": [
2288
+ "not_sent",
2289
+ "rejected",
2290
+ "unknown"
2291
+ ]
2292
+ },
2293
+ "trace_id": {
2294
+ "type": "string",
2295
+ "minLength": 1
2296
+ }
2297
+ }
2298
+ },
2299
+ {
2300
+ "type": "object",
2301
+ "additionalProperties": false,
2302
+ "required": [
2303
+ "problem_version",
2304
+ "code",
2305
+ "category",
2306
+ "recovery",
2307
+ "message"
2308
+ ],
2309
+ "properties": {
2310
+ "problem_version": {
2311
+ "const": 1
2312
+ },
2313
+ "code": {
2314
+ "const": "managed_fcm_not_declared"
2315
+ },
2316
+ "category": {
2317
+ "const": "compatibility"
2318
+ },
2319
+ "recovery": {
2320
+ "const": "fix_request"
2321
+ },
2322
+ "message": {
2323
+ "type": "string",
2324
+ "minLength": 1
2325
+ },
2326
+ "operation_outcome": {
2327
+ "enum": [
2328
+ "not_sent",
2329
+ "rejected",
2330
+ "unknown"
2331
+ ]
2332
+ },
2333
+ "trace_id": {
2334
+ "type": "string",
2335
+ "minLength": 1
2336
+ }
2337
+ }
2338
+ },
2339
+ {
2340
+ "type": "object",
2341
+ "additionalProperties": false,
2342
+ "required": [
2343
+ "problem_version",
2344
+ "code",
2345
+ "category",
2346
+ "recovery",
2347
+ "message"
2348
+ ],
2349
+ "properties": {
2350
+ "problem_version": {
2351
+ "const": 1
2352
+ },
2353
+ "code": {
2354
+ "const": "manifest_load_failed"
2355
+ },
2356
+ "category": {
2357
+ "const": "availability"
2358
+ },
2359
+ "recovery": {
2360
+ "const": "retry"
2361
+ },
2362
+ "message": {
2363
+ "type": "string",
2364
+ "minLength": 1
2365
+ },
2366
+ "operation_outcome": {
2367
+ "enum": [
2368
+ "not_sent",
2369
+ "rejected",
2370
+ "unknown"
2371
+ ]
2372
+ },
2373
+ "trace_id": {
2374
+ "type": "string",
2375
+ "minLength": 1
2376
+ }
2377
+ }
2378
+ },
2379
+ {
2380
+ "type": "object",
2381
+ "additionalProperties": false,
2382
+ "required": [
2383
+ "problem_version",
2384
+ "code",
2385
+ "category",
2386
+ "recovery",
2387
+ "message"
2388
+ ],
2389
+ "properties": {
2390
+ "problem_version": {
2391
+ "const": 1
2392
+ },
2393
+ "code": {
2394
+ "const": "manifest_required"
2395
+ },
2396
+ "category": {
2397
+ "const": "validation"
2398
+ },
2399
+ "recovery": {
2400
+ "const": "fix_request"
2401
+ },
2402
+ "message": {
2403
+ "type": "string",
2404
+ "minLength": 1
2405
+ },
2406
+ "operation_outcome": {
2407
+ "enum": [
2408
+ "not_sent",
2409
+ "rejected",
2410
+ "unknown"
2411
+ ]
2412
+ },
2413
+ "trace_id": {
2414
+ "type": "string",
2415
+ "minLength": 1
2416
+ }
2417
+ }
2418
+ },
2419
+ {
2420
+ "type": "object",
2421
+ "additionalProperties": false,
2422
+ "required": [
2423
+ "problem_version",
2424
+ "code",
2425
+ "category",
2426
+ "recovery",
2427
+ "message"
2428
+ ],
2429
+ "properties": {
2430
+ "problem_version": {
2431
+ "const": 1
2432
+ },
2433
+ "code": {
2434
+ "const": "missing_grant_key"
2435
+ },
2436
+ "category": {
2437
+ "const": "authorization"
2438
+ },
2439
+ "recovery": {
2440
+ "const": "reauthorize"
2441
+ },
2442
+ "message": {
2443
+ "type": "string",
2444
+ "minLength": 1
2445
+ },
2446
+ "operation_outcome": {
2447
+ "enum": [
2448
+ "not_sent",
2449
+ "rejected",
2450
+ "unknown"
2451
+ ]
2452
+ },
2453
+ "trace_id": {
2454
+ "type": "string",
2455
+ "minLength": 1
2456
+ }
2457
+ }
2458
+ },
2459
+ {
2460
+ "type": "object",
2461
+ "additionalProperties": false,
2462
+ "required": [
2463
+ "problem_version",
2464
+ "code",
2465
+ "category",
2466
+ "recovery",
2467
+ "message"
2468
+ ],
2469
+ "properties": {
2470
+ "problem_version": {
2471
+ "const": 1
2472
+ },
2473
+ "code": {
2474
+ "const": "no_pending_mutation"
2475
+ },
2476
+ "category": {
2477
+ "const": "conflict"
2478
+ },
2479
+ "recovery": {
2480
+ "const": "refresh"
2481
+ },
2482
+ "message": {
2483
+ "type": "string",
2484
+ "minLength": 1
2485
+ },
2486
+ "operation_outcome": {
2487
+ "enum": [
2488
+ "not_sent",
2489
+ "rejected",
2490
+ "unknown"
2491
+ ]
2492
+ },
2493
+ "trace_id": {
2494
+ "type": "string",
2495
+ "minLength": 1
2496
+ }
2497
+ }
2498
+ },
2499
+ {
2500
+ "type": "object",
2501
+ "additionalProperties": false,
2502
+ "required": [
2503
+ "problem_version",
2504
+ "code",
2505
+ "category",
2506
+ "recovery",
2507
+ "message"
2508
+ ],
2509
+ "properties": {
2510
+ "problem_version": {
2511
+ "const": 1
2512
+ },
2513
+ "code": {
2514
+ "const": "not_authorized"
2515
+ },
2516
+ "category": {
2517
+ "const": "authorization"
2518
+ },
2519
+ "recovery": {
2520
+ "const": "reauthorize"
2521
+ },
2522
+ "message": {
2523
+ "type": "string",
2524
+ "minLength": 1
2525
+ },
2526
+ "operation_outcome": {
2527
+ "enum": [
2528
+ "not_sent",
2529
+ "rejected",
2530
+ "unknown"
2531
+ ]
2532
+ },
2533
+ "trace_id": {
2534
+ "type": "string",
2535
+ "minLength": 1
2536
+ }
2537
+ }
2538
+ },
2539
+ {
2540
+ "type": "object",
2541
+ "additionalProperties": false,
2542
+ "required": [
2543
+ "problem_version",
2544
+ "code",
2545
+ "category",
2546
+ "recovery",
2547
+ "message"
2548
+ ],
2549
+ "properties": {
2550
+ "problem_version": {
2551
+ "const": 1
2552
+ },
2553
+ "code": {
2554
+ "const": "not_remote_authority"
2555
+ },
2556
+ "category": {
2557
+ "const": "compatibility"
2558
+ },
2559
+ "recovery": {
2560
+ "const": "choose_collection"
2561
+ },
2562
+ "message": {
2563
+ "type": "string",
2564
+ "minLength": 1
2565
+ },
2566
+ "operation_outcome": {
2567
+ "enum": [
2568
+ "not_sent",
2569
+ "rejected",
2570
+ "unknown"
2571
+ ]
2572
+ },
2573
+ "trace_id": {
2574
+ "type": "string",
2575
+ "minLength": 1
2576
+ }
2577
+ }
2578
+ },
2579
+ {
2580
+ "type": "object",
2581
+ "additionalProperties": false,
2582
+ "required": [
2583
+ "problem_version",
2584
+ "code",
2585
+ "category",
2586
+ "recovery",
2587
+ "message"
2588
+ ],
2589
+ "properties": {
2590
+ "problem_version": {
2591
+ "const": 1
2592
+ },
2593
+ "code": {
2594
+ "const": "notification_criterion_not_declared"
2595
+ },
2596
+ "category": {
2597
+ "const": "validation"
2598
+ },
2599
+ "recovery": {
2600
+ "const": "fix_request"
2601
+ },
2602
+ "message": {
2603
+ "type": "string",
2604
+ "minLength": 1
2605
+ },
2606
+ "operation_outcome": {
2607
+ "enum": [
2608
+ "not_sent",
2609
+ "rejected",
2610
+ "unknown"
2611
+ ]
2612
+ },
2613
+ "trace_id": {
2614
+ "type": "string",
2615
+ "minLength": 1
2616
+ }
2617
+ }
2618
+ },
2619
+ {
2620
+ "type": "object",
2621
+ "additionalProperties": false,
2622
+ "required": [
2623
+ "problem_version",
2624
+ "code",
2625
+ "category",
2626
+ "recovery",
2627
+ "message"
2628
+ ],
2629
+ "properties": {
2630
+ "problem_version": {
2631
+ "const": 1
2632
+ },
2633
+ "code": {
2634
+ "const": "notification_reauthorization_required"
2635
+ },
2636
+ "category": {
2637
+ "const": "authorization"
2638
+ },
2639
+ "recovery": {
2640
+ "const": "reauthorize"
2641
+ },
2642
+ "message": {
2643
+ "type": "string",
2644
+ "minLength": 1
2645
+ },
2646
+ "operation_outcome": {
2647
+ "enum": [
2648
+ "not_sent",
2649
+ "rejected",
2650
+ "unknown"
2651
+ ]
2652
+ },
2653
+ "trace_id": {
2654
+ "type": "string",
2655
+ "minLength": 1
2656
+ }
2657
+ }
2658
+ },
2659
+ {
2660
+ "type": "object",
2661
+ "additionalProperties": false,
2662
+ "required": [
2663
+ "problem_version",
2664
+ "code",
2665
+ "category",
2666
+ "recovery",
2667
+ "message"
2668
+ ],
2669
+ "properties": {
2670
+ "problem_version": {
2671
+ "const": 1
2672
+ },
2673
+ "code": {
2674
+ "const": "notification_registration_failed"
2675
+ },
2676
+ "category": {
2677
+ "const": "availability"
2678
+ },
2679
+ "recovery": {
2680
+ "const": "retry"
2681
+ },
2682
+ "message": {
2683
+ "type": "string",
2684
+ "minLength": 1
2685
+ },
2686
+ "operation_outcome": {
2687
+ "enum": [
2688
+ "not_sent",
2689
+ "rejected",
2690
+ "unknown"
2691
+ ]
2692
+ },
2693
+ "trace_id": {
2694
+ "type": "string",
2695
+ "minLength": 1
2696
+ }
2697
+ }
2698
+ },
2699
+ {
2700
+ "type": "object",
2701
+ "additionalProperties": false,
2702
+ "required": [
2703
+ "problem_version",
2704
+ "code",
2705
+ "category",
2706
+ "recovery",
2707
+ "message"
2708
+ ],
2709
+ "properties": {
2710
+ "problem_version": {
2711
+ "const": 1
2712
+ },
2713
+ "code": {
2714
+ "const": "notification_unregistration_failed"
2715
+ },
2716
+ "category": {
2717
+ "const": "availability"
2718
+ },
2719
+ "recovery": {
2720
+ "const": "retry"
2721
+ },
2722
+ "message": {
2723
+ "type": "string",
2724
+ "minLength": 1
2725
+ },
2726
+ "operation_outcome": {
2727
+ "enum": [
2728
+ "not_sent",
2729
+ "rejected",
2730
+ "unknown"
2731
+ ]
2732
+ },
2733
+ "trace_id": {
2734
+ "type": "string",
2735
+ "minLength": 1
2736
+ }
2737
+ }
2738
+ },
2739
+ {
2740
+ "type": "object",
2741
+ "additionalProperties": false,
2742
+ "required": [
2743
+ "problem_version",
2744
+ "code",
2745
+ "category",
2746
+ "recovery",
2747
+ "message"
2748
+ ],
2749
+ "properties": {
2750
+ "problem_version": {
2751
+ "const": 1
2752
+ },
2753
+ "code": {
2754
+ "const": "notifications_not_declared"
2755
+ },
2756
+ "category": {
2757
+ "const": "compatibility"
2758
+ },
2759
+ "recovery": {
2760
+ "const": "fix_request"
2761
+ },
2762
+ "message": {
2763
+ "type": "string",
2764
+ "minLength": 1
2765
+ },
2766
+ "operation_outcome": {
2767
+ "enum": [
2768
+ "not_sent",
2769
+ "rejected",
2770
+ "unknown"
2771
+ ]
2772
+ },
2773
+ "trace_id": {
2774
+ "type": "string",
2775
+ "minLength": 1
2776
+ }
2777
+ }
2778
+ },
2779
+ {
2780
+ "type": "object",
2781
+ "additionalProperties": false,
2782
+ "required": [
2783
+ "problem_version",
2784
+ "code",
2785
+ "category",
2786
+ "recovery",
2787
+ "message"
2788
+ ],
2789
+ "properties": {
2790
+ "problem_version": {
2791
+ "const": 1
2792
+ },
2793
+ "code": {
2794
+ "const": "notifications_unavailable"
2795
+ },
2796
+ "category": {
2797
+ "const": "availability"
2798
+ },
2799
+ "recovery": {
2800
+ "const": "retry"
2801
+ },
2802
+ "message": {
2803
+ "type": "string",
2804
+ "minLength": 1
2805
+ },
2806
+ "operation_outcome": {
2807
+ "enum": [
2808
+ "not_sent",
2809
+ "rejected",
2810
+ "unknown"
2811
+ ]
2812
+ },
2813
+ "trace_id": {
2814
+ "type": "string",
2815
+ "minLength": 1
2816
+ }
2817
+ }
2818
+ },
2819
+ {
2820
+ "type": "object",
2821
+ "additionalProperties": false,
2822
+ "required": [
2823
+ "problem_version",
2824
+ "code",
2825
+ "category",
2826
+ "recovery",
2827
+ "message"
2828
+ ],
2829
+ "properties": {
2830
+ "problem_version": {
2831
+ "const": 1
2832
+ },
2833
+ "code": {
2834
+ "const": "operation_cancelled"
2835
+ },
2836
+ "category": {
2837
+ "const": "cancellation"
2838
+ },
2839
+ "recovery": {
2840
+ "const": "none"
2841
+ },
2842
+ "message": {
2843
+ "type": "string",
2844
+ "minLength": 1
2845
+ },
2846
+ "operation_outcome": {
2847
+ "enum": [
2848
+ "not_sent",
2849
+ "rejected",
2850
+ "unknown"
2851
+ ]
2852
+ },
2853
+ "trace_id": {
2854
+ "type": "string",
2855
+ "minLength": 1
2856
+ }
2857
+ }
2858
+ },
2859
+ {
2860
+ "type": "object",
2861
+ "additionalProperties": false,
2862
+ "required": [
2863
+ "problem_version",
2864
+ "code",
2865
+ "category",
2866
+ "recovery",
2867
+ "message"
2868
+ ],
2869
+ "properties": {
2870
+ "problem_version": {
2871
+ "const": 1
2872
+ },
2873
+ "code": {
2874
+ "const": "operation_failed"
2875
+ },
2876
+ "category": {
2877
+ "const": "internal"
2878
+ },
2879
+ "recovery": {
2880
+ "const": "contact_support"
2881
+ },
2882
+ "message": {
2883
+ "type": "string",
2884
+ "minLength": 1
2885
+ },
2886
+ "operation_outcome": {
2887
+ "enum": [
2888
+ "not_sent",
2889
+ "rejected",
2890
+ "unknown"
2891
+ ]
2892
+ },
2893
+ "trace_id": {
2894
+ "type": "string",
2895
+ "minLength": 1
2896
+ }
2897
+ }
2898
+ },
2899
+ {
2900
+ "type": "object",
2901
+ "additionalProperties": false,
2902
+ "required": [
2903
+ "problem_version",
2904
+ "code",
2905
+ "category",
2906
+ "recovery",
2907
+ "message",
2908
+ "details"
2909
+ ],
2910
+ "properties": {
2911
+ "problem_version": {
2912
+ "const": 1
2913
+ },
2914
+ "code": {
2915
+ "const": "operation_invalid"
2916
+ },
2917
+ "category": {
2918
+ "const": "validation"
2919
+ },
2920
+ "recovery": {
2921
+ "const": "fix_request"
2922
+ },
2923
+ "message": {
2924
+ "type": "string",
2925
+ "minLength": 1
2926
+ },
2927
+ "operation_outcome": {
2928
+ "enum": [
2929
+ "not_sent",
2930
+ "rejected",
2931
+ "unknown"
2932
+ ]
2933
+ },
2934
+ "trace_id": {
2935
+ "type": "string",
2936
+ "minLength": 1
2937
+ },
2938
+ "details": {
2939
+ "type": "object",
2940
+ "additionalProperties": false,
2941
+ "required": [
2942
+ "diagnostics"
2943
+ ],
2944
+ "properties": {
2945
+ "diagnostics": {
2946
+ "type": "array",
2947
+ "items": {
2948
+ "type": "object"
2949
+ }
2950
+ },
2951
+ "partial_result": true
2952
+ }
2953
+ }
2954
+ }
2955
+ },
2956
+ {
2957
+ "type": "object",
2958
+ "additionalProperties": false,
2959
+ "required": [
2960
+ "problem_version",
2961
+ "code",
2962
+ "category",
2963
+ "recovery",
2964
+ "message"
2965
+ ],
2966
+ "properties": {
2967
+ "problem_version": {
2968
+ "const": 1
2969
+ },
2970
+ "code": {
2971
+ "const": "operation_outcome_unknown"
2972
+ },
2973
+ "category": {
2974
+ "const": "conflict"
2975
+ },
2976
+ "recovery": {
2977
+ "const": "resolve_outcome"
2978
+ },
2979
+ "message": {
2980
+ "type": "string",
2981
+ "minLength": 1
2982
+ },
2983
+ "operation_outcome": {
2984
+ "enum": [
2985
+ "not_sent",
2986
+ "rejected",
2987
+ "unknown"
2988
+ ]
2989
+ },
2990
+ "trace_id": {
2991
+ "type": "string",
2992
+ "minLength": 1
2993
+ }
2994
+ }
2995
+ },
2996
+ {
2997
+ "type": "object",
2998
+ "additionalProperties": false,
2999
+ "required": [
3000
+ "problem_version",
3001
+ "code",
3002
+ "category",
3003
+ "recovery",
3004
+ "message"
3005
+ ],
3006
+ "properties": {
3007
+ "problem_version": {
3008
+ "const": 1
3009
+ },
3010
+ "code": {
3011
+ "const": "path_occupied"
3012
+ },
3013
+ "category": {
3014
+ "const": "conflict"
3015
+ },
3016
+ "recovery": {
3017
+ "const": "resolve_conflict"
3018
+ },
3019
+ "message": {
3020
+ "type": "string",
3021
+ "minLength": 1
3022
+ },
3023
+ "operation_outcome": {
3024
+ "enum": [
3025
+ "not_sent",
3026
+ "rejected",
3027
+ "unknown"
3028
+ ]
3029
+ },
3030
+ "trace_id": {
3031
+ "type": "string",
3032
+ "minLength": 1
3033
+ }
3034
+ }
3035
+ },
3036
+ {
3037
+ "type": "object",
3038
+ "additionalProperties": false,
3039
+ "required": [
3040
+ "problem_version",
3041
+ "code",
3042
+ "category",
3043
+ "recovery",
3044
+ "message"
3045
+ ],
3046
+ "properties": {
3047
+ "problem_version": {
3048
+ "const": 1
3049
+ },
3050
+ "code": {
3051
+ "const": "pending_mutation_unresolved"
3052
+ },
3053
+ "category": {
3054
+ "const": "conflict"
3055
+ },
3056
+ "recovery": {
3057
+ "const": "resolve_outcome"
3058
+ },
3059
+ "message": {
3060
+ "type": "string",
3061
+ "minLength": 1
3062
+ },
3063
+ "operation_outcome": {
3064
+ "enum": [
3065
+ "not_sent",
3066
+ "rejected",
3067
+ "unknown"
3068
+ ]
3069
+ },
3070
+ "trace_id": {
3071
+ "type": "string",
3072
+ "minLength": 1
3073
+ }
3074
+ }
3075
+ },
3076
+ {
3077
+ "type": "object",
3078
+ "additionalProperties": false,
3079
+ "required": [
3080
+ "problem_version",
3081
+ "code",
3082
+ "category",
3083
+ "recovery",
3084
+ "message"
3085
+ ],
3086
+ "properties": {
3087
+ "problem_version": {
3088
+ "const": 1
3089
+ },
3090
+ "code": {
3091
+ "const": "query_snapshot_changed"
3092
+ },
3093
+ "category": {
3094
+ "const": "conflict"
3095
+ },
3096
+ "recovery": {
3097
+ "const": "refresh"
3098
+ },
3099
+ "message": {
3100
+ "type": "string",
3101
+ "minLength": 1
3102
+ },
3103
+ "operation_outcome": {
3104
+ "enum": [
3105
+ "not_sent",
3106
+ "rejected",
3107
+ "unknown"
3108
+ ]
3109
+ },
3110
+ "trace_id": {
3111
+ "type": "string",
3112
+ "minLength": 1
3113
+ }
3114
+ }
3115
+ },
3116
+ {
3117
+ "type": "object",
3118
+ "additionalProperties": false,
3119
+ "required": [
3120
+ "problem_version",
3121
+ "code",
3122
+ "category",
3123
+ "recovery",
3124
+ "message"
3125
+ ],
3126
+ "properties": {
3127
+ "problem_version": {
3128
+ "const": 1
3129
+ },
3130
+ "code": {
3131
+ "const": "rate_limited"
3132
+ },
3133
+ "category": {
3134
+ "const": "availability"
3135
+ },
3136
+ "recovery": {
3137
+ "const": "retry"
3138
+ },
3139
+ "message": {
3140
+ "type": "string",
3141
+ "minLength": 1
3142
+ },
3143
+ "operation_outcome": {
3144
+ "enum": [
3145
+ "not_sent",
3146
+ "rejected",
3147
+ "unknown"
3148
+ ]
3149
+ },
3150
+ "trace_id": {
3151
+ "type": "string",
3152
+ "minLength": 1
3153
+ },
3154
+ "details": {
3155
+ "type": "object",
3156
+ "additionalProperties": false,
3157
+ "required": [],
3158
+ "properties": {
3159
+ "retry_after_ms": {
3160
+ "type": "integer"
3161
+ }
3162
+ }
3163
+ }
3164
+ }
3165
+ },
3166
+ {
3167
+ "type": "object",
3168
+ "additionalProperties": false,
3169
+ "required": [
3170
+ "problem_version",
3171
+ "code",
3172
+ "category",
3173
+ "recovery",
3174
+ "message"
3175
+ ],
3176
+ "properties": {
3177
+ "problem_version": {
3178
+ "const": 1
3179
+ },
3180
+ "code": {
3181
+ "const": "redirect_uri_required"
3182
+ },
3183
+ "category": {
3184
+ "const": "validation"
3185
+ },
3186
+ "recovery": {
3187
+ "const": "fix_request"
3188
+ },
3189
+ "message": {
3190
+ "type": "string",
3191
+ "minLength": 1
3192
+ },
3193
+ "operation_outcome": {
3194
+ "enum": [
3195
+ "not_sent",
3196
+ "rejected",
3197
+ "unknown"
3198
+ ]
3199
+ },
3200
+ "trace_id": {
3201
+ "type": "string",
3202
+ "minLength": 1
3203
+ }
3204
+ }
3205
+ },
3206
+ {
3207
+ "type": "object",
3208
+ "additionalProperties": false,
3209
+ "required": [
3210
+ "problem_version",
3211
+ "code",
3212
+ "category",
3213
+ "recovery",
3214
+ "message"
3215
+ ],
3216
+ "properties": {
3217
+ "problem_version": {
3218
+ "const": 1
3219
+ },
3220
+ "code": {
3221
+ "const": "reference_updates_unsupported"
3222
+ },
3223
+ "category": {
3224
+ "const": "compatibility"
3225
+ },
3226
+ "recovery": {
3227
+ "const": "fix_request"
3228
+ },
3229
+ "message": {
3230
+ "type": "string",
3231
+ "minLength": 1
3232
+ },
3233
+ "operation_outcome": {
3234
+ "enum": [
3235
+ "not_sent",
3236
+ "rejected",
3237
+ "unknown"
3238
+ ]
3239
+ },
3240
+ "trace_id": {
3241
+ "type": "string",
3242
+ "minLength": 1
3243
+ }
3244
+ }
3245
+ },
3246
+ {
3247
+ "type": "object",
3248
+ "additionalProperties": false,
3249
+ "required": [
3250
+ "problem_version",
3251
+ "code",
3252
+ "category",
3253
+ "recovery",
3254
+ "message"
3255
+ ],
3256
+ "properties": {
3257
+ "problem_version": {
3258
+ "const": 1
3259
+ },
3260
+ "code": {
3261
+ "const": "relay_authorization_expired"
3262
+ },
3263
+ "category": {
3264
+ "const": "authorization"
3265
+ },
3266
+ "recovery": {
3267
+ "const": "reauthorize"
3268
+ },
3269
+ "message": {
3270
+ "type": "string",
3271
+ "minLength": 1
3272
+ },
3273
+ "operation_outcome": {
3274
+ "enum": [
3275
+ "not_sent",
3276
+ "rejected",
3277
+ "unknown"
3278
+ ]
3279
+ },
3280
+ "trace_id": {
3281
+ "type": "string",
3282
+ "minLength": 1
3283
+ }
3284
+ }
3285
+ },
3286
+ {
3287
+ "type": "object",
3288
+ "additionalProperties": false,
3289
+ "required": [
3290
+ "problem_version",
3291
+ "code",
3292
+ "category",
3293
+ "recovery",
3294
+ "message"
3295
+ ],
3296
+ "properties": {
3297
+ "problem_version": {
3298
+ "const": 1
3299
+ },
3300
+ "code": {
3301
+ "const": "relay_unavailable"
3302
+ },
3303
+ "category": {
3304
+ "const": "availability"
3305
+ },
3306
+ "recovery": {
3307
+ "const": "retry"
3308
+ },
3309
+ "message": {
3310
+ "type": "string",
3311
+ "minLength": 1
3312
+ },
3313
+ "operation_outcome": {
3314
+ "enum": [
3315
+ "not_sent",
3316
+ "rejected",
3317
+ "unknown"
3318
+ ]
3319
+ },
3320
+ "trace_id": {
3321
+ "type": "string",
3322
+ "minLength": 1
3323
+ }
3324
+ }
3325
+ },
3326
+ {
3327
+ "type": "object",
3328
+ "additionalProperties": false,
3329
+ "required": [
3330
+ "problem_version",
3331
+ "code",
3332
+ "category",
3333
+ "recovery",
3334
+ "message"
3335
+ ],
3336
+ "properties": {
3337
+ "problem_version": {
3338
+ "const": 1
3339
+ },
3340
+ "code": {
3341
+ "const": "sandbox_unsupported"
3342
+ },
3343
+ "category": {
3344
+ "const": "compatibility"
3345
+ },
3346
+ "recovery": {
3347
+ "const": "fix_request"
3348
+ },
3349
+ "message": {
3350
+ "type": "string",
3351
+ "minLength": 1
3352
+ },
3353
+ "operation_outcome": {
3354
+ "enum": [
3355
+ "not_sent",
3356
+ "rejected",
3357
+ "unknown"
3358
+ ]
3359
+ },
3360
+ "trace_id": {
3361
+ "type": "string",
3362
+ "minLength": 1
3363
+ }
3364
+ }
3365
+ },
3366
+ {
3367
+ "type": "object",
3368
+ "additionalProperties": false,
3369
+ "required": [
3370
+ "problem_version",
3371
+ "code",
3372
+ "category",
3373
+ "recovery",
3374
+ "message"
3375
+ ],
3376
+ "properties": {
3377
+ "problem_version": {
3378
+ "const": 1
3379
+ },
3380
+ "code": {
3381
+ "const": "scope_denied"
3382
+ },
3383
+ "category": {
3384
+ "const": "authorization"
3385
+ },
3386
+ "recovery": {
3387
+ "const": "reauthorize"
3388
+ },
3389
+ "message": {
3390
+ "type": "string",
3391
+ "minLength": 1
3392
+ },
3393
+ "operation_outcome": {
3394
+ "enum": [
3395
+ "not_sent",
3396
+ "rejected",
3397
+ "unknown"
3398
+ ]
3399
+ },
3400
+ "trace_id": {
3401
+ "type": "string",
3402
+ "minLength": 1
3403
+ }
3404
+ }
3405
+ },
3406
+ {
3407
+ "type": "object",
3408
+ "additionalProperties": false,
3409
+ "required": [
3410
+ "problem_version",
3411
+ "code",
3412
+ "category",
3413
+ "recovery",
3414
+ "message"
3415
+ ],
3416
+ "properties": {
3417
+ "problem_version": {
3418
+ "const": 1
3419
+ },
3420
+ "code": {
3421
+ "const": "stale_file_revision"
3422
+ },
3423
+ "category": {
3424
+ "const": "conflict"
3425
+ },
3426
+ "recovery": {
3427
+ "const": "refresh"
3428
+ },
3429
+ "message": {
3430
+ "type": "string",
3431
+ "minLength": 1
3432
+ },
3433
+ "operation_outcome": {
3434
+ "enum": [
3435
+ "not_sent",
3436
+ "rejected",
3437
+ "unknown"
3438
+ ]
3439
+ },
3440
+ "trace_id": {
3441
+ "type": "string",
3442
+ "minLength": 1
3443
+ }
3444
+ }
3445
+ },
3446
+ {
3447
+ "type": "object",
3448
+ "additionalProperties": false,
3449
+ "required": [
3450
+ "problem_version",
3451
+ "code",
3452
+ "category",
3453
+ "recovery",
3454
+ "message"
3455
+ ],
3456
+ "properties": {
3457
+ "problem_version": {
3458
+ "const": 1
3459
+ },
3460
+ "code": {
3461
+ "const": "storage_required"
3462
+ },
3463
+ "category": {
3464
+ "const": "compatibility"
3465
+ },
3466
+ "recovery": {
3467
+ "const": "none"
3468
+ },
3469
+ "message": {
3470
+ "type": "string",
3471
+ "minLength": 1
3472
+ },
3473
+ "operation_outcome": {
3474
+ "enum": [
3475
+ "not_sent",
3476
+ "rejected",
3477
+ "unknown"
3478
+ ]
3479
+ },
3480
+ "trace_id": {
3481
+ "type": "string",
3482
+ "minLength": 1
3483
+ }
3484
+ }
3485
+ },
3486
+ {
3487
+ "type": "object",
3488
+ "additionalProperties": false,
3489
+ "required": [
3490
+ "problem_version",
3491
+ "code",
3492
+ "category",
3493
+ "recovery",
3494
+ "message"
3495
+ ],
3496
+ "properties": {
3497
+ "problem_version": {
3498
+ "const": 1
3499
+ },
3500
+ "code": {
3501
+ "const": "sync_failed"
3502
+ },
3503
+ "category": {
3504
+ "const": "availability"
3505
+ },
3506
+ "recovery": {
3507
+ "const": "retry"
3508
+ },
3509
+ "message": {
3510
+ "type": "string",
3511
+ "minLength": 1
3512
+ },
3513
+ "operation_outcome": {
3514
+ "enum": [
3515
+ "not_sent",
3516
+ "rejected",
3517
+ "unknown"
3518
+ ]
3519
+ },
3520
+ "trace_id": {
3521
+ "type": "string",
3522
+ "minLength": 1
3523
+ }
3524
+ }
3525
+ },
3526
+ {
3527
+ "type": "object",
3528
+ "additionalProperties": false,
3529
+ "required": [
3530
+ "problem_version",
3531
+ "code",
3532
+ "category",
3533
+ "recovery",
3534
+ "message"
3535
+ ],
3536
+ "properties": {
3537
+ "problem_version": {
3538
+ "const": 1
3539
+ },
3540
+ "code": {
3541
+ "const": "temporarily_unavailable"
3542
+ },
3543
+ "category": {
3544
+ "const": "availability"
3545
+ },
3546
+ "recovery": {
3547
+ "const": "retry"
3548
+ },
3549
+ "message": {
3550
+ "type": "string",
3551
+ "minLength": 1
3552
+ },
3553
+ "operation_outcome": {
3554
+ "enum": [
3555
+ "not_sent",
3556
+ "rejected",
3557
+ "unknown"
3558
+ ]
3559
+ },
3560
+ "trace_id": {
3561
+ "type": "string",
3562
+ "minLength": 1
3563
+ }
3564
+ }
3565
+ },
3566
+ {
3567
+ "type": "object",
3568
+ "additionalProperties": false,
3569
+ "required": [
3570
+ "problem_version",
3571
+ "code",
3572
+ "category",
3573
+ "recovery",
3574
+ "message"
3575
+ ],
3576
+ "properties": {
3577
+ "problem_version": {
3578
+ "const": 1
3579
+ },
3580
+ "code": {
3581
+ "const": "timeout"
3582
+ },
3583
+ "category": {
3584
+ "const": "availability"
3585
+ },
3586
+ "recovery": {
3587
+ "const": "retry"
3588
+ },
3589
+ "message": {
3590
+ "type": "string",
3591
+ "minLength": 1
3592
+ },
3593
+ "operation_outcome": {
3594
+ "enum": [
3595
+ "not_sent",
3596
+ "rejected",
3597
+ "unknown"
3598
+ ]
3599
+ },
3600
+ "trace_id": {
3601
+ "type": "string",
3602
+ "minLength": 1
3603
+ }
3604
+ }
3605
+ },
3606
+ {
3607
+ "type": "object",
3608
+ "additionalProperties": false,
3609
+ "required": [
3610
+ "problem_version",
3611
+ "code",
3612
+ "category",
3613
+ "recovery",
3614
+ "message"
3615
+ ],
3616
+ "properties": {
3617
+ "problem_version": {
3618
+ "const": 1
3619
+ },
3620
+ "code": {
3621
+ "const": "token_exchange_failed"
3622
+ },
3623
+ "category": {
3624
+ "const": "availability"
3625
+ },
3626
+ "recovery": {
3627
+ "const": "retry"
3628
+ },
3629
+ "message": {
3630
+ "type": "string",
3631
+ "minLength": 1
3632
+ },
3633
+ "operation_outcome": {
3634
+ "enum": [
3635
+ "not_sent",
3636
+ "rejected",
3637
+ "unknown"
3638
+ ]
3639
+ },
3640
+ "trace_id": {
3641
+ "type": "string",
3642
+ "minLength": 1
3643
+ }
3644
+ }
3645
+ },
3646
+ {
3647
+ "type": "object",
3648
+ "additionalProperties": false,
3649
+ "required": [
3650
+ "problem_version",
3651
+ "code",
3652
+ "category",
3653
+ "recovery",
3654
+ "message"
3655
+ ],
3656
+ "properties": {
3657
+ "problem_version": {
3658
+ "const": 1
3659
+ },
3660
+ "code": {
3661
+ "const": "type_pack_provision_failed"
3662
+ },
3663
+ "category": {
3664
+ "const": "validation"
3665
+ },
3666
+ "recovery": {
3667
+ "const": "repair_collection"
3668
+ },
3669
+ "message": {
3670
+ "type": "string",
3671
+ "minLength": 1
3672
+ },
3673
+ "operation_outcome": {
3674
+ "enum": [
3675
+ "not_sent",
3676
+ "rejected",
3677
+ "unknown"
3678
+ ]
3679
+ },
3680
+ "trace_id": {
3681
+ "type": "string",
3682
+ "minLength": 1
3683
+ }
3684
+ }
3685
+ },
3686
+ {
3687
+ "type": "object",
3688
+ "additionalProperties": false,
3689
+ "required": [
3690
+ "problem_version",
3691
+ "code",
3692
+ "category",
3693
+ "recovery",
3694
+ "message"
3695
+ ],
3696
+ "properties": {
3697
+ "problem_version": {
3698
+ "const": 1
3699
+ },
3700
+ "code": {
3701
+ "const": "unknown_collection"
3702
+ },
3703
+ "category": {
3704
+ "const": "selection"
3705
+ },
3706
+ "recovery": {
3707
+ "const": "choose_collection"
3708
+ },
3709
+ "message": {
3710
+ "type": "string",
3711
+ "minLength": 1
3712
+ },
3713
+ "operation_outcome": {
3714
+ "enum": [
3715
+ "not_sent",
3716
+ "rejected",
3717
+ "unknown"
3718
+ ]
3719
+ },
3720
+ "trace_id": {
3721
+ "type": "string",
3722
+ "minLength": 1
3723
+ }
3724
+ }
3725
+ },
3726
+ {
3727
+ "type": "object",
3728
+ "additionalProperties": false,
3729
+ "required": [
3730
+ "problem_version",
3731
+ "code",
3732
+ "category",
3733
+ "recovery",
3734
+ "message"
3735
+ ],
3736
+ "properties": {
3737
+ "problem_version": {
3738
+ "const": 1
3739
+ },
3740
+ "code": {
3741
+ "const": "unsafe_file_path"
3742
+ },
3743
+ "category": {
3744
+ "const": "validation"
3745
+ },
3746
+ "recovery": {
3747
+ "const": "fix_request"
3748
+ },
3749
+ "message": {
3750
+ "type": "string",
3751
+ "minLength": 1
3752
+ },
3753
+ "operation_outcome": {
3754
+ "enum": [
3755
+ "not_sent",
3756
+ "rejected",
3757
+ "unknown"
3758
+ ]
3759
+ },
3760
+ "trace_id": {
3761
+ "type": "string",
3762
+ "minLength": 1
3763
+ }
3764
+ }
3765
+ },
3766
+ {
3767
+ "type": "object",
3768
+ "additionalProperties": false,
3769
+ "required": [
3770
+ "problem_version",
3771
+ "code",
3772
+ "category",
3773
+ "recovery",
3774
+ "message"
3775
+ ],
3776
+ "properties": {
3777
+ "problem_version": {
3778
+ "const": 1
3779
+ },
3780
+ "code": {
3781
+ "const": "unsupported_encryption"
3782
+ },
3783
+ "category": {
3784
+ "const": "compatibility"
3785
+ },
3786
+ "recovery": {
3787
+ "const": "upgrade_application"
3788
+ },
3789
+ "message": {
3790
+ "type": "string",
3791
+ "minLength": 1
3792
+ },
3793
+ "operation_outcome": {
3794
+ "enum": [
3795
+ "not_sent",
3796
+ "rejected",
3797
+ "unknown"
3798
+ ]
3799
+ },
3800
+ "trace_id": {
3801
+ "type": "string",
3802
+ "minLength": 1
3803
+ }
3804
+ }
3805
+ },
3806
+ {
3807
+ "type": "object",
3808
+ "additionalProperties": false,
3809
+ "required": [
3810
+ "problem_version",
3811
+ "code",
3812
+ "category",
3813
+ "recovery",
3814
+ "message"
3815
+ ],
3816
+ "properties": {
3817
+ "problem_version": {
3818
+ "const": 1
3819
+ },
3820
+ "code": {
3821
+ "const": "unsupported_operation"
3822
+ },
3823
+ "category": {
3824
+ "const": "compatibility"
3825
+ },
3826
+ "recovery": {
3827
+ "const": "fix_request"
3828
+ },
3829
+ "message": {
3830
+ "type": "string",
3831
+ "minLength": 1
3832
+ },
3833
+ "operation_outcome": {
3834
+ "enum": [
3835
+ "not_sent",
3836
+ "rejected",
3837
+ "unknown"
3838
+ ]
3839
+ },
3840
+ "trace_id": {
3841
+ "type": "string",
3842
+ "minLength": 1
3843
+ }
3844
+ }
3845
+ },
3846
+ {
3847
+ "type": "object",
3848
+ "additionalProperties": false,
3849
+ "required": [
3850
+ "problem_version",
3851
+ "code",
3852
+ "server_code",
3853
+ "category",
3854
+ "recovery",
3855
+ "message"
3856
+ ],
3857
+ "properties": {
3858
+ "problem_version": {
3859
+ "const": 1
3860
+ },
3861
+ "code": {
3862
+ "const": "unknown"
3863
+ },
3864
+ "server_code": {
3865
+ "type": "string",
3866
+ "minLength": 1
3867
+ },
3868
+ "category": {
3869
+ "const": "unknown"
3870
+ },
3871
+ "recovery": {
3872
+ "const": "none"
3873
+ },
3874
+ "message": {
3875
+ "type": "string",
3876
+ "minLength": 1
3877
+ },
3878
+ "details": true,
3879
+ "operation_outcome": {
3880
+ "enum": [
3881
+ "not_sent",
3882
+ "rejected",
3883
+ "unknown"
3884
+ ]
3885
+ },
3886
+ "trace_id": {
3887
+ "type": "string",
3888
+ "minLength": 1
3889
+ }
3890
+ }
3891
+ }
3892
+ ]
3893
+ }