@samva/webhooks 0.21.0 → 0.22.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.
@@ -17,7 +17,11 @@ const WebhookEventJsonSchemas = {
17
17
  }, { type: "null" }] },
18
18
  channel: {
19
19
  type: "string",
20
- enum: ["email"]
20
+ enum: [
21
+ "sms",
22
+ "whatsapp",
23
+ "email"
24
+ ]
21
25
  },
22
26
  status: { anyOf: [{ type: "string" }, { type: "null" }] },
23
27
  metadata: { anyOf: [{ type: "object" }, { type: "null" }] },
@@ -29,14 +33,24 @@ const WebhookEventJsonSchemas = {
29
33
  conversationId: { anyOf: [{ type: "string" }, { type: "null" }] },
30
34
  isBillable: { anyOf: [{ type: "boolean" }, { type: "null" }] },
31
35
  messageType: { anyOf: [{ type: "string" }, { type: "null" }] },
36
+ templateCategory: { anyOf: [{
37
+ type: "string",
38
+ enum: [
39
+ "marketing",
40
+ "utility",
41
+ "authentication"
42
+ ]
43
+ }, { type: "null" }] },
32
44
  subject: { anyOf: [{ type: "string" }, { type: "null" }] },
33
45
  toEmails: { anyOf: [{
34
46
  type: "array",
35
47
  items: { type: "string" }
36
48
  }, { type: "null" }] },
37
49
  providerMessageId: { anyOf: [{ type: "string" }, { type: "null" }] },
50
+ waId: { anyOf: [{ type: "string" }, { type: "null" }] },
38
51
  hasAttachments: { anyOf: [{ type: "boolean" }, { type: "null" }] },
39
52
  isAutoReply: { anyOf: [{ type: "boolean" }, { type: "null" }] },
53
+ segments: { anyOf: [{ type: "number" }, { type: "null" }] },
40
54
  to: { anyOf: [{ type: "string" }, { type: "null" }] },
41
55
  from: { anyOf: [{ type: "string" }, { type: "null" }] },
42
56
  body: { anyOf: [{ type: "string" }, { type: "null" }] },
@@ -45,6 +59,8 @@ const WebhookEventJsonSchemas = {
45
59
  enum: ["inbound", "outbound"]
46
60
  }, { type: "null" }] },
47
61
  errorMessage: { anyOf: [{ type: "string" }, { type: "null" }] },
62
+ parts: { anyOf: [{ type: "number" }, { type: "null" }] },
63
+ carrier: { anyOf: [{ type: "string" }, { type: "null" }] },
48
64
  messageId: { type: "string" },
49
65
  organizationId: { type: "string" }
50
66
  },
@@ -80,7 +96,90 @@ const WebhookEventJsonSchemas = {
80
96
  }, { type: "null" }] },
81
97
  channel: {
82
98
  type: "string",
83
- enum: ["email"]
99
+ enum: [
100
+ "sms",
101
+ "whatsapp",
102
+ "email"
103
+ ]
104
+ },
105
+ status: { anyOf: [{ type: "string" }, { type: "null" }] },
106
+ metadata: { anyOf: [{ type: "object" }, { type: "null" }] },
107
+ cost: { anyOf: [{ type: "number" }, { type: "null" }] },
108
+ recipient: { anyOf: [{ type: "string" }, { type: "null" }] },
109
+ occurredAt: { anyOf: [{ type: "string" }, { type: "null" }] },
110
+ failureReason: { anyOf: [{ type: "string" }, { type: "null" }] },
111
+ errorCode: { anyOf: [{ type: "string" }, { type: "null" }] },
112
+ conversationId: { anyOf: [{ type: "string" }, { type: "null" }] },
113
+ isBillable: { anyOf: [{ type: "boolean" }, { type: "null" }] },
114
+ messageType: { anyOf: [{ type: "string" }, { type: "null" }] },
115
+ templateCategory: { anyOf: [{
116
+ type: "string",
117
+ enum: [
118
+ "marketing",
119
+ "utility",
120
+ "authentication"
121
+ ]
122
+ }, { type: "null" }] },
123
+ subject: { anyOf: [{ type: "string" }, { type: "null" }] },
124
+ toEmails: { anyOf: [{
125
+ type: "array",
126
+ items: { type: "string" }
127
+ }, { type: "null" }] },
128
+ providerMessageId: { anyOf: [{ type: "string" }, { type: "null" }] },
129
+ waId: { anyOf: [{ type: "string" }, { type: "null" }] },
130
+ hasAttachments: { anyOf: [{ type: "boolean" }, { type: "null" }] },
131
+ isAutoReply: { anyOf: [{ type: "boolean" }, { type: "null" }] },
132
+ segments: { anyOf: [{ type: "number" }, { type: "null" }] },
133
+ to: { anyOf: [{ type: "string" }, { type: "null" }] },
134
+ from: { anyOf: [{ type: "string" }, { type: "null" }] },
135
+ body: { anyOf: [{ type: "string" }, { type: "null" }] },
136
+ direction: { anyOf: [{
137
+ type: "string",
138
+ enum: ["inbound", "outbound"]
139
+ }, { type: "null" }] },
140
+ errorMessage: { anyOf: [{ type: "string" }, { type: "null" }] },
141
+ parts: { anyOf: [{ type: "number" }, { type: "null" }] },
142
+ carrier: { anyOf: [{ type: "string" }, { type: "null" }] },
143
+ messageId: { type: "string" },
144
+ organizationId: { type: "string" }
145
+ },
146
+ required: [
147
+ "channel",
148
+ "messageId",
149
+ "organizationId"
150
+ ],
151
+ additionalProperties: true
152
+ }
153
+ },
154
+ required: [
155
+ "type",
156
+ "timestamp",
157
+ "data"
158
+ ],
159
+ additionalProperties: true
160
+ },
161
+ "message.read": {
162
+ type: "object",
163
+ properties: {
164
+ type: {
165
+ type: "string",
166
+ enum: ["message.read"]
167
+ },
168
+ timestamp: { type: "string" },
169
+ data: {
170
+ type: "object",
171
+ properties: {
172
+ mailboxId: { anyOf: [{
173
+ type: "string",
174
+ pattern: "^mbx_[0-9a-hjkmnp-tv-z]{16,24}$"
175
+ }, { type: "null" }] },
176
+ channel: {
177
+ type: "string",
178
+ enum: [
179
+ "sms",
180
+ "whatsapp",
181
+ "email"
182
+ ]
84
183
  },
85
184
  status: { anyOf: [{ type: "string" }, { type: "null" }] },
86
185
  metadata: { anyOf: [{ type: "object" }, { type: "null" }] },
@@ -92,14 +191,24 @@ const WebhookEventJsonSchemas = {
92
191
  conversationId: { anyOf: [{ type: "string" }, { type: "null" }] },
93
192
  isBillable: { anyOf: [{ type: "boolean" }, { type: "null" }] },
94
193
  messageType: { anyOf: [{ type: "string" }, { type: "null" }] },
194
+ templateCategory: { anyOf: [{
195
+ type: "string",
196
+ enum: [
197
+ "marketing",
198
+ "utility",
199
+ "authentication"
200
+ ]
201
+ }, { type: "null" }] },
95
202
  subject: { anyOf: [{ type: "string" }, { type: "null" }] },
96
203
  toEmails: { anyOf: [{
97
204
  type: "array",
98
205
  items: { type: "string" }
99
206
  }, { type: "null" }] },
100
207
  providerMessageId: { anyOf: [{ type: "string" }, { type: "null" }] },
208
+ waId: { anyOf: [{ type: "string" }, { type: "null" }] },
101
209
  hasAttachments: { anyOf: [{ type: "boolean" }, { type: "null" }] },
102
210
  isAutoReply: { anyOf: [{ type: "boolean" }, { type: "null" }] },
211
+ segments: { anyOf: [{ type: "number" }, { type: "null" }] },
103
212
  to: { anyOf: [{ type: "string" }, { type: "null" }] },
104
213
  from: { anyOf: [{ type: "string" }, { type: "null" }] },
105
214
  body: { anyOf: [{ type: "string" }, { type: "null" }] },
@@ -108,6 +217,8 @@ const WebhookEventJsonSchemas = {
108
217
  enum: ["inbound", "outbound"]
109
218
  }, { type: "null" }] },
110
219
  errorMessage: { anyOf: [{ type: "string" }, { type: "null" }] },
220
+ parts: { anyOf: [{ type: "number" }, { type: "null" }] },
221
+ carrier: { anyOf: [{ type: "string" }, { type: "null" }] },
111
222
  messageId: { type: "string" },
112
223
  organizationId: { type: "string" }
113
224
  },
@@ -143,7 +254,11 @@ const WebhookEventJsonSchemas = {
143
254
  }, { type: "null" }] },
144
255
  channel: {
145
256
  type: "string",
146
- enum: ["email"]
257
+ enum: [
258
+ "sms",
259
+ "whatsapp",
260
+ "email"
261
+ ]
147
262
  },
148
263
  status: { anyOf: [{ type: "string" }, { type: "null" }] },
149
264
  metadata: { anyOf: [{ type: "object" }, { type: "null" }] },
@@ -155,14 +270,24 @@ const WebhookEventJsonSchemas = {
155
270
  conversationId: { anyOf: [{ type: "string" }, { type: "null" }] },
156
271
  isBillable: { anyOf: [{ type: "boolean" }, { type: "null" }] },
157
272
  messageType: { anyOf: [{ type: "string" }, { type: "null" }] },
273
+ templateCategory: { anyOf: [{
274
+ type: "string",
275
+ enum: [
276
+ "marketing",
277
+ "utility",
278
+ "authentication"
279
+ ]
280
+ }, { type: "null" }] },
158
281
  subject: { anyOf: [{ type: "string" }, { type: "null" }] },
159
282
  toEmails: { anyOf: [{
160
283
  type: "array",
161
284
  items: { type: "string" }
162
285
  }, { type: "null" }] },
163
286
  providerMessageId: { anyOf: [{ type: "string" }, { type: "null" }] },
287
+ waId: { anyOf: [{ type: "string" }, { type: "null" }] },
164
288
  hasAttachments: { anyOf: [{ type: "boolean" }, { type: "null" }] },
165
289
  isAutoReply: { anyOf: [{ type: "boolean" }, { type: "null" }] },
290
+ segments: { anyOf: [{ type: "number" }, { type: "null" }] },
166
291
  to: { anyOf: [{ type: "string" }, { type: "null" }] },
167
292
  from: { anyOf: [{ type: "string" }, { type: "null" }] },
168
293
  body: { anyOf: [{ type: "string" }, { type: "null" }] },
@@ -171,6 +296,8 @@ const WebhookEventJsonSchemas = {
171
296
  enum: ["inbound", "outbound"]
172
297
  }, { type: "null" }] },
173
298
  errorMessage: { anyOf: [{ type: "string" }, { type: "null" }] },
299
+ parts: { anyOf: [{ type: "number" }, { type: "null" }] },
300
+ carrier: { anyOf: [{ type: "string" }, { type: "null" }] },
174
301
  messageId: { type: "string" },
175
302
  organizationId: { type: "string" }
176
303
  },
@@ -206,7 +333,11 @@ const WebhookEventJsonSchemas = {
206
333
  }, { type: "null" }] },
207
334
  channel: {
208
335
  type: "string",
209
- enum: ["email"]
336
+ enum: [
337
+ "sms",
338
+ "whatsapp",
339
+ "email"
340
+ ]
210
341
  },
211
342
  status: { anyOf: [{ type: "string" }, { type: "null" }] },
212
343
  metadata: { anyOf: [{ type: "object" }, { type: "null" }] },
@@ -218,14 +349,24 @@ const WebhookEventJsonSchemas = {
218
349
  conversationId: { anyOf: [{ type: "string" }, { type: "null" }] },
219
350
  isBillable: { anyOf: [{ type: "boolean" }, { type: "null" }] },
220
351
  messageType: { anyOf: [{ type: "string" }, { type: "null" }] },
352
+ templateCategory: { anyOf: [{
353
+ type: "string",
354
+ enum: [
355
+ "marketing",
356
+ "utility",
357
+ "authentication"
358
+ ]
359
+ }, { type: "null" }] },
221
360
  subject: { anyOf: [{ type: "string" }, { type: "null" }] },
222
361
  toEmails: { anyOf: [{
223
362
  type: "array",
224
363
  items: { type: "string" }
225
364
  }, { type: "null" }] },
226
365
  providerMessageId: { anyOf: [{ type: "string" }, { type: "null" }] },
366
+ waId: { anyOf: [{ type: "string" }, { type: "null" }] },
227
367
  hasAttachments: { anyOf: [{ type: "boolean" }, { type: "null" }] },
228
368
  isAutoReply: { anyOf: [{ type: "boolean" }, { type: "null" }] },
369
+ segments: { anyOf: [{ type: "number" }, { type: "null" }] },
229
370
  to: { anyOf: [{ type: "string" }, { type: "null" }] },
230
371
  from: { anyOf: [{ type: "string" }, { type: "null" }] },
231
372
  body: { anyOf: [{ type: "string" }, { type: "null" }] },
@@ -234,6 +375,8 @@ const WebhookEventJsonSchemas = {
234
375
  enum: ["inbound", "outbound"]
235
376
  }, { type: "null" }] },
236
377
  errorMessage: { anyOf: [{ type: "string" }, { type: "null" }] },
378
+ parts: { anyOf: [{ type: "number" }, { type: "null" }] },
379
+ carrier: { anyOf: [{ type: "string" }, { type: "null" }] },
237
380
  messageId: { type: "string" },
238
381
  organizationId: { type: "string" }
239
382
  },
@@ -271,7 +414,11 @@ const WebhookEventJsonSchemas = {
271
414
  }, { type: "null" }] },
272
415
  channel: {
273
416
  type: "string",
274
- enum: ["email"]
417
+ enum: [
418
+ "sms",
419
+ "whatsapp",
420
+ "email"
421
+ ]
275
422
  },
276
423
  status: { anyOf: [{ type: "string" }, { type: "null" }] },
277
424
  metadata: { anyOf: [{ type: "object" }, { type: "null" }] },
@@ -283,14 +430,24 @@ const WebhookEventJsonSchemas = {
283
430
  conversationId: { anyOf: [{ type: "string" }, { type: "null" }] },
284
431
  isBillable: { anyOf: [{ type: "boolean" }, { type: "null" }] },
285
432
  messageType: { anyOf: [{ type: "string" }, { type: "null" }] },
433
+ templateCategory: { anyOf: [{
434
+ type: "string",
435
+ enum: [
436
+ "marketing",
437
+ "utility",
438
+ "authentication"
439
+ ]
440
+ }, { type: "null" }] },
286
441
  subject: { anyOf: [{ type: "string" }, { type: "null" }] },
287
442
  toEmails: { anyOf: [{
288
443
  type: "array",
289
444
  items: { type: "string" }
290
445
  }, { type: "null" }] },
291
446
  providerMessageId: { anyOf: [{ type: "string" }, { type: "null" }] },
447
+ waId: { anyOf: [{ type: "string" }, { type: "null" }] },
292
448
  hasAttachments: { anyOf: [{ type: "boolean" }, { type: "null" }] },
293
449
  isAutoReply: { anyOf: [{ type: "boolean" }, { type: "null" }] },
450
+ segments: { anyOf: [{ type: "number" }, { type: "null" }] },
294
451
  to: { anyOf: [{ type: "string" }, { type: "null" }] },
295
452
  from: { anyOf: [{ type: "string" }, { type: "null" }] },
296
453
  body: { anyOf: [{ type: "string" }, { type: "null" }] },
@@ -299,6 +456,8 @@ const WebhookEventJsonSchemas = {
299
456
  enum: ["inbound", "outbound"]
300
457
  }, { type: "null" }] },
301
458
  errorMessage: { anyOf: [{ type: "string" }, { type: "null" }] },
459
+ parts: { anyOf: [{ type: "number" }, { type: "null" }] },
460
+ carrier: { anyOf: [{ type: "string" }, { type: "null" }] },
302
461
  messageId: { type: "string" },
303
462
  organizationId: { type: "string" }
304
463
  },
@@ -336,7 +495,11 @@ const WebhookEventJsonSchemas = {
336
495
  }, { type: "null" }] },
337
496
  channel: {
338
497
  type: "string",
339
- enum: ["email"]
498
+ enum: [
499
+ "sms",
500
+ "whatsapp",
501
+ "email"
502
+ ]
340
503
  },
341
504
  status: { anyOf: [{ type: "string" }, { type: "null" }] },
342
505
  metadata: { anyOf: [{ type: "object" }, { type: "null" }] },
@@ -348,14 +511,24 @@ const WebhookEventJsonSchemas = {
348
511
  conversationId: { anyOf: [{ type: "string" }, { type: "null" }] },
349
512
  isBillable: { anyOf: [{ type: "boolean" }, { type: "null" }] },
350
513
  messageType: { anyOf: [{ type: "string" }, { type: "null" }] },
514
+ templateCategory: { anyOf: [{
515
+ type: "string",
516
+ enum: [
517
+ "marketing",
518
+ "utility",
519
+ "authentication"
520
+ ]
521
+ }, { type: "null" }] },
351
522
  subject: { anyOf: [{ type: "string" }, { type: "null" }] },
352
523
  toEmails: { anyOf: [{
353
524
  type: "array",
354
525
  items: { type: "string" }
355
526
  }, { type: "null" }] },
356
527
  providerMessageId: { anyOf: [{ type: "string" }, { type: "null" }] },
528
+ waId: { anyOf: [{ type: "string" }, { type: "null" }] },
357
529
  hasAttachments: { anyOf: [{ type: "boolean" }, { type: "null" }] },
358
530
  isAutoReply: { anyOf: [{ type: "boolean" }, { type: "null" }] },
531
+ segments: { anyOf: [{ type: "number" }, { type: "null" }] },
359
532
  to: { anyOf: [{ type: "string" }, { type: "null" }] },
360
533
  from: { anyOf: [{ type: "string" }, { type: "null" }] },
361
534
  body: { anyOf: [{ type: "string" }, { type: "null" }] },
@@ -364,6 +537,804 @@ const WebhookEventJsonSchemas = {
364
537
  enum: ["inbound", "outbound"]
365
538
  }, { type: "null" }] },
366
539
  errorMessage: { anyOf: [{ type: "string" }, { type: "null" }] },
540
+ parts: { anyOf: [{ type: "number" }, { type: "null" }] },
541
+ carrier: { anyOf: [{ type: "string" }, { type: "null" }] },
542
+ whatsapp: { anyOf: [{
543
+ type: "object",
544
+ properties: {
545
+ text: { anyOf: [{ type: "string" }, { type: "null" }] },
546
+ template: { anyOf: [{
547
+ type: "object",
548
+ properties: {
549
+ name: { type: "string" },
550
+ language: { type: "string" },
551
+ components: {
552
+ type: "array",
553
+ items: {
554
+ type: "object",
555
+ properties: {
556
+ type: {
557
+ type: "string",
558
+ enum: [
559
+ "header",
560
+ "body",
561
+ "footer",
562
+ "button"
563
+ ]
564
+ },
565
+ sub_type: { anyOf: [{
566
+ type: "string",
567
+ enum: [
568
+ "url",
569
+ "quick_reply",
570
+ "copy_code",
571
+ "flow"
572
+ ]
573
+ }, { type: "null" }] },
574
+ index: { anyOf: [{ type: "string" }, { type: "null" }] },
575
+ parameters: {
576
+ type: "array",
577
+ items: {
578
+ type: "object",
579
+ properties: {
580
+ type: {
581
+ type: "string",
582
+ enum: [
583
+ "text",
584
+ "currency",
585
+ "date_time",
586
+ "image",
587
+ "document",
588
+ "video",
589
+ "coupon_code",
590
+ "action"
591
+ ]
592
+ },
593
+ text: { anyOf: [{ type: "string" }, { type: "null" }] },
594
+ currency: { anyOf: [{
595
+ type: "object",
596
+ properties: {
597
+ fallback_value: { type: "string" },
598
+ code: { type: "string" },
599
+ amount_1000: { type: "number" }
600
+ },
601
+ required: [
602
+ "fallback_value",
603
+ "code",
604
+ "amount_1000"
605
+ ],
606
+ additionalProperties: true
607
+ }, { type: "null" }] },
608
+ date_time: { anyOf: [{
609
+ type: "object",
610
+ properties: { fallback_value: { type: "string" } },
611
+ required: ["fallback_value"],
612
+ additionalProperties: true
613
+ }, { type: "null" }] },
614
+ image: { anyOf: [{
615
+ type: "object",
616
+ properties: { link: { type: "string" } },
617
+ required: ["link"],
618
+ additionalProperties: true
619
+ }, { type: "null" }] },
620
+ document: { anyOf: [{
621
+ type: "object",
622
+ properties: {
623
+ link: { type: "string" },
624
+ filename: { anyOf: [{ type: "string" }, { type: "null" }] }
625
+ },
626
+ required: ["link"],
627
+ additionalProperties: true
628
+ }, { type: "null" }] },
629
+ video: { anyOf: [{
630
+ type: "object",
631
+ properties: { link: { type: "string" } },
632
+ required: ["link"],
633
+ additionalProperties: true
634
+ }, { type: "null" }] },
635
+ coupon_code: { anyOf: [{ type: "string" }, { type: "null" }] },
636
+ action: { anyOf: [{
637
+ type: "object",
638
+ properties: { flow_token: { type: "string" } },
639
+ required: ["flow_token"],
640
+ additionalProperties: true
641
+ }, { type: "null" }] }
642
+ },
643
+ required: ["type"],
644
+ additionalProperties: true
645
+ }
646
+ }
647
+ },
648
+ required: ["type", "parameters"],
649
+ additionalProperties: true
650
+ }
651
+ }
652
+ },
653
+ required: [
654
+ "name",
655
+ "language",
656
+ "components"
657
+ ],
658
+ additionalProperties: true
659
+ }, { type: "null" }] },
660
+ interactive: { anyOf: [
661
+ {
662
+ type: "object",
663
+ properties: {
664
+ type: {
665
+ type: "string",
666
+ enum: ["buttons"]
667
+ },
668
+ header: { anyOf: [
669
+ {
670
+ type: "object",
671
+ properties: {
672
+ type: {
673
+ type: "string",
674
+ enum: ["text"]
675
+ },
676
+ text: {
677
+ type: "string",
678
+ minLength: 1,
679
+ maxLength: 60
680
+ }
681
+ },
682
+ required: ["type", "text"],
683
+ additionalProperties: true
684
+ },
685
+ { anyOf: [{
686
+ type: "object",
687
+ properties: {
688
+ type: {
689
+ type: "string",
690
+ enum: ["image"]
691
+ },
692
+ url: { type: "string" }
693
+ },
694
+ required: ["type", "url"],
695
+ additionalProperties: true
696
+ }, {
697
+ type: "object",
698
+ properties: {
699
+ type: {
700
+ type: "string",
701
+ enum: ["image"]
702
+ },
703
+ mediaId: {
704
+ type: "string",
705
+ pattern: "^media_[0-9a-hjkmnp-tv-z]{16,24}$"
706
+ }
707
+ },
708
+ required: ["type", "mediaId"],
709
+ additionalProperties: true
710
+ }] },
711
+ { anyOf: [{
712
+ type: "object",
713
+ properties: {
714
+ type: {
715
+ type: "string",
716
+ enum: ["video"]
717
+ },
718
+ url: { type: "string" }
719
+ },
720
+ required: ["type", "url"],
721
+ additionalProperties: true
722
+ }, {
723
+ type: "object",
724
+ properties: {
725
+ type: {
726
+ type: "string",
727
+ enum: ["video"]
728
+ },
729
+ mediaId: {
730
+ type: "string",
731
+ pattern: "^media_[0-9a-hjkmnp-tv-z]{16,24}$"
732
+ }
733
+ },
734
+ required: ["type", "mediaId"],
735
+ additionalProperties: true
736
+ }] },
737
+ { anyOf: [{
738
+ type: "object",
739
+ properties: {
740
+ type: {
741
+ type: "string",
742
+ enum: ["document"]
743
+ },
744
+ filename: {
745
+ type: "string",
746
+ minLength: 1,
747
+ maxLength: 255
748
+ },
749
+ url: { type: "string" }
750
+ },
751
+ required: ["type", "url"],
752
+ additionalProperties: true
753
+ }, {
754
+ type: "object",
755
+ properties: {
756
+ type: {
757
+ type: "string",
758
+ enum: ["document"]
759
+ },
760
+ filename: {
761
+ type: "string",
762
+ minLength: 1,
763
+ maxLength: 255
764
+ },
765
+ mediaId: {
766
+ type: "string",
767
+ pattern: "^media_[0-9a-hjkmnp-tv-z]{16,24}$"
768
+ }
769
+ },
770
+ required: ["type", "mediaId"],
771
+ additionalProperties: true
772
+ }] }
773
+ ] },
774
+ body: {
775
+ type: "string",
776
+ minLength: 1,
777
+ maxLength: 1024
778
+ },
779
+ footer: {
780
+ type: "string",
781
+ minLength: 1,
782
+ maxLength: 60
783
+ },
784
+ buttons: {
785
+ type: "array",
786
+ items: {
787
+ type: "object",
788
+ properties: {
789
+ id: {
790
+ type: "string",
791
+ minLength: 1,
792
+ maxLength: 256
793
+ },
794
+ title: {
795
+ type: "string",
796
+ minLength: 1,
797
+ maxLength: 20
798
+ }
799
+ },
800
+ required: ["id", "title"],
801
+ additionalProperties: true
802
+ },
803
+ minItems: 1,
804
+ maxItems: 3
805
+ }
806
+ },
807
+ required: [
808
+ "type",
809
+ "body",
810
+ "buttons"
811
+ ],
812
+ additionalProperties: true
813
+ },
814
+ {
815
+ type: "object",
816
+ properties: {
817
+ type: {
818
+ type: "string",
819
+ enum: ["list"]
820
+ },
821
+ header: {
822
+ type: "object",
823
+ properties: {
824
+ type: {
825
+ type: "string",
826
+ enum: ["text"]
827
+ },
828
+ text: {
829
+ type: "string",
830
+ minLength: 1,
831
+ maxLength: 60
832
+ }
833
+ },
834
+ required: ["type", "text"],
835
+ additionalProperties: true
836
+ },
837
+ body: {
838
+ type: "string",
839
+ minLength: 1,
840
+ maxLength: 4096
841
+ },
842
+ footer: {
843
+ type: "string",
844
+ minLength: 1,
845
+ maxLength: 60
846
+ },
847
+ button: {
848
+ type: "string",
849
+ minLength: 1,
850
+ maxLength: 20
851
+ },
852
+ sections: {
853
+ type: "array",
854
+ items: {
855
+ type: "object",
856
+ properties: {
857
+ title: {
858
+ type: "string",
859
+ minLength: 1,
860
+ maxLength: 24
861
+ },
862
+ rows: {
863
+ type: "array",
864
+ items: {
865
+ type: "object",
866
+ properties: {
867
+ id: {
868
+ type: "string",
869
+ minLength: 1,
870
+ maxLength: 200
871
+ },
872
+ title: {
873
+ type: "string",
874
+ minLength: 1,
875
+ maxLength: 24
876
+ },
877
+ description: {
878
+ type: "string",
879
+ minLength: 1,
880
+ maxLength: 72
881
+ }
882
+ },
883
+ required: ["id", "title"],
884
+ additionalProperties: true
885
+ },
886
+ minItems: 1
887
+ }
888
+ },
889
+ required: ["rows"],
890
+ additionalProperties: true
891
+ },
892
+ minItems: 1,
893
+ maxItems: 10
894
+ }
895
+ },
896
+ required: [
897
+ "type",
898
+ "body",
899
+ "button",
900
+ "sections"
901
+ ],
902
+ additionalProperties: true
903
+ },
904
+ {
905
+ type: "object",
906
+ properties: {
907
+ type: {
908
+ type: "string",
909
+ enum: ["cta_url"]
910
+ },
911
+ header: { anyOf: [
912
+ {
913
+ type: "object",
914
+ properties: {
915
+ type: {
916
+ type: "string",
917
+ enum: ["text"]
918
+ },
919
+ text: {
920
+ type: "string",
921
+ minLength: 1,
922
+ maxLength: 60
923
+ }
924
+ },
925
+ required: ["type", "text"],
926
+ additionalProperties: true
927
+ },
928
+ { anyOf: [{
929
+ type: "object",
930
+ properties: {
931
+ type: {
932
+ type: "string",
933
+ enum: ["image"]
934
+ },
935
+ url: { type: "string" }
936
+ },
937
+ required: ["type", "url"],
938
+ additionalProperties: true
939
+ }, {
940
+ type: "object",
941
+ properties: {
942
+ type: {
943
+ type: "string",
944
+ enum: ["image"]
945
+ },
946
+ mediaId: {
947
+ type: "string",
948
+ pattern: "^media_[0-9a-hjkmnp-tv-z]{16,24}$"
949
+ }
950
+ },
951
+ required: ["type", "mediaId"],
952
+ additionalProperties: true
953
+ }] },
954
+ { anyOf: [{
955
+ type: "object",
956
+ properties: {
957
+ type: {
958
+ type: "string",
959
+ enum: ["video"]
960
+ },
961
+ url: { type: "string" }
962
+ },
963
+ required: ["type", "url"],
964
+ additionalProperties: true
965
+ }, {
966
+ type: "object",
967
+ properties: {
968
+ type: {
969
+ type: "string",
970
+ enum: ["video"]
971
+ },
972
+ mediaId: {
973
+ type: "string",
974
+ pattern: "^media_[0-9a-hjkmnp-tv-z]{16,24}$"
975
+ }
976
+ },
977
+ required: ["type", "mediaId"],
978
+ additionalProperties: true
979
+ }] },
980
+ { anyOf: [{
981
+ type: "object",
982
+ properties: {
983
+ type: {
984
+ type: "string",
985
+ enum: ["document"]
986
+ },
987
+ filename: {
988
+ type: "string",
989
+ minLength: 1,
990
+ maxLength: 255
991
+ },
992
+ url: { type: "string" }
993
+ },
994
+ required: ["type", "url"],
995
+ additionalProperties: true
996
+ }, {
997
+ type: "object",
998
+ properties: {
999
+ type: {
1000
+ type: "string",
1001
+ enum: ["document"]
1002
+ },
1003
+ filename: {
1004
+ type: "string",
1005
+ minLength: 1,
1006
+ maxLength: 255
1007
+ },
1008
+ mediaId: {
1009
+ type: "string",
1010
+ pattern: "^media_[0-9a-hjkmnp-tv-z]{16,24}$"
1011
+ }
1012
+ },
1013
+ required: ["type", "mediaId"],
1014
+ additionalProperties: true
1015
+ }] }
1016
+ ] },
1017
+ body: {
1018
+ type: "string",
1019
+ minLength: 1,
1020
+ maxLength: 1024
1021
+ },
1022
+ footer: {
1023
+ type: "string",
1024
+ minLength: 1,
1025
+ maxLength: 60
1026
+ },
1027
+ displayText: {
1028
+ type: "string",
1029
+ minLength: 1,
1030
+ maxLength: 20
1031
+ },
1032
+ url: { type: "string" }
1033
+ },
1034
+ required: [
1035
+ "type",
1036
+ "body",
1037
+ "displayText",
1038
+ "url"
1039
+ ],
1040
+ additionalProperties: true
1041
+ },
1042
+ {
1043
+ type: "object",
1044
+ properties: {
1045
+ type: {
1046
+ type: "string",
1047
+ enum: ["flow"]
1048
+ },
1049
+ header: {
1050
+ type: "object",
1051
+ properties: {
1052
+ type: {
1053
+ type: "string",
1054
+ enum: ["text"]
1055
+ },
1056
+ text: {
1057
+ type: "string",
1058
+ minLength: 1,
1059
+ maxLength: 60
1060
+ }
1061
+ },
1062
+ required: ["type", "text"],
1063
+ additionalProperties: true
1064
+ },
1065
+ body: {
1066
+ type: "string",
1067
+ minLength: 1,
1068
+ maxLength: 1024
1069
+ },
1070
+ footer: {
1071
+ type: "string",
1072
+ minLength: 1,
1073
+ maxLength: 60
1074
+ },
1075
+ flowId: {
1076
+ type: "string",
1077
+ pattern: "^waflow_[0-9a-hjkmnp-tv-z]{16,24}$"
1078
+ },
1079
+ cta: {
1080
+ type: "string",
1081
+ minLength: 1,
1082
+ maxLength: 30
1083
+ },
1084
+ token: {
1085
+ type: "string",
1086
+ minLength: 1,
1087
+ maxLength: 1024
1088
+ },
1089
+ action: {
1090
+ type: "string",
1091
+ enum: ["navigate", "data_exchange"]
1092
+ },
1093
+ screen: {
1094
+ type: "string",
1095
+ pattern: "^[A-Za-z_]{1,100}$"
1096
+ },
1097
+ data: { type: "object" },
1098
+ flowVersionId: {
1099
+ type: "string",
1100
+ pattern: "^wafver_[0-9a-hjkmnp-tv-z]{16,24}$"
1101
+ },
1102
+ providerFlowId: { type: "string" }
1103
+ },
1104
+ required: [
1105
+ "type",
1106
+ "body",
1107
+ "flowId",
1108
+ "cta",
1109
+ "flowVersionId",
1110
+ "providerFlowId"
1111
+ ],
1112
+ additionalProperties: true
1113
+ }
1114
+ ] },
1115
+ media: { anyOf: [{ anyOf: [
1116
+ {
1117
+ type: "object",
1118
+ properties: {
1119
+ type: {
1120
+ type: "string",
1121
+ enum: [
1122
+ "image",
1123
+ "video",
1124
+ "audio",
1125
+ "document",
1126
+ "sticker"
1127
+ ]
1128
+ },
1129
+ url: { type: "string" },
1130
+ caption: { type: "string" },
1131
+ filename: { type: "string" }
1132
+ },
1133
+ required: ["type", "url"],
1134
+ additionalProperties: true
1135
+ },
1136
+ {
1137
+ type: "object",
1138
+ properties: {
1139
+ type: {
1140
+ type: "string",
1141
+ enum: [
1142
+ "image",
1143
+ "video",
1144
+ "audio",
1145
+ "document",
1146
+ "sticker"
1147
+ ]
1148
+ },
1149
+ mediaId: {
1150
+ type: "string",
1151
+ pattern: "^media_[0-9a-hjkmnp-tv-z]{16,24}$"
1152
+ },
1153
+ caption: { type: "string" },
1154
+ filename: { type: "string" }
1155
+ },
1156
+ required: ["type", "mediaId"],
1157
+ additionalProperties: true
1158
+ },
1159
+ {
1160
+ type: "object",
1161
+ properties: {
1162
+ type: {
1163
+ type: "string",
1164
+ enum: [
1165
+ "image",
1166
+ "video",
1167
+ "audio",
1168
+ "document",
1169
+ "sticker"
1170
+ ]
1171
+ },
1172
+ providerMediaId: { type: "string" },
1173
+ mimeType: { anyOf: [{ type: "string" }, { type: "null" }] },
1174
+ caption: { anyOf: [{ type: "string" }, { type: "null" }] },
1175
+ filename: { type: "string" }
1176
+ },
1177
+ required: ["type", "providerMediaId"],
1178
+ additionalProperties: true
1179
+ }
1180
+ ] }, { type: "null" }] },
1181
+ reaction: {
1182
+ type: "object",
1183
+ properties: {
1184
+ messageId: { anyOf: [{
1185
+ type: "string",
1186
+ pattern: "^msg_[0-9a-hjkmnp-tv-z]{16,24}$"
1187
+ }, { type: "null" }] },
1188
+ providerMessageId: { type: "string" },
1189
+ emoji: { anyOf: [{ type: "string" }, { type: "null" }] }
1190
+ },
1191
+ required: [
1192
+ "messageId",
1193
+ "providerMessageId",
1194
+ "emoji"
1195
+ ],
1196
+ additionalProperties: true
1197
+ },
1198
+ location: {
1199
+ type: "object",
1200
+ properties: {
1201
+ latitude: { type: "number" },
1202
+ longitude: { type: "number" },
1203
+ name: { type: "string" },
1204
+ address: { type: "string" },
1205
+ url: { type: "string" }
1206
+ },
1207
+ required: ["latitude", "longitude"],
1208
+ additionalProperties: true
1209
+ },
1210
+ contacts: {
1211
+ type: "array",
1212
+ items: {
1213
+ type: "object",
1214
+ properties: {
1215
+ name: {
1216
+ type: "object",
1217
+ properties: {
1218
+ formattedName: { type: "string" },
1219
+ firstName: { type: "string" },
1220
+ lastName: { type: "string" },
1221
+ middleName: { type: "string" },
1222
+ prefix: { type: "string" },
1223
+ suffix: { type: "string" }
1224
+ },
1225
+ additionalProperties: true
1226
+ },
1227
+ phones: {
1228
+ type: "array",
1229
+ items: {
1230
+ type: "object",
1231
+ properties: {
1232
+ phone: { type: "string" },
1233
+ type: { type: "string" },
1234
+ waId: { type: "string" }
1235
+ },
1236
+ additionalProperties: true
1237
+ }
1238
+ },
1239
+ emails: {
1240
+ type: "array",
1241
+ items: {
1242
+ type: "object",
1243
+ properties: {
1244
+ email: { type: "string" },
1245
+ type: { type: "string" }
1246
+ },
1247
+ additionalProperties: true
1248
+ }
1249
+ },
1250
+ urls: {
1251
+ type: "array",
1252
+ items: {
1253
+ type: "object",
1254
+ properties: {
1255
+ url: { type: "string" },
1256
+ type: { type: "string" }
1257
+ },
1258
+ additionalProperties: true
1259
+ }
1260
+ },
1261
+ org: {
1262
+ type: "object",
1263
+ properties: {
1264
+ company: { type: "string" },
1265
+ department: { type: "string" },
1266
+ title: { type: "string" }
1267
+ },
1268
+ additionalProperties: true
1269
+ },
1270
+ addresses: {
1271
+ type: "array",
1272
+ items: {
1273
+ type: "object",
1274
+ properties: {
1275
+ street: { type: "string" },
1276
+ city: { type: "string" },
1277
+ state: { type: "string" },
1278
+ zip: { type: "string" },
1279
+ country: { type: "string" },
1280
+ countryCode: { type: "string" },
1281
+ type: { type: "string" }
1282
+ },
1283
+ additionalProperties: true
1284
+ }
1285
+ },
1286
+ birthday: { type: "string" }
1287
+ },
1288
+ additionalProperties: true
1289
+ }
1290
+ },
1291
+ reply: {
1292
+ type: "object",
1293
+ properties: {
1294
+ type: {
1295
+ type: "string",
1296
+ enum: [
1297
+ "button",
1298
+ "list",
1299
+ "template_button"
1300
+ ]
1301
+ },
1302
+ id: { type: "string" },
1303
+ title: { type: "string" },
1304
+ description: { type: "string" }
1305
+ },
1306
+ required: [
1307
+ "type",
1308
+ "id",
1309
+ "title"
1310
+ ],
1311
+ additionalProperties: true
1312
+ },
1313
+ flowResponse: {
1314
+ type: "object",
1315
+ properties: {
1316
+ flowToken: { anyOf: [{ type: "string" }, { type: "null" }] },
1317
+ response: { type: "object" },
1318
+ body: { type: "string" }
1319
+ },
1320
+ required: ["flowToken", "response"],
1321
+ additionalProperties: true
1322
+ },
1323
+ context: {
1324
+ type: "object",
1325
+ properties: {
1326
+ messageId: { anyOf: [{
1327
+ type: "string",
1328
+ pattern: "^msg_[0-9a-hjkmnp-tv-z]{16,24}$"
1329
+ }, { type: "null" }] },
1330
+ providerMessageId: { type: "string" }
1331
+ },
1332
+ required: ["messageId", "providerMessageId"],
1333
+ additionalProperties: true
1334
+ }
1335
+ },
1336
+ additionalProperties: true
1337
+ }, { type: "null" }] },
367
1338
  messageId: { type: "string" },
368
1339
  organizationId: { type: "string" }
369
1340
  },
@@ -1031,7 +2002,11 @@ const WebhookEventJsonSchemas = {
1031
2002
  },
1032
2003
  channel: {
1033
2004
  type: "string",
1034
- enum: ["email"]
2005
+ enum: [
2006
+ "sms",
2007
+ "whatsapp",
2008
+ "email"
2009
+ ]
1035
2010
  },
1036
2011
  status: {
1037
2012
  type: "string",
@@ -1088,12 +2063,20 @@ const WebhookEventJsonSchemas = {
1088
2063
  type: "array",
1089
2064
  items: {
1090
2065
  type: "string",
1091
- enum: ["email"]
2066
+ enum: [
2067
+ "sms",
2068
+ "whatsapp",
2069
+ "email"
2070
+ ]
1092
2071
  }
1093
2072
  },
1094
2073
  primaryChannel: {
1095
2074
  type: "string",
1096
- enum: ["email"]
2075
+ enum: [
2076
+ "sms",
2077
+ "whatsapp",
2078
+ "email"
2079
+ ]
1097
2080
  },
1098
2081
  status: {
1099
2082
  type: "string",
@@ -1155,12 +2138,20 @@ const WebhookEventJsonSchemas = {
1155
2138
  type: "array",
1156
2139
  items: {
1157
2140
  type: "string",
1158
- enum: ["email"]
2141
+ enum: [
2142
+ "sms",
2143
+ "whatsapp",
2144
+ "email"
2145
+ ]
1159
2146
  }
1160
2147
  },
1161
2148
  primaryChannel: {
1162
2149
  type: "string",
1163
- enum: ["email"]
2150
+ enum: [
2151
+ "sms",
2152
+ "whatsapp",
2153
+ "email"
2154
+ ]
1164
2155
  },
1165
2156
  status: {
1166
2157
  type: "string",
@@ -1222,12 +2213,20 @@ const WebhookEventJsonSchemas = {
1222
2213
  type: "array",
1223
2214
  items: {
1224
2215
  type: "string",
1225
- enum: ["email"]
2216
+ enum: [
2217
+ "sms",
2218
+ "whatsapp",
2219
+ "email"
2220
+ ]
1226
2221
  }
1227
2222
  },
1228
2223
  primaryChannel: {
1229
2224
  type: "string",
1230
- enum: ["email"]
2225
+ enum: [
2226
+ "sms",
2227
+ "whatsapp",
2228
+ "email"
2229
+ ]
1231
2230
  },
1232
2231
  status: {
1233
2232
  type: "string",
@@ -1677,6 +2676,340 @@ const WebhookEventJsonSchemas = {
1677
2676
  ],
1678
2677
  additionalProperties: true
1679
2678
  },
2679
+ "template.registration.updated": {
2680
+ type: "object",
2681
+ properties: {
2682
+ type: {
2683
+ type: "string",
2684
+ enum: ["template.registration.updated"]
2685
+ },
2686
+ timestamp: { type: "string" },
2687
+ data: {
2688
+ type: "object",
2689
+ properties: {
2690
+ id: {
2691
+ type: "string",
2692
+ pattern: "^treg_[0-9a-hjkmnp-tv-z]{16,24}$"
2693
+ },
2694
+ templateId: {
2695
+ type: "string",
2696
+ pattern: "^tmpl_[0-9a-hjkmnp-tv-z]{16,24}$"
2697
+ },
2698
+ publicationId: {
2699
+ type: "string",
2700
+ pattern: "^tpub_[0-9a-hjkmnp-tv-z]{16,24}$"
2701
+ },
2702
+ target: { anyOf: [{
2703
+ type: "object",
2704
+ properties: {
2705
+ provider: {
2706
+ type: "string",
2707
+ enum: ["whatsapp"]
2708
+ },
2709
+ wabaId: { type: "string" }
2710
+ },
2711
+ required: ["provider", "wabaId"],
2712
+ additionalProperties: true
2713
+ }, {
2714
+ type: "object",
2715
+ properties: {
2716
+ provider: {
2717
+ type: "string",
2718
+ enum: ["dlt"]
2719
+ },
2720
+ entityId: { type: "string" },
2721
+ headerId: { type: "string" }
2722
+ },
2723
+ required: [
2724
+ "provider",
2725
+ "entityId",
2726
+ "headerId"
2727
+ ],
2728
+ additionalProperties: true
2729
+ }] },
2730
+ name: { type: "string" },
2731
+ language: { type: "string" },
2732
+ status: {
2733
+ type: "string",
2734
+ enum: [
2735
+ "draft",
2736
+ "submitted",
2737
+ "approved",
2738
+ "rejected",
2739
+ "paused",
2740
+ "disabled"
2741
+ ]
2742
+ },
2743
+ category: {
2744
+ type: "string",
2745
+ enum: [
2746
+ "marketing",
2747
+ "utility",
2748
+ "authentication",
2749
+ "transactional",
2750
+ "service_implicit",
2751
+ "service_explicit",
2752
+ "promotional"
2753
+ ]
2754
+ },
2755
+ providerCategory: { anyOf: [{
2756
+ type: "string",
2757
+ enum: [
2758
+ "marketing",
2759
+ "utility",
2760
+ "authentication",
2761
+ "transactional",
2762
+ "service_implicit",
2763
+ "service_explicit",
2764
+ "promotional"
2765
+ ]
2766
+ }, { type: "null" }] },
2767
+ providerTemplateId: { anyOf: [{ type: "string" }, { type: "null" }] },
2768
+ reason: { anyOf: [{ type: "string" }, { type: "null" }] },
2769
+ submittedAt: { anyOf: [{ type: "string" }, { type: "null" }] },
2770
+ statusChangedAt: { type: "string" },
2771
+ createdAt: { type: "string" },
2772
+ updatedAt: { type: "string" },
2773
+ organizationId: {
2774
+ type: "string",
2775
+ pattern: "^org_[0-9a-hjkmnp-tv-z]{16,24}$"
2776
+ },
2777
+ previousStatus: {
2778
+ type: "string",
2779
+ enum: [
2780
+ "draft",
2781
+ "submitted",
2782
+ "approved",
2783
+ "rejected",
2784
+ "paused",
2785
+ "disabled"
2786
+ ]
2787
+ }
2788
+ },
2789
+ required: [
2790
+ "id",
2791
+ "templateId",
2792
+ "publicationId",
2793
+ "target",
2794
+ "name",
2795
+ "language",
2796
+ "status",
2797
+ "category",
2798
+ "providerCategory",
2799
+ "providerTemplateId",
2800
+ "reason",
2801
+ "submittedAt",
2802
+ "statusChangedAt",
2803
+ "createdAt",
2804
+ "updatedAt",
2805
+ "organizationId",
2806
+ "previousStatus"
2807
+ ],
2808
+ additionalProperties: true
2809
+ }
2810
+ },
2811
+ required: [
2812
+ "type",
2813
+ "timestamp",
2814
+ "data"
2815
+ ],
2816
+ additionalProperties: true
2817
+ },
2818
+ "flow.registration.updated": {
2819
+ type: "object",
2820
+ properties: {
2821
+ type: {
2822
+ type: "string",
2823
+ enum: ["flow.registration.updated"]
2824
+ },
2825
+ timestamp: { type: "string" },
2826
+ data: {
2827
+ type: "object",
2828
+ properties: {
2829
+ id: {
2830
+ type: "string",
2831
+ pattern: "^wafreg_[0-9a-hjkmnp-tv-z]{16,24}$"
2832
+ },
2833
+ flowId: {
2834
+ type: "string",
2835
+ pattern: "^waflow_[0-9a-hjkmnp-tv-z]{16,24}$"
2836
+ },
2837
+ versionId: {
2838
+ type: "string",
2839
+ pattern: "^wafver_[0-9a-hjkmnp-tv-z]{16,24}$"
2840
+ },
2841
+ versionNumber: { type: "integer" },
2842
+ wabaId: { type: "string" },
2843
+ providerFlowId: { anyOf: [{ type: "string" }, { type: "null" }] },
2844
+ name: { type: "string" },
2845
+ status: {
2846
+ type: "string",
2847
+ enum: [
2848
+ "draft",
2849
+ "published",
2850
+ "throttled",
2851
+ "blocked",
2852
+ "deprecated"
2853
+ ]
2854
+ },
2855
+ validationErrors: {
2856
+ type: "array",
2857
+ items: {
2858
+ type: "object",
2859
+ properties: {
2860
+ error: { type: "string" },
2861
+ message: { type: "string" },
2862
+ path: { type: "string" },
2863
+ line: { type: "integer" },
2864
+ column: { type: "integer" }
2865
+ },
2866
+ required: ["error", "message"],
2867
+ additionalProperties: true
2868
+ }
2869
+ },
2870
+ endpointAlerts: {
2871
+ type: "array",
2872
+ items: {
2873
+ type: "object",
2874
+ properties: {
2875
+ kind: { type: "string" },
2876
+ message: { type: "string" },
2877
+ value: { anyOf: [{ type: "number" }, { type: "null" }] },
2878
+ threshold: { anyOf: [{ type: "number" }, { type: "null" }] },
2879
+ activatedAt: { type: "string" }
2880
+ },
2881
+ required: [
2882
+ "kind",
2883
+ "message",
2884
+ "value",
2885
+ "threshold",
2886
+ "activatedAt"
2887
+ ],
2888
+ additionalProperties: true
2889
+ }
2890
+ },
2891
+ publishedAt: { anyOf: [{ type: "string" }, { type: "null" }] },
2892
+ statusChangedAt: { type: "string" },
2893
+ createdAt: { type: "string" },
2894
+ updatedAt: { type: "string" },
2895
+ organizationId: {
2896
+ type: "string",
2897
+ pattern: "^org_[0-9a-hjkmnp-tv-z]{16,24}$"
2898
+ },
2899
+ previousStatus: { anyOf: [{
2900
+ type: "string",
2901
+ enum: [
2902
+ "draft",
2903
+ "published",
2904
+ "throttled",
2905
+ "blocked",
2906
+ "deprecated"
2907
+ ]
2908
+ }, { type: "null" }] }
2909
+ },
2910
+ required: [
2911
+ "id",
2912
+ "flowId",
2913
+ "versionId",
2914
+ "versionNumber",
2915
+ "wabaId",
2916
+ "providerFlowId",
2917
+ "name",
2918
+ "status",
2919
+ "validationErrors",
2920
+ "endpointAlerts",
2921
+ "publishedAt",
2922
+ "statusChangedAt",
2923
+ "createdAt",
2924
+ "updatedAt",
2925
+ "organizationId",
2926
+ "previousStatus"
2927
+ ],
2928
+ additionalProperties: true
2929
+ }
2930
+ },
2931
+ required: [
2932
+ "type",
2933
+ "timestamp",
2934
+ "data"
2935
+ ],
2936
+ additionalProperties: true
2937
+ },
2938
+ "whatsapp.number.connected": {
2939
+ type: "object",
2940
+ properties: {
2941
+ type: {
2942
+ type: "string",
2943
+ enum: ["whatsapp.number.connected"]
2944
+ },
2945
+ timestamp: { type: "string" },
2946
+ data: {
2947
+ type: "object",
2948
+ properties: {
2949
+ organizationId: {
2950
+ type: "string",
2951
+ pattern: "^org_[0-9a-hjkmnp-tv-z]{16,24}$"
2952
+ },
2953
+ namespaceId: { anyOf: [{
2954
+ type: "string",
2955
+ pattern: "^ns_[0-9a-hjkmnp-tv-z]{16,24}$"
2956
+ }, { type: "null" }] },
2957
+ businessAccountId: {
2958
+ type: "string",
2959
+ pattern: "^waba_[0-9a-hjkmnp-tv-z]{16,24}$"
2960
+ },
2961
+ phoneNumber: { type: "string" },
2962
+ phoneNumberId: { type: "string" },
2963
+ whatsappBusinessAccountId: { type: "string" },
2964
+ displayName: { type: "string" },
2965
+ verificationStatus: {
2966
+ type: "string",
2967
+ enum: [
2968
+ "pending",
2969
+ "verified",
2970
+ "failed",
2971
+ "suspended"
2972
+ ]
2973
+ },
2974
+ reconnected: { type: "boolean" },
2975
+ setupLink: { anyOf: [{
2976
+ type: "object",
2977
+ properties: {
2978
+ id: {
2979
+ type: "string",
2980
+ pattern: "^wasl_[0-9a-hjkmnp-tv-z]{16,24}$"
2981
+ },
2982
+ metadata: {
2983
+ type: "object",
2984
+ additionalProperties: true
2985
+ }
2986
+ },
2987
+ required: ["id", "metadata"],
2988
+ additionalProperties: true
2989
+ }, { type: "null" }] }
2990
+ },
2991
+ required: [
2992
+ "organizationId",
2993
+ "namespaceId",
2994
+ "businessAccountId",
2995
+ "phoneNumber",
2996
+ "phoneNumberId",
2997
+ "whatsappBusinessAccountId",
2998
+ "displayName",
2999
+ "verificationStatus",
3000
+ "reconnected",
3001
+ "setupLink"
3002
+ ],
3003
+ additionalProperties: true
3004
+ }
3005
+ },
3006
+ required: [
3007
+ "type",
3008
+ "timestamp",
3009
+ "data"
3010
+ ],
3011
+ additionalProperties: true
3012
+ },
1680
3013
  "mailbox.message.received": {
1681
3014
  type: "object",
1682
3015
  properties: {
@@ -1705,7 +3038,11 @@ const WebhookEventJsonSchemas = {
1705
3038
  },
1706
3039
  channel: {
1707
3040
  type: "string",
1708
- enum: ["email"],
3041
+ enum: [
3042
+ "email",
3043
+ "whatsapp",
3044
+ "sms"
3045
+ ],
1709
3046
  description: "Deliveries recorded before this field existed omit it; they are email."
1710
3047
  },
1711
3048
  threadId: {
@@ -1883,7 +3220,11 @@ const WebhookEventJsonSchemas = {
1883
3220
  },
1884
3221
  channel: {
1885
3222
  type: "string",
1886
- enum: ["email"],
3223
+ enum: [
3224
+ "email",
3225
+ "whatsapp",
3226
+ "sms"
3227
+ ],
1887
3228
  description: "Deliveries recorded before this field existed omit it; they are email."
1888
3229
  },
1889
3230
  threadId: {
@@ -2459,7 +3800,11 @@ const WebhookEventJsonSchemas = {
2459
3800
  },
2460
3801
  channel: {
2461
3802
  type: "string",
2462
- enum: ["email"],
3803
+ enum: [
3804
+ "email",
3805
+ "whatsapp",
3806
+ "sms"
3807
+ ],
2463
3808
  description: "Deliveries recorded before this field existed omit it; they are email."
2464
3809
  },
2465
3810
  threadId: {
@@ -2749,4 +4094,4 @@ const WebhookEventJsonSchemas = {
2749
4094
  //#endregion
2750
4095
  export { WebhookEventJsonSchemas as t };
2751
4096
 
2752
- //# sourceMappingURL=json-schemas.gen-BPULV030.js.map
4097
+ //# sourceMappingURL=json-schemas.gen-CPzGmYvg.js.map