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