@voyant-travel/openapi 0.0.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.
@@ -0,0 +1,530 @@
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
+ "parameters": {}
11
+ },
12
+ "paths": {
13
+ "/v1/public/pricing/products/{productId}/pricing": {
14
+ "get": {
15
+ "parameters": [
16
+ {
17
+ "schema": {
18
+ "type": "string"
19
+ },
20
+ "required": true,
21
+ "name": "productId",
22
+ "in": "path"
23
+ },
24
+ {
25
+ "schema": {
26
+ "type": "string"
27
+ },
28
+ "required": false,
29
+ "name": "catalogId",
30
+ "in": "query"
31
+ },
32
+ {
33
+ "schema": {
34
+ "type": "string"
35
+ },
36
+ "required": false,
37
+ "name": "optionId",
38
+ "in": "query"
39
+ },
40
+ {
41
+ "schema": {
42
+ "type": "string",
43
+ "format": "date"
44
+ },
45
+ "required": false,
46
+ "name": "date",
47
+ "in": "query"
48
+ },
49
+ {
50
+ "schema": {
51
+ "type": "string"
52
+ },
53
+ "required": false,
54
+ "name": "departureId",
55
+ "in": "query"
56
+ }
57
+ ],
58
+ "responses": {
59
+ "200": {
60
+ "description": "Public pricing snapshot for a product",
61
+ "content": {
62
+ "application/json": {
63
+ "schema": {
64
+ "type": "object",
65
+ "properties": {
66
+ "data": {
67
+ "type": "object",
68
+ "properties": {
69
+ "productId": {
70
+ "type": "string"
71
+ },
72
+ "catalog": {
73
+ "type": "object",
74
+ "properties": {
75
+ "id": {
76
+ "type": "string"
77
+ },
78
+ "code": {
79
+ "type": "string"
80
+ },
81
+ "name": {
82
+ "type": "string"
83
+ },
84
+ "currencyCode": {
85
+ "type": [
86
+ "string",
87
+ "null"
88
+ ]
89
+ }
90
+ },
91
+ "required": [
92
+ "id",
93
+ "code",
94
+ "name",
95
+ "currencyCode"
96
+ ]
97
+ },
98
+ "options": {
99
+ "type": "array",
100
+ "items": {
101
+ "type": "object",
102
+ "properties": {
103
+ "id": {
104
+ "type": "string"
105
+ },
106
+ "name": {
107
+ "type": "string"
108
+ },
109
+ "description": {
110
+ "type": [
111
+ "string",
112
+ "null"
113
+ ]
114
+ },
115
+ "status": {
116
+ "type": "string",
117
+ "enum": [
118
+ "draft",
119
+ "active",
120
+ "archived"
121
+ ]
122
+ },
123
+ "isDefault": {
124
+ "type": "boolean"
125
+ },
126
+ "bookingMode": {
127
+ "type": "string",
128
+ "enum": [
129
+ "date",
130
+ "date_time",
131
+ "open",
132
+ "stay",
133
+ "transfer",
134
+ "itinerary",
135
+ "other"
136
+ ]
137
+ },
138
+ "capacityMode": {
139
+ "type": "string",
140
+ "enum": [
141
+ "free_sale",
142
+ "limited",
143
+ "on_request"
144
+ ]
145
+ },
146
+ "pricingRules": {
147
+ "type": "array",
148
+ "items": {
149
+ "type": "object",
150
+ "properties": {
151
+ "id": {
152
+ "type": "string"
153
+ },
154
+ "name": {
155
+ "type": "string"
156
+ },
157
+ "description": {
158
+ "type": [
159
+ "string",
160
+ "null"
161
+ ]
162
+ },
163
+ "pricingMode": {
164
+ "type": "string",
165
+ "enum": [
166
+ "per_person",
167
+ "per_booking",
168
+ "starting_from",
169
+ "free",
170
+ "on_request"
171
+ ]
172
+ },
173
+ "baseSellAmountCents": {
174
+ "type": [
175
+ "integer",
176
+ "null"
177
+ ]
178
+ },
179
+ "minPerBooking": {
180
+ "type": [
181
+ "integer",
182
+ "null"
183
+ ]
184
+ },
185
+ "maxPerBooking": {
186
+ "type": [
187
+ "integer",
188
+ "null"
189
+ ]
190
+ },
191
+ "isDefault": {
192
+ "type": "boolean"
193
+ },
194
+ "cancellationPolicyId": {
195
+ "type": [
196
+ "string",
197
+ "null"
198
+ ]
199
+ },
200
+ "unitPrices": {
201
+ "type": "array",
202
+ "items": {
203
+ "type": "object",
204
+ "properties": {
205
+ "id": {
206
+ "type": "string"
207
+ },
208
+ "unitId": {
209
+ "type": "string"
210
+ },
211
+ "unitName": {
212
+ "type": "string"
213
+ },
214
+ "unitType": {
215
+ "type": "string",
216
+ "enum": [
217
+ "person",
218
+ "group",
219
+ "room",
220
+ "vehicle",
221
+ "service",
222
+ "other"
223
+ ]
224
+ },
225
+ "pricingMode": {
226
+ "type": "string",
227
+ "enum": [
228
+ "per_unit",
229
+ "per_person",
230
+ "per_booking",
231
+ "included",
232
+ "free",
233
+ "on_request"
234
+ ]
235
+ },
236
+ "sellAmountCents": {
237
+ "type": [
238
+ "integer",
239
+ "null"
240
+ ]
241
+ },
242
+ "minQuantity": {
243
+ "type": [
244
+ "integer",
245
+ "null"
246
+ ]
247
+ },
248
+ "maxQuantity": {
249
+ "type": [
250
+ "integer",
251
+ "null"
252
+ ]
253
+ },
254
+ "pricingCategoryId": {
255
+ "type": [
256
+ "string",
257
+ "null"
258
+ ]
259
+ },
260
+ "sortOrder": {
261
+ "type": "integer"
262
+ },
263
+ "tiers": {
264
+ "type": "array",
265
+ "items": {
266
+ "type": "object",
267
+ "properties": {
268
+ "id": {
269
+ "type": "string"
270
+ },
271
+ "minQuantity": {
272
+ "type": "integer"
273
+ },
274
+ "maxQuantity": {
275
+ "type": [
276
+ "integer",
277
+ "null"
278
+ ]
279
+ },
280
+ "sellAmountCents": {
281
+ "type": [
282
+ "integer",
283
+ "null"
284
+ ]
285
+ },
286
+ "sortOrder": {
287
+ "type": "integer"
288
+ }
289
+ },
290
+ "required": [
291
+ "id",
292
+ "minQuantity",
293
+ "maxQuantity",
294
+ "sellAmountCents",
295
+ "sortOrder"
296
+ ]
297
+ }
298
+ }
299
+ },
300
+ "required": [
301
+ "id",
302
+ "unitId",
303
+ "unitName",
304
+ "unitType",
305
+ "pricingMode",
306
+ "sellAmountCents",
307
+ "minQuantity",
308
+ "maxQuantity",
309
+ "pricingCategoryId",
310
+ "sortOrder",
311
+ "tiers"
312
+ ]
313
+ }
314
+ },
315
+ "startTimeAdjustments": {
316
+ "type": "array",
317
+ "items": {
318
+ "type": "object",
319
+ "properties": {
320
+ "id": {
321
+ "type": "string"
322
+ },
323
+ "startTimeId": {
324
+ "type": "string"
325
+ },
326
+ "label": {
327
+ "type": [
328
+ "string",
329
+ "null"
330
+ ]
331
+ },
332
+ "startTimeLocal": {
333
+ "type": "string"
334
+ },
335
+ "ruleMode": {
336
+ "type": "string",
337
+ "enum": [
338
+ "included",
339
+ "excluded",
340
+ "override",
341
+ "adjustment"
342
+ ]
343
+ },
344
+ "adjustmentType": {
345
+ "type": [
346
+ "string",
347
+ "null"
348
+ ],
349
+ "enum": [
350
+ "fixed",
351
+ "percentage",
352
+ null
353
+ ]
354
+ },
355
+ "sellAdjustmentCents": {
356
+ "type": [
357
+ "integer",
358
+ "null"
359
+ ]
360
+ },
361
+ "adjustmentBasisPoints": {
362
+ "type": [
363
+ "integer",
364
+ "null"
365
+ ]
366
+ }
367
+ },
368
+ "required": [
369
+ "id",
370
+ "startTimeId",
371
+ "label",
372
+ "startTimeLocal",
373
+ "ruleMode",
374
+ "adjustmentType",
375
+ "sellAdjustmentCents",
376
+ "adjustmentBasisPoints"
377
+ ]
378
+ }
379
+ }
380
+ },
381
+ "required": [
382
+ "id",
383
+ "name",
384
+ "description",
385
+ "pricingMode",
386
+ "baseSellAmountCents",
387
+ "minPerBooking",
388
+ "maxPerBooking",
389
+ "isDefault",
390
+ "cancellationPolicyId",
391
+ "unitPrices",
392
+ "startTimeAdjustments"
393
+ ]
394
+ }
395
+ }
396
+ },
397
+ "required": [
398
+ "id",
399
+ "name",
400
+ "description",
401
+ "status",
402
+ "isDefault",
403
+ "bookingMode",
404
+ "capacityMode",
405
+ "pricingRules"
406
+ ]
407
+ }
408
+ }
409
+ },
410
+ "required": [
411
+ "productId",
412
+ "catalog",
413
+ "options"
414
+ ]
415
+ }
416
+ },
417
+ "required": [
418
+ "data"
419
+ ]
420
+ }
421
+ }
422
+ }
423
+ },
424
+ "404": {
425
+ "description": "Product or pricing snapshot not found",
426
+ "content": {
427
+ "application/json": {
428
+ "schema": {
429
+ "type": "object",
430
+ "properties": {
431
+ "error": {
432
+ "type": "string"
433
+ }
434
+ },
435
+ "required": [
436
+ "error"
437
+ ]
438
+ }
439
+ }
440
+ }
441
+ }
442
+ }
443
+ }
444
+ },
445
+ "/v1/public/products/tags": {
446
+ "get": {
447
+ "parameters": [
448
+ {
449
+ "schema": {
450
+ "type": "string"
451
+ },
452
+ "required": false,
453
+ "name": "search",
454
+ "in": "query"
455
+ },
456
+ {
457
+ "schema": {
458
+ "type": "integer",
459
+ "example": 100
460
+ },
461
+ "required": false,
462
+ "name": "limit",
463
+ "in": "query"
464
+ },
465
+ {
466
+ "schema": {
467
+ "type": [
468
+ "integer",
469
+ "null"
470
+ ],
471
+ "minimum": 0,
472
+ "default": 0
473
+ },
474
+ "required": false,
475
+ "name": "offset",
476
+ "in": "query"
477
+ }
478
+ ],
479
+ "responses": {
480
+ "200": {
481
+ "description": "Paginated list of public catalog tags",
482
+ "content": {
483
+ "application/json": {
484
+ "schema": {
485
+ "type": "object",
486
+ "properties": {
487
+ "data": {
488
+ "type": "array",
489
+ "items": {
490
+ "type": "object",
491
+ "properties": {
492
+ "id": {
493
+ "type": "string"
494
+ },
495
+ "name": {
496
+ "type": "string"
497
+ }
498
+ },
499
+ "required": [
500
+ "id",
501
+ "name"
502
+ ]
503
+ }
504
+ },
505
+ "total": {
506
+ "type": "integer"
507
+ },
508
+ "limit": {
509
+ "type": "integer"
510
+ },
511
+ "offset": {
512
+ "type": "integer"
513
+ }
514
+ },
515
+ "required": [
516
+ "data",
517
+ "total",
518
+ "limit",
519
+ "offset"
520
+ ]
521
+ }
522
+ }
523
+ }
524
+ }
525
+ }
526
+ }
527
+ }
528
+ },
529
+ "webhooks": {}
530
+ }