@voyant-travel/openapi 0.2.5 → 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 +2552 -276
  27. package/spec/framework-openapi.json +2785 -708
  28. package/spec/framework-storefront.json +252 -451
  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,1953 @@
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/admin/storefront/settings": {
152
+ "get": {
153
+ "responses": {
154
+ "200": {
155
+ "description": "The deployment's storefront settings",
156
+ "content": {
157
+ "application/json": {
158
+ "schema": {
159
+ "type": "object",
160
+ "properties": {
161
+ "data": {
162
+ "type": "object",
163
+ "properties": {
164
+ "branding": {
165
+ "type": "object",
166
+ "properties": {
167
+ "logoUrl": {
168
+ "type": [
169
+ "string",
170
+ "null"
171
+ ],
172
+ "format": "uri"
173
+ },
174
+ "faviconUrl": {
175
+ "type": [
176
+ "string",
177
+ "null"
178
+ ],
179
+ "format": "uri"
180
+ },
181
+ "brandMarkUrl": {
182
+ "type": [
183
+ "string",
184
+ "null"
185
+ ],
186
+ "format": "uri"
187
+ },
188
+ "primaryColor": {
189
+ "type": [
190
+ "string",
191
+ "null"
192
+ ],
193
+ "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
194
+ },
195
+ "accentColor": {
196
+ "type": [
197
+ "string",
198
+ "null"
199
+ ],
200
+ "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
201
+ },
202
+ "supportedLanguages": {
203
+ "type": "array",
204
+ "items": {
205
+ "type": "string",
206
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
207
+ }
208
+ }
209
+ },
210
+ "required": [
211
+ "logoUrl",
212
+ "faviconUrl",
213
+ "brandMarkUrl",
214
+ "primaryColor",
215
+ "accentColor",
216
+ "supportedLanguages"
217
+ ]
218
+ },
219
+ "support": {
220
+ "type": "object",
221
+ "properties": {
222
+ "email": {
223
+ "type": [
224
+ "string",
225
+ "null"
226
+ ],
227
+ "format": "email"
228
+ },
229
+ "phone": {
230
+ "type": [
231
+ "string",
232
+ "null"
233
+ ],
234
+ "minLength": 1
235
+ },
236
+ "links": {
237
+ "type": "array",
238
+ "items": {
239
+ "type": "object",
240
+ "properties": {
241
+ "label": {
242
+ "type": "string",
243
+ "minLength": 1
244
+ },
245
+ "url": {
246
+ "type": "string",
247
+ "format": "uri"
248
+ }
249
+ },
250
+ "required": [
251
+ "label",
252
+ "url"
253
+ ]
254
+ }
255
+ }
256
+ },
257
+ "required": [
258
+ "email",
259
+ "phone",
260
+ "links"
261
+ ]
262
+ },
263
+ "legal": {
264
+ "type": "object",
265
+ "properties": {
266
+ "termsUrl": {
267
+ "type": [
268
+ "string",
269
+ "null"
270
+ ],
271
+ "format": "uri"
272
+ },
273
+ "privacyUrl": {
274
+ "type": [
275
+ "string",
276
+ "null"
277
+ ],
278
+ "format": "uri"
279
+ },
280
+ "cancellationUrl": {
281
+ "type": [
282
+ "string",
283
+ "null"
284
+ ],
285
+ "format": "uri"
286
+ },
287
+ "defaultContractTemplateId": {
288
+ "type": [
289
+ "string",
290
+ "null"
291
+ ],
292
+ "minLength": 1
293
+ }
294
+ },
295
+ "required": [
296
+ "termsUrl",
297
+ "privacyUrl",
298
+ "cancellationUrl",
299
+ "defaultContractTemplateId"
300
+ ]
301
+ },
302
+ "localization": {
303
+ "type": "object",
304
+ "properties": {
305
+ "defaultLocale": {
306
+ "type": [
307
+ "string",
308
+ "null"
309
+ ],
310
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
311
+ },
312
+ "currencyDisplay": {
313
+ "type": "string",
314
+ "enum": [
315
+ "code",
316
+ "symbol",
317
+ "name"
318
+ ]
319
+ }
320
+ },
321
+ "required": [
322
+ "defaultLocale",
323
+ "currencyDisplay"
324
+ ]
325
+ },
326
+ "forms": {
327
+ "type": "object",
328
+ "properties": {
329
+ "billing": {
330
+ "type": "object",
331
+ "properties": {
332
+ "fields": {
333
+ "type": "array",
334
+ "items": {
335
+ "type": "object",
336
+ "properties": {
337
+ "key": {
338
+ "type": "string",
339
+ "minLength": 1
340
+ },
341
+ "label": {
342
+ "type": "string",
343
+ "minLength": 1
344
+ },
345
+ "type": {
346
+ "type": "string",
347
+ "enum": [
348
+ "text",
349
+ "email",
350
+ "tel",
351
+ "textarea",
352
+ "select",
353
+ "checkbox",
354
+ "date",
355
+ "country"
356
+ ]
357
+ },
358
+ "required": {
359
+ "type": "boolean"
360
+ },
361
+ "placeholder": {
362
+ "type": [
363
+ "string",
364
+ "null"
365
+ ],
366
+ "minLength": 1
367
+ },
368
+ "description": {
369
+ "type": [
370
+ "string",
371
+ "null"
372
+ ],
373
+ "minLength": 1
374
+ },
375
+ "autocomplete": {
376
+ "type": [
377
+ "string",
378
+ "null"
379
+ ],
380
+ "minLength": 1
381
+ },
382
+ "options": {
383
+ "type": "array",
384
+ "items": {
385
+ "type": "object",
386
+ "properties": {
387
+ "value": {
388
+ "type": "string",
389
+ "minLength": 1
390
+ },
391
+ "label": {
392
+ "type": "string",
393
+ "minLength": 1
394
+ }
395
+ },
396
+ "required": [
397
+ "value",
398
+ "label"
399
+ ]
400
+ }
401
+ }
402
+ },
403
+ "required": [
404
+ "key",
405
+ "label",
406
+ "type",
407
+ "required",
408
+ "placeholder",
409
+ "description",
410
+ "autocomplete",
411
+ "options"
412
+ ]
413
+ }
414
+ }
415
+ },
416
+ "required": [
417
+ "fields"
418
+ ]
419
+ },
420
+ "travelers": {
421
+ "type": "object",
422
+ "properties": {
423
+ "fields": {
424
+ "type": "array",
425
+ "items": {
426
+ "type": "object",
427
+ "properties": {
428
+ "key": {
429
+ "type": "string",
430
+ "minLength": 1
431
+ },
432
+ "label": {
433
+ "type": "string",
434
+ "minLength": 1
435
+ },
436
+ "type": {
437
+ "type": "string",
438
+ "enum": [
439
+ "text",
440
+ "email",
441
+ "tel",
442
+ "textarea",
443
+ "select",
444
+ "checkbox",
445
+ "date",
446
+ "country"
447
+ ]
448
+ },
449
+ "required": {
450
+ "type": "boolean"
451
+ },
452
+ "placeholder": {
453
+ "type": [
454
+ "string",
455
+ "null"
456
+ ],
457
+ "minLength": 1
458
+ },
459
+ "description": {
460
+ "type": [
461
+ "string",
462
+ "null"
463
+ ],
464
+ "minLength": 1
465
+ },
466
+ "autocomplete": {
467
+ "type": [
468
+ "string",
469
+ "null"
470
+ ],
471
+ "minLength": 1
472
+ },
473
+ "options": {
474
+ "type": "array",
475
+ "items": {
476
+ "type": "object",
477
+ "properties": {
478
+ "value": {
479
+ "type": "string",
480
+ "minLength": 1
481
+ },
482
+ "label": {
483
+ "type": "string",
484
+ "minLength": 1
485
+ }
486
+ },
487
+ "required": [
488
+ "value",
489
+ "label"
490
+ ]
491
+ }
492
+ }
493
+ },
494
+ "required": [
495
+ "key",
496
+ "label",
497
+ "type",
498
+ "required",
499
+ "placeholder",
500
+ "description",
501
+ "autocomplete",
502
+ "options"
503
+ ]
504
+ }
505
+ }
506
+ },
507
+ "required": [
508
+ "fields"
509
+ ]
510
+ }
511
+ },
512
+ "required": [
513
+ "billing",
514
+ "travelers"
515
+ ]
516
+ },
517
+ "payment": {
518
+ "type": "object",
519
+ "properties": {
520
+ "defaultMethod": {
521
+ "type": [
522
+ "string",
523
+ "null"
524
+ ],
525
+ "enum": [
526
+ "card",
527
+ "bank_transfer",
528
+ "cash",
529
+ "voucher",
530
+ "invoice",
531
+ null
532
+ ]
533
+ },
534
+ "methods": {
535
+ "type": "array",
536
+ "items": {
537
+ "type": "object",
538
+ "properties": {
539
+ "code": {
540
+ "type": "string",
541
+ "enum": [
542
+ "card",
543
+ "bank_transfer",
544
+ "cash",
545
+ "voucher",
546
+ "invoice"
547
+ ]
548
+ },
549
+ "label": {
550
+ "type": "string",
551
+ "minLength": 1
552
+ },
553
+ "description": {
554
+ "type": [
555
+ "string",
556
+ "null"
557
+ ],
558
+ "minLength": 1
559
+ },
560
+ "enabled": {
561
+ "type": "boolean"
562
+ }
563
+ },
564
+ "required": [
565
+ "code",
566
+ "label",
567
+ "description",
568
+ "enabled"
569
+ ]
570
+ }
571
+ },
572
+ "structure": {
573
+ "type": "string",
574
+ "enum": [
575
+ "full",
576
+ "split"
577
+ ]
578
+ },
579
+ "schedule": {
580
+ "type": "array",
581
+ "items": {
582
+ "type": "object",
583
+ "properties": {
584
+ "percent": {
585
+ "type": "number",
586
+ "minimum": 0,
587
+ "maximum": 100
588
+ },
589
+ "dueInDays": {
590
+ "type": "integer",
591
+ "minimum": 0
592
+ },
593
+ "dueCondition": {
594
+ "type": "string",
595
+ "enum": [
596
+ "after_booking",
597
+ "before_departure"
598
+ ]
599
+ }
600
+ },
601
+ "required": [
602
+ "percent",
603
+ "dueInDays",
604
+ "dueCondition"
605
+ ]
606
+ }
607
+ },
608
+ "defaultSchedule": {
609
+ "type": [
610
+ "object",
611
+ "null"
612
+ ],
613
+ "properties": {
614
+ "depositPercent": {
615
+ "type": [
616
+ "number",
617
+ "null"
618
+ ],
619
+ "minimum": 0,
620
+ "maximum": 100
621
+ },
622
+ "balanceDueDaysBeforeDeparture": {
623
+ "type": [
624
+ "integer",
625
+ "null"
626
+ ],
627
+ "minimum": 0
628
+ }
629
+ },
630
+ "required": [
631
+ "depositPercent",
632
+ "balanceDueDaysBeforeDeparture"
633
+ ]
634
+ },
635
+ "bankTransfer": {
636
+ "type": [
637
+ "object",
638
+ "null"
639
+ ],
640
+ "properties": {
641
+ "dueDays": {
642
+ "type": [
643
+ "integer",
644
+ "null"
645
+ ],
646
+ "minimum": 0
647
+ },
648
+ "account": {
649
+ "type": [
650
+ "object",
651
+ "null"
652
+ ],
653
+ "properties": {
654
+ "provider": {
655
+ "type": [
656
+ "string",
657
+ "null"
658
+ ],
659
+ "minLength": 1
660
+ },
661
+ "currency": {
662
+ "type": [
663
+ "string",
664
+ "null"
665
+ ],
666
+ "minLength": 1
667
+ },
668
+ "iban": {
669
+ "type": "string",
670
+ "minLength": 1
671
+ },
672
+ "beneficiary": {
673
+ "type": "string",
674
+ "minLength": 1
675
+ },
676
+ "bank": {
677
+ "type": "string",
678
+ "minLength": 1
679
+ }
680
+ },
681
+ "required": [
682
+ "provider",
683
+ "currency",
684
+ "iban",
685
+ "beneficiary",
686
+ "bank"
687
+ ]
688
+ },
689
+ "accountHolder": {
690
+ "type": [
691
+ "string",
692
+ "null"
693
+ ],
694
+ "minLength": 1
695
+ },
696
+ "bankName": {
697
+ "type": [
698
+ "string",
699
+ "null"
700
+ ],
701
+ "minLength": 1
702
+ },
703
+ "iban": {
704
+ "type": [
705
+ "string",
706
+ "null"
707
+ ],
708
+ "minLength": 1
709
+ },
710
+ "bic": {
711
+ "type": [
712
+ "string",
713
+ "null"
714
+ ],
715
+ "minLength": 1
716
+ },
717
+ "paymentReference": {
718
+ "type": [
719
+ "string",
720
+ "null"
721
+ ],
722
+ "minLength": 1
723
+ },
724
+ "instructions": {
725
+ "type": [
726
+ "string",
727
+ "null"
728
+ ],
729
+ "minLength": 1
730
+ }
731
+ },
732
+ "required": [
733
+ "dueDays",
734
+ "account",
735
+ "accountHolder",
736
+ "bankName",
737
+ "iban",
738
+ "bic",
739
+ "paymentReference",
740
+ "instructions"
741
+ ]
742
+ }
743
+ },
744
+ "required": [
745
+ "defaultMethod",
746
+ "methods",
747
+ "structure",
748
+ "schedule",
749
+ "defaultSchedule",
750
+ "bankTransfer"
751
+ ]
752
+ }
753
+ },
754
+ "required": [
755
+ "branding",
756
+ "support",
757
+ "legal",
758
+ "localization",
759
+ "forms",
760
+ "payment"
761
+ ]
762
+ }
763
+ },
764
+ "required": [
765
+ "data"
766
+ ]
767
+ }
768
+ }
769
+ }
770
+ }
771
+ }
772
+ },
773
+ "patch": {
774
+ "requestBody": {
775
+ "required": true,
776
+ "content": {
777
+ "application/json": {
778
+ "schema": {
779
+ "type": "object",
780
+ "properties": {
781
+ "branding": {
782
+ "type": "object",
783
+ "properties": {
784
+ "logoUrl": {
785
+ "type": [
786
+ "string",
787
+ "null"
788
+ ],
789
+ "format": "uri"
790
+ },
791
+ "faviconUrl": {
792
+ "type": [
793
+ "string",
794
+ "null"
795
+ ],
796
+ "format": "uri"
797
+ },
798
+ "brandMarkUrl": {
799
+ "type": [
800
+ "string",
801
+ "null"
802
+ ],
803
+ "format": "uri"
804
+ },
805
+ "primaryColor": {
806
+ "type": [
807
+ "string",
808
+ "null"
809
+ ],
810
+ "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
811
+ },
812
+ "accentColor": {
813
+ "type": [
814
+ "string",
815
+ "null"
816
+ ],
817
+ "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
818
+ },
819
+ "supportedLanguages": {
820
+ "type": "array",
821
+ "items": {
822
+ "type": "string",
823
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
824
+ }
825
+ }
826
+ }
827
+ },
828
+ "support": {
829
+ "type": "object",
830
+ "properties": {
831
+ "email": {
832
+ "type": [
833
+ "string",
834
+ "null"
835
+ ],
836
+ "format": "email"
837
+ },
838
+ "phone": {
839
+ "type": [
840
+ "string",
841
+ "null"
842
+ ],
843
+ "minLength": 1
844
+ },
845
+ "links": {
846
+ "type": "array",
847
+ "items": {
848
+ "type": "object",
849
+ "properties": {
850
+ "label": {
851
+ "type": "string",
852
+ "minLength": 1
853
+ },
854
+ "url": {
855
+ "type": "string",
856
+ "format": "uri"
857
+ }
858
+ },
859
+ "required": [
860
+ "label",
861
+ "url"
862
+ ]
863
+ }
864
+ }
865
+ }
866
+ },
867
+ "legal": {
868
+ "type": "object",
869
+ "properties": {
870
+ "termsUrl": {
871
+ "type": [
872
+ "string",
873
+ "null"
874
+ ],
875
+ "format": "uri"
876
+ },
877
+ "privacyUrl": {
878
+ "type": [
879
+ "string",
880
+ "null"
881
+ ],
882
+ "format": "uri"
883
+ },
884
+ "cancellationUrl": {
885
+ "type": [
886
+ "string",
887
+ "null"
888
+ ],
889
+ "format": "uri"
890
+ },
891
+ "defaultContractTemplateId": {
892
+ "type": [
893
+ "string",
894
+ "null"
895
+ ],
896
+ "minLength": 1
897
+ }
898
+ }
899
+ },
900
+ "localization": {
901
+ "type": "object",
902
+ "properties": {
903
+ "defaultLocale": {
904
+ "type": [
905
+ "string",
906
+ "null"
907
+ ],
908
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
909
+ },
910
+ "currencyDisplay": {
911
+ "type": "string",
912
+ "enum": [
913
+ "code",
914
+ "symbol",
915
+ "name"
916
+ ]
917
+ }
918
+ }
919
+ },
920
+ "forms": {
921
+ "type": "object",
922
+ "properties": {
923
+ "billing": {
924
+ "type": "object",
925
+ "properties": {
926
+ "fields": {
927
+ "type": "array",
928
+ "items": {
929
+ "type": "object",
930
+ "properties": {
931
+ "key": {
932
+ "type": "string",
933
+ "minLength": 1
934
+ },
935
+ "label": {
936
+ "type": "string",
937
+ "minLength": 1
938
+ },
939
+ "type": {
940
+ "type": "string",
941
+ "enum": [
942
+ "text",
943
+ "email",
944
+ "tel",
945
+ "textarea",
946
+ "select",
947
+ "checkbox",
948
+ "date",
949
+ "country"
950
+ ],
951
+ "default": "text"
952
+ },
953
+ "required": {
954
+ "type": "boolean",
955
+ "default": false
956
+ },
957
+ "placeholder": {
958
+ "type": [
959
+ "string",
960
+ "null"
961
+ ],
962
+ "minLength": 1
963
+ },
964
+ "description": {
965
+ "type": [
966
+ "string",
967
+ "null"
968
+ ],
969
+ "minLength": 1
970
+ },
971
+ "autocomplete": {
972
+ "type": [
973
+ "string",
974
+ "null"
975
+ ],
976
+ "minLength": 1
977
+ },
978
+ "options": {
979
+ "type": "array",
980
+ "items": {
981
+ "type": "object",
982
+ "properties": {
983
+ "value": {
984
+ "type": "string",
985
+ "minLength": 1
986
+ },
987
+ "label": {
988
+ "type": "string",
989
+ "minLength": 1
990
+ }
991
+ },
992
+ "required": [
993
+ "value",
994
+ "label"
995
+ ]
996
+ },
997
+ "default": []
998
+ }
999
+ },
1000
+ "required": [
1001
+ "key",
1002
+ "label"
1003
+ ]
1004
+ },
1005
+ "default": []
1006
+ }
1007
+ }
1008
+ },
1009
+ "travelers": {
1010
+ "type": "object",
1011
+ "properties": {
1012
+ "fields": {
1013
+ "type": "array",
1014
+ "items": {
1015
+ "type": "object",
1016
+ "properties": {
1017
+ "key": {
1018
+ "type": "string",
1019
+ "minLength": 1
1020
+ },
1021
+ "label": {
1022
+ "type": "string",
1023
+ "minLength": 1
1024
+ },
1025
+ "type": {
1026
+ "type": "string",
1027
+ "enum": [
1028
+ "text",
1029
+ "email",
1030
+ "tel",
1031
+ "textarea",
1032
+ "select",
1033
+ "checkbox",
1034
+ "date",
1035
+ "country"
1036
+ ],
1037
+ "default": "text"
1038
+ },
1039
+ "required": {
1040
+ "type": "boolean",
1041
+ "default": false
1042
+ },
1043
+ "placeholder": {
1044
+ "type": [
1045
+ "string",
1046
+ "null"
1047
+ ],
1048
+ "minLength": 1
1049
+ },
1050
+ "description": {
1051
+ "type": [
1052
+ "string",
1053
+ "null"
1054
+ ],
1055
+ "minLength": 1
1056
+ },
1057
+ "autocomplete": {
1058
+ "type": [
1059
+ "string",
1060
+ "null"
1061
+ ],
1062
+ "minLength": 1
1063
+ },
1064
+ "options": {
1065
+ "type": "array",
1066
+ "items": {
1067
+ "type": "object",
1068
+ "properties": {
1069
+ "value": {
1070
+ "type": "string",
1071
+ "minLength": 1
1072
+ },
1073
+ "label": {
1074
+ "type": "string",
1075
+ "minLength": 1
1076
+ }
1077
+ },
1078
+ "required": [
1079
+ "value",
1080
+ "label"
1081
+ ]
1082
+ },
1083
+ "default": []
1084
+ }
1085
+ },
1086
+ "required": [
1087
+ "key",
1088
+ "label"
1089
+ ]
1090
+ },
1091
+ "default": []
1092
+ }
1093
+ }
1094
+ }
1095
+ }
1096
+ },
1097
+ "payment": {
1098
+ "type": "object",
1099
+ "properties": {
1100
+ "defaultMethod": {
1101
+ "type": [
1102
+ "string",
1103
+ "null"
1104
+ ],
1105
+ "enum": [
1106
+ "card",
1107
+ "bank_transfer",
1108
+ "cash",
1109
+ "voucher",
1110
+ "invoice",
1111
+ null
1112
+ ]
1113
+ },
1114
+ "methods": {
1115
+ "type": "array",
1116
+ "items": {
1117
+ "type": "object",
1118
+ "properties": {
1119
+ "code": {
1120
+ "type": "string",
1121
+ "enum": [
1122
+ "card",
1123
+ "bank_transfer",
1124
+ "cash",
1125
+ "voucher",
1126
+ "invoice"
1127
+ ]
1128
+ },
1129
+ "label": {
1130
+ "type": "string",
1131
+ "minLength": 1
1132
+ },
1133
+ "description": {
1134
+ "type": [
1135
+ "string",
1136
+ "null"
1137
+ ],
1138
+ "minLength": 1
1139
+ },
1140
+ "enabled": {
1141
+ "type": "boolean",
1142
+ "default": true
1143
+ }
1144
+ },
1145
+ "required": [
1146
+ "code"
1147
+ ]
1148
+ }
1149
+ },
1150
+ "structure": {
1151
+ "type": "string",
1152
+ "enum": [
1153
+ "full",
1154
+ "split"
1155
+ ]
1156
+ },
1157
+ "schedule": {
1158
+ "type": "array",
1159
+ "items": {
1160
+ "type": "object",
1161
+ "properties": {
1162
+ "percent": {
1163
+ "type": "number",
1164
+ "minimum": 0,
1165
+ "maximum": 100
1166
+ },
1167
+ "dueInDays": {
1168
+ "type": "integer",
1169
+ "minimum": 0
1170
+ },
1171
+ "dueCondition": {
1172
+ "type": "string",
1173
+ "enum": [
1174
+ "after_booking",
1175
+ "before_departure"
1176
+ ]
1177
+ }
1178
+ },
1179
+ "required": [
1180
+ "percent",
1181
+ "dueInDays",
1182
+ "dueCondition"
1183
+ ]
1184
+ }
1185
+ },
1186
+ "defaultSchedule": {
1187
+ "type": [
1188
+ "object",
1189
+ "null"
1190
+ ],
1191
+ "properties": {
1192
+ "depositPercent": {
1193
+ "type": [
1194
+ "number",
1195
+ "null"
1196
+ ],
1197
+ "minimum": 0,
1198
+ "maximum": 100
1199
+ },
1200
+ "balanceDueDaysBeforeDeparture": {
1201
+ "type": [
1202
+ "integer",
1203
+ "null"
1204
+ ],
1205
+ "minimum": 0
1206
+ }
1207
+ }
1208
+ },
1209
+ "bankTransfer": {
1210
+ "type": [
1211
+ "object",
1212
+ "null"
1213
+ ],
1214
+ "properties": {
1215
+ "dueDays": {
1216
+ "type": [
1217
+ "integer",
1218
+ "null"
1219
+ ],
1220
+ "minimum": 0
1221
+ },
1222
+ "account": {
1223
+ "type": [
1224
+ "object",
1225
+ "null"
1226
+ ],
1227
+ "properties": {
1228
+ "provider": {
1229
+ "type": [
1230
+ "string",
1231
+ "null"
1232
+ ],
1233
+ "minLength": 1
1234
+ },
1235
+ "currency": {
1236
+ "type": [
1237
+ "string",
1238
+ "null"
1239
+ ],
1240
+ "minLength": 1
1241
+ },
1242
+ "iban": {
1243
+ "type": "string",
1244
+ "minLength": 1
1245
+ },
1246
+ "beneficiary": {
1247
+ "type": "string",
1248
+ "minLength": 1
1249
+ },
1250
+ "bank": {
1251
+ "type": "string",
1252
+ "minLength": 1
1253
+ }
1254
+ },
1255
+ "required": [
1256
+ "iban",
1257
+ "beneficiary",
1258
+ "bank"
1259
+ ]
1260
+ },
1261
+ "accountHolder": {
1262
+ "type": [
1263
+ "string",
1264
+ "null"
1265
+ ],
1266
+ "minLength": 1
1267
+ },
1268
+ "bankName": {
1269
+ "type": [
1270
+ "string",
1271
+ "null"
1272
+ ],
1273
+ "minLength": 1
1274
+ },
1275
+ "iban": {
1276
+ "type": [
1277
+ "string",
1278
+ "null"
1279
+ ],
1280
+ "minLength": 1
1281
+ },
1282
+ "bic": {
1283
+ "type": [
1284
+ "string",
1285
+ "null"
1286
+ ],
1287
+ "minLength": 1
1288
+ },
1289
+ "paymentReference": {
1290
+ "type": [
1291
+ "string",
1292
+ "null"
1293
+ ],
1294
+ "minLength": 1
1295
+ },
1296
+ "instructions": {
1297
+ "type": [
1298
+ "string",
1299
+ "null"
1300
+ ],
1301
+ "minLength": 1
1302
+ }
1303
+ }
1304
+ }
1305
+ }
1306
+ }
1307
+ }
1308
+ }
1309
+ }
1310
+ }
1311
+ },
1312
+ "responses": {
1313
+ "200": {
1314
+ "description": "The updated storefront settings",
1315
+ "content": {
1316
+ "application/json": {
1317
+ "schema": {
1318
+ "type": "object",
1319
+ "properties": {
1320
+ "data": {
1321
+ "type": "object",
1322
+ "properties": {
1323
+ "branding": {
1324
+ "type": "object",
1325
+ "properties": {
1326
+ "logoUrl": {
1327
+ "type": [
1328
+ "string",
1329
+ "null"
1330
+ ],
1331
+ "format": "uri"
1332
+ },
1333
+ "faviconUrl": {
1334
+ "type": [
1335
+ "string",
1336
+ "null"
1337
+ ],
1338
+ "format": "uri"
1339
+ },
1340
+ "brandMarkUrl": {
1341
+ "type": [
1342
+ "string",
1343
+ "null"
1344
+ ],
1345
+ "format": "uri"
1346
+ },
1347
+ "primaryColor": {
1348
+ "type": [
1349
+ "string",
1350
+ "null"
1351
+ ],
1352
+ "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
1353
+ },
1354
+ "accentColor": {
1355
+ "type": [
1356
+ "string",
1357
+ "null"
1358
+ ],
1359
+ "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
1360
+ },
1361
+ "supportedLanguages": {
1362
+ "type": "array",
1363
+ "items": {
1364
+ "type": "string",
1365
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
1366
+ }
1367
+ }
1368
+ },
1369
+ "required": [
1370
+ "logoUrl",
1371
+ "faviconUrl",
1372
+ "brandMarkUrl",
1373
+ "primaryColor",
1374
+ "accentColor",
1375
+ "supportedLanguages"
1376
+ ]
1377
+ },
1378
+ "support": {
1379
+ "type": "object",
1380
+ "properties": {
1381
+ "email": {
1382
+ "type": [
1383
+ "string",
1384
+ "null"
1385
+ ],
1386
+ "format": "email"
1387
+ },
1388
+ "phone": {
1389
+ "type": [
1390
+ "string",
1391
+ "null"
1392
+ ],
1393
+ "minLength": 1
1394
+ },
1395
+ "links": {
1396
+ "type": "array",
1397
+ "items": {
1398
+ "type": "object",
1399
+ "properties": {
1400
+ "label": {
1401
+ "type": "string",
1402
+ "minLength": 1
1403
+ },
1404
+ "url": {
1405
+ "type": "string",
1406
+ "format": "uri"
1407
+ }
1408
+ },
1409
+ "required": [
1410
+ "label",
1411
+ "url"
1412
+ ]
1413
+ }
1414
+ }
1415
+ },
1416
+ "required": [
1417
+ "email",
1418
+ "phone",
1419
+ "links"
1420
+ ]
1421
+ },
1422
+ "legal": {
1423
+ "type": "object",
1424
+ "properties": {
1425
+ "termsUrl": {
1426
+ "type": [
1427
+ "string",
1428
+ "null"
1429
+ ],
1430
+ "format": "uri"
1431
+ },
1432
+ "privacyUrl": {
1433
+ "type": [
1434
+ "string",
1435
+ "null"
1436
+ ],
1437
+ "format": "uri"
1438
+ },
1439
+ "cancellationUrl": {
1440
+ "type": [
1441
+ "string",
1442
+ "null"
1443
+ ],
1444
+ "format": "uri"
1445
+ },
1446
+ "defaultContractTemplateId": {
1447
+ "type": [
1448
+ "string",
1449
+ "null"
1450
+ ],
1451
+ "minLength": 1
1452
+ }
1453
+ },
1454
+ "required": [
1455
+ "termsUrl",
1456
+ "privacyUrl",
1457
+ "cancellationUrl",
1458
+ "defaultContractTemplateId"
1459
+ ]
1460
+ },
1461
+ "localization": {
1462
+ "type": "object",
1463
+ "properties": {
1464
+ "defaultLocale": {
1465
+ "type": [
1466
+ "string",
1467
+ "null"
1468
+ ],
1469
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
1470
+ },
1471
+ "currencyDisplay": {
1472
+ "type": "string",
1473
+ "enum": [
1474
+ "code",
1475
+ "symbol",
1476
+ "name"
1477
+ ]
1478
+ }
1479
+ },
1480
+ "required": [
1481
+ "defaultLocale",
1482
+ "currencyDisplay"
1483
+ ]
1484
+ },
1485
+ "forms": {
1486
+ "type": "object",
1487
+ "properties": {
1488
+ "billing": {
1489
+ "type": "object",
1490
+ "properties": {
1491
+ "fields": {
1492
+ "type": "array",
1493
+ "items": {
1494
+ "type": "object",
1495
+ "properties": {
1496
+ "key": {
1497
+ "type": "string",
1498
+ "minLength": 1
1499
+ },
1500
+ "label": {
1501
+ "type": "string",
1502
+ "minLength": 1
1503
+ },
1504
+ "type": {
1505
+ "type": "string",
1506
+ "enum": [
1507
+ "text",
1508
+ "email",
1509
+ "tel",
1510
+ "textarea",
1511
+ "select",
1512
+ "checkbox",
1513
+ "date",
1514
+ "country"
1515
+ ]
1516
+ },
1517
+ "required": {
1518
+ "type": "boolean"
1519
+ },
1520
+ "placeholder": {
1521
+ "type": [
1522
+ "string",
1523
+ "null"
1524
+ ],
1525
+ "minLength": 1
1526
+ },
1527
+ "description": {
1528
+ "type": [
1529
+ "string",
1530
+ "null"
1531
+ ],
1532
+ "minLength": 1
1533
+ },
1534
+ "autocomplete": {
1535
+ "type": [
1536
+ "string",
1537
+ "null"
1538
+ ],
1539
+ "minLength": 1
1540
+ },
1541
+ "options": {
1542
+ "type": "array",
1543
+ "items": {
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "value": {
1547
+ "type": "string",
1548
+ "minLength": 1
1549
+ },
1550
+ "label": {
1551
+ "type": "string",
1552
+ "minLength": 1
1553
+ }
1554
+ },
1555
+ "required": [
1556
+ "value",
1557
+ "label"
1558
+ ]
1559
+ }
1560
+ }
1561
+ },
1562
+ "required": [
1563
+ "key",
1564
+ "label",
1565
+ "type",
1566
+ "required",
1567
+ "placeholder",
1568
+ "description",
1569
+ "autocomplete",
1570
+ "options"
1571
+ ]
1572
+ }
1573
+ }
1574
+ },
1575
+ "required": [
1576
+ "fields"
1577
+ ]
1578
+ },
1579
+ "travelers": {
1580
+ "type": "object",
1581
+ "properties": {
1582
+ "fields": {
1583
+ "type": "array",
1584
+ "items": {
1585
+ "type": "object",
1586
+ "properties": {
1587
+ "key": {
1588
+ "type": "string",
1589
+ "minLength": 1
1590
+ },
1591
+ "label": {
1592
+ "type": "string",
1593
+ "minLength": 1
1594
+ },
1595
+ "type": {
1596
+ "type": "string",
1597
+ "enum": [
1598
+ "text",
1599
+ "email",
1600
+ "tel",
1601
+ "textarea",
1602
+ "select",
1603
+ "checkbox",
1604
+ "date",
1605
+ "country"
1606
+ ]
1607
+ },
1608
+ "required": {
1609
+ "type": "boolean"
1610
+ },
1611
+ "placeholder": {
1612
+ "type": [
1613
+ "string",
1614
+ "null"
1615
+ ],
1616
+ "minLength": 1
1617
+ },
1618
+ "description": {
1619
+ "type": [
1620
+ "string",
1621
+ "null"
1622
+ ],
1623
+ "minLength": 1
1624
+ },
1625
+ "autocomplete": {
1626
+ "type": [
1627
+ "string",
1628
+ "null"
1629
+ ],
1630
+ "minLength": 1
1631
+ },
1632
+ "options": {
1633
+ "type": "array",
1634
+ "items": {
1635
+ "type": "object",
1636
+ "properties": {
1637
+ "value": {
1638
+ "type": "string",
1639
+ "minLength": 1
1640
+ },
1641
+ "label": {
1642
+ "type": "string",
1643
+ "minLength": 1
1644
+ }
1645
+ },
1646
+ "required": [
1647
+ "value",
1648
+ "label"
1649
+ ]
1650
+ }
1651
+ }
1652
+ },
1653
+ "required": [
1654
+ "key",
1655
+ "label",
1656
+ "type",
1657
+ "required",
1658
+ "placeholder",
1659
+ "description",
1660
+ "autocomplete",
1661
+ "options"
1662
+ ]
1663
+ }
1664
+ }
1665
+ },
1666
+ "required": [
1667
+ "fields"
1668
+ ]
1669
+ }
1670
+ },
1671
+ "required": [
1672
+ "billing",
1673
+ "travelers"
1674
+ ]
1675
+ },
1676
+ "payment": {
1677
+ "type": "object",
1678
+ "properties": {
1679
+ "defaultMethod": {
1680
+ "type": [
1681
+ "string",
1682
+ "null"
1683
+ ],
1684
+ "enum": [
1685
+ "card",
1686
+ "bank_transfer",
1687
+ "cash",
1688
+ "voucher",
1689
+ "invoice",
1690
+ null
1691
+ ]
1692
+ },
1693
+ "methods": {
1694
+ "type": "array",
1695
+ "items": {
1696
+ "type": "object",
1697
+ "properties": {
1698
+ "code": {
1699
+ "type": "string",
1700
+ "enum": [
1701
+ "card",
1702
+ "bank_transfer",
1703
+ "cash",
1704
+ "voucher",
1705
+ "invoice"
1706
+ ]
1707
+ },
1708
+ "label": {
1709
+ "type": "string",
1710
+ "minLength": 1
1711
+ },
1712
+ "description": {
1713
+ "type": [
1714
+ "string",
1715
+ "null"
1716
+ ],
1717
+ "minLength": 1
1718
+ },
1719
+ "enabled": {
1720
+ "type": "boolean"
1721
+ }
1722
+ },
1723
+ "required": [
1724
+ "code",
1725
+ "label",
1726
+ "description",
1727
+ "enabled"
1728
+ ]
1729
+ }
1730
+ },
1731
+ "structure": {
1732
+ "type": "string",
1733
+ "enum": [
1734
+ "full",
1735
+ "split"
1736
+ ]
1737
+ },
1738
+ "schedule": {
1739
+ "type": "array",
1740
+ "items": {
1741
+ "type": "object",
1742
+ "properties": {
1743
+ "percent": {
1744
+ "type": "number",
1745
+ "minimum": 0,
1746
+ "maximum": 100
1747
+ },
1748
+ "dueInDays": {
1749
+ "type": "integer",
1750
+ "minimum": 0
1751
+ },
1752
+ "dueCondition": {
1753
+ "type": "string",
1754
+ "enum": [
1755
+ "after_booking",
1756
+ "before_departure"
1757
+ ]
1758
+ }
1759
+ },
1760
+ "required": [
1761
+ "percent",
1762
+ "dueInDays",
1763
+ "dueCondition"
1764
+ ]
1765
+ }
1766
+ },
1767
+ "defaultSchedule": {
1768
+ "type": [
1769
+ "object",
1770
+ "null"
1771
+ ],
1772
+ "properties": {
1773
+ "depositPercent": {
1774
+ "type": [
1775
+ "number",
1776
+ "null"
1777
+ ],
1778
+ "minimum": 0,
1779
+ "maximum": 100
1780
+ },
1781
+ "balanceDueDaysBeforeDeparture": {
1782
+ "type": [
1783
+ "integer",
1784
+ "null"
1785
+ ],
1786
+ "minimum": 0
1787
+ }
1788
+ },
1789
+ "required": [
1790
+ "depositPercent",
1791
+ "balanceDueDaysBeforeDeparture"
1792
+ ]
1793
+ },
1794
+ "bankTransfer": {
1795
+ "type": [
1796
+ "object",
1797
+ "null"
1798
+ ],
1799
+ "properties": {
1800
+ "dueDays": {
1801
+ "type": [
1802
+ "integer",
1803
+ "null"
1804
+ ],
1805
+ "minimum": 0
1806
+ },
1807
+ "account": {
1808
+ "type": [
1809
+ "object",
1810
+ "null"
1811
+ ],
1812
+ "properties": {
1813
+ "provider": {
1814
+ "type": [
1815
+ "string",
1816
+ "null"
1817
+ ],
1818
+ "minLength": 1
1819
+ },
1820
+ "currency": {
1821
+ "type": [
1822
+ "string",
1823
+ "null"
1824
+ ],
1825
+ "minLength": 1
1826
+ },
1827
+ "iban": {
1828
+ "type": "string",
1829
+ "minLength": 1
1830
+ },
1831
+ "beneficiary": {
1832
+ "type": "string",
1833
+ "minLength": 1
1834
+ },
1835
+ "bank": {
1836
+ "type": "string",
1837
+ "minLength": 1
1838
+ }
1839
+ },
1840
+ "required": [
1841
+ "provider",
1842
+ "currency",
1843
+ "iban",
1844
+ "beneficiary",
1845
+ "bank"
1846
+ ]
1847
+ },
1848
+ "accountHolder": {
1849
+ "type": [
1850
+ "string",
1851
+ "null"
1852
+ ],
1853
+ "minLength": 1
1854
+ },
1855
+ "bankName": {
1856
+ "type": [
1857
+ "string",
1858
+ "null"
1859
+ ],
1860
+ "minLength": 1
1861
+ },
1862
+ "iban": {
1863
+ "type": [
1864
+ "string",
1865
+ "null"
1866
+ ],
1867
+ "minLength": 1
1868
+ },
1869
+ "bic": {
1870
+ "type": [
1871
+ "string",
1872
+ "null"
1873
+ ],
1874
+ "minLength": 1
1875
+ },
1876
+ "paymentReference": {
1877
+ "type": [
1878
+ "string",
1879
+ "null"
1880
+ ],
1881
+ "minLength": 1
1882
+ },
1883
+ "instructions": {
1884
+ "type": [
1885
+ "string",
1886
+ "null"
1887
+ ],
1888
+ "minLength": 1
1889
+ }
1890
+ },
1891
+ "required": [
1892
+ "dueDays",
1893
+ "account",
1894
+ "accountHolder",
1895
+ "bankName",
1896
+ "iban",
1897
+ "bic",
1898
+ "paymentReference",
1899
+ "instructions"
1900
+ ]
1901
+ }
1902
+ },
1903
+ "required": [
1904
+ "defaultMethod",
1905
+ "methods",
1906
+ "structure",
1907
+ "schedule",
1908
+ "defaultSchedule",
1909
+ "bankTransfer"
1910
+ ]
1911
+ }
1912
+ },
1913
+ "required": [
1914
+ "branding",
1915
+ "support",
1916
+ "legal",
1917
+ "localization",
1918
+ "forms",
1919
+ "payment"
1920
+ ]
1921
+ }
1922
+ },
1923
+ "required": [
1924
+ "data"
1925
+ ]
1926
+ }
1927
+ }
1928
+ }
1929
+ },
1930
+ "409": {
1931
+ "description": "Storefront settings updates are not configured for this deployment",
1932
+ "content": {
1933
+ "application/json": {
1934
+ "schema": {
1935
+ "type": "object",
1936
+ "properties": {
1937
+ "error": {
1938
+ "type": "string"
1939
+ }
1940
+ },
1941
+ "required": [
1942
+ "error"
1943
+ ]
1944
+ }
1945
+ }
1946
+ }
1947
+ }
1948
+ }
1949
+ }
1950
+ }
1951
+ },
1952
+ "webhooks": {}
1953
+ }