@medalsocial/sdk 1.6.0 → 1.7.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.
- package/README.md +68 -0
- package/dist/openapi/medal-social.openapi.json +3097 -1489
- package/dist/pilot/index.d.mts +2 -2
- package/dist/pilot/index.d.ts +2 -2
- package/dist/src/index.d.mts +593 -23
- package/dist/src/index.d.ts +593 -23
- package/dist/src/index.js +472 -146
- package/dist/src/index.js.map +1 -1
- package/dist/src/index.mjs +471 -146
- package/dist/src/index.mjs.map +1 -1
- package/dist/src/openapi.generated.d.mts +905 -45
- package/dist/src/openapi.generated.d.ts +905 -45
- package/dist/src/openapi.generated.js.map +1 -1
- package/openapi/medal-social.openapi.yaml +944 -0
- package/package.json +18 -17
- package/skills/client/SKILL.md +2 -2
- package/skills/resources/SKILL.md +104 -3
|
@@ -319,6 +319,250 @@ interface paths {
|
|
|
319
319
|
patch: operations["updateDeal"];
|
|
320
320
|
trace?: never;
|
|
321
321
|
};
|
|
322
|
+
"/api/v1/bookings": {
|
|
323
|
+
parameters: {
|
|
324
|
+
query?: never;
|
|
325
|
+
header?: never;
|
|
326
|
+
path?: never;
|
|
327
|
+
cookie?: never;
|
|
328
|
+
};
|
|
329
|
+
/** List bookings */
|
|
330
|
+
get: operations["listBookings"];
|
|
331
|
+
put?: never;
|
|
332
|
+
/**
|
|
333
|
+
* Create a booking or party
|
|
334
|
+
* @description Books every item or none of them. Each created booking carries a `manage_token` returned exactly once — only its hash is stored, and an idempotent replay omits it.
|
|
335
|
+
*/
|
|
336
|
+
post: operations["createBooking"];
|
|
337
|
+
delete?: never;
|
|
338
|
+
options?: never;
|
|
339
|
+
head?: never;
|
|
340
|
+
patch?: never;
|
|
341
|
+
trace?: never;
|
|
342
|
+
};
|
|
343
|
+
"/api/v1/bookings/services": {
|
|
344
|
+
parameters: {
|
|
345
|
+
query?: never;
|
|
346
|
+
header?: never;
|
|
347
|
+
path?: never;
|
|
348
|
+
cookie?: never;
|
|
349
|
+
};
|
|
350
|
+
/** List bookable services */
|
|
351
|
+
get: operations["listBookingServices"];
|
|
352
|
+
put?: never;
|
|
353
|
+
post?: never;
|
|
354
|
+
delete?: never;
|
|
355
|
+
options?: never;
|
|
356
|
+
head?: never;
|
|
357
|
+
patch?: never;
|
|
358
|
+
trace?: never;
|
|
359
|
+
};
|
|
360
|
+
"/api/v1/bookings/resources": {
|
|
361
|
+
parameters: {
|
|
362
|
+
query?: never;
|
|
363
|
+
header?: never;
|
|
364
|
+
path?: never;
|
|
365
|
+
cookie?: never;
|
|
366
|
+
};
|
|
367
|
+
/** List bookable resources */
|
|
368
|
+
get: operations["listBookingResources"];
|
|
369
|
+
put?: never;
|
|
370
|
+
post?: never;
|
|
371
|
+
delete?: never;
|
|
372
|
+
options?: never;
|
|
373
|
+
head?: never;
|
|
374
|
+
patch?: never;
|
|
375
|
+
trace?: never;
|
|
376
|
+
};
|
|
377
|
+
"/api/v1/bookings/availability": {
|
|
378
|
+
parameters: {
|
|
379
|
+
query?: never;
|
|
380
|
+
header?: never;
|
|
381
|
+
path?: never;
|
|
382
|
+
cookie?: never;
|
|
383
|
+
};
|
|
384
|
+
/**
|
|
385
|
+
* List free slots for a service
|
|
386
|
+
* @description Slots reflect opening hours, time off, buffers, and existing bookings at the moment of the call. They are not held.
|
|
387
|
+
*/
|
|
388
|
+
get: operations["listBookingAvailability"];
|
|
389
|
+
put?: never;
|
|
390
|
+
post?: never;
|
|
391
|
+
delete?: never;
|
|
392
|
+
options?: never;
|
|
393
|
+
head?: never;
|
|
394
|
+
patch?: never;
|
|
395
|
+
trace?: never;
|
|
396
|
+
};
|
|
397
|
+
"/api/v1/bookings/schedule": {
|
|
398
|
+
parameters: {
|
|
399
|
+
query?: never;
|
|
400
|
+
header?: never;
|
|
401
|
+
path?: never;
|
|
402
|
+
cookie?: never;
|
|
403
|
+
};
|
|
404
|
+
/**
|
|
405
|
+
* List the dates a service can be booked on
|
|
406
|
+
* @description The other half of `availability`. Availability returns free slots and nothing else, so a closed day, an evening past closing and a fully booked day all come back as the same empty array. This returns one entry per date the workspace keeps opening hours on; a date ABSENT from the response is closed. `last_start_ts` is the last start this service could occupy on that date (it depends on the service's duration and buffers, not just the closing time) and is `null` for a date with posted hours that is shut outright, such as a public holiday.
|
|
407
|
+
*/
|
|
408
|
+
get: operations["listBookingSchedule"];
|
|
409
|
+
put?: never;
|
|
410
|
+
post?: never;
|
|
411
|
+
delete?: never;
|
|
412
|
+
options?: never;
|
|
413
|
+
head?: never;
|
|
414
|
+
patch?: never;
|
|
415
|
+
trace?: never;
|
|
416
|
+
};
|
|
417
|
+
"/api/v1/bookings/{id}": {
|
|
418
|
+
parameters: {
|
|
419
|
+
query?: never;
|
|
420
|
+
header?: never;
|
|
421
|
+
path: {
|
|
422
|
+
id: components["parameters"]["Id"];
|
|
423
|
+
};
|
|
424
|
+
cookie?: never;
|
|
425
|
+
};
|
|
426
|
+
/** Get a booking */
|
|
427
|
+
get: operations["getBooking"];
|
|
428
|
+
put?: never;
|
|
429
|
+
post?: never;
|
|
430
|
+
delete?: never;
|
|
431
|
+
options?: never;
|
|
432
|
+
head?: never;
|
|
433
|
+
/** Annotate a booking */
|
|
434
|
+
patch: operations["updateBooking"];
|
|
435
|
+
trace?: never;
|
|
436
|
+
};
|
|
437
|
+
"/api/v1/bookings/{id}/cancel": {
|
|
438
|
+
parameters: {
|
|
439
|
+
query?: never;
|
|
440
|
+
header?: never;
|
|
441
|
+
path: {
|
|
442
|
+
id: components["parameters"]["Id"];
|
|
443
|
+
};
|
|
444
|
+
cookie?: never;
|
|
445
|
+
};
|
|
446
|
+
get?: never;
|
|
447
|
+
put?: never;
|
|
448
|
+
/**
|
|
449
|
+
* Cancel a booking as the business
|
|
450
|
+
* @description Staff semantics — the workspace's cancel window is bypassed and the cancellation is attributed to staff.
|
|
451
|
+
*/
|
|
452
|
+
post: operations["cancelBooking"];
|
|
453
|
+
delete?: never;
|
|
454
|
+
options?: never;
|
|
455
|
+
head?: never;
|
|
456
|
+
patch?: never;
|
|
457
|
+
trace?: never;
|
|
458
|
+
};
|
|
459
|
+
"/api/v1/bookings/{id}/reschedule": {
|
|
460
|
+
parameters: {
|
|
461
|
+
query?: never;
|
|
462
|
+
header?: never;
|
|
463
|
+
path: {
|
|
464
|
+
id: components["parameters"]["Id"];
|
|
465
|
+
};
|
|
466
|
+
cookie?: never;
|
|
467
|
+
};
|
|
468
|
+
get?: never;
|
|
469
|
+
put?: never;
|
|
470
|
+
/**
|
|
471
|
+
* Reschedule a booking as the business
|
|
472
|
+
* @description Staff semantics — the reschedule window is bypassed. The old booking is cancelled and a new one inserted, so the response carries a new booking id and a freshly minted manage token.
|
|
473
|
+
*/
|
|
474
|
+
post: operations["rescheduleBooking"];
|
|
475
|
+
delete?: never;
|
|
476
|
+
options?: never;
|
|
477
|
+
head?: never;
|
|
478
|
+
patch?: never;
|
|
479
|
+
trace?: never;
|
|
480
|
+
};
|
|
481
|
+
"/api/v1/bookings/{id}/no-show": {
|
|
482
|
+
parameters: {
|
|
483
|
+
query?: never;
|
|
484
|
+
header?: never;
|
|
485
|
+
path: {
|
|
486
|
+
id: components["parameters"]["Id"];
|
|
487
|
+
};
|
|
488
|
+
cookie?: never;
|
|
489
|
+
};
|
|
490
|
+
get?: never;
|
|
491
|
+
put?: never;
|
|
492
|
+
/** Mark a booking as a no-show */
|
|
493
|
+
post: operations["markBookingNoShow"];
|
|
494
|
+
delete?: never;
|
|
495
|
+
options?: never;
|
|
496
|
+
head?: never;
|
|
497
|
+
patch?: never;
|
|
498
|
+
trace?: never;
|
|
499
|
+
};
|
|
500
|
+
"/api/v1/bookings/manage/{token}": {
|
|
501
|
+
parameters: {
|
|
502
|
+
query?: never;
|
|
503
|
+
header?: never;
|
|
504
|
+
path: {
|
|
505
|
+
/** @description The show-once manage token handed out when the booking was created. Possession of it authorizes the customer's own cancel or reschedule. */
|
|
506
|
+
token: components["parameters"]["ManageToken"];
|
|
507
|
+
};
|
|
508
|
+
cookie?: never;
|
|
509
|
+
};
|
|
510
|
+
/** Get the customer manage summary for a token */
|
|
511
|
+
get: operations["getManagedBooking"];
|
|
512
|
+
put?: never;
|
|
513
|
+
post?: never;
|
|
514
|
+
delete?: never;
|
|
515
|
+
options?: never;
|
|
516
|
+
head?: never;
|
|
517
|
+
patch?: never;
|
|
518
|
+
trace?: never;
|
|
519
|
+
};
|
|
520
|
+
"/api/v1/bookings/manage/{token}/cancel": {
|
|
521
|
+
parameters: {
|
|
522
|
+
query?: never;
|
|
523
|
+
header?: never;
|
|
524
|
+
path: {
|
|
525
|
+
/** @description The show-once manage token handed out when the booking was created. Possession of it authorizes the customer's own cancel or reschedule. */
|
|
526
|
+
token: components["parameters"]["ManageToken"];
|
|
527
|
+
};
|
|
528
|
+
cookie?: never;
|
|
529
|
+
};
|
|
530
|
+
get?: never;
|
|
531
|
+
put?: never;
|
|
532
|
+
/**
|
|
533
|
+
* Cancel on the customer's behalf
|
|
534
|
+
* @description Customer semantics — the workspace's cancel window is ENFORCED and the cancellation is attributed to the customer.
|
|
535
|
+
*/
|
|
536
|
+
post: operations["cancelManagedBooking"];
|
|
537
|
+
delete?: never;
|
|
538
|
+
options?: never;
|
|
539
|
+
head?: never;
|
|
540
|
+
patch?: never;
|
|
541
|
+
trace?: never;
|
|
542
|
+
};
|
|
543
|
+
"/api/v1/bookings/manage/{token}/reschedule": {
|
|
544
|
+
parameters: {
|
|
545
|
+
query?: never;
|
|
546
|
+
header?: never;
|
|
547
|
+
path: {
|
|
548
|
+
/** @description The show-once manage token handed out when the booking was created. Possession of it authorizes the customer's own cancel or reschedule. */
|
|
549
|
+
token: components["parameters"]["ManageToken"];
|
|
550
|
+
};
|
|
551
|
+
cookie?: never;
|
|
552
|
+
};
|
|
553
|
+
get?: never;
|
|
554
|
+
put?: never;
|
|
555
|
+
/**
|
|
556
|
+
* Reschedule on the customer's behalf
|
|
557
|
+
* @description Customer semantics — the reschedule window is ENFORCED. The response carries a new booking id and a new manage token; the old token stops working.
|
|
558
|
+
*/
|
|
559
|
+
post: operations["rescheduleManagedBooking"];
|
|
560
|
+
delete?: never;
|
|
561
|
+
options?: never;
|
|
562
|
+
head?: never;
|
|
563
|
+
patch?: never;
|
|
564
|
+
trace?: never;
|
|
565
|
+
};
|
|
322
566
|
"/api/v1/gdpr/export": {
|
|
323
567
|
parameters: {
|
|
324
568
|
query?: never;
|
|
@@ -1173,63 +1417,272 @@ interface components {
|
|
|
1173
1417
|
end_date?: string;
|
|
1174
1418
|
notes?: string;
|
|
1175
1419
|
};
|
|
1176
|
-
|
|
1420
|
+
/** @description A timestamp on the way in — Unix milliseconds, or an ISO 8601 date-time string. Responses always render timestamps as ISO 8601. */
|
|
1421
|
+
BookingTimestampInput: number | string;
|
|
1422
|
+
/** @enum {string} */
|
|
1423
|
+
BookingStatus: "pending" | "confirmed" | "completed" | "cancelled" | "no_show";
|
|
1424
|
+
/**
|
|
1425
|
+
* @description Who cancelled. `staff` for the id-addressed cancel, `customer` for the manage-token cancel, `system` for an automated one.
|
|
1426
|
+
* @enum {string}
|
|
1427
|
+
*/
|
|
1428
|
+
BookingCancelledBy: "customer" | "staff" | "system";
|
|
1429
|
+
/** @enum {string} */
|
|
1430
|
+
BookingPaymentStatus: "none" | "reserved" | "captured" | "refunded";
|
|
1431
|
+
/** @enum {string} */
|
|
1432
|
+
BookingCreatedVia: "web" | "dashboard" | "walk_in" | "api";
|
|
1433
|
+
/** @enum {string} */
|
|
1434
|
+
BookingResourceType: "staff" | "room" | "equipment";
|
|
1435
|
+
Booking: {
|
|
1177
1436
|
id: string;
|
|
1178
|
-
|
|
1179
|
-
|
|
1437
|
+
contact_id: string | null;
|
|
1438
|
+
service_id: string | null;
|
|
1439
|
+
resource_id: string | null;
|
|
1180
1440
|
/** Format: date-time */
|
|
1181
|
-
|
|
1441
|
+
start_ts: string | null;
|
|
1182
1442
|
/** Format: date-time */
|
|
1183
|
-
|
|
1443
|
+
end_ts: string | null;
|
|
1444
|
+
booked_for_name: string | null;
|
|
1445
|
+
/** @description A birth year, not a birthdate — the age bracket is all that is stored. */
|
|
1446
|
+
booked_for_birth_year: number | null;
|
|
1447
|
+
/** @description Shared by every booking created in the same party request. */
|
|
1448
|
+
party_sequence_id: string | null;
|
|
1449
|
+
status: components["schemas"]["BookingStatus"];
|
|
1450
|
+
cancelled_by: components["schemas"]["BookingCancelledBy"] | null;
|
|
1451
|
+
cancel_reason: string | null;
|
|
1452
|
+
/** @description On a booking created by a reschedule, the booking it replaced. */
|
|
1453
|
+
rescheduled_from_id: string | null;
|
|
1454
|
+
payment_status: components["schemas"]["BookingPaymentStatus"];
|
|
1455
|
+
/** @description Price in integer øre. Never a float and never kroner. */
|
|
1456
|
+
amount_ore: number | null;
|
|
1457
|
+
/** @description Customer-visible note. */
|
|
1458
|
+
notes: string | null;
|
|
1459
|
+
/** @description Staff-only note; never shown to the customer. */
|
|
1460
|
+
internal_notes: string | null;
|
|
1461
|
+
created_via: components["schemas"]["BookingCreatedVia"] | null;
|
|
1184
1462
|
/** Format: date-time */
|
|
1185
|
-
|
|
1186
|
-
/** Format: uri */
|
|
1187
|
-
download_url?: string | null;
|
|
1463
|
+
created_at: string | null;
|
|
1188
1464
|
/** Format: date-time */
|
|
1189
|
-
|
|
1190
|
-
};
|
|
1191
|
-
GdprExportRequest: {
|
|
1192
|
-
request_id: string;
|
|
1193
|
-
status: string;
|
|
1194
|
-
};
|
|
1195
|
-
/** @enum {string} */
|
|
1196
|
-
ConsentType: "marketing_email" | "analytics_tracking" | "third_party_sharing";
|
|
1197
|
-
RecordConsentInput: {
|
|
1198
|
-
/** Format: email */
|
|
1199
|
-
email: string;
|
|
1200
|
-
consent_type: components["schemas"]["ConsentType"];
|
|
1201
|
-
granted: boolean;
|
|
1202
|
-
source?: string;
|
|
1203
|
-
ip_address?: string;
|
|
1204
|
-
consent_text?: string;
|
|
1205
|
-
version?: string;
|
|
1465
|
+
updated_at: string | null;
|
|
1206
1466
|
};
|
|
1207
|
-
|
|
1467
|
+
BookingService: {
|
|
1208
1468
|
id: string;
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1469
|
+
name: string | null;
|
|
1470
|
+
description: string | null;
|
|
1471
|
+
category: string | null;
|
|
1472
|
+
duration_minutes: number | null;
|
|
1473
|
+
buffer_before_minutes: number | null;
|
|
1474
|
+
buffer_after_minutes: number | null;
|
|
1475
|
+
/** @description Price in integer øre. */
|
|
1476
|
+
price_ore: number | null;
|
|
1477
|
+
weekend_surcharge_pct: number | null;
|
|
1478
|
+
/** @description Resource types this service needs, e.g. `["staff"]`. */
|
|
1479
|
+
resource_requirements: string[];
|
|
1480
|
+
bookable_online: boolean;
|
|
1481
|
+
max_per_booking: number | null;
|
|
1482
|
+
color: string | null;
|
|
1483
|
+
sort_order: number | null;
|
|
1484
|
+
active: boolean;
|
|
1213
1485
|
/** Format: date-time */
|
|
1214
|
-
|
|
1486
|
+
created_at: string | null;
|
|
1215
1487
|
/** Format: date-time */
|
|
1216
|
-
|
|
1217
|
-
source?: string;
|
|
1218
|
-
version?: string;
|
|
1488
|
+
updated_at: string | null;
|
|
1219
1489
|
};
|
|
1220
|
-
|
|
1490
|
+
BookingResource: {
|
|
1221
1491
|
id: string;
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1492
|
+
type: components["schemas"]["BookingResourceType"] | null;
|
|
1493
|
+
name: string | null;
|
|
1494
|
+
/** Format: uri */
|
|
1495
|
+
photo_url: string | null;
|
|
1496
|
+
bio: string | null;
|
|
1497
|
+
/** @description Services this resource can perform. */
|
|
1498
|
+
service_ids: string[];
|
|
1499
|
+
capacity: number | null;
|
|
1500
|
+
sort_order: number | null;
|
|
1501
|
+
active: boolean;
|
|
1226
1502
|
/** Format: date-time */
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1503
|
+
created_at: string | null;
|
|
1504
|
+
/** Format: date-time */
|
|
1505
|
+
updated_at: string | null;
|
|
1506
|
+
};
|
|
1507
|
+
BookingSlot: {
|
|
1508
|
+
/** Format: date-time */
|
|
1509
|
+
start_ts: string | null;
|
|
1510
|
+
/** Format: date-time */
|
|
1511
|
+
end_ts: string | null;
|
|
1512
|
+
resource_id: string | null;
|
|
1513
|
+
};
|
|
1514
|
+
/** @description One date a service can be booked on. `date` is the workspace's own calendar date, not a timestamp. */
|
|
1515
|
+
BookingScheduleDay: {
|
|
1516
|
+
/** Format: date */
|
|
1517
|
+
date: string | null;
|
|
1518
|
+
/** Format: date-time */
|
|
1519
|
+
opens_ts: string | null;
|
|
1520
|
+
/** Format: date-time */
|
|
1521
|
+
closes_ts: string | null;
|
|
1522
|
+
/**
|
|
1523
|
+
* Format: date-time
|
|
1524
|
+
* @description Last start this service could occupy on the date; `null` when the date is shut outright.
|
|
1525
|
+
*/
|
|
1526
|
+
last_start_ts: string | null;
|
|
1527
|
+
};
|
|
1528
|
+
/** @description The person the booking is made under. Phone is the CRM dedupe key. */
|
|
1529
|
+
BookingContactInput: {
|
|
1530
|
+
phone: string;
|
|
1531
|
+
email?: string;
|
|
1532
|
+
name?: string;
|
|
1533
|
+
};
|
|
1534
|
+
/** @description One line of a party — a single service on a single slot. */
|
|
1535
|
+
CreateBookingItemInput: {
|
|
1536
|
+
service_id: string;
|
|
1537
|
+
/** @description Omit to let the engine pick a free resource. */
|
|
1538
|
+
resource_id?: string;
|
|
1539
|
+
start_ts: components["schemas"]["BookingTimestampInput"];
|
|
1540
|
+
booked_for_name?: string;
|
|
1541
|
+
booked_for_birth_year?: number;
|
|
1542
|
+
};
|
|
1543
|
+
CreateBookingInput: {
|
|
1544
|
+
/** @description A PARTY — one request books a whole family in one all-or-nothing transaction. */
|
|
1545
|
+
items: components["schemas"]["CreateBookingItemInput"][];
|
|
1546
|
+
contact: components["schemas"]["BookingContactInput"];
|
|
1547
|
+
notes?: string;
|
|
1548
|
+
/**
|
|
1549
|
+
* @description Where the booking came from. Defaults to `api`. A workspace's OWN website should send `web`, so its bookings can be told apart from integrations. `dashboard` and `walk_in` are staff-only and are rejected with 400 — a bearer token proves which workspace is calling, not that a member typed the booking in.
|
|
1550
|
+
* @enum {string}
|
|
1551
|
+
*/
|
|
1552
|
+
created_via?: "web" | "api";
|
|
1553
|
+
};
|
|
1554
|
+
CreatedBooking: {
|
|
1555
|
+
id: string;
|
|
1556
|
+
/** @description Show-once secret for the customer's manage link. Only its hash is stored, and an idempotent replay omits this field entirely. */
|
|
1557
|
+
manage_token?: string;
|
|
1558
|
+
};
|
|
1559
|
+
BookingCreateResult: {
|
|
1560
|
+
/** @description One entry per created booking, in request order. */
|
|
1561
|
+
bookings: components["schemas"]["CreatedBooking"][];
|
|
1562
|
+
contact_id: string;
|
|
1563
|
+
};
|
|
1564
|
+
BookingActionResult: {
|
|
1565
|
+
/** @constant */
|
|
1566
|
+
success: true;
|
|
1567
|
+
};
|
|
1568
|
+
BookingRescheduleResult: {
|
|
1569
|
+
/** @constant */
|
|
1570
|
+
success: true;
|
|
1571
|
+
/** @description The NEW booking's id — a reschedule cancels the old row and inserts a new one. */
|
|
1572
|
+
booking_id: string;
|
|
1573
|
+
/** @description Freshly minted manage token for the new booking; omitted on an idempotent replay. */
|
|
1574
|
+
manage_token?: string;
|
|
1575
|
+
};
|
|
1576
|
+
/** @description What the holder of a manage token may see and do. `can_cancel` and `can_reschedule` already apply the workspace's policy windows. */
|
|
1577
|
+
ManageSummary: {
|
|
1578
|
+
booking_id: string;
|
|
1579
|
+
contact_id: string | null;
|
|
1580
|
+
status: components["schemas"]["BookingStatus"] | null;
|
|
1581
|
+
cancelled_by: components["schemas"]["BookingCancelledBy"] | null;
|
|
1582
|
+
cancel_reason: string | null;
|
|
1583
|
+
rescheduled_from_id: string | null;
|
|
1584
|
+
/** Format: date-time */
|
|
1585
|
+
start_ts: string | null;
|
|
1586
|
+
/** Format: date-time */
|
|
1587
|
+
end_ts: string | null;
|
|
1588
|
+
service_id: string | null;
|
|
1589
|
+
service_name: string | null;
|
|
1590
|
+
resource_id: string | null;
|
|
1591
|
+
resource_name: string | null;
|
|
1592
|
+
booked_for_name: string | null;
|
|
1593
|
+
party_sequence_id: string | null;
|
|
1594
|
+
/** @description Price in integer øre. */
|
|
1595
|
+
amount_ore: number | null;
|
|
1596
|
+
payment_status: components["schemas"]["BookingPaymentStatus"] | null;
|
|
1597
|
+
/** @description IANA zone the booking's local times should be rendered in. */
|
|
1598
|
+
time_zone: string | null;
|
|
1599
|
+
cancel_window_hours: number | null;
|
|
1600
|
+
reschedule_window_hours: number | null;
|
|
1601
|
+
can_cancel: boolean;
|
|
1602
|
+
can_reschedule: boolean;
|
|
1603
|
+
};
|
|
1604
|
+
/** @description At least one of `notes` or `internal_notes` is required — the API rejects a body carrying neither with a 400. `""` is a meaningful value that clears the field, so the constraint is on presence. */
|
|
1605
|
+
UpdateBookingInput: {
|
|
1606
|
+
/** @description Customer-visible note. */
|
|
1607
|
+
notes: string;
|
|
1608
|
+
/** @description Staff-only note. */
|
|
1609
|
+
internal_notes?: string;
|
|
1610
|
+
} | {
|
|
1611
|
+
/** @description Customer-visible note. */
|
|
1612
|
+
notes?: string;
|
|
1613
|
+
/** @description Staff-only note. */
|
|
1614
|
+
internal_notes: string;
|
|
1615
|
+
};
|
|
1616
|
+
CancelBookingInput: {
|
|
1617
|
+
reason?: string;
|
|
1618
|
+
};
|
|
1619
|
+
RescheduleBookingInput: {
|
|
1620
|
+
new_start_ts: components["schemas"]["BookingTimestampInput"];
|
|
1621
|
+
new_resource_id?: string;
|
|
1622
|
+
};
|
|
1623
|
+
/** @description Pagination for a bookings page. `truncated` is the extra statement: the underlying read is capped, and when the cap binds there are matching bookings no cursor from this call reaches — narrow the window. */
|
|
1624
|
+
BookingsPagination: {
|
|
1625
|
+
has_more: boolean;
|
|
1626
|
+
next_cursor: string | null;
|
|
1627
|
+
truncated: boolean;
|
|
1628
|
+
};
|
|
1629
|
+
GdprExport: {
|
|
1630
|
+
id: string;
|
|
1631
|
+
request_type: string;
|
|
1632
|
+
status: string;
|
|
1633
|
+
/** Format: date-time */
|
|
1634
|
+
submitted_at: string | null;
|
|
1635
|
+
/** Format: date-time */
|
|
1636
|
+
completed_at: string | null;
|
|
1637
|
+
/** Format: date-time */
|
|
1638
|
+
due_date?: string | null;
|
|
1639
|
+
/** Format: uri */
|
|
1640
|
+
download_url?: string | null;
|
|
1641
|
+
/** Format: date-time */
|
|
1642
|
+
expires_at?: string | null;
|
|
1643
|
+
};
|
|
1644
|
+
GdprExportRequest: {
|
|
1645
|
+
request_id: string;
|
|
1646
|
+
status: string;
|
|
1647
|
+
};
|
|
1648
|
+
/** @enum {string} */
|
|
1649
|
+
ConsentType: "marketing_email" | "analytics_tracking" | "third_party_sharing";
|
|
1650
|
+
RecordConsentInput: {
|
|
1651
|
+
/** Format: email */
|
|
1652
|
+
email: string;
|
|
1653
|
+
consent_type: components["schemas"]["ConsentType"];
|
|
1654
|
+
granted: boolean;
|
|
1655
|
+
source?: string;
|
|
1656
|
+
ip_address?: string;
|
|
1657
|
+
consent_text?: string;
|
|
1658
|
+
version?: string;
|
|
1659
|
+
};
|
|
1660
|
+
ConsentRecord: {
|
|
1661
|
+
id: string;
|
|
1662
|
+
/** Format: email */
|
|
1663
|
+
email: string;
|
|
1664
|
+
consent_type: components["schemas"]["ConsentType"];
|
|
1665
|
+
granted: boolean;
|
|
1666
|
+
/** Format: date-time */
|
|
1667
|
+
granted_at: string | null;
|
|
1668
|
+
/** Format: date-time */
|
|
1669
|
+
revoked_at: string | null;
|
|
1670
|
+
source?: string;
|
|
1671
|
+
version?: string;
|
|
1672
|
+
};
|
|
1673
|
+
ConsentResult: {
|
|
1674
|
+
id: string;
|
|
1675
|
+
};
|
|
1676
|
+
CookieConsentInput: {
|
|
1677
|
+
domain: string;
|
|
1678
|
+
consentStatus: string;
|
|
1679
|
+
/** Format: date-time */
|
|
1680
|
+
consentTimestamp: string;
|
|
1681
|
+
ipAddress?: string;
|
|
1682
|
+
userAgent?: string;
|
|
1683
|
+
cookiePreferences: {
|
|
1684
|
+
[key: string]: components["schemas"]["CookieCategoryConsent"];
|
|
1685
|
+
};
|
|
1233
1686
|
};
|
|
1234
1687
|
CookieCategoryConsent: {
|
|
1235
1688
|
allowed: boolean;
|
|
@@ -1503,6 +1956,15 @@ interface components {
|
|
|
1503
1956
|
ApiResponse_DealCreateResult: components["schemas"]["Envelope_DealCreateResult"];
|
|
1504
1957
|
ApiResponse_DealUpdateResult: components["schemas"]["Envelope_DealUpdateResult"];
|
|
1505
1958
|
ApiResponse_DealRemoveResult: components["schemas"]["Envelope_DealRemoveResult"];
|
|
1959
|
+
ApiResponse_Booking: components["schemas"]["Envelope_Booking"];
|
|
1960
|
+
ApiResponse_BookingServiceArray: components["schemas"]["Envelope_BookingServiceArray"];
|
|
1961
|
+
ApiResponse_BookingResourceArray: components["schemas"]["Envelope_BookingResourceArray"];
|
|
1962
|
+
ApiResponse_BookingSlotArray: components["schemas"]["Envelope_BookingSlotArray"];
|
|
1963
|
+
ApiResponse_BookingScheduleDayArray: components["schemas"]["Envelope_BookingScheduleDayArray"];
|
|
1964
|
+
ApiResponse_BookingCreateResult: components["schemas"]["Envelope_BookingCreateResult"];
|
|
1965
|
+
ApiResponse_BookingActionResult: components["schemas"]["Envelope_BookingActionResult"];
|
|
1966
|
+
ApiResponse_BookingRescheduleResult: components["schemas"]["Envelope_BookingRescheduleResult"];
|
|
1967
|
+
ApiResponse_ManageSummary: components["schemas"]["Envelope_ManageSummary"];
|
|
1506
1968
|
ApiResponse_GdprExportRequest: components["schemas"]["Envelope_GdprExportRequest"];
|
|
1507
1969
|
ApiResponse_GdprExportArray: components["schemas"]["Envelope_GdprExportArray"];
|
|
1508
1970
|
ApiResponse_GdprExport: components["schemas"]["Envelope_GdprExport"];
|
|
@@ -1541,6 +2003,10 @@ interface components {
|
|
|
1541
2003
|
data: components["schemas"]["Deal"][];
|
|
1542
2004
|
pagination: components["schemas"]["Pagination"];
|
|
1543
2005
|
};
|
|
2006
|
+
PaginatedResponse_Booking: {
|
|
2007
|
+
data: components["schemas"]["Booking"][];
|
|
2008
|
+
pagination: components["schemas"]["BookingsPagination"];
|
|
2009
|
+
};
|
|
1544
2010
|
PaginatedResponse_HelpdeskConversation: {
|
|
1545
2011
|
data: components["schemas"]["HelpdeskConversation"][];
|
|
1546
2012
|
pagination: components["schemas"]["Pagination"];
|
|
@@ -1620,6 +2086,33 @@ interface components {
|
|
|
1620
2086
|
Envelope_DealRemoveResult: {
|
|
1621
2087
|
data: components["schemas"]["DealRemoveResult"];
|
|
1622
2088
|
};
|
|
2089
|
+
Envelope_Booking: {
|
|
2090
|
+
data: components["schemas"]["Booking"];
|
|
2091
|
+
};
|
|
2092
|
+
Envelope_BookingServiceArray: {
|
|
2093
|
+
data: components["schemas"]["BookingService"][];
|
|
2094
|
+
};
|
|
2095
|
+
Envelope_BookingResourceArray: {
|
|
2096
|
+
data: components["schemas"]["BookingResource"][];
|
|
2097
|
+
};
|
|
2098
|
+
Envelope_BookingSlotArray: {
|
|
2099
|
+
data: components["schemas"]["BookingSlot"][];
|
|
2100
|
+
};
|
|
2101
|
+
Envelope_BookingScheduleDayArray: {
|
|
2102
|
+
data: components["schemas"]["BookingScheduleDay"][];
|
|
2103
|
+
};
|
|
2104
|
+
Envelope_BookingCreateResult: {
|
|
2105
|
+
data: components["schemas"]["BookingCreateResult"];
|
|
2106
|
+
};
|
|
2107
|
+
Envelope_BookingActionResult: {
|
|
2108
|
+
data: components["schemas"]["BookingActionResult"];
|
|
2109
|
+
};
|
|
2110
|
+
Envelope_BookingRescheduleResult: {
|
|
2111
|
+
data: components["schemas"]["BookingRescheduleResult"];
|
|
2112
|
+
};
|
|
2113
|
+
Envelope_ManageSummary: {
|
|
2114
|
+
data: components["schemas"]["ManageSummary"];
|
|
2115
|
+
};
|
|
1623
2116
|
/** @description Provide exactly one of `url`, `orgnr`, or `name`. */
|
|
1624
2117
|
ScanCreateInput: {
|
|
1625
2118
|
url?: string;
|
|
@@ -1799,6 +2292,8 @@ interface components {
|
|
|
1799
2292
|
parameters: {
|
|
1800
2293
|
Id: string;
|
|
1801
2294
|
Slug: string;
|
|
2295
|
+
/** @description The show-once manage token handed out when the booking was created. Possession of it authorizes the customer's own cancel or reschedule. */
|
|
2296
|
+
ManageToken: string;
|
|
1802
2297
|
Cursor: string;
|
|
1803
2298
|
Limit: number;
|
|
1804
2299
|
};
|
|
@@ -2454,6 +2949,371 @@ interface operations {
|
|
|
2454
2949
|
default: components["responses"]["ApiError"];
|
|
2455
2950
|
};
|
|
2456
2951
|
};
|
|
2952
|
+
listBookings: {
|
|
2953
|
+
parameters: {
|
|
2954
|
+
query?: {
|
|
2955
|
+
limit?: components["parameters"]["Limit"];
|
|
2956
|
+
cursor?: components["parameters"]["Cursor"];
|
|
2957
|
+
/** @description Only bookings starting at or after this instant. */
|
|
2958
|
+
from_ts?: components["schemas"]["BookingTimestampInput"];
|
|
2959
|
+
/** @description Only bookings starting before this instant. */
|
|
2960
|
+
to_ts?: components["schemas"]["BookingTimestampInput"];
|
|
2961
|
+
status?: components["schemas"]["BookingStatus"];
|
|
2962
|
+
resource_id?: string;
|
|
2963
|
+
};
|
|
2964
|
+
header?: never;
|
|
2965
|
+
path?: never;
|
|
2966
|
+
cookie?: never;
|
|
2967
|
+
};
|
|
2968
|
+
requestBody?: never;
|
|
2969
|
+
responses: {
|
|
2970
|
+
/** @description Bookings page. */
|
|
2971
|
+
200: {
|
|
2972
|
+
headers: {
|
|
2973
|
+
[name: string]: unknown;
|
|
2974
|
+
};
|
|
2975
|
+
content: {
|
|
2976
|
+
"application/json": components["schemas"]["PaginatedResponse_Booking"];
|
|
2977
|
+
};
|
|
2978
|
+
};
|
|
2979
|
+
default: components["responses"]["ApiError"];
|
|
2980
|
+
};
|
|
2981
|
+
};
|
|
2982
|
+
createBooking: {
|
|
2983
|
+
parameters: {
|
|
2984
|
+
query?: never;
|
|
2985
|
+
header?: never;
|
|
2986
|
+
path?: never;
|
|
2987
|
+
cookie?: never;
|
|
2988
|
+
};
|
|
2989
|
+
requestBody: {
|
|
2990
|
+
content: {
|
|
2991
|
+
"application/json": components["schemas"]["CreateBookingInput"];
|
|
2992
|
+
};
|
|
2993
|
+
};
|
|
2994
|
+
responses: {
|
|
2995
|
+
/** @description Created bookings, in request order. */
|
|
2996
|
+
201: {
|
|
2997
|
+
headers: {
|
|
2998
|
+
[name: string]: unknown;
|
|
2999
|
+
};
|
|
3000
|
+
content: {
|
|
3001
|
+
"application/json": components["schemas"]["ApiResponse_BookingCreateResult"];
|
|
3002
|
+
};
|
|
3003
|
+
};
|
|
3004
|
+
default: components["responses"]["ApiError"];
|
|
3005
|
+
};
|
|
3006
|
+
};
|
|
3007
|
+
listBookingServices: {
|
|
3008
|
+
parameters: {
|
|
3009
|
+
query?: {
|
|
3010
|
+
/** @description Include services with `active: false`. Defaults to active-only. */
|
|
3011
|
+
include_inactive?: boolean;
|
|
3012
|
+
};
|
|
3013
|
+
header?: never;
|
|
3014
|
+
path?: never;
|
|
3015
|
+
cookie?: never;
|
|
3016
|
+
};
|
|
3017
|
+
requestBody?: never;
|
|
3018
|
+
responses: {
|
|
3019
|
+
/** @description Bookable service catalogue. */
|
|
3020
|
+
200: {
|
|
3021
|
+
headers: {
|
|
3022
|
+
[name: string]: unknown;
|
|
3023
|
+
};
|
|
3024
|
+
content: {
|
|
3025
|
+
"application/json": components["schemas"]["ApiResponse_BookingServiceArray"];
|
|
3026
|
+
};
|
|
3027
|
+
};
|
|
3028
|
+
default: components["responses"]["ApiError"];
|
|
3029
|
+
};
|
|
3030
|
+
};
|
|
3031
|
+
listBookingResources: {
|
|
3032
|
+
parameters: {
|
|
3033
|
+
query?: never;
|
|
3034
|
+
header?: never;
|
|
3035
|
+
path?: never;
|
|
3036
|
+
cookie?: never;
|
|
3037
|
+
};
|
|
3038
|
+
requestBody?: never;
|
|
3039
|
+
responses: {
|
|
3040
|
+
/** @description Bookable resources — staff, rooms, and equipment. */
|
|
3041
|
+
200: {
|
|
3042
|
+
headers: {
|
|
3043
|
+
[name: string]: unknown;
|
|
3044
|
+
};
|
|
3045
|
+
content: {
|
|
3046
|
+
"application/json": components["schemas"]["ApiResponse_BookingResourceArray"];
|
|
3047
|
+
};
|
|
3048
|
+
};
|
|
3049
|
+
default: components["responses"]["ApiError"];
|
|
3050
|
+
};
|
|
3051
|
+
};
|
|
3052
|
+
listBookingAvailability: {
|
|
3053
|
+
parameters: {
|
|
3054
|
+
query: {
|
|
3055
|
+
service_id: string;
|
|
3056
|
+
/** @description Start of the window. */
|
|
3057
|
+
from_ts: components["schemas"]["BookingTimestampInput"];
|
|
3058
|
+
/** @description End of the window; must be after `from_ts`. */
|
|
3059
|
+
to_ts: components["schemas"]["BookingTimestampInput"];
|
|
3060
|
+
/** @description Restrict slots to one resource. */
|
|
3061
|
+
resource_id?: string;
|
|
3062
|
+
};
|
|
3063
|
+
header?: never;
|
|
3064
|
+
path?: never;
|
|
3065
|
+
cookie?: never;
|
|
3066
|
+
};
|
|
3067
|
+
requestBody?: never;
|
|
3068
|
+
responses: {
|
|
3069
|
+
/** @description Free slots. */
|
|
3070
|
+
200: {
|
|
3071
|
+
headers: {
|
|
3072
|
+
[name: string]: unknown;
|
|
3073
|
+
};
|
|
3074
|
+
content: {
|
|
3075
|
+
"application/json": components["schemas"]["ApiResponse_BookingSlotArray"];
|
|
3076
|
+
};
|
|
3077
|
+
};
|
|
3078
|
+
default: components["responses"]["ApiError"];
|
|
3079
|
+
};
|
|
3080
|
+
};
|
|
3081
|
+
listBookingSchedule: {
|
|
3082
|
+
parameters: {
|
|
3083
|
+
query: {
|
|
3084
|
+
service_id: string;
|
|
3085
|
+
/** @description Start of the window. */
|
|
3086
|
+
from_ts: components["schemas"]["BookingTimestampInput"];
|
|
3087
|
+
/** @description End of the window; must be after `from_ts`. */
|
|
3088
|
+
to_ts: components["schemas"]["BookingTimestampInput"];
|
|
3089
|
+
/** @description Restrict to one resource's hours. */
|
|
3090
|
+
resource_id?: string;
|
|
3091
|
+
};
|
|
3092
|
+
header?: never;
|
|
3093
|
+
path?: never;
|
|
3094
|
+
cookie?: never;
|
|
3095
|
+
};
|
|
3096
|
+
requestBody?: never;
|
|
3097
|
+
responses: {
|
|
3098
|
+
/** @description Open dates. */
|
|
3099
|
+
200: {
|
|
3100
|
+
headers: {
|
|
3101
|
+
[name: string]: unknown;
|
|
3102
|
+
};
|
|
3103
|
+
content: {
|
|
3104
|
+
"application/json": components["schemas"]["ApiResponse_BookingScheduleDayArray"];
|
|
3105
|
+
};
|
|
3106
|
+
};
|
|
3107
|
+
default: components["responses"]["ApiError"];
|
|
3108
|
+
};
|
|
3109
|
+
};
|
|
3110
|
+
getBooking: {
|
|
3111
|
+
parameters: {
|
|
3112
|
+
query?: never;
|
|
3113
|
+
header?: never;
|
|
3114
|
+
path: {
|
|
3115
|
+
id: components["parameters"]["Id"];
|
|
3116
|
+
};
|
|
3117
|
+
cookie?: never;
|
|
3118
|
+
};
|
|
3119
|
+
requestBody?: never;
|
|
3120
|
+
responses: {
|
|
3121
|
+
/** @description Booking. */
|
|
3122
|
+
200: {
|
|
3123
|
+
headers: {
|
|
3124
|
+
[name: string]: unknown;
|
|
3125
|
+
};
|
|
3126
|
+
content: {
|
|
3127
|
+
"application/json": components["schemas"]["ApiResponse_Booking"];
|
|
3128
|
+
};
|
|
3129
|
+
};
|
|
3130
|
+
default: components["responses"]["ApiError"];
|
|
3131
|
+
};
|
|
3132
|
+
};
|
|
3133
|
+
updateBooking: {
|
|
3134
|
+
parameters: {
|
|
3135
|
+
query?: never;
|
|
3136
|
+
header?: never;
|
|
3137
|
+
path: {
|
|
3138
|
+
id: components["parameters"]["Id"];
|
|
3139
|
+
};
|
|
3140
|
+
cookie?: never;
|
|
3141
|
+
};
|
|
3142
|
+
requestBody: {
|
|
3143
|
+
content: {
|
|
3144
|
+
"application/json": components["schemas"]["UpdateBookingInput"];
|
|
3145
|
+
};
|
|
3146
|
+
};
|
|
3147
|
+
responses: {
|
|
3148
|
+
/** @description The updated booking. */
|
|
3149
|
+
200: {
|
|
3150
|
+
headers: {
|
|
3151
|
+
[name: string]: unknown;
|
|
3152
|
+
};
|
|
3153
|
+
content: {
|
|
3154
|
+
"application/json": components["schemas"]["ApiResponse_Booking"];
|
|
3155
|
+
};
|
|
3156
|
+
};
|
|
3157
|
+
default: components["responses"]["ApiError"];
|
|
3158
|
+
};
|
|
3159
|
+
};
|
|
3160
|
+
cancelBooking: {
|
|
3161
|
+
parameters: {
|
|
3162
|
+
query?: never;
|
|
3163
|
+
header?: never;
|
|
3164
|
+
path: {
|
|
3165
|
+
id: components["parameters"]["Id"];
|
|
3166
|
+
};
|
|
3167
|
+
cookie?: never;
|
|
3168
|
+
};
|
|
3169
|
+
requestBody: {
|
|
3170
|
+
content: {
|
|
3171
|
+
"application/json": components["schemas"]["CancelBookingInput"];
|
|
3172
|
+
};
|
|
3173
|
+
};
|
|
3174
|
+
responses: {
|
|
3175
|
+
/** @description Cancel result. */
|
|
3176
|
+
200: {
|
|
3177
|
+
headers: {
|
|
3178
|
+
[name: string]: unknown;
|
|
3179
|
+
};
|
|
3180
|
+
content: {
|
|
3181
|
+
"application/json": components["schemas"]["ApiResponse_BookingActionResult"];
|
|
3182
|
+
};
|
|
3183
|
+
};
|
|
3184
|
+
default: components["responses"]["ApiError"];
|
|
3185
|
+
};
|
|
3186
|
+
};
|
|
3187
|
+
rescheduleBooking: {
|
|
3188
|
+
parameters: {
|
|
3189
|
+
query?: never;
|
|
3190
|
+
header?: never;
|
|
3191
|
+
path: {
|
|
3192
|
+
id: components["parameters"]["Id"];
|
|
3193
|
+
};
|
|
3194
|
+
cookie?: never;
|
|
3195
|
+
};
|
|
3196
|
+
requestBody: {
|
|
3197
|
+
content: {
|
|
3198
|
+
"application/json": components["schemas"]["RescheduleBookingInput"];
|
|
3199
|
+
};
|
|
3200
|
+
};
|
|
3201
|
+
responses: {
|
|
3202
|
+
/** @description Reschedule result. */
|
|
3203
|
+
200: {
|
|
3204
|
+
headers: {
|
|
3205
|
+
[name: string]: unknown;
|
|
3206
|
+
};
|
|
3207
|
+
content: {
|
|
3208
|
+
"application/json": components["schemas"]["ApiResponse_BookingRescheduleResult"];
|
|
3209
|
+
};
|
|
3210
|
+
};
|
|
3211
|
+
default: components["responses"]["ApiError"];
|
|
3212
|
+
};
|
|
3213
|
+
};
|
|
3214
|
+
markBookingNoShow: {
|
|
3215
|
+
parameters: {
|
|
3216
|
+
query?: never;
|
|
3217
|
+
header?: never;
|
|
3218
|
+
path: {
|
|
3219
|
+
id: components["parameters"]["Id"];
|
|
3220
|
+
};
|
|
3221
|
+
cookie?: never;
|
|
3222
|
+
};
|
|
3223
|
+
requestBody?: never;
|
|
3224
|
+
responses: {
|
|
3225
|
+
/** @description No-show result. */
|
|
3226
|
+
200: {
|
|
3227
|
+
headers: {
|
|
3228
|
+
[name: string]: unknown;
|
|
3229
|
+
};
|
|
3230
|
+
content: {
|
|
3231
|
+
"application/json": components["schemas"]["ApiResponse_BookingActionResult"];
|
|
3232
|
+
};
|
|
3233
|
+
};
|
|
3234
|
+
default: components["responses"]["ApiError"];
|
|
3235
|
+
};
|
|
3236
|
+
};
|
|
3237
|
+
getManagedBooking: {
|
|
3238
|
+
parameters: {
|
|
3239
|
+
query?: never;
|
|
3240
|
+
header?: never;
|
|
3241
|
+
path: {
|
|
3242
|
+
/** @description The show-once manage token handed out when the booking was created. Possession of it authorizes the customer's own cancel or reschedule. */
|
|
3243
|
+
token: components["parameters"]["ManageToken"];
|
|
3244
|
+
};
|
|
3245
|
+
cookie?: never;
|
|
3246
|
+
};
|
|
3247
|
+
requestBody?: never;
|
|
3248
|
+
responses: {
|
|
3249
|
+
/** @description Manage summary. An unknown token and a token belonging to another workspace both answer 404, so this is not an existence oracle. */
|
|
3250
|
+
200: {
|
|
3251
|
+
headers: {
|
|
3252
|
+
[name: string]: unknown;
|
|
3253
|
+
};
|
|
3254
|
+
content: {
|
|
3255
|
+
"application/json": components["schemas"]["ApiResponse_ManageSummary"];
|
|
3256
|
+
};
|
|
3257
|
+
};
|
|
3258
|
+
default: components["responses"]["ApiError"];
|
|
3259
|
+
};
|
|
3260
|
+
};
|
|
3261
|
+
cancelManagedBooking: {
|
|
3262
|
+
parameters: {
|
|
3263
|
+
query?: never;
|
|
3264
|
+
header?: never;
|
|
3265
|
+
path: {
|
|
3266
|
+
/** @description The show-once manage token handed out when the booking was created. Possession of it authorizes the customer's own cancel or reschedule. */
|
|
3267
|
+
token: components["parameters"]["ManageToken"];
|
|
3268
|
+
};
|
|
3269
|
+
cookie?: never;
|
|
3270
|
+
};
|
|
3271
|
+
requestBody: {
|
|
3272
|
+
content: {
|
|
3273
|
+
"application/json": components["schemas"]["CancelBookingInput"];
|
|
3274
|
+
};
|
|
3275
|
+
};
|
|
3276
|
+
responses: {
|
|
3277
|
+
/** @description Cancel result. */
|
|
3278
|
+
200: {
|
|
3279
|
+
headers: {
|
|
3280
|
+
[name: string]: unknown;
|
|
3281
|
+
};
|
|
3282
|
+
content: {
|
|
3283
|
+
"application/json": components["schemas"]["ApiResponse_BookingActionResult"];
|
|
3284
|
+
};
|
|
3285
|
+
};
|
|
3286
|
+
default: components["responses"]["ApiError"];
|
|
3287
|
+
};
|
|
3288
|
+
};
|
|
3289
|
+
rescheduleManagedBooking: {
|
|
3290
|
+
parameters: {
|
|
3291
|
+
query?: never;
|
|
3292
|
+
header?: never;
|
|
3293
|
+
path: {
|
|
3294
|
+
/** @description The show-once manage token handed out when the booking was created. Possession of it authorizes the customer's own cancel or reschedule. */
|
|
3295
|
+
token: components["parameters"]["ManageToken"];
|
|
3296
|
+
};
|
|
3297
|
+
cookie?: never;
|
|
3298
|
+
};
|
|
3299
|
+
requestBody: {
|
|
3300
|
+
content: {
|
|
3301
|
+
"application/json": components["schemas"]["RescheduleBookingInput"];
|
|
3302
|
+
};
|
|
3303
|
+
};
|
|
3304
|
+
responses: {
|
|
3305
|
+
/** @description Reschedule result. */
|
|
3306
|
+
200: {
|
|
3307
|
+
headers: {
|
|
3308
|
+
[name: string]: unknown;
|
|
3309
|
+
};
|
|
3310
|
+
content: {
|
|
3311
|
+
"application/json": components["schemas"]["ApiResponse_BookingRescheduleResult"];
|
|
3312
|
+
};
|
|
3313
|
+
};
|
|
3314
|
+
default: components["responses"]["ApiError"];
|
|
3315
|
+
};
|
|
3316
|
+
};
|
|
2457
3317
|
requestGdprExport: {
|
|
2458
3318
|
parameters: {
|
|
2459
3319
|
query?: never;
|