@voyant-travel/openapi 0.2.6 → 0.3.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 (41) hide show
  1. package/package.json +8 -5
  2. package/spec/admin/accommodations.json +1395 -0
  3. package/spec/admin/action-ledger.json +6202 -0
  4. package/spec/admin/booking-requirements.json +5689 -0
  5. package/spec/admin/bookings.json +18794 -0
  6. package/spec/admin/catalog.json +690 -0
  7. package/spec/admin/distribution.json +19581 -0
  8. package/spec/admin/external-refs.json +1382 -0
  9. package/spec/admin/extras.json +4648 -0
  10. package/spec/admin/finance.json +35506 -0
  11. package/spec/admin/identity.json +4072 -0
  12. package/spec/admin/legal.json +14339 -0
  13. package/spec/admin/markets.json +5286 -0
  14. package/spec/admin/notifications.json +8409 -0
  15. package/spec/admin/operations.json +39806 -0
  16. package/spec/admin/operator-settings.json +1389 -0
  17. package/spec/admin/pricing.json +10640 -0
  18. package/spec/admin/products.json +22131 -0
  19. package/spec/admin/promotions.json +2730 -0
  20. package/spec/admin/quotes.json +7033 -0
  21. package/spec/admin/relationships.json +13911 -0
  22. package/spec/admin/sellability.json +4840 -0
  23. package/spec/admin/storefront.json +1953 -0
  24. package/spec/admin/suppliers.json +5850 -0
  25. package/spec/admin/trips.json +9357 -0
  26. package/spec/framework-admin.json +2812 -552
  27. package/spec/framework-openapi.json +2710 -276
  28. package/spec/framework-storefront.json +178 -4
  29. package/spec/storefront/booking-requirements.json +367 -0
  30. package/spec/storefront/bookings.json +6137 -0
  31. package/spec/storefront/catalog.json +690 -0
  32. package/spec/storefront/customer-portal.json +6038 -0
  33. package/spec/storefront/finance.json +4824 -0
  34. package/spec/storefront/legal.json +2082 -0
  35. package/spec/storefront/markets.json +256 -0
  36. package/spec/storefront/operator-settings.json +309 -0
  37. package/spec/storefront/pricing.json +585 -0
  38. package/spec/storefront/products.json +2910 -0
  39. package/spec/storefront/storefront-verification.json +909 -0
  40. package/spec/storefront/storefront.json +4067 -0
  41. package/spec/storefront/trips.json +9357 -0
@@ -0,0 +1,2082 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "title": "Voyant Framework API",
5
+ "version": "0.0.0",
6
+ "description": "Generated from the Voyant framework's standard module composition. Do not edit by hand."
7
+ },
8
+ "components": {
9
+ "schemas": {
10
+ "CatalogSearchFilter": {
11
+ "anyOf": [
12
+ {
13
+ "type": "object",
14
+ "properties": {
15
+ "kind": {
16
+ "type": "string",
17
+ "enum": [
18
+ "eq"
19
+ ]
20
+ },
21
+ "field": {
22
+ "type": "string",
23
+ "minLength": 1
24
+ },
25
+ "value": {
26
+ "anyOf": [
27
+ {
28
+ "type": "string"
29
+ },
30
+ {
31
+ "type": "number"
32
+ },
33
+ {
34
+ "type": "boolean"
35
+ }
36
+ ]
37
+ }
38
+ },
39
+ "required": [
40
+ "kind",
41
+ "field",
42
+ "value"
43
+ ]
44
+ },
45
+ {
46
+ "type": "object",
47
+ "properties": {
48
+ "kind": {
49
+ "type": "string",
50
+ "enum": [
51
+ "in"
52
+ ]
53
+ },
54
+ "field": {
55
+ "type": "string",
56
+ "minLength": 1
57
+ },
58
+ "values": {
59
+ "type": "array",
60
+ "items": {
61
+ "anyOf": [
62
+ {
63
+ "type": "string"
64
+ },
65
+ {
66
+ "type": "number"
67
+ }
68
+ ]
69
+ }
70
+ }
71
+ },
72
+ "required": [
73
+ "kind",
74
+ "field",
75
+ "values"
76
+ ]
77
+ },
78
+ {
79
+ "type": "object",
80
+ "properties": {
81
+ "kind": {
82
+ "type": "string",
83
+ "enum": [
84
+ "range"
85
+ ]
86
+ },
87
+ "field": {
88
+ "type": "string",
89
+ "minLength": 1
90
+ },
91
+ "gte": {
92
+ "type": "number"
93
+ },
94
+ "lte": {
95
+ "type": "number"
96
+ }
97
+ },
98
+ "required": [
99
+ "kind",
100
+ "field"
101
+ ]
102
+ },
103
+ {
104
+ "type": "object",
105
+ "properties": {
106
+ "kind": {
107
+ "type": "string",
108
+ "enum": [
109
+ "and"
110
+ ]
111
+ },
112
+ "clauses": {
113
+ "type": "array",
114
+ "items": {
115
+ "$ref": "#/components/schemas/CatalogSearchFilter"
116
+ }
117
+ }
118
+ },
119
+ "required": [
120
+ "kind",
121
+ "clauses"
122
+ ]
123
+ },
124
+ {
125
+ "type": "object",
126
+ "properties": {
127
+ "kind": {
128
+ "type": "string",
129
+ "enum": [
130
+ "or"
131
+ ]
132
+ },
133
+ "clauses": {
134
+ "type": "array",
135
+ "items": {
136
+ "$ref": "#/components/schemas/CatalogSearchFilter"
137
+ }
138
+ }
139
+ },
140
+ "required": [
141
+ "kind",
142
+ "clauses"
143
+ ]
144
+ }
145
+ ]
146
+ }
147
+ },
148
+ "parameters": {}
149
+ },
150
+ "paths": {
151
+ "/v1/public/legal/contracts/templates/default": {
152
+ "get": {
153
+ "parameters": [
154
+ {
155
+ "schema": {
156
+ "type": "string",
157
+ "enum": [
158
+ "customer",
159
+ "supplier",
160
+ "partner",
161
+ "channel",
162
+ "other"
163
+ ],
164
+ "default": "customer"
165
+ },
166
+ "required": false,
167
+ "name": "scope",
168
+ "in": "query"
169
+ },
170
+ {
171
+ "schema": {
172
+ "type": "string"
173
+ },
174
+ "required": false,
175
+ "name": "channelId",
176
+ "in": "query"
177
+ },
178
+ {
179
+ "schema": {
180
+ "type": "string",
181
+ "minLength": 2,
182
+ "maxLength": 10
183
+ },
184
+ "required": false,
185
+ "name": "language",
186
+ "in": "query"
187
+ },
188
+ {
189
+ "schema": {
190
+ "type": "string"
191
+ },
192
+ "required": false,
193
+ "name": "fallbackLanguages",
194
+ "in": "query"
195
+ }
196
+ ],
197
+ "responses": {
198
+ "200": {
199
+ "description": "The resolved default contract template for the scope/language",
200
+ "content": {
201
+ "application/json": {
202
+ "schema": {
203
+ "type": "object",
204
+ "properties": {
205
+ "data": {
206
+ "type": "object",
207
+ "properties": {
208
+ "id": {
209
+ "type": "string"
210
+ },
211
+ "name": {
212
+ "type": "string"
213
+ },
214
+ "slug": {
215
+ "type": "string"
216
+ },
217
+ "scope": {
218
+ "type": "string",
219
+ "enum": [
220
+ "customer",
221
+ "supplier",
222
+ "partner",
223
+ "channel",
224
+ "other"
225
+ ]
226
+ },
227
+ "language": {
228
+ "type": "string"
229
+ },
230
+ "description": {
231
+ "type": [
232
+ "string",
233
+ "null"
234
+ ]
235
+ },
236
+ "body": {
237
+ "type": "string"
238
+ },
239
+ "variableSchema": {},
240
+ "currentVersionId": {
241
+ "type": [
242
+ "string",
243
+ "null"
244
+ ]
245
+ },
246
+ "channelId": {
247
+ "type": [
248
+ "string",
249
+ "null"
250
+ ]
251
+ },
252
+ "isDefault": {
253
+ "type": "boolean"
254
+ },
255
+ "active": {
256
+ "type": "boolean"
257
+ },
258
+ "createdAt": {
259
+ "type": "string"
260
+ },
261
+ "updatedAt": {
262
+ "type": "string"
263
+ }
264
+ },
265
+ "required": [
266
+ "id",
267
+ "name",
268
+ "slug",
269
+ "scope",
270
+ "language",
271
+ "description",
272
+ "body",
273
+ "currentVersionId",
274
+ "channelId",
275
+ "isDefault",
276
+ "active",
277
+ "createdAt",
278
+ "updatedAt"
279
+ ]
280
+ }
281
+ },
282
+ "required": [
283
+ "data"
284
+ ]
285
+ }
286
+ }
287
+ }
288
+ },
289
+ "404": {
290
+ "description": "Template not found",
291
+ "content": {
292
+ "application/json": {
293
+ "schema": {
294
+ "type": "object",
295
+ "properties": {
296
+ "error": {
297
+ "type": "string"
298
+ }
299
+ },
300
+ "required": [
301
+ "error"
302
+ ]
303
+ }
304
+ }
305
+ }
306
+ }
307
+ }
308
+ }
309
+ },
310
+ "/v1/public/legal/contracts/templates/{id}/preview": {
311
+ "post": {
312
+ "parameters": [
313
+ {
314
+ "schema": {
315
+ "type": "string"
316
+ },
317
+ "required": true,
318
+ "name": "id",
319
+ "in": "path"
320
+ }
321
+ ],
322
+ "requestBody": {
323
+ "required": true,
324
+ "content": {
325
+ "application/json": {
326
+ "schema": {
327
+ "type": "object",
328
+ "properties": {
329
+ "variables": {
330
+ "type": "object",
331
+ "additionalProperties": {}
332
+ }
333
+ },
334
+ "required": [
335
+ "variables"
336
+ ]
337
+ }
338
+ }
339
+ }
340
+ },
341
+ "responses": {
342
+ "200": {
343
+ "description": "The rendered template preview",
344
+ "content": {
345
+ "application/json": {
346
+ "schema": {
347
+ "type": "object",
348
+ "properties": {
349
+ "data": {
350
+ "type": "object",
351
+ "additionalProperties": {}
352
+ }
353
+ },
354
+ "required": [
355
+ "data"
356
+ ]
357
+ }
358
+ }
359
+ }
360
+ },
361
+ "400": {
362
+ "description": "invalid_request: request body failed validation",
363
+ "content": {
364
+ "application/json": {
365
+ "schema": {
366
+ "type": "object",
367
+ "properties": {
368
+ "error": {
369
+ "type": "string"
370
+ }
371
+ },
372
+ "required": [
373
+ "error"
374
+ ]
375
+ }
376
+ }
377
+ }
378
+ },
379
+ "404": {
380
+ "description": "Template not found",
381
+ "content": {
382
+ "application/json": {
383
+ "schema": {
384
+ "type": "object",
385
+ "properties": {
386
+ "error": {
387
+ "type": "string"
388
+ }
389
+ },
390
+ "required": [
391
+ "error"
392
+ ]
393
+ }
394
+ }
395
+ }
396
+ }
397
+ }
398
+ }
399
+ },
400
+ "/v1/public/legal/contracts/templates/{id}/render-preview": {
401
+ "post": {
402
+ "parameters": [
403
+ {
404
+ "schema": {
405
+ "type": "string"
406
+ },
407
+ "required": true,
408
+ "name": "id",
409
+ "in": "path"
410
+ }
411
+ ],
412
+ "requestBody": {
413
+ "required": true,
414
+ "content": {
415
+ "application/json": {
416
+ "schema": {
417
+ "type": "object",
418
+ "properties": {
419
+ "variables": {
420
+ "type": "object",
421
+ "additionalProperties": {}
422
+ }
423
+ },
424
+ "required": [
425
+ "variables"
426
+ ]
427
+ }
428
+ }
429
+ }
430
+ },
431
+ "responses": {
432
+ "200": {
433
+ "description": "The rendered template preview",
434
+ "content": {
435
+ "application/json": {
436
+ "schema": {
437
+ "type": "object",
438
+ "properties": {
439
+ "data": {
440
+ "type": "object",
441
+ "additionalProperties": {}
442
+ }
443
+ },
444
+ "required": [
445
+ "data"
446
+ ]
447
+ }
448
+ }
449
+ }
450
+ },
451
+ "400": {
452
+ "description": "invalid_request: request body failed validation",
453
+ "content": {
454
+ "application/json": {
455
+ "schema": {
456
+ "type": "object",
457
+ "properties": {
458
+ "error": {
459
+ "type": "string"
460
+ }
461
+ },
462
+ "required": [
463
+ "error"
464
+ ]
465
+ }
466
+ }
467
+ }
468
+ },
469
+ "404": {
470
+ "description": "Template not found",
471
+ "content": {
472
+ "application/json": {
473
+ "schema": {
474
+ "type": "object",
475
+ "properties": {
476
+ "error": {
477
+ "type": "string"
478
+ }
479
+ },
480
+ "required": [
481
+ "error"
482
+ ]
483
+ }
484
+ }
485
+ }
486
+ }
487
+ }
488
+ }
489
+ },
490
+ "/v1/public/legal/contracts/templates/by-slug/{slug}/preview": {
491
+ "post": {
492
+ "parameters": [
493
+ {
494
+ "schema": {
495
+ "type": "string"
496
+ },
497
+ "required": true,
498
+ "name": "slug",
499
+ "in": "path"
500
+ }
501
+ ],
502
+ "requestBody": {
503
+ "required": true,
504
+ "content": {
505
+ "application/json": {
506
+ "schema": {
507
+ "type": "object",
508
+ "properties": {
509
+ "variables": {
510
+ "type": "object",
511
+ "additionalProperties": {}
512
+ }
513
+ },
514
+ "required": [
515
+ "variables"
516
+ ]
517
+ }
518
+ }
519
+ }
520
+ },
521
+ "responses": {
522
+ "200": {
523
+ "description": "The rendered template preview (with template descriptor)",
524
+ "content": {
525
+ "application/json": {
526
+ "schema": {
527
+ "type": "object",
528
+ "properties": {
529
+ "data": {
530
+ "type": "object",
531
+ "additionalProperties": {}
532
+ }
533
+ },
534
+ "required": [
535
+ "data"
536
+ ]
537
+ }
538
+ }
539
+ }
540
+ },
541
+ "400": {
542
+ "description": "invalid_request: request body failed validation",
543
+ "content": {
544
+ "application/json": {
545
+ "schema": {
546
+ "type": "object",
547
+ "properties": {
548
+ "error": {
549
+ "type": "string"
550
+ }
551
+ },
552
+ "required": [
553
+ "error"
554
+ ]
555
+ }
556
+ }
557
+ }
558
+ },
559
+ "404": {
560
+ "description": "Template not found",
561
+ "content": {
562
+ "application/json": {
563
+ "schema": {
564
+ "type": "object",
565
+ "properties": {
566
+ "error": {
567
+ "type": "string"
568
+ }
569
+ },
570
+ "required": [
571
+ "error"
572
+ ]
573
+ }
574
+ }
575
+ }
576
+ }
577
+ }
578
+ }
579
+ },
580
+ "/v1/public/legal/contracts/templates/by-slug/{slug}/render-preview": {
581
+ "post": {
582
+ "parameters": [
583
+ {
584
+ "schema": {
585
+ "type": "string"
586
+ },
587
+ "required": true,
588
+ "name": "slug",
589
+ "in": "path"
590
+ }
591
+ ],
592
+ "requestBody": {
593
+ "required": true,
594
+ "content": {
595
+ "application/json": {
596
+ "schema": {
597
+ "type": "object",
598
+ "properties": {
599
+ "variables": {
600
+ "type": "object",
601
+ "additionalProperties": {}
602
+ }
603
+ },
604
+ "required": [
605
+ "variables"
606
+ ]
607
+ }
608
+ }
609
+ }
610
+ },
611
+ "responses": {
612
+ "200": {
613
+ "description": "The rendered template preview (with template descriptor)",
614
+ "content": {
615
+ "application/json": {
616
+ "schema": {
617
+ "type": "object",
618
+ "properties": {
619
+ "data": {
620
+ "type": "object",
621
+ "additionalProperties": {}
622
+ }
623
+ },
624
+ "required": [
625
+ "data"
626
+ ]
627
+ }
628
+ }
629
+ }
630
+ },
631
+ "400": {
632
+ "description": "invalid_request: request body failed validation",
633
+ "content": {
634
+ "application/json": {
635
+ "schema": {
636
+ "type": "object",
637
+ "properties": {
638
+ "error": {
639
+ "type": "string"
640
+ }
641
+ },
642
+ "required": [
643
+ "error"
644
+ ]
645
+ }
646
+ }
647
+ }
648
+ },
649
+ "404": {
650
+ "description": "Template not found",
651
+ "content": {
652
+ "application/json": {
653
+ "schema": {
654
+ "type": "object",
655
+ "properties": {
656
+ "error": {
657
+ "type": "string"
658
+ }
659
+ },
660
+ "required": [
661
+ "error"
662
+ ]
663
+ }
664
+ }
665
+ }
666
+ }
667
+ }
668
+ }
669
+ },
670
+ "/v1/public/legal/contracts/{id}": {
671
+ "get": {
672
+ "parameters": [
673
+ {
674
+ "schema": {
675
+ "type": "string"
676
+ },
677
+ "required": true,
678
+ "name": "id",
679
+ "in": "path"
680
+ },
681
+ {
682
+ "schema": {
683
+ "type": "string"
684
+ },
685
+ "required": false,
686
+ "name": "token",
687
+ "in": "query"
688
+ }
689
+ ],
690
+ "responses": {
691
+ "200": {
692
+ "description": "A token-authorized public-safe contract",
693
+ "content": {
694
+ "application/json": {
695
+ "schema": {
696
+ "type": "object",
697
+ "properties": {
698
+ "data": {
699
+ "type": "object",
700
+ "properties": {
701
+ "contractNumber": {
702
+ "type": [
703
+ "string",
704
+ "null"
705
+ ]
706
+ },
707
+ "scope": {
708
+ "type": "string",
709
+ "enum": [
710
+ "customer",
711
+ "supplier",
712
+ "partner",
713
+ "channel",
714
+ "other"
715
+ ]
716
+ },
717
+ "status": {
718
+ "type": "string",
719
+ "enum": [
720
+ "draft",
721
+ "issued",
722
+ "sent",
723
+ "signed",
724
+ "executed",
725
+ "expired",
726
+ "void"
727
+ ]
728
+ },
729
+ "title": {
730
+ "type": "string"
731
+ },
732
+ "issuedAt": {
733
+ "type": [
734
+ "string",
735
+ "null"
736
+ ]
737
+ },
738
+ "sentAt": {
739
+ "type": [
740
+ "string",
741
+ "null"
742
+ ]
743
+ },
744
+ "executedAt": {
745
+ "type": [
746
+ "string",
747
+ "null"
748
+ ]
749
+ },
750
+ "expiresAt": {
751
+ "type": [
752
+ "string",
753
+ "null"
754
+ ]
755
+ },
756
+ "voidedAt": {
757
+ "type": [
758
+ "string",
759
+ "null"
760
+ ]
761
+ },
762
+ "language": {
763
+ "type": "string"
764
+ },
765
+ "renderedBodyFormat": {
766
+ "type": "string",
767
+ "enum": [
768
+ "markdown",
769
+ "html",
770
+ "lexical_json"
771
+ ]
772
+ },
773
+ "renderedBody": {
774
+ "type": [
775
+ "string",
776
+ "null"
777
+ ]
778
+ }
779
+ },
780
+ "required": [
781
+ "contractNumber",
782
+ "scope",
783
+ "status",
784
+ "title",
785
+ "issuedAt",
786
+ "sentAt",
787
+ "executedAt",
788
+ "expiresAt",
789
+ "voidedAt",
790
+ "language",
791
+ "renderedBodyFormat",
792
+ "renderedBody"
793
+ ]
794
+ }
795
+ },
796
+ "required": [
797
+ "data"
798
+ ]
799
+ }
800
+ }
801
+ }
802
+ },
803
+ "404": {
804
+ "description": "Contract not found",
805
+ "content": {
806
+ "application/json": {
807
+ "schema": {
808
+ "type": "object",
809
+ "properties": {
810
+ "error": {
811
+ "type": "string"
812
+ }
813
+ },
814
+ "required": [
815
+ "error"
816
+ ]
817
+ }
818
+ }
819
+ }
820
+ },
821
+ "410": {
822
+ "description": "Contract access grant is no longer available",
823
+ "content": {
824
+ "application/json": {
825
+ "schema": {
826
+ "type": "object",
827
+ "properties": {
828
+ "error": {
829
+ "type": "string"
830
+ }
831
+ },
832
+ "required": [
833
+ "error"
834
+ ]
835
+ }
836
+ }
837
+ }
838
+ }
839
+ }
840
+ }
841
+ },
842
+ "/v1/public/legal/contracts/{id}/sign": {
843
+ "post": {
844
+ "parameters": [
845
+ {
846
+ "schema": {
847
+ "type": "string"
848
+ },
849
+ "required": true,
850
+ "name": "id",
851
+ "in": "path"
852
+ },
853
+ {
854
+ "schema": {
855
+ "type": "string"
856
+ },
857
+ "required": false,
858
+ "name": "token",
859
+ "in": "query"
860
+ }
861
+ ],
862
+ "requestBody": {
863
+ "required": true,
864
+ "content": {
865
+ "application/json": {
866
+ "schema": {
867
+ "type": "object",
868
+ "properties": {
869
+ "signerName": {
870
+ "type": "string",
871
+ "minLength": 1,
872
+ "maxLength": 255
873
+ },
874
+ "signerEmail": {
875
+ "type": [
876
+ "string",
877
+ "null"
878
+ ],
879
+ "format": "email"
880
+ },
881
+ "signerRole": {
882
+ "type": [
883
+ "string",
884
+ "null"
885
+ ],
886
+ "maxLength": 255
887
+ },
888
+ "method": {
889
+ "type": "string",
890
+ "enum": [
891
+ "manual",
892
+ "electronic",
893
+ "docusign",
894
+ "other"
895
+ ],
896
+ "default": "manual"
897
+ },
898
+ "signatureData": {
899
+ "type": [
900
+ "string",
901
+ "null"
902
+ ]
903
+ }
904
+ },
905
+ "required": [
906
+ "signerName"
907
+ ]
908
+ }
909
+ }
910
+ }
911
+ },
912
+ "responses": {
913
+ "200": {
914
+ "description": "The recorded signature",
915
+ "content": {
916
+ "application/json": {
917
+ "schema": {
918
+ "type": "object",
919
+ "properties": {
920
+ "data": {
921
+ "type": "object",
922
+ "properties": {
923
+ "signature": {
924
+ "type": "object",
925
+ "properties": {
926
+ "signerName": {
927
+ "type": "string"
928
+ },
929
+ "signerEmail": {
930
+ "type": [
931
+ "string",
932
+ "null"
933
+ ]
934
+ },
935
+ "signerRole": {
936
+ "type": [
937
+ "string",
938
+ "null"
939
+ ]
940
+ },
941
+ "method": {
942
+ "type": "string",
943
+ "enum": [
944
+ "manual",
945
+ "electronic",
946
+ "docusign",
947
+ "other"
948
+ ]
949
+ },
950
+ "signedAt": {
951
+ "type": "string"
952
+ }
953
+ },
954
+ "required": [
955
+ "signerName",
956
+ "signerEmail",
957
+ "signerRole",
958
+ "method",
959
+ "signedAt"
960
+ ]
961
+ }
962
+ },
963
+ "required": [
964
+ "signature"
965
+ ]
966
+ }
967
+ },
968
+ "required": [
969
+ "data"
970
+ ]
971
+ }
972
+ }
973
+ }
974
+ },
975
+ "400": {
976
+ "description": "invalid_request: request body failed validation",
977
+ "content": {
978
+ "application/json": {
979
+ "schema": {
980
+ "type": "object",
981
+ "properties": {
982
+ "error": {
983
+ "type": "string"
984
+ }
985
+ },
986
+ "required": [
987
+ "error"
988
+ ]
989
+ }
990
+ }
991
+ }
992
+ },
993
+ "404": {
994
+ "description": "Contract not found",
995
+ "content": {
996
+ "application/json": {
997
+ "schema": {
998
+ "type": "object",
999
+ "properties": {
1000
+ "error": {
1001
+ "type": "string"
1002
+ }
1003
+ },
1004
+ "required": [
1005
+ "error"
1006
+ ]
1007
+ }
1008
+ }
1009
+ }
1010
+ },
1011
+ "409": {
1012
+ "description": "Contract is not in a signable state",
1013
+ "content": {
1014
+ "application/json": {
1015
+ "schema": {
1016
+ "type": "object",
1017
+ "properties": {
1018
+ "error": {
1019
+ "type": "string"
1020
+ }
1021
+ },
1022
+ "required": [
1023
+ "error"
1024
+ ]
1025
+ }
1026
+ }
1027
+ }
1028
+ },
1029
+ "410": {
1030
+ "description": "Contract access grant is no longer available",
1031
+ "content": {
1032
+ "application/json": {
1033
+ "schema": {
1034
+ "type": "object",
1035
+ "properties": {
1036
+ "error": {
1037
+ "type": "string"
1038
+ }
1039
+ },
1040
+ "required": [
1041
+ "error"
1042
+ ]
1043
+ }
1044
+ }
1045
+ }
1046
+ }
1047
+ }
1048
+ }
1049
+ },
1050
+ "/v1/public/legal/policies/{slug}": {
1051
+ "get": {
1052
+ "parameters": [
1053
+ {
1054
+ "schema": {
1055
+ "type": "string"
1056
+ },
1057
+ "required": true,
1058
+ "name": "slug",
1059
+ "in": "path"
1060
+ }
1061
+ ],
1062
+ "responses": {
1063
+ "200": {
1064
+ "description": "A policy and its current published version, by slug",
1065
+ "content": {
1066
+ "application/json": {
1067
+ "schema": {
1068
+ "type": "object",
1069
+ "properties": {
1070
+ "data": {
1071
+ "type": "object",
1072
+ "properties": {
1073
+ "policy": {
1074
+ "type": "object",
1075
+ "properties": {
1076
+ "id": {
1077
+ "type": "string"
1078
+ },
1079
+ "kind": {
1080
+ "type": "string",
1081
+ "enum": [
1082
+ "cancellation",
1083
+ "payment",
1084
+ "terms_and_conditions",
1085
+ "privacy",
1086
+ "refund",
1087
+ "commission",
1088
+ "guarantee",
1089
+ "other"
1090
+ ]
1091
+ },
1092
+ "name": {
1093
+ "type": "string"
1094
+ },
1095
+ "slug": {
1096
+ "type": "string"
1097
+ },
1098
+ "description": {
1099
+ "type": [
1100
+ "string",
1101
+ "null"
1102
+ ]
1103
+ },
1104
+ "language": {
1105
+ "type": "string"
1106
+ },
1107
+ "currentVersionId": {
1108
+ "type": [
1109
+ "string",
1110
+ "null"
1111
+ ]
1112
+ },
1113
+ "metadata": {},
1114
+ "createdAt": {
1115
+ "type": "string"
1116
+ },
1117
+ "updatedAt": {
1118
+ "type": "string"
1119
+ }
1120
+ },
1121
+ "required": [
1122
+ "id",
1123
+ "kind",
1124
+ "name",
1125
+ "slug",
1126
+ "description",
1127
+ "language",
1128
+ "currentVersionId",
1129
+ "createdAt",
1130
+ "updatedAt"
1131
+ ]
1132
+ },
1133
+ "version": {
1134
+ "type": "object",
1135
+ "properties": {
1136
+ "id": {
1137
+ "type": "string"
1138
+ },
1139
+ "policyId": {
1140
+ "type": "string"
1141
+ },
1142
+ "version": {
1143
+ "type": "integer"
1144
+ },
1145
+ "status": {
1146
+ "type": "string",
1147
+ "enum": [
1148
+ "draft",
1149
+ "published",
1150
+ "retired"
1151
+ ]
1152
+ },
1153
+ "title": {
1154
+ "type": "string"
1155
+ },
1156
+ "body": {
1157
+ "type": [
1158
+ "string",
1159
+ "null"
1160
+ ]
1161
+ },
1162
+ "publishedAt": {
1163
+ "type": [
1164
+ "string",
1165
+ "null"
1166
+ ]
1167
+ },
1168
+ "publishedBy": {
1169
+ "type": [
1170
+ "string",
1171
+ "null"
1172
+ ]
1173
+ },
1174
+ "retiredAt": {
1175
+ "type": [
1176
+ "string",
1177
+ "null"
1178
+ ]
1179
+ },
1180
+ "metadata": {},
1181
+ "createdAt": {
1182
+ "type": "string"
1183
+ },
1184
+ "updatedAt": {
1185
+ "type": "string"
1186
+ }
1187
+ },
1188
+ "required": [
1189
+ "id",
1190
+ "policyId",
1191
+ "version",
1192
+ "status",
1193
+ "title",
1194
+ "body",
1195
+ "publishedAt",
1196
+ "publishedBy",
1197
+ "retiredAt",
1198
+ "createdAt",
1199
+ "updatedAt"
1200
+ ]
1201
+ }
1202
+ },
1203
+ "required": [
1204
+ "policy",
1205
+ "version"
1206
+ ]
1207
+ }
1208
+ },
1209
+ "required": [
1210
+ "data"
1211
+ ]
1212
+ }
1213
+ }
1214
+ }
1215
+ },
1216
+ "404": {
1217
+ "description": "Policy not found or has no published version",
1218
+ "content": {
1219
+ "application/json": {
1220
+ "schema": {
1221
+ "type": "object",
1222
+ "properties": {
1223
+ "error": {
1224
+ "type": "string"
1225
+ }
1226
+ },
1227
+ "required": [
1228
+ "error"
1229
+ ]
1230
+ }
1231
+ }
1232
+ }
1233
+ }
1234
+ }
1235
+ }
1236
+ },
1237
+ "/v1/public/legal/policies/{id}/accept": {
1238
+ "post": {
1239
+ "parameters": [
1240
+ {
1241
+ "schema": {
1242
+ "type": "string"
1243
+ },
1244
+ "required": true,
1245
+ "name": "id",
1246
+ "in": "path"
1247
+ }
1248
+ ],
1249
+ "requestBody": {
1250
+ "required": true,
1251
+ "content": {
1252
+ "application/json": {
1253
+ "schema": {
1254
+ "type": "object",
1255
+ "properties": {
1256
+ "policyVersionId": {
1257
+ "type": "string"
1258
+ },
1259
+ "personId": {
1260
+ "type": [
1261
+ "string",
1262
+ "null"
1263
+ ]
1264
+ },
1265
+ "bookingId": {
1266
+ "type": [
1267
+ "string",
1268
+ "null"
1269
+ ]
1270
+ },
1271
+ "targetKind": {
1272
+ "type": [
1273
+ "string",
1274
+ "null"
1275
+ ],
1276
+ "enum": [
1277
+ "booking",
1278
+ "quote_version",
1279
+ "program",
1280
+ "product",
1281
+ "inventory_item",
1282
+ "supplier_channel_relationship",
1283
+ "provider_source_ref",
1284
+ null
1285
+ ]
1286
+ },
1287
+ "targetId": {
1288
+ "anyOf": [
1289
+ {
1290
+ "type": "string",
1291
+ "enum": [
1292
+ ""
1293
+ ]
1294
+ },
1295
+ {
1296
+ "type": "string"
1297
+ },
1298
+ {
1299
+ "type": "null"
1300
+ }
1301
+ ]
1302
+ },
1303
+ "targetProvider": {
1304
+ "anyOf": [
1305
+ {
1306
+ "type": "string",
1307
+ "enum": [
1308
+ ""
1309
+ ]
1310
+ },
1311
+ {
1312
+ "type": "string",
1313
+ "minLength": 1,
1314
+ "maxLength": 100
1315
+ },
1316
+ {
1317
+ "type": "null"
1318
+ }
1319
+ ]
1320
+ },
1321
+ "targetSourceRef": {
1322
+ "anyOf": [
1323
+ {
1324
+ "type": "string",
1325
+ "enum": [
1326
+ ""
1327
+ ]
1328
+ },
1329
+ {
1330
+ "type": "string",
1331
+ "minLength": 1,
1332
+ "maxLength": 500
1333
+ },
1334
+ {
1335
+ "type": "null"
1336
+ }
1337
+ ]
1338
+ },
1339
+ "legacyTransactionOfferId": {
1340
+ "anyOf": [
1341
+ {
1342
+ "type": "string",
1343
+ "enum": [
1344
+ ""
1345
+ ]
1346
+ },
1347
+ {
1348
+ "type": "string"
1349
+ },
1350
+ {
1351
+ "type": "null"
1352
+ }
1353
+ ]
1354
+ },
1355
+ "legacyTransactionOrderId": {
1356
+ "anyOf": [
1357
+ {
1358
+ "type": "string",
1359
+ "enum": [
1360
+ ""
1361
+ ]
1362
+ },
1363
+ {
1364
+ "type": "string"
1365
+ },
1366
+ {
1367
+ "type": "null"
1368
+ }
1369
+ ]
1370
+ },
1371
+ "acceptedBy": {
1372
+ "type": [
1373
+ "string",
1374
+ "null"
1375
+ ],
1376
+ "maxLength": 255
1377
+ },
1378
+ "method": {
1379
+ "type": "string",
1380
+ "enum": [
1381
+ "implicit",
1382
+ "explicit_checkbox",
1383
+ "signature"
1384
+ ],
1385
+ "default": "implicit"
1386
+ },
1387
+ "ipAddress": {
1388
+ "type": [
1389
+ "string",
1390
+ "null"
1391
+ ],
1392
+ "maxLength": 64
1393
+ },
1394
+ "userAgent": {
1395
+ "type": [
1396
+ "string",
1397
+ "null"
1398
+ ],
1399
+ "maxLength": 500
1400
+ },
1401
+ "metadata": {
1402
+ "type": [
1403
+ "object",
1404
+ "null"
1405
+ ],
1406
+ "additionalProperties": {}
1407
+ }
1408
+ },
1409
+ "required": [
1410
+ "policyVersionId"
1411
+ ]
1412
+ }
1413
+ }
1414
+ }
1415
+ },
1416
+ "responses": {
1417
+ "201": {
1418
+ "description": "The recorded policy acceptance",
1419
+ "content": {
1420
+ "application/json": {
1421
+ "schema": {
1422
+ "type": "object",
1423
+ "properties": {
1424
+ "data": {
1425
+ "type": "object",
1426
+ "properties": {
1427
+ "id": {
1428
+ "type": "string"
1429
+ },
1430
+ "policyVersionId": {
1431
+ "type": "string"
1432
+ },
1433
+ "personId": {
1434
+ "type": [
1435
+ "string",
1436
+ "null"
1437
+ ]
1438
+ },
1439
+ "bookingId": {
1440
+ "type": [
1441
+ "string",
1442
+ "null"
1443
+ ]
1444
+ },
1445
+ "targetKind": {
1446
+ "type": [
1447
+ "string",
1448
+ "null"
1449
+ ],
1450
+ "enum": [
1451
+ "booking",
1452
+ "quote_version",
1453
+ "program",
1454
+ "product",
1455
+ "inventory_item",
1456
+ "supplier_channel_relationship",
1457
+ "provider_source_ref",
1458
+ null
1459
+ ]
1460
+ },
1461
+ "targetId": {
1462
+ "type": [
1463
+ "string",
1464
+ "null"
1465
+ ]
1466
+ },
1467
+ "targetProvider": {
1468
+ "type": [
1469
+ "string",
1470
+ "null"
1471
+ ]
1472
+ },
1473
+ "targetSourceRef": {
1474
+ "type": [
1475
+ "string",
1476
+ "null"
1477
+ ]
1478
+ },
1479
+ "legacyTransactionOfferId": {
1480
+ "type": [
1481
+ "string",
1482
+ "null"
1483
+ ]
1484
+ },
1485
+ "legacyTransactionOrderId": {
1486
+ "type": [
1487
+ "string",
1488
+ "null"
1489
+ ]
1490
+ },
1491
+ "acceptedAt": {
1492
+ "type": "string"
1493
+ },
1494
+ "acceptedBy": {
1495
+ "type": [
1496
+ "string",
1497
+ "null"
1498
+ ]
1499
+ },
1500
+ "method": {
1501
+ "type": "string",
1502
+ "enum": [
1503
+ "implicit",
1504
+ "explicit_checkbox",
1505
+ "signature"
1506
+ ]
1507
+ },
1508
+ "ipAddress": {
1509
+ "type": [
1510
+ "string",
1511
+ "null"
1512
+ ]
1513
+ },
1514
+ "userAgent": {
1515
+ "type": [
1516
+ "string",
1517
+ "null"
1518
+ ]
1519
+ },
1520
+ "metadata": {},
1521
+ "createdAt": {
1522
+ "type": "string"
1523
+ }
1524
+ },
1525
+ "required": [
1526
+ "id",
1527
+ "policyVersionId",
1528
+ "personId",
1529
+ "bookingId",
1530
+ "targetKind",
1531
+ "targetId",
1532
+ "targetProvider",
1533
+ "targetSourceRef",
1534
+ "legacyTransactionOfferId",
1535
+ "legacyTransactionOrderId",
1536
+ "acceptedAt",
1537
+ "acceptedBy",
1538
+ "method",
1539
+ "ipAddress",
1540
+ "userAgent",
1541
+ "createdAt"
1542
+ ]
1543
+ }
1544
+ },
1545
+ "required": [
1546
+ "data"
1547
+ ]
1548
+ }
1549
+ }
1550
+ }
1551
+ },
1552
+ "400": {
1553
+ "description": "Invalid request body",
1554
+ "content": {
1555
+ "application/json": {
1556
+ "schema": {
1557
+ "type": "object",
1558
+ "properties": {
1559
+ "error": {
1560
+ "type": "string"
1561
+ }
1562
+ },
1563
+ "required": [
1564
+ "error"
1565
+ ]
1566
+ }
1567
+ }
1568
+ }
1569
+ }
1570
+ }
1571
+ }
1572
+ },
1573
+ "/v1/public/legal/terms": {
1574
+ "get": {
1575
+ "parameters": [
1576
+ {
1577
+ "schema": {
1578
+ "type": "integer",
1579
+ "minimum": 1,
1580
+ "maximum": 200,
1581
+ "default": 50
1582
+ },
1583
+ "required": false,
1584
+ "name": "limit",
1585
+ "in": "query"
1586
+ },
1587
+ {
1588
+ "schema": {
1589
+ "type": [
1590
+ "integer",
1591
+ "null"
1592
+ ],
1593
+ "minimum": 0,
1594
+ "default": 0
1595
+ },
1596
+ "required": false,
1597
+ "name": "offset",
1598
+ "in": "query"
1599
+ },
1600
+ {
1601
+ "schema": {
1602
+ "type": "string"
1603
+ },
1604
+ "required": false,
1605
+ "name": "contractId",
1606
+ "in": "query"
1607
+ },
1608
+ {
1609
+ "schema": {
1610
+ "type": "string"
1611
+ },
1612
+ "required": false,
1613
+ "name": "policyVersionId",
1614
+ "in": "query"
1615
+ },
1616
+ {
1617
+ "schema": {
1618
+ "type": "string",
1619
+ "enum": [
1620
+ "booking",
1621
+ "quote_version",
1622
+ "program",
1623
+ "product",
1624
+ "inventory_item",
1625
+ "supplier_channel_relationship",
1626
+ "provider_source_ref"
1627
+ ]
1628
+ },
1629
+ "required": false,
1630
+ "name": "targetKind",
1631
+ "in": "query"
1632
+ },
1633
+ {
1634
+ "schema": {
1635
+ "type": "string"
1636
+ },
1637
+ "required": false,
1638
+ "name": "targetId",
1639
+ "in": "query"
1640
+ },
1641
+ {
1642
+ "schema": {
1643
+ "type": "string"
1644
+ },
1645
+ "required": false,
1646
+ "name": "targetProvider",
1647
+ "in": "query"
1648
+ },
1649
+ {
1650
+ "schema": {
1651
+ "type": "string"
1652
+ },
1653
+ "required": false,
1654
+ "name": "targetSourceRef",
1655
+ "in": "query"
1656
+ },
1657
+ {
1658
+ "schema": {
1659
+ "type": "string"
1660
+ },
1661
+ "required": false,
1662
+ "name": "legacyTransactionOfferId",
1663
+ "in": "query"
1664
+ },
1665
+ {
1666
+ "schema": {
1667
+ "type": "string"
1668
+ },
1669
+ "required": false,
1670
+ "name": "legacyTransactionOrderId",
1671
+ "in": "query"
1672
+ },
1673
+ {
1674
+ "schema": {
1675
+ "type": "string",
1676
+ "enum": [
1677
+ "terms_and_conditions",
1678
+ "cancellation",
1679
+ "guarantee",
1680
+ "payment",
1681
+ "pricing",
1682
+ "commission",
1683
+ "other"
1684
+ ]
1685
+ },
1686
+ "required": false,
1687
+ "name": "termType",
1688
+ "in": "query"
1689
+ },
1690
+ {
1691
+ "schema": {
1692
+ "type": "string",
1693
+ "enum": [
1694
+ "not_required",
1695
+ "pending",
1696
+ "accepted",
1697
+ "declined"
1698
+ ]
1699
+ },
1700
+ "required": false,
1701
+ "name": "acceptanceStatus",
1702
+ "in": "query"
1703
+ }
1704
+ ],
1705
+ "responses": {
1706
+ "200": {
1707
+ "description": "Paginated list of legal terms (public read)",
1708
+ "content": {
1709
+ "application/json": {
1710
+ "schema": {
1711
+ "type": "object",
1712
+ "properties": {
1713
+ "data": {
1714
+ "type": "array",
1715
+ "items": {
1716
+ "type": "object",
1717
+ "properties": {
1718
+ "id": {
1719
+ "type": "string"
1720
+ },
1721
+ "contractId": {
1722
+ "type": [
1723
+ "string",
1724
+ "null"
1725
+ ]
1726
+ },
1727
+ "policyVersionId": {
1728
+ "type": [
1729
+ "string",
1730
+ "null"
1731
+ ]
1732
+ },
1733
+ "targetKind": {
1734
+ "type": [
1735
+ "string",
1736
+ "null"
1737
+ ],
1738
+ "enum": [
1739
+ "booking",
1740
+ "quote_version",
1741
+ "program",
1742
+ "product",
1743
+ "inventory_item",
1744
+ "supplier_channel_relationship",
1745
+ "provider_source_ref",
1746
+ null
1747
+ ]
1748
+ },
1749
+ "targetId": {
1750
+ "type": [
1751
+ "string",
1752
+ "null"
1753
+ ]
1754
+ },
1755
+ "targetProvider": {
1756
+ "type": [
1757
+ "string",
1758
+ "null"
1759
+ ]
1760
+ },
1761
+ "targetSourceRef": {
1762
+ "type": [
1763
+ "string",
1764
+ "null"
1765
+ ]
1766
+ },
1767
+ "legacyTransactionOfferId": {
1768
+ "type": [
1769
+ "string",
1770
+ "null"
1771
+ ]
1772
+ },
1773
+ "legacyTransactionOrderId": {
1774
+ "type": [
1775
+ "string",
1776
+ "null"
1777
+ ]
1778
+ },
1779
+ "termType": {
1780
+ "type": "string",
1781
+ "enum": [
1782
+ "terms_and_conditions",
1783
+ "cancellation",
1784
+ "guarantee",
1785
+ "payment",
1786
+ "pricing",
1787
+ "commission",
1788
+ "other"
1789
+ ]
1790
+ },
1791
+ "title": {
1792
+ "type": "string"
1793
+ },
1794
+ "body": {
1795
+ "type": "string"
1796
+ },
1797
+ "language": {
1798
+ "type": [
1799
+ "string",
1800
+ "null"
1801
+ ]
1802
+ },
1803
+ "required": {
1804
+ "type": "boolean"
1805
+ },
1806
+ "sortOrder": {
1807
+ "type": "integer"
1808
+ },
1809
+ "acceptanceStatus": {
1810
+ "type": "string",
1811
+ "enum": [
1812
+ "not_required",
1813
+ "pending",
1814
+ "accepted",
1815
+ "declined"
1816
+ ]
1817
+ },
1818
+ "acceptedAt": {
1819
+ "type": [
1820
+ "string",
1821
+ "null"
1822
+ ]
1823
+ },
1824
+ "acceptedBy": {
1825
+ "type": [
1826
+ "string",
1827
+ "null"
1828
+ ]
1829
+ },
1830
+ "metadata": {},
1831
+ "createdAt": {
1832
+ "type": "string"
1833
+ },
1834
+ "updatedAt": {
1835
+ "type": "string"
1836
+ }
1837
+ },
1838
+ "required": [
1839
+ "id",
1840
+ "contractId",
1841
+ "policyVersionId",
1842
+ "targetKind",
1843
+ "targetId",
1844
+ "targetProvider",
1845
+ "targetSourceRef",
1846
+ "legacyTransactionOfferId",
1847
+ "legacyTransactionOrderId",
1848
+ "termType",
1849
+ "title",
1850
+ "body",
1851
+ "language",
1852
+ "required",
1853
+ "sortOrder",
1854
+ "acceptanceStatus",
1855
+ "acceptedAt",
1856
+ "acceptedBy",
1857
+ "createdAt",
1858
+ "updatedAt"
1859
+ ]
1860
+ }
1861
+ },
1862
+ "total": {
1863
+ "type": "integer"
1864
+ },
1865
+ "limit": {
1866
+ "type": "integer"
1867
+ },
1868
+ "offset": {
1869
+ "type": "integer"
1870
+ }
1871
+ },
1872
+ "required": [
1873
+ "data",
1874
+ "total",
1875
+ "limit",
1876
+ "offset"
1877
+ ]
1878
+ }
1879
+ }
1880
+ }
1881
+ }
1882
+ }
1883
+ }
1884
+ },
1885
+ "/v1/public/legal/terms/{id}": {
1886
+ "get": {
1887
+ "parameters": [
1888
+ {
1889
+ "schema": {
1890
+ "type": "string"
1891
+ },
1892
+ "required": true,
1893
+ "name": "id",
1894
+ "in": "path"
1895
+ }
1896
+ ],
1897
+ "responses": {
1898
+ "200": {
1899
+ "description": "A legal term by id (public read)",
1900
+ "content": {
1901
+ "application/json": {
1902
+ "schema": {
1903
+ "type": "object",
1904
+ "properties": {
1905
+ "data": {
1906
+ "type": "object",
1907
+ "properties": {
1908
+ "id": {
1909
+ "type": "string"
1910
+ },
1911
+ "contractId": {
1912
+ "type": [
1913
+ "string",
1914
+ "null"
1915
+ ]
1916
+ },
1917
+ "policyVersionId": {
1918
+ "type": [
1919
+ "string",
1920
+ "null"
1921
+ ]
1922
+ },
1923
+ "targetKind": {
1924
+ "type": [
1925
+ "string",
1926
+ "null"
1927
+ ],
1928
+ "enum": [
1929
+ "booking",
1930
+ "quote_version",
1931
+ "program",
1932
+ "product",
1933
+ "inventory_item",
1934
+ "supplier_channel_relationship",
1935
+ "provider_source_ref",
1936
+ null
1937
+ ]
1938
+ },
1939
+ "targetId": {
1940
+ "type": [
1941
+ "string",
1942
+ "null"
1943
+ ]
1944
+ },
1945
+ "targetProvider": {
1946
+ "type": [
1947
+ "string",
1948
+ "null"
1949
+ ]
1950
+ },
1951
+ "targetSourceRef": {
1952
+ "type": [
1953
+ "string",
1954
+ "null"
1955
+ ]
1956
+ },
1957
+ "legacyTransactionOfferId": {
1958
+ "type": [
1959
+ "string",
1960
+ "null"
1961
+ ]
1962
+ },
1963
+ "legacyTransactionOrderId": {
1964
+ "type": [
1965
+ "string",
1966
+ "null"
1967
+ ]
1968
+ },
1969
+ "termType": {
1970
+ "type": "string",
1971
+ "enum": [
1972
+ "terms_and_conditions",
1973
+ "cancellation",
1974
+ "guarantee",
1975
+ "payment",
1976
+ "pricing",
1977
+ "commission",
1978
+ "other"
1979
+ ]
1980
+ },
1981
+ "title": {
1982
+ "type": "string"
1983
+ },
1984
+ "body": {
1985
+ "type": "string"
1986
+ },
1987
+ "language": {
1988
+ "type": [
1989
+ "string",
1990
+ "null"
1991
+ ]
1992
+ },
1993
+ "required": {
1994
+ "type": "boolean"
1995
+ },
1996
+ "sortOrder": {
1997
+ "type": "integer"
1998
+ },
1999
+ "acceptanceStatus": {
2000
+ "type": "string",
2001
+ "enum": [
2002
+ "not_required",
2003
+ "pending",
2004
+ "accepted",
2005
+ "declined"
2006
+ ]
2007
+ },
2008
+ "acceptedAt": {
2009
+ "type": [
2010
+ "string",
2011
+ "null"
2012
+ ]
2013
+ },
2014
+ "acceptedBy": {
2015
+ "type": [
2016
+ "string",
2017
+ "null"
2018
+ ]
2019
+ },
2020
+ "metadata": {},
2021
+ "createdAt": {
2022
+ "type": "string"
2023
+ },
2024
+ "updatedAt": {
2025
+ "type": "string"
2026
+ }
2027
+ },
2028
+ "required": [
2029
+ "id",
2030
+ "contractId",
2031
+ "policyVersionId",
2032
+ "targetKind",
2033
+ "targetId",
2034
+ "targetProvider",
2035
+ "targetSourceRef",
2036
+ "legacyTransactionOfferId",
2037
+ "legacyTransactionOrderId",
2038
+ "termType",
2039
+ "title",
2040
+ "body",
2041
+ "language",
2042
+ "required",
2043
+ "sortOrder",
2044
+ "acceptanceStatus",
2045
+ "acceptedAt",
2046
+ "acceptedBy",
2047
+ "createdAt",
2048
+ "updatedAt"
2049
+ ]
2050
+ }
2051
+ },
2052
+ "required": [
2053
+ "data"
2054
+ ]
2055
+ }
2056
+ }
2057
+ }
2058
+ },
2059
+ "404": {
2060
+ "description": "Legal term not found",
2061
+ "content": {
2062
+ "application/json": {
2063
+ "schema": {
2064
+ "type": "object",
2065
+ "properties": {
2066
+ "error": {
2067
+ "type": "string"
2068
+ }
2069
+ },
2070
+ "required": [
2071
+ "error"
2072
+ ]
2073
+ }
2074
+ }
2075
+ }
2076
+ }
2077
+ }
2078
+ }
2079
+ }
2080
+ },
2081
+ "webhooks": {}
2082
+ }