@wraps.dev/client 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +3235 -41
- package/dist/index.d.ts +3235 -41
- package/dist/index.js +157 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +144 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -46,6 +46,50 @@ interface paths {
|
|
|
46
46
|
patch?: never;
|
|
47
47
|
trace?: never;
|
|
48
48
|
};
|
|
49
|
+
"/v1/connections/": {
|
|
50
|
+
parameters: {
|
|
51
|
+
query?: never;
|
|
52
|
+
header?: never;
|
|
53
|
+
path?: never;
|
|
54
|
+
cookie?: never;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* List AWS connections
|
|
58
|
+
* @description Returns all AWS account connections for the authenticated organization.
|
|
59
|
+
*/
|
|
60
|
+
get: operations["getV1Connections"];
|
|
61
|
+
put?: never;
|
|
62
|
+
/**
|
|
63
|
+
* Register or update an AWS connection
|
|
64
|
+
* @description Registers or updates the AWS account connection. Returns externalId for IAM role trust policy and webhookSecret for EventBridge configuration.
|
|
65
|
+
*/
|
|
66
|
+
post: operations["postV1Connections"];
|
|
67
|
+
delete?: never;
|
|
68
|
+
options?: never;
|
|
69
|
+
head?: never;
|
|
70
|
+
patch?: never;
|
|
71
|
+
trace?: never;
|
|
72
|
+
};
|
|
73
|
+
"/v1/connections/{id}": {
|
|
74
|
+
parameters: {
|
|
75
|
+
query?: never;
|
|
76
|
+
header?: never;
|
|
77
|
+
path?: never;
|
|
78
|
+
cookie?: never;
|
|
79
|
+
};
|
|
80
|
+
get?: never;
|
|
81
|
+
put?: never;
|
|
82
|
+
post?: never;
|
|
83
|
+
/**
|
|
84
|
+
* Disconnect an AWS account
|
|
85
|
+
* @description Clears the webhook secret for the connection. The account record is preserved.
|
|
86
|
+
*/
|
|
87
|
+
delete: operations["deleteV1ConnectionsById"];
|
|
88
|
+
options?: never;
|
|
89
|
+
head?: never;
|
|
90
|
+
patch?: never;
|
|
91
|
+
trace?: never;
|
|
92
|
+
};
|
|
49
93
|
"/v1/contacts/": {
|
|
50
94
|
parameters: {
|
|
51
95
|
query?: never;
|
|
@@ -290,6 +334,154 @@ interface paths {
|
|
|
290
334
|
patch?: never;
|
|
291
335
|
trace?: never;
|
|
292
336
|
};
|
|
337
|
+
"/v1/templates/push": {
|
|
338
|
+
parameters: {
|
|
339
|
+
query?: never;
|
|
340
|
+
header?: never;
|
|
341
|
+
path?: never;
|
|
342
|
+
cookie?: never;
|
|
343
|
+
};
|
|
344
|
+
get?: never;
|
|
345
|
+
put?: never;
|
|
346
|
+
/**
|
|
347
|
+
* Push a template from CLI
|
|
348
|
+
* @description Upserts a template compiled from React Email source. Used by `wraps push`.
|
|
349
|
+
*/
|
|
350
|
+
post: operations["postV1TemplatesPush"];
|
|
351
|
+
delete?: never;
|
|
352
|
+
options?: never;
|
|
353
|
+
head?: never;
|
|
354
|
+
patch?: never;
|
|
355
|
+
trace?: never;
|
|
356
|
+
};
|
|
357
|
+
"/v1/templates/push/batch": {
|
|
358
|
+
parameters: {
|
|
359
|
+
query?: never;
|
|
360
|
+
header?: never;
|
|
361
|
+
path?: never;
|
|
362
|
+
cookie?: never;
|
|
363
|
+
};
|
|
364
|
+
get?: never;
|
|
365
|
+
put?: never;
|
|
366
|
+
/**
|
|
367
|
+
* Push multiple templates from CLI
|
|
368
|
+
* @description Batch upsert templates compiled from React Email source.
|
|
369
|
+
*/
|
|
370
|
+
post: operations["postV1TemplatesPushBatch"];
|
|
371
|
+
delete?: never;
|
|
372
|
+
options?: never;
|
|
373
|
+
head?: never;
|
|
374
|
+
patch?: never;
|
|
375
|
+
trace?: never;
|
|
376
|
+
};
|
|
377
|
+
"/v1/templates/pull": {
|
|
378
|
+
parameters: {
|
|
379
|
+
query?: never;
|
|
380
|
+
header?: never;
|
|
381
|
+
path?: never;
|
|
382
|
+
cookie?: never;
|
|
383
|
+
};
|
|
384
|
+
/**
|
|
385
|
+
* Pull templates for CLI sync
|
|
386
|
+
* @description Returns all templates pushed from CLI with their React Email source.
|
|
387
|
+
*/
|
|
388
|
+
get: operations["getV1TemplatesPull"];
|
|
389
|
+
put?: never;
|
|
390
|
+
post?: never;
|
|
391
|
+
delete?: never;
|
|
392
|
+
options?: never;
|
|
393
|
+
head?: never;
|
|
394
|
+
patch?: never;
|
|
395
|
+
trace?: never;
|
|
396
|
+
};
|
|
397
|
+
"/tools/email-check": {
|
|
398
|
+
parameters: {
|
|
399
|
+
query?: never;
|
|
400
|
+
header?: never;
|
|
401
|
+
path?: never;
|
|
402
|
+
cookie?: never;
|
|
403
|
+
};
|
|
404
|
+
get?: never;
|
|
405
|
+
put?: never;
|
|
406
|
+
/**
|
|
407
|
+
* Check email deliverability
|
|
408
|
+
* @description Comprehensive email deliverability check for any domain. Returns SPF, DKIM, DMARC status and a grade. Optionally provide DKIM selectors for providers like AWS SES that use random selectors.
|
|
409
|
+
*/
|
|
410
|
+
post: operations["postToolsEmail-check"];
|
|
411
|
+
delete?: never;
|
|
412
|
+
options?: never;
|
|
413
|
+
head?: never;
|
|
414
|
+
patch?: never;
|
|
415
|
+
trace?: never;
|
|
416
|
+
};
|
|
417
|
+
"/tools/email-check/{domain}": {
|
|
418
|
+
parameters: {
|
|
419
|
+
query?: never;
|
|
420
|
+
header?: never;
|
|
421
|
+
path?: never;
|
|
422
|
+
cookie?: never;
|
|
423
|
+
};
|
|
424
|
+
/**
|
|
425
|
+
* Check email deliverability (GET)
|
|
426
|
+
* @description Quick email deliverability check for any domain via GET request.
|
|
427
|
+
*/
|
|
428
|
+
get: operations["getToolsEmail-checkByDomain"];
|
|
429
|
+
put?: never;
|
|
430
|
+
post?: never;
|
|
431
|
+
delete?: never;
|
|
432
|
+
options?: never;
|
|
433
|
+
head?: never;
|
|
434
|
+
patch?: never;
|
|
435
|
+
trace?: never;
|
|
436
|
+
};
|
|
437
|
+
"/v1/workflow-schedules/{workflowId}/enable": {
|
|
438
|
+
parameters: {
|
|
439
|
+
query?: never;
|
|
440
|
+
header?: never;
|
|
441
|
+
path?: never;
|
|
442
|
+
cookie?: never;
|
|
443
|
+
};
|
|
444
|
+
get?: never;
|
|
445
|
+
put?: never;
|
|
446
|
+
post: operations["postV1Workflow-schedulesByWorkflowIdEnable"];
|
|
447
|
+
delete?: never;
|
|
448
|
+
options?: never;
|
|
449
|
+
head?: never;
|
|
450
|
+
patch?: never;
|
|
451
|
+
trace?: never;
|
|
452
|
+
};
|
|
453
|
+
"/v1/workflow-schedules/{workflowId}/disable": {
|
|
454
|
+
parameters: {
|
|
455
|
+
query?: never;
|
|
456
|
+
header?: never;
|
|
457
|
+
path?: never;
|
|
458
|
+
cookie?: never;
|
|
459
|
+
};
|
|
460
|
+
get?: never;
|
|
461
|
+
put?: never;
|
|
462
|
+
post: operations["postV1Workflow-schedulesByWorkflowIdDisable"];
|
|
463
|
+
delete?: never;
|
|
464
|
+
options?: never;
|
|
465
|
+
head?: never;
|
|
466
|
+
patch?: never;
|
|
467
|
+
trace?: never;
|
|
468
|
+
};
|
|
469
|
+
"/v1/workflow-schedules/{workflowId}": {
|
|
470
|
+
parameters: {
|
|
471
|
+
query?: never;
|
|
472
|
+
header?: never;
|
|
473
|
+
path?: never;
|
|
474
|
+
cookie?: never;
|
|
475
|
+
};
|
|
476
|
+
get?: never;
|
|
477
|
+
put: operations["putV1Workflow-schedulesByWorkflowId"];
|
|
478
|
+
post?: never;
|
|
479
|
+
delete?: never;
|
|
480
|
+
options?: never;
|
|
481
|
+
head?: never;
|
|
482
|
+
patch?: never;
|
|
483
|
+
trace?: never;
|
|
484
|
+
};
|
|
293
485
|
}
|
|
294
486
|
interface operations {
|
|
295
487
|
getHealth: {
|
|
@@ -305,7 +497,59 @@ interface operations {
|
|
|
305
497
|
headers: {
|
|
306
498
|
[name: string]: unknown;
|
|
307
499
|
};
|
|
308
|
-
content
|
|
500
|
+
content: {
|
|
501
|
+
"application/json": {
|
|
502
|
+
/**
|
|
503
|
+
* @description Health status
|
|
504
|
+
* @example ok
|
|
505
|
+
*/
|
|
506
|
+
status: string;
|
|
507
|
+
/**
|
|
508
|
+
* Format: date-time
|
|
509
|
+
* @description ISO 8601 timestamp
|
|
510
|
+
*/
|
|
511
|
+
timestamp: string;
|
|
512
|
+
/**
|
|
513
|
+
* @description API version
|
|
514
|
+
* @example 1.0.0
|
|
515
|
+
*/
|
|
516
|
+
version: string;
|
|
517
|
+
};
|
|
518
|
+
"multipart/form-data": {
|
|
519
|
+
/**
|
|
520
|
+
* @description Health status
|
|
521
|
+
* @example ok
|
|
522
|
+
*/
|
|
523
|
+
status: string;
|
|
524
|
+
/**
|
|
525
|
+
* Format: date-time
|
|
526
|
+
* @description ISO 8601 timestamp
|
|
527
|
+
*/
|
|
528
|
+
timestamp: string;
|
|
529
|
+
/**
|
|
530
|
+
* @description API version
|
|
531
|
+
* @example 1.0.0
|
|
532
|
+
*/
|
|
533
|
+
version: string;
|
|
534
|
+
};
|
|
535
|
+
"text/plain": {
|
|
536
|
+
/**
|
|
537
|
+
* @description Health status
|
|
538
|
+
* @example ok
|
|
539
|
+
*/
|
|
540
|
+
status: string;
|
|
541
|
+
/**
|
|
542
|
+
* Format: date-time
|
|
543
|
+
* @description ISO 8601 timestamp
|
|
544
|
+
*/
|
|
545
|
+
timestamp: string;
|
|
546
|
+
/**
|
|
547
|
+
* @description API version
|
|
548
|
+
* @example 1.0.0
|
|
549
|
+
*/
|
|
550
|
+
version: string;
|
|
551
|
+
};
|
|
552
|
+
};
|
|
309
553
|
};
|
|
310
554
|
};
|
|
311
555
|
};
|
|
@@ -317,6 +561,124 @@ interface operations {
|
|
|
317
561
|
cookie?: never;
|
|
318
562
|
};
|
|
319
563
|
requestBody?: never;
|
|
564
|
+
responses: {
|
|
565
|
+
200: {
|
|
566
|
+
headers: {
|
|
567
|
+
[name: string]: unknown;
|
|
568
|
+
};
|
|
569
|
+
content: {
|
|
570
|
+
"application/json": {
|
|
571
|
+
/** @description API name */
|
|
572
|
+
name: string;
|
|
573
|
+
/** @description API version */
|
|
574
|
+
version: string;
|
|
575
|
+
/** @description Documentation URL */
|
|
576
|
+
docs: string;
|
|
577
|
+
};
|
|
578
|
+
"multipart/form-data": {
|
|
579
|
+
/** @description API name */
|
|
580
|
+
name: string;
|
|
581
|
+
/** @description API version */
|
|
582
|
+
version: string;
|
|
583
|
+
/** @description Documentation URL */
|
|
584
|
+
docs: string;
|
|
585
|
+
};
|
|
586
|
+
"text/plain": {
|
|
587
|
+
/** @description API name */
|
|
588
|
+
name: string;
|
|
589
|
+
/** @description API version */
|
|
590
|
+
version: string;
|
|
591
|
+
/** @description Documentation URL */
|
|
592
|
+
docs: string;
|
|
593
|
+
};
|
|
594
|
+
};
|
|
595
|
+
};
|
|
596
|
+
};
|
|
597
|
+
};
|
|
598
|
+
getV1Connections: {
|
|
599
|
+
parameters: {
|
|
600
|
+
query?: never;
|
|
601
|
+
header?: never;
|
|
602
|
+
path?: never;
|
|
603
|
+
cookie?: never;
|
|
604
|
+
};
|
|
605
|
+
requestBody?: never;
|
|
606
|
+
responses: {
|
|
607
|
+
200: {
|
|
608
|
+
headers: {
|
|
609
|
+
[name: string]: unknown;
|
|
610
|
+
};
|
|
611
|
+
content?: never;
|
|
612
|
+
};
|
|
613
|
+
};
|
|
614
|
+
};
|
|
615
|
+
postV1Connections: {
|
|
616
|
+
parameters: {
|
|
617
|
+
query?: never;
|
|
618
|
+
header?: never;
|
|
619
|
+
path?: never;
|
|
620
|
+
cookie?: never;
|
|
621
|
+
};
|
|
622
|
+
requestBody: {
|
|
623
|
+
content: {
|
|
624
|
+
"application/json": {
|
|
625
|
+
/** @description AWS account ID (12 digits) */
|
|
626
|
+
accountId: string;
|
|
627
|
+
/** @description AWS region (e.g. us-east-1) */
|
|
628
|
+
region: string;
|
|
629
|
+
/** @description Display name for the account */
|
|
630
|
+
name?: string;
|
|
631
|
+
/** @description Service features config */
|
|
632
|
+
features?: {
|
|
633
|
+
[key: string]: unknown;
|
|
634
|
+
};
|
|
635
|
+
};
|
|
636
|
+
"multipart/form-data": {
|
|
637
|
+
/** @description AWS account ID (12 digits) */
|
|
638
|
+
accountId: string;
|
|
639
|
+
/** @description AWS region (e.g. us-east-1) */
|
|
640
|
+
region: string;
|
|
641
|
+
/** @description Display name for the account */
|
|
642
|
+
name?: string;
|
|
643
|
+
/** @description Service features config */
|
|
644
|
+
features?: {
|
|
645
|
+
[key: string]: unknown;
|
|
646
|
+
};
|
|
647
|
+
};
|
|
648
|
+
"text/plain": {
|
|
649
|
+
/** @description AWS account ID (12 digits) */
|
|
650
|
+
accountId: string;
|
|
651
|
+
/** @description AWS region (e.g. us-east-1) */
|
|
652
|
+
region: string;
|
|
653
|
+
/** @description Display name for the account */
|
|
654
|
+
name?: string;
|
|
655
|
+
/** @description Service features config */
|
|
656
|
+
features?: {
|
|
657
|
+
[key: string]: unknown;
|
|
658
|
+
};
|
|
659
|
+
};
|
|
660
|
+
};
|
|
661
|
+
};
|
|
662
|
+
responses: {
|
|
663
|
+
200: {
|
|
664
|
+
headers: {
|
|
665
|
+
[name: string]: unknown;
|
|
666
|
+
};
|
|
667
|
+
content?: never;
|
|
668
|
+
};
|
|
669
|
+
};
|
|
670
|
+
};
|
|
671
|
+
deleteV1ConnectionsById: {
|
|
672
|
+
parameters: {
|
|
673
|
+
query?: never;
|
|
674
|
+
header?: never;
|
|
675
|
+
path: {
|
|
676
|
+
/** @description Connection ID */
|
|
677
|
+
id: string;
|
|
678
|
+
};
|
|
679
|
+
cookie?: never;
|
|
680
|
+
};
|
|
681
|
+
requestBody?: never;
|
|
320
682
|
responses: {
|
|
321
683
|
200: {
|
|
322
684
|
headers: {
|
|
@@ -329,10 +691,15 @@ interface operations {
|
|
|
329
691
|
getV1Contacts: {
|
|
330
692
|
parameters: {
|
|
331
693
|
query?: {
|
|
694
|
+
/** @description Page number (1-indexed) */
|
|
332
695
|
page?: string;
|
|
696
|
+
/** @description Number of items per page (max 100) */
|
|
333
697
|
pageSize?: string;
|
|
698
|
+
/** @description Filter by email status */
|
|
334
699
|
emailStatus?: string;
|
|
700
|
+
/** @description Filter by SMS status */
|
|
335
701
|
smsStatus?: string;
|
|
702
|
+
/** @description Search by email or phone */
|
|
336
703
|
search?: string;
|
|
337
704
|
};
|
|
338
705
|
header?: never;
|
|
@@ -345,7 +712,167 @@ interface operations {
|
|
|
345
712
|
headers: {
|
|
346
713
|
[name: string]: unknown;
|
|
347
714
|
};
|
|
348
|
-
content
|
|
715
|
+
content: {
|
|
716
|
+
"application/json": {
|
|
717
|
+
contacts: {
|
|
718
|
+
/** @description Contact ID */
|
|
719
|
+
id: string;
|
|
720
|
+
/** @description Email address */
|
|
721
|
+
email: string | null;
|
|
722
|
+
/** @description Phone number */
|
|
723
|
+
phone: string | null;
|
|
724
|
+
/** @description First name */
|
|
725
|
+
firstName: string | null;
|
|
726
|
+
/** @description Last name */
|
|
727
|
+
lastName: string | null;
|
|
728
|
+
/** @description Company name */
|
|
729
|
+
company: string | null;
|
|
730
|
+
/** @description Job title */
|
|
731
|
+
jobTitle: string | null;
|
|
732
|
+
/** @description Email subscription status */
|
|
733
|
+
emailStatus: string | null;
|
|
734
|
+
/** @description SMS subscription status */
|
|
735
|
+
smsStatus: string | null;
|
|
736
|
+
properties: {
|
|
737
|
+
[key: string]: unknown;
|
|
738
|
+
};
|
|
739
|
+
/** @description Number of emails sent */
|
|
740
|
+
emailsSent: number;
|
|
741
|
+
/** @description Number of emails opened */
|
|
742
|
+
emailsOpened: number;
|
|
743
|
+
/** @description Number of emails clicked */
|
|
744
|
+
emailsClicked: number;
|
|
745
|
+
/** @description Number of SMS sent */
|
|
746
|
+
smsSent: number;
|
|
747
|
+
/** @description Number of SMS clicked */
|
|
748
|
+
smsClicked: number;
|
|
749
|
+
/**
|
|
750
|
+
* Format: date-time
|
|
751
|
+
* @description Creation timestamp
|
|
752
|
+
*/
|
|
753
|
+
createdAt: string;
|
|
754
|
+
/**
|
|
755
|
+
* Format: date-time
|
|
756
|
+
* @description Last update timestamp
|
|
757
|
+
*/
|
|
758
|
+
updatedAt: string;
|
|
759
|
+
}[];
|
|
760
|
+
/** @description Total number of contacts matching filter */
|
|
761
|
+
total: number;
|
|
762
|
+
/** @description Current page number */
|
|
763
|
+
page: number;
|
|
764
|
+
/** @description Number of items per page */
|
|
765
|
+
pageSize: number;
|
|
766
|
+
/** @description Total number of pages */
|
|
767
|
+
totalPages: number;
|
|
768
|
+
};
|
|
769
|
+
"multipart/form-data": {
|
|
770
|
+
contacts: {
|
|
771
|
+
/** @description Contact ID */
|
|
772
|
+
id: string;
|
|
773
|
+
/** @description Email address */
|
|
774
|
+
email: string | null;
|
|
775
|
+
/** @description Phone number */
|
|
776
|
+
phone: string | null;
|
|
777
|
+
/** @description First name */
|
|
778
|
+
firstName: string | null;
|
|
779
|
+
/** @description Last name */
|
|
780
|
+
lastName: string | null;
|
|
781
|
+
/** @description Company name */
|
|
782
|
+
company: string | null;
|
|
783
|
+
/** @description Job title */
|
|
784
|
+
jobTitle: string | null;
|
|
785
|
+
/** @description Email subscription status */
|
|
786
|
+
emailStatus: string | null;
|
|
787
|
+
/** @description SMS subscription status */
|
|
788
|
+
smsStatus: string | null;
|
|
789
|
+
properties: {
|
|
790
|
+
[key: string]: unknown;
|
|
791
|
+
};
|
|
792
|
+
/** @description Number of emails sent */
|
|
793
|
+
emailsSent: number;
|
|
794
|
+
/** @description Number of emails opened */
|
|
795
|
+
emailsOpened: number;
|
|
796
|
+
/** @description Number of emails clicked */
|
|
797
|
+
emailsClicked: number;
|
|
798
|
+
/** @description Number of SMS sent */
|
|
799
|
+
smsSent: number;
|
|
800
|
+
/** @description Number of SMS clicked */
|
|
801
|
+
smsClicked: number;
|
|
802
|
+
/**
|
|
803
|
+
* Format: date-time
|
|
804
|
+
* @description Creation timestamp
|
|
805
|
+
*/
|
|
806
|
+
createdAt: string;
|
|
807
|
+
/**
|
|
808
|
+
* Format: date-time
|
|
809
|
+
* @description Last update timestamp
|
|
810
|
+
*/
|
|
811
|
+
updatedAt: string;
|
|
812
|
+
}[];
|
|
813
|
+
/** @description Total number of contacts matching filter */
|
|
814
|
+
total: number;
|
|
815
|
+
/** @description Current page number */
|
|
816
|
+
page: number;
|
|
817
|
+
/** @description Number of items per page */
|
|
818
|
+
pageSize: number;
|
|
819
|
+
/** @description Total number of pages */
|
|
820
|
+
totalPages: number;
|
|
821
|
+
};
|
|
822
|
+
"text/plain": {
|
|
823
|
+
contacts: {
|
|
824
|
+
/** @description Contact ID */
|
|
825
|
+
id: string;
|
|
826
|
+
/** @description Email address */
|
|
827
|
+
email: string | null;
|
|
828
|
+
/** @description Phone number */
|
|
829
|
+
phone: string | null;
|
|
830
|
+
/** @description First name */
|
|
831
|
+
firstName: string | null;
|
|
832
|
+
/** @description Last name */
|
|
833
|
+
lastName: string | null;
|
|
834
|
+
/** @description Company name */
|
|
835
|
+
company: string | null;
|
|
836
|
+
/** @description Job title */
|
|
837
|
+
jobTitle: string | null;
|
|
838
|
+
/** @description Email subscription status */
|
|
839
|
+
emailStatus: string | null;
|
|
840
|
+
/** @description SMS subscription status */
|
|
841
|
+
smsStatus: string | null;
|
|
842
|
+
properties: {
|
|
843
|
+
[key: string]: unknown;
|
|
844
|
+
};
|
|
845
|
+
/** @description Number of emails sent */
|
|
846
|
+
emailsSent: number;
|
|
847
|
+
/** @description Number of emails opened */
|
|
848
|
+
emailsOpened: number;
|
|
849
|
+
/** @description Number of emails clicked */
|
|
850
|
+
emailsClicked: number;
|
|
851
|
+
/** @description Number of SMS sent */
|
|
852
|
+
smsSent: number;
|
|
853
|
+
/** @description Number of SMS clicked */
|
|
854
|
+
smsClicked: number;
|
|
855
|
+
/**
|
|
856
|
+
* Format: date-time
|
|
857
|
+
* @description Creation timestamp
|
|
858
|
+
*/
|
|
859
|
+
createdAt: string;
|
|
860
|
+
/**
|
|
861
|
+
* Format: date-time
|
|
862
|
+
* @description Last update timestamp
|
|
863
|
+
*/
|
|
864
|
+
updatedAt: string;
|
|
865
|
+
}[];
|
|
866
|
+
/** @description Total number of contacts matching filter */
|
|
867
|
+
total: number;
|
|
868
|
+
/** @description Current page number */
|
|
869
|
+
page: number;
|
|
870
|
+
/** @description Number of items per page */
|
|
871
|
+
pageSize: number;
|
|
872
|
+
/** @description Total number of pages */
|
|
873
|
+
totalPages: number;
|
|
874
|
+
};
|
|
875
|
+
};
|
|
349
876
|
};
|
|
350
877
|
};
|
|
351
878
|
};
|
|
@@ -359,58 +886,265 @@ interface operations {
|
|
|
359
886
|
requestBody: {
|
|
360
887
|
content: {
|
|
361
888
|
"application/json": {
|
|
889
|
+
/** @description Email address */
|
|
362
890
|
email?: string;
|
|
891
|
+
/** @description Phone number */
|
|
363
892
|
phone?: string;
|
|
893
|
+
/** @description First name */
|
|
364
894
|
firstName?: string;
|
|
895
|
+
/** @description Last name */
|
|
365
896
|
lastName?: string;
|
|
897
|
+
/** @description Company name */
|
|
366
898
|
company?: string;
|
|
899
|
+
/** @description Job title */
|
|
367
900
|
jobTitle?: string;
|
|
901
|
+
/** @description Email subscription status */
|
|
368
902
|
emailStatus?: "active" | "unsubscribed" | "bounced" | "complained";
|
|
903
|
+
/** @description SMS consent status */
|
|
369
904
|
smsStatus?: "pending_consent" | "opted_in" | "opted_out" | "invalid";
|
|
905
|
+
/** @description Custom properties */
|
|
370
906
|
properties?: {
|
|
371
907
|
[key: string]: unknown;
|
|
372
908
|
};
|
|
909
|
+
/** @description Topic IDs to subscribe */
|
|
373
910
|
topicIds?: string[];
|
|
911
|
+
/** @description Topic slugs to subscribe */
|
|
374
912
|
topicSlugs?: string[];
|
|
375
913
|
};
|
|
376
914
|
"multipart/form-data": {
|
|
915
|
+
/** @description Email address */
|
|
377
916
|
email?: string;
|
|
917
|
+
/** @description Phone number */
|
|
378
918
|
phone?: string;
|
|
919
|
+
/** @description First name */
|
|
379
920
|
firstName?: string;
|
|
921
|
+
/** @description Last name */
|
|
380
922
|
lastName?: string;
|
|
923
|
+
/** @description Company name */
|
|
381
924
|
company?: string;
|
|
925
|
+
/** @description Job title */
|
|
382
926
|
jobTitle?: string;
|
|
927
|
+
/** @description Email subscription status */
|
|
383
928
|
emailStatus?: "active" | "unsubscribed" | "bounced" | "complained";
|
|
929
|
+
/** @description SMS consent status */
|
|
384
930
|
smsStatus?: "pending_consent" | "opted_in" | "opted_out" | "invalid";
|
|
931
|
+
/** @description Custom properties */
|
|
385
932
|
properties?: {
|
|
386
933
|
[key: string]: unknown;
|
|
387
934
|
};
|
|
935
|
+
/** @description Topic IDs to subscribe */
|
|
388
936
|
topicIds?: string[];
|
|
937
|
+
/** @description Topic slugs to subscribe */
|
|
389
938
|
topicSlugs?: string[];
|
|
390
939
|
};
|
|
391
940
|
"text/plain": {
|
|
941
|
+
/** @description Email address */
|
|
392
942
|
email?: string;
|
|
943
|
+
/** @description Phone number */
|
|
393
944
|
phone?: string;
|
|
945
|
+
/** @description First name */
|
|
394
946
|
firstName?: string;
|
|
947
|
+
/** @description Last name */
|
|
395
948
|
lastName?: string;
|
|
949
|
+
/** @description Company name */
|
|
396
950
|
company?: string;
|
|
951
|
+
/** @description Job title */
|
|
397
952
|
jobTitle?: string;
|
|
953
|
+
/** @description Email subscription status */
|
|
398
954
|
emailStatus?: "active" | "unsubscribed" | "bounced" | "complained";
|
|
955
|
+
/** @description SMS consent status */
|
|
399
956
|
smsStatus?: "pending_consent" | "opted_in" | "opted_out" | "invalid";
|
|
957
|
+
/** @description Custom properties */
|
|
400
958
|
properties?: {
|
|
401
959
|
[key: string]: unknown;
|
|
402
960
|
};
|
|
961
|
+
/** @description Topic IDs to subscribe */
|
|
403
962
|
topicIds?: string[];
|
|
963
|
+
/** @description Topic slugs to subscribe */
|
|
404
964
|
topicSlugs?: string[];
|
|
405
965
|
};
|
|
406
966
|
};
|
|
407
967
|
};
|
|
408
968
|
responses: {
|
|
409
|
-
|
|
969
|
+
201: {
|
|
410
970
|
headers: {
|
|
411
971
|
[name: string]: unknown;
|
|
412
972
|
};
|
|
413
|
-
content
|
|
973
|
+
content: {
|
|
974
|
+
"application/json": {
|
|
975
|
+
/** @description Contact ID */
|
|
976
|
+
id: string;
|
|
977
|
+
/** @description Email address */
|
|
978
|
+
email: string | null;
|
|
979
|
+
/** @description Phone number */
|
|
980
|
+
phone: string | null;
|
|
981
|
+
/** @description First name */
|
|
982
|
+
firstName: string | null;
|
|
983
|
+
/** @description Last name */
|
|
984
|
+
lastName: string | null;
|
|
985
|
+
/** @description Company name */
|
|
986
|
+
company: string | null;
|
|
987
|
+
/** @description Job title */
|
|
988
|
+
jobTitle: string | null;
|
|
989
|
+
/** @description Email subscription status */
|
|
990
|
+
emailStatus: string | null;
|
|
991
|
+
/** @description SMS subscription status */
|
|
992
|
+
smsStatus: string | null;
|
|
993
|
+
properties: {
|
|
994
|
+
[key: string]: unknown;
|
|
995
|
+
};
|
|
996
|
+
/** @description Number of emails sent */
|
|
997
|
+
emailsSent: number;
|
|
998
|
+
/** @description Number of emails opened */
|
|
999
|
+
emailsOpened: number;
|
|
1000
|
+
/** @description Number of emails clicked */
|
|
1001
|
+
emailsClicked: number;
|
|
1002
|
+
/** @description Number of SMS sent */
|
|
1003
|
+
smsSent: number;
|
|
1004
|
+
/** @description Number of SMS clicked */
|
|
1005
|
+
smsClicked: number;
|
|
1006
|
+
/**
|
|
1007
|
+
* Format: date-time
|
|
1008
|
+
* @description Creation timestamp
|
|
1009
|
+
*/
|
|
1010
|
+
createdAt: string;
|
|
1011
|
+
/**
|
|
1012
|
+
* Format: date-time
|
|
1013
|
+
* @description Last update timestamp
|
|
1014
|
+
*/
|
|
1015
|
+
updatedAt: string;
|
|
1016
|
+
/** @description Topic IDs pending confirmation */
|
|
1017
|
+
pendingTopics?: string[];
|
|
1018
|
+
};
|
|
1019
|
+
"multipart/form-data": {
|
|
1020
|
+
/** @description Contact ID */
|
|
1021
|
+
id: string;
|
|
1022
|
+
/** @description Email address */
|
|
1023
|
+
email: string | null;
|
|
1024
|
+
/** @description Phone number */
|
|
1025
|
+
phone: string | null;
|
|
1026
|
+
/** @description First name */
|
|
1027
|
+
firstName: string | null;
|
|
1028
|
+
/** @description Last name */
|
|
1029
|
+
lastName: string | null;
|
|
1030
|
+
/** @description Company name */
|
|
1031
|
+
company: string | null;
|
|
1032
|
+
/** @description Job title */
|
|
1033
|
+
jobTitle: string | null;
|
|
1034
|
+
/** @description Email subscription status */
|
|
1035
|
+
emailStatus: string | null;
|
|
1036
|
+
/** @description SMS subscription status */
|
|
1037
|
+
smsStatus: string | null;
|
|
1038
|
+
properties: {
|
|
1039
|
+
[key: string]: unknown;
|
|
1040
|
+
};
|
|
1041
|
+
/** @description Number of emails sent */
|
|
1042
|
+
emailsSent: number;
|
|
1043
|
+
/** @description Number of emails opened */
|
|
1044
|
+
emailsOpened: number;
|
|
1045
|
+
/** @description Number of emails clicked */
|
|
1046
|
+
emailsClicked: number;
|
|
1047
|
+
/** @description Number of SMS sent */
|
|
1048
|
+
smsSent: number;
|
|
1049
|
+
/** @description Number of SMS clicked */
|
|
1050
|
+
smsClicked: number;
|
|
1051
|
+
/**
|
|
1052
|
+
* Format: date-time
|
|
1053
|
+
* @description Creation timestamp
|
|
1054
|
+
*/
|
|
1055
|
+
createdAt: string;
|
|
1056
|
+
/**
|
|
1057
|
+
* Format: date-time
|
|
1058
|
+
* @description Last update timestamp
|
|
1059
|
+
*/
|
|
1060
|
+
updatedAt: string;
|
|
1061
|
+
/** @description Topic IDs pending confirmation */
|
|
1062
|
+
pendingTopics?: string[];
|
|
1063
|
+
};
|
|
1064
|
+
"text/plain": {
|
|
1065
|
+
/** @description Contact ID */
|
|
1066
|
+
id: string;
|
|
1067
|
+
/** @description Email address */
|
|
1068
|
+
email: string | null;
|
|
1069
|
+
/** @description Phone number */
|
|
1070
|
+
phone: string | null;
|
|
1071
|
+
/** @description First name */
|
|
1072
|
+
firstName: string | null;
|
|
1073
|
+
/** @description Last name */
|
|
1074
|
+
lastName: string | null;
|
|
1075
|
+
/** @description Company name */
|
|
1076
|
+
company: string | null;
|
|
1077
|
+
/** @description Job title */
|
|
1078
|
+
jobTitle: string | null;
|
|
1079
|
+
/** @description Email subscription status */
|
|
1080
|
+
emailStatus: string | null;
|
|
1081
|
+
/** @description SMS subscription status */
|
|
1082
|
+
smsStatus: string | null;
|
|
1083
|
+
properties: {
|
|
1084
|
+
[key: string]: unknown;
|
|
1085
|
+
};
|
|
1086
|
+
/** @description Number of emails sent */
|
|
1087
|
+
emailsSent: number;
|
|
1088
|
+
/** @description Number of emails opened */
|
|
1089
|
+
emailsOpened: number;
|
|
1090
|
+
/** @description Number of emails clicked */
|
|
1091
|
+
emailsClicked: number;
|
|
1092
|
+
/** @description Number of SMS sent */
|
|
1093
|
+
smsSent: number;
|
|
1094
|
+
/** @description Number of SMS clicked */
|
|
1095
|
+
smsClicked: number;
|
|
1096
|
+
/**
|
|
1097
|
+
* Format: date-time
|
|
1098
|
+
* @description Creation timestamp
|
|
1099
|
+
*/
|
|
1100
|
+
createdAt: string;
|
|
1101
|
+
/**
|
|
1102
|
+
* Format: date-time
|
|
1103
|
+
* @description Last update timestamp
|
|
1104
|
+
*/
|
|
1105
|
+
updatedAt: string;
|
|
1106
|
+
/** @description Topic IDs pending confirmation */
|
|
1107
|
+
pendingTopics?: string[];
|
|
1108
|
+
};
|
|
1109
|
+
};
|
|
1110
|
+
};
|
|
1111
|
+
400: {
|
|
1112
|
+
headers: {
|
|
1113
|
+
[name: string]: unknown;
|
|
1114
|
+
};
|
|
1115
|
+
content: {
|
|
1116
|
+
"application/json": {
|
|
1117
|
+
/** @description Error message */
|
|
1118
|
+
error: string;
|
|
1119
|
+
};
|
|
1120
|
+
"multipart/form-data": {
|
|
1121
|
+
/** @description Error message */
|
|
1122
|
+
error: string;
|
|
1123
|
+
};
|
|
1124
|
+
"text/plain": {
|
|
1125
|
+
/** @description Error message */
|
|
1126
|
+
error: string;
|
|
1127
|
+
};
|
|
1128
|
+
};
|
|
1129
|
+
};
|
|
1130
|
+
409: {
|
|
1131
|
+
headers: {
|
|
1132
|
+
[name: string]: unknown;
|
|
1133
|
+
};
|
|
1134
|
+
content: {
|
|
1135
|
+
"application/json": {
|
|
1136
|
+
/** @description Error message */
|
|
1137
|
+
error: string;
|
|
1138
|
+
};
|
|
1139
|
+
"multipart/form-data": {
|
|
1140
|
+
/** @description Error message */
|
|
1141
|
+
error: string;
|
|
1142
|
+
};
|
|
1143
|
+
"text/plain": {
|
|
1144
|
+
/** @description Error message */
|
|
1145
|
+
error: string;
|
|
1146
|
+
};
|
|
1147
|
+
};
|
|
414
1148
|
};
|
|
415
1149
|
};
|
|
416
1150
|
};
|
|
@@ -424,12 +1158,15 @@ interface operations {
|
|
|
424
1158
|
requestBody: {
|
|
425
1159
|
content: {
|
|
426
1160
|
"application/json": {
|
|
1161
|
+
/** @description Contact IDs to delete (max 100) */
|
|
427
1162
|
ids: string[];
|
|
428
1163
|
};
|
|
429
1164
|
"multipart/form-data": {
|
|
1165
|
+
/** @description Contact IDs to delete (max 100) */
|
|
430
1166
|
ids: string[];
|
|
431
1167
|
};
|
|
432
1168
|
"text/plain": {
|
|
1169
|
+
/** @description Contact IDs to delete (max 100) */
|
|
433
1170
|
ids: string[];
|
|
434
1171
|
};
|
|
435
1172
|
};
|
|
@@ -439,7 +1176,42 @@ interface operations {
|
|
|
439
1176
|
headers: {
|
|
440
1177
|
[name: string]: unknown;
|
|
441
1178
|
};
|
|
442
|
-
content
|
|
1179
|
+
content: {
|
|
1180
|
+
"application/json": {
|
|
1181
|
+
success: boolean;
|
|
1182
|
+
/** @description Number of contacts deleted */
|
|
1183
|
+
deleted: number;
|
|
1184
|
+
};
|
|
1185
|
+
"multipart/form-data": {
|
|
1186
|
+
success: boolean;
|
|
1187
|
+
/** @description Number of contacts deleted */
|
|
1188
|
+
deleted: number;
|
|
1189
|
+
};
|
|
1190
|
+
"text/plain": {
|
|
1191
|
+
success: boolean;
|
|
1192
|
+
/** @description Number of contacts deleted */
|
|
1193
|
+
deleted: number;
|
|
1194
|
+
};
|
|
1195
|
+
};
|
|
1196
|
+
};
|
|
1197
|
+
400: {
|
|
1198
|
+
headers: {
|
|
1199
|
+
[name: string]: unknown;
|
|
1200
|
+
};
|
|
1201
|
+
content: {
|
|
1202
|
+
"application/json": {
|
|
1203
|
+
/** @description Error message */
|
|
1204
|
+
error: string;
|
|
1205
|
+
};
|
|
1206
|
+
"multipart/form-data": {
|
|
1207
|
+
/** @description Error message */
|
|
1208
|
+
error: string;
|
|
1209
|
+
};
|
|
1210
|
+
"text/plain": {
|
|
1211
|
+
/** @description Error message */
|
|
1212
|
+
error: string;
|
|
1213
|
+
};
|
|
1214
|
+
};
|
|
443
1215
|
};
|
|
444
1216
|
};
|
|
445
1217
|
};
|
|
@@ -448,6 +1220,7 @@ interface operations {
|
|
|
448
1220
|
query?: never;
|
|
449
1221
|
header?: never;
|
|
450
1222
|
path: {
|
|
1223
|
+
/** @description Contact ID */
|
|
451
1224
|
id: string;
|
|
452
1225
|
};
|
|
453
1226
|
cookie?: never;
|
|
@@ -458,7 +1231,174 @@ interface operations {
|
|
|
458
1231
|
headers: {
|
|
459
1232
|
[name: string]: unknown;
|
|
460
1233
|
};
|
|
461
|
-
content
|
|
1234
|
+
content: {
|
|
1235
|
+
"application/json": {
|
|
1236
|
+
/** @description Contact ID */
|
|
1237
|
+
id: string;
|
|
1238
|
+
/** @description Email address */
|
|
1239
|
+
email: string | null;
|
|
1240
|
+
/** @description Phone number */
|
|
1241
|
+
phone: string | null;
|
|
1242
|
+
/** @description First name */
|
|
1243
|
+
firstName: string | null;
|
|
1244
|
+
/** @description Last name */
|
|
1245
|
+
lastName: string | null;
|
|
1246
|
+
/** @description Company name */
|
|
1247
|
+
company: string | null;
|
|
1248
|
+
/** @description Job title */
|
|
1249
|
+
jobTitle: string | null;
|
|
1250
|
+
/** @description Email subscription status */
|
|
1251
|
+
emailStatus: string | null;
|
|
1252
|
+
/** @description SMS subscription status */
|
|
1253
|
+
smsStatus: string | null;
|
|
1254
|
+
properties: {
|
|
1255
|
+
[key: string]: unknown;
|
|
1256
|
+
};
|
|
1257
|
+
/** @description Number of emails sent */
|
|
1258
|
+
emailsSent: number;
|
|
1259
|
+
/** @description Number of emails opened */
|
|
1260
|
+
emailsOpened: number;
|
|
1261
|
+
/** @description Number of emails clicked */
|
|
1262
|
+
emailsClicked: number;
|
|
1263
|
+
/** @description Number of SMS sent */
|
|
1264
|
+
smsSent: number;
|
|
1265
|
+
/** @description Number of SMS clicked */
|
|
1266
|
+
smsClicked: number;
|
|
1267
|
+
/**
|
|
1268
|
+
* Format: date-time
|
|
1269
|
+
* @description Creation timestamp
|
|
1270
|
+
*/
|
|
1271
|
+
createdAt: string;
|
|
1272
|
+
/**
|
|
1273
|
+
* Format: date-time
|
|
1274
|
+
* @description Last update timestamp
|
|
1275
|
+
*/
|
|
1276
|
+
updatedAt: string;
|
|
1277
|
+
topics: {
|
|
1278
|
+
topicId: string;
|
|
1279
|
+
topicName: string;
|
|
1280
|
+
status: string;
|
|
1281
|
+
subscribedAt: string | null;
|
|
1282
|
+
}[];
|
|
1283
|
+
};
|
|
1284
|
+
"multipart/form-data": {
|
|
1285
|
+
/** @description Contact ID */
|
|
1286
|
+
id: string;
|
|
1287
|
+
/** @description Email address */
|
|
1288
|
+
email: string | null;
|
|
1289
|
+
/** @description Phone number */
|
|
1290
|
+
phone: string | null;
|
|
1291
|
+
/** @description First name */
|
|
1292
|
+
firstName: string | null;
|
|
1293
|
+
/** @description Last name */
|
|
1294
|
+
lastName: string | null;
|
|
1295
|
+
/** @description Company name */
|
|
1296
|
+
company: string | null;
|
|
1297
|
+
/** @description Job title */
|
|
1298
|
+
jobTitle: string | null;
|
|
1299
|
+
/** @description Email subscription status */
|
|
1300
|
+
emailStatus: string | null;
|
|
1301
|
+
/** @description SMS subscription status */
|
|
1302
|
+
smsStatus: string | null;
|
|
1303
|
+
properties: {
|
|
1304
|
+
[key: string]: unknown;
|
|
1305
|
+
};
|
|
1306
|
+
/** @description Number of emails sent */
|
|
1307
|
+
emailsSent: number;
|
|
1308
|
+
/** @description Number of emails opened */
|
|
1309
|
+
emailsOpened: number;
|
|
1310
|
+
/** @description Number of emails clicked */
|
|
1311
|
+
emailsClicked: number;
|
|
1312
|
+
/** @description Number of SMS sent */
|
|
1313
|
+
smsSent: number;
|
|
1314
|
+
/** @description Number of SMS clicked */
|
|
1315
|
+
smsClicked: number;
|
|
1316
|
+
/**
|
|
1317
|
+
* Format: date-time
|
|
1318
|
+
* @description Creation timestamp
|
|
1319
|
+
*/
|
|
1320
|
+
createdAt: string;
|
|
1321
|
+
/**
|
|
1322
|
+
* Format: date-time
|
|
1323
|
+
* @description Last update timestamp
|
|
1324
|
+
*/
|
|
1325
|
+
updatedAt: string;
|
|
1326
|
+
topics: {
|
|
1327
|
+
topicId: string;
|
|
1328
|
+
topicName: string;
|
|
1329
|
+
status: string;
|
|
1330
|
+
subscribedAt: string | null;
|
|
1331
|
+
}[];
|
|
1332
|
+
};
|
|
1333
|
+
"text/plain": {
|
|
1334
|
+
/** @description Contact ID */
|
|
1335
|
+
id: string;
|
|
1336
|
+
/** @description Email address */
|
|
1337
|
+
email: string | null;
|
|
1338
|
+
/** @description Phone number */
|
|
1339
|
+
phone: string | null;
|
|
1340
|
+
/** @description First name */
|
|
1341
|
+
firstName: string | null;
|
|
1342
|
+
/** @description Last name */
|
|
1343
|
+
lastName: string | null;
|
|
1344
|
+
/** @description Company name */
|
|
1345
|
+
company: string | null;
|
|
1346
|
+
/** @description Job title */
|
|
1347
|
+
jobTitle: string | null;
|
|
1348
|
+
/** @description Email subscription status */
|
|
1349
|
+
emailStatus: string | null;
|
|
1350
|
+
/** @description SMS subscription status */
|
|
1351
|
+
smsStatus: string | null;
|
|
1352
|
+
properties: {
|
|
1353
|
+
[key: string]: unknown;
|
|
1354
|
+
};
|
|
1355
|
+
/** @description Number of emails sent */
|
|
1356
|
+
emailsSent: number;
|
|
1357
|
+
/** @description Number of emails opened */
|
|
1358
|
+
emailsOpened: number;
|
|
1359
|
+
/** @description Number of emails clicked */
|
|
1360
|
+
emailsClicked: number;
|
|
1361
|
+
/** @description Number of SMS sent */
|
|
1362
|
+
smsSent: number;
|
|
1363
|
+
/** @description Number of SMS clicked */
|
|
1364
|
+
smsClicked: number;
|
|
1365
|
+
/**
|
|
1366
|
+
* Format: date-time
|
|
1367
|
+
* @description Creation timestamp
|
|
1368
|
+
*/
|
|
1369
|
+
createdAt: string;
|
|
1370
|
+
/**
|
|
1371
|
+
* Format: date-time
|
|
1372
|
+
* @description Last update timestamp
|
|
1373
|
+
*/
|
|
1374
|
+
updatedAt: string;
|
|
1375
|
+
topics: {
|
|
1376
|
+
topicId: string;
|
|
1377
|
+
topicName: string;
|
|
1378
|
+
status: string;
|
|
1379
|
+
subscribedAt: string | null;
|
|
1380
|
+
}[];
|
|
1381
|
+
};
|
|
1382
|
+
};
|
|
1383
|
+
};
|
|
1384
|
+
404: {
|
|
1385
|
+
headers: {
|
|
1386
|
+
[name: string]: unknown;
|
|
1387
|
+
};
|
|
1388
|
+
content: {
|
|
1389
|
+
"application/json": {
|
|
1390
|
+
/** @description Error message */
|
|
1391
|
+
error: string;
|
|
1392
|
+
};
|
|
1393
|
+
"multipart/form-data": {
|
|
1394
|
+
/** @description Error message */
|
|
1395
|
+
error: string;
|
|
1396
|
+
};
|
|
1397
|
+
"text/plain": {
|
|
1398
|
+
/** @description Error message */
|
|
1399
|
+
error: string;
|
|
1400
|
+
};
|
|
1401
|
+
};
|
|
462
1402
|
};
|
|
463
1403
|
};
|
|
464
1404
|
};
|
|
@@ -467,6 +1407,7 @@ interface operations {
|
|
|
467
1407
|
query?: never;
|
|
468
1408
|
header?: never;
|
|
469
1409
|
path: {
|
|
1410
|
+
/** @description Contact ID */
|
|
470
1411
|
id: string;
|
|
471
1412
|
};
|
|
472
1413
|
cookie?: never;
|
|
@@ -477,7 +1418,36 @@ interface operations {
|
|
|
477
1418
|
headers: {
|
|
478
1419
|
[name: string]: unknown;
|
|
479
1420
|
};
|
|
480
|
-
content
|
|
1421
|
+
content: {
|
|
1422
|
+
"application/json": {
|
|
1423
|
+
success: boolean;
|
|
1424
|
+
};
|
|
1425
|
+
"multipart/form-data": {
|
|
1426
|
+
success: boolean;
|
|
1427
|
+
};
|
|
1428
|
+
"text/plain": {
|
|
1429
|
+
success: boolean;
|
|
1430
|
+
};
|
|
1431
|
+
};
|
|
1432
|
+
};
|
|
1433
|
+
404: {
|
|
1434
|
+
headers: {
|
|
1435
|
+
[name: string]: unknown;
|
|
1436
|
+
};
|
|
1437
|
+
content: {
|
|
1438
|
+
"application/json": {
|
|
1439
|
+
/** @description Error message */
|
|
1440
|
+
error: string;
|
|
1441
|
+
};
|
|
1442
|
+
"multipart/form-data": {
|
|
1443
|
+
/** @description Error message */
|
|
1444
|
+
error: string;
|
|
1445
|
+
};
|
|
1446
|
+
"text/plain": {
|
|
1447
|
+
/** @description Error message */
|
|
1448
|
+
error: string;
|
|
1449
|
+
};
|
|
1450
|
+
};
|
|
481
1451
|
};
|
|
482
1452
|
};
|
|
483
1453
|
};
|
|
@@ -486,6 +1456,7 @@ interface operations {
|
|
|
486
1456
|
query?: never;
|
|
487
1457
|
header?: never;
|
|
488
1458
|
path: {
|
|
1459
|
+
/** @description Contact ID */
|
|
489
1460
|
id: string;
|
|
490
1461
|
};
|
|
491
1462
|
cookie?: never;
|
|
@@ -493,48 +1464,81 @@ interface operations {
|
|
|
493
1464
|
requestBody: {
|
|
494
1465
|
content: {
|
|
495
1466
|
"application/json": {
|
|
1467
|
+
/** @description Email address */
|
|
496
1468
|
email?: string;
|
|
1469
|
+
/** @description Phone number */
|
|
497
1470
|
phone?: string;
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
1471
|
+
/** @description First name */
|
|
1472
|
+
firstName?: string | null;
|
|
1473
|
+
/** @description Last name */
|
|
1474
|
+
lastName?: string | null;
|
|
1475
|
+
/** @description Company name */
|
|
1476
|
+
company?: string | null;
|
|
1477
|
+
/** @description Job title */
|
|
1478
|
+
jobTitle?: string | null;
|
|
1479
|
+
/** @description Email subscription status */
|
|
502
1480
|
emailStatus?: "active" | "unsubscribed" | "bounced" | "complained";
|
|
1481
|
+
/** @description SMS consent status */
|
|
503
1482
|
smsStatus?: "pending_consent" | "opted_in" | "opted_out" | "invalid";
|
|
1483
|
+
/** @description Custom properties */
|
|
504
1484
|
properties?: {
|
|
505
1485
|
[key: string]: unknown;
|
|
506
1486
|
};
|
|
1487
|
+
/** @description Topic IDs to subscribe */
|
|
507
1488
|
topicIds?: string[];
|
|
1489
|
+
/** @description Topic slugs to subscribe */
|
|
508
1490
|
topicSlugs?: string[];
|
|
509
1491
|
};
|
|
510
1492
|
"multipart/form-data": {
|
|
1493
|
+
/** @description Email address */
|
|
511
1494
|
email?: string;
|
|
1495
|
+
/** @description Phone number */
|
|
512
1496
|
phone?: string;
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
1497
|
+
/** @description First name */
|
|
1498
|
+
firstName?: string | null;
|
|
1499
|
+
/** @description Last name */
|
|
1500
|
+
lastName?: string | null;
|
|
1501
|
+
/** @description Company name */
|
|
1502
|
+
company?: string | null;
|
|
1503
|
+
/** @description Job title */
|
|
1504
|
+
jobTitle?: string | null;
|
|
1505
|
+
/** @description Email subscription status */
|
|
517
1506
|
emailStatus?: "active" | "unsubscribed" | "bounced" | "complained";
|
|
1507
|
+
/** @description SMS consent status */
|
|
518
1508
|
smsStatus?: "pending_consent" | "opted_in" | "opted_out" | "invalid";
|
|
1509
|
+
/** @description Custom properties */
|
|
519
1510
|
properties?: {
|
|
520
1511
|
[key: string]: unknown;
|
|
521
1512
|
};
|
|
1513
|
+
/** @description Topic IDs to subscribe */
|
|
522
1514
|
topicIds?: string[];
|
|
1515
|
+
/** @description Topic slugs to subscribe */
|
|
523
1516
|
topicSlugs?: string[];
|
|
524
1517
|
};
|
|
525
1518
|
"text/plain": {
|
|
1519
|
+
/** @description Email address */
|
|
526
1520
|
email?: string;
|
|
1521
|
+
/** @description Phone number */
|
|
527
1522
|
phone?: string;
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
1523
|
+
/** @description First name */
|
|
1524
|
+
firstName?: string | null;
|
|
1525
|
+
/** @description Last name */
|
|
1526
|
+
lastName?: string | null;
|
|
1527
|
+
/** @description Company name */
|
|
1528
|
+
company?: string | null;
|
|
1529
|
+
/** @description Job title */
|
|
1530
|
+
jobTitle?: string | null;
|
|
1531
|
+
/** @description Email subscription status */
|
|
532
1532
|
emailStatus?: "active" | "unsubscribed" | "bounced" | "complained";
|
|
1533
|
+
/** @description SMS consent status */
|
|
533
1534
|
smsStatus?: "pending_consent" | "opted_in" | "opted_out" | "invalid";
|
|
1535
|
+
/** @description Custom properties */
|
|
534
1536
|
properties?: {
|
|
535
1537
|
[key: string]: unknown;
|
|
536
1538
|
};
|
|
1539
|
+
/** @description Topic IDs to subscribe */
|
|
537
1540
|
topicIds?: string[];
|
|
1541
|
+
/** @description Topic slugs to subscribe */
|
|
538
1542
|
topicSlugs?: string[];
|
|
539
1543
|
};
|
|
540
1544
|
};
|
|
@@ -544,7 +1548,162 @@ interface operations {
|
|
|
544
1548
|
headers: {
|
|
545
1549
|
[name: string]: unknown;
|
|
546
1550
|
};
|
|
547
|
-
content
|
|
1551
|
+
content: {
|
|
1552
|
+
"application/json": {
|
|
1553
|
+
/** @description Contact ID */
|
|
1554
|
+
id: string;
|
|
1555
|
+
/** @description Email address */
|
|
1556
|
+
email: string | null;
|
|
1557
|
+
/** @description Phone number */
|
|
1558
|
+
phone: string | null;
|
|
1559
|
+
/** @description First name */
|
|
1560
|
+
firstName: string | null;
|
|
1561
|
+
/** @description Last name */
|
|
1562
|
+
lastName: string | null;
|
|
1563
|
+
/** @description Company name */
|
|
1564
|
+
company: string | null;
|
|
1565
|
+
/** @description Job title */
|
|
1566
|
+
jobTitle: string | null;
|
|
1567
|
+
/** @description Email subscription status */
|
|
1568
|
+
emailStatus: string | null;
|
|
1569
|
+
/** @description SMS subscription status */
|
|
1570
|
+
smsStatus: string | null;
|
|
1571
|
+
properties: {
|
|
1572
|
+
[key: string]: unknown;
|
|
1573
|
+
};
|
|
1574
|
+
/** @description Number of emails sent */
|
|
1575
|
+
emailsSent: number;
|
|
1576
|
+
/** @description Number of emails opened */
|
|
1577
|
+
emailsOpened: number;
|
|
1578
|
+
/** @description Number of emails clicked */
|
|
1579
|
+
emailsClicked: number;
|
|
1580
|
+
/** @description Number of SMS sent */
|
|
1581
|
+
smsSent: number;
|
|
1582
|
+
/** @description Number of SMS clicked */
|
|
1583
|
+
smsClicked: number;
|
|
1584
|
+
/**
|
|
1585
|
+
* Format: date-time
|
|
1586
|
+
* @description Creation timestamp
|
|
1587
|
+
*/
|
|
1588
|
+
createdAt: string;
|
|
1589
|
+
/**
|
|
1590
|
+
* Format: date-time
|
|
1591
|
+
* @description Last update timestamp
|
|
1592
|
+
*/
|
|
1593
|
+
updatedAt: string;
|
|
1594
|
+
/** @description Topic IDs pending confirmation */
|
|
1595
|
+
pendingTopics?: string[];
|
|
1596
|
+
};
|
|
1597
|
+
"multipart/form-data": {
|
|
1598
|
+
/** @description Contact ID */
|
|
1599
|
+
id: string;
|
|
1600
|
+
/** @description Email address */
|
|
1601
|
+
email: string | null;
|
|
1602
|
+
/** @description Phone number */
|
|
1603
|
+
phone: string | null;
|
|
1604
|
+
/** @description First name */
|
|
1605
|
+
firstName: string | null;
|
|
1606
|
+
/** @description Last name */
|
|
1607
|
+
lastName: string | null;
|
|
1608
|
+
/** @description Company name */
|
|
1609
|
+
company: string | null;
|
|
1610
|
+
/** @description Job title */
|
|
1611
|
+
jobTitle: string | null;
|
|
1612
|
+
/** @description Email subscription status */
|
|
1613
|
+
emailStatus: string | null;
|
|
1614
|
+
/** @description SMS subscription status */
|
|
1615
|
+
smsStatus: string | null;
|
|
1616
|
+
properties: {
|
|
1617
|
+
[key: string]: unknown;
|
|
1618
|
+
};
|
|
1619
|
+
/** @description Number of emails sent */
|
|
1620
|
+
emailsSent: number;
|
|
1621
|
+
/** @description Number of emails opened */
|
|
1622
|
+
emailsOpened: number;
|
|
1623
|
+
/** @description Number of emails clicked */
|
|
1624
|
+
emailsClicked: number;
|
|
1625
|
+
/** @description Number of SMS sent */
|
|
1626
|
+
smsSent: number;
|
|
1627
|
+
/** @description Number of SMS clicked */
|
|
1628
|
+
smsClicked: number;
|
|
1629
|
+
/**
|
|
1630
|
+
* Format: date-time
|
|
1631
|
+
* @description Creation timestamp
|
|
1632
|
+
*/
|
|
1633
|
+
createdAt: string;
|
|
1634
|
+
/**
|
|
1635
|
+
* Format: date-time
|
|
1636
|
+
* @description Last update timestamp
|
|
1637
|
+
*/
|
|
1638
|
+
updatedAt: string;
|
|
1639
|
+
/** @description Topic IDs pending confirmation */
|
|
1640
|
+
pendingTopics?: string[];
|
|
1641
|
+
};
|
|
1642
|
+
"text/plain": {
|
|
1643
|
+
/** @description Contact ID */
|
|
1644
|
+
id: string;
|
|
1645
|
+
/** @description Email address */
|
|
1646
|
+
email: string | null;
|
|
1647
|
+
/** @description Phone number */
|
|
1648
|
+
phone: string | null;
|
|
1649
|
+
/** @description First name */
|
|
1650
|
+
firstName: string | null;
|
|
1651
|
+
/** @description Last name */
|
|
1652
|
+
lastName: string | null;
|
|
1653
|
+
/** @description Company name */
|
|
1654
|
+
company: string | null;
|
|
1655
|
+
/** @description Job title */
|
|
1656
|
+
jobTitle: string | null;
|
|
1657
|
+
/** @description Email subscription status */
|
|
1658
|
+
emailStatus: string | null;
|
|
1659
|
+
/** @description SMS subscription status */
|
|
1660
|
+
smsStatus: string | null;
|
|
1661
|
+
properties: {
|
|
1662
|
+
[key: string]: unknown;
|
|
1663
|
+
};
|
|
1664
|
+
/** @description Number of emails sent */
|
|
1665
|
+
emailsSent: number;
|
|
1666
|
+
/** @description Number of emails opened */
|
|
1667
|
+
emailsOpened: number;
|
|
1668
|
+
/** @description Number of emails clicked */
|
|
1669
|
+
emailsClicked: number;
|
|
1670
|
+
/** @description Number of SMS sent */
|
|
1671
|
+
smsSent: number;
|
|
1672
|
+
/** @description Number of SMS clicked */
|
|
1673
|
+
smsClicked: number;
|
|
1674
|
+
/**
|
|
1675
|
+
* Format: date-time
|
|
1676
|
+
* @description Creation timestamp
|
|
1677
|
+
*/
|
|
1678
|
+
createdAt: string;
|
|
1679
|
+
/**
|
|
1680
|
+
* Format: date-time
|
|
1681
|
+
* @description Last update timestamp
|
|
1682
|
+
*/
|
|
1683
|
+
updatedAt: string;
|
|
1684
|
+
/** @description Topic IDs pending confirmation */
|
|
1685
|
+
pendingTopics?: string[];
|
|
1686
|
+
};
|
|
1687
|
+
};
|
|
1688
|
+
};
|
|
1689
|
+
404: {
|
|
1690
|
+
headers: {
|
|
1691
|
+
[name: string]: unknown;
|
|
1692
|
+
};
|
|
1693
|
+
content: {
|
|
1694
|
+
"application/json": {
|
|
1695
|
+
/** @description Error message */
|
|
1696
|
+
error: string;
|
|
1697
|
+
};
|
|
1698
|
+
"multipart/form-data": {
|
|
1699
|
+
/** @description Error message */
|
|
1700
|
+
error: string;
|
|
1701
|
+
};
|
|
1702
|
+
"text/plain": {
|
|
1703
|
+
/** @description Error message */
|
|
1704
|
+
error: string;
|
|
1705
|
+
};
|
|
1706
|
+
};
|
|
548
1707
|
};
|
|
549
1708
|
};
|
|
550
1709
|
};
|
|
@@ -553,6 +1712,7 @@ interface operations {
|
|
|
553
1712
|
query?: never;
|
|
554
1713
|
header?: never;
|
|
555
1714
|
path: {
|
|
1715
|
+
/** @description Contact ID */
|
|
556
1716
|
id: string;
|
|
557
1717
|
};
|
|
558
1718
|
cookie?: never;
|
|
@@ -560,15 +1720,21 @@ interface operations {
|
|
|
560
1720
|
requestBody: {
|
|
561
1721
|
content: {
|
|
562
1722
|
"application/json": {
|
|
1723
|
+
/** @description Topic IDs to subscribe */
|
|
563
1724
|
topicIds?: string[];
|
|
1725
|
+
/** @description Topic slugs to subscribe */
|
|
564
1726
|
topicSlugs?: string[];
|
|
565
1727
|
};
|
|
566
1728
|
"multipart/form-data": {
|
|
1729
|
+
/** @description Topic IDs to subscribe */
|
|
567
1730
|
topicIds?: string[];
|
|
1731
|
+
/** @description Topic slugs to subscribe */
|
|
568
1732
|
topicSlugs?: string[];
|
|
569
1733
|
};
|
|
570
1734
|
"text/plain": {
|
|
1735
|
+
/** @description Topic IDs to subscribe */
|
|
571
1736
|
topicIds?: string[];
|
|
1737
|
+
/** @description Topic slugs to subscribe */
|
|
572
1738
|
topicSlugs?: string[];
|
|
573
1739
|
};
|
|
574
1740
|
};
|
|
@@ -578,7 +1744,54 @@ interface operations {
|
|
|
578
1744
|
headers: {
|
|
579
1745
|
[name: string]: unknown;
|
|
580
1746
|
};
|
|
581
|
-
content
|
|
1747
|
+
content: {
|
|
1748
|
+
"application/json": {
|
|
1749
|
+
topics: {
|
|
1750
|
+
topicId: string;
|
|
1751
|
+
topicName: string;
|
|
1752
|
+
status: string;
|
|
1753
|
+
subscribedAt: string | null;
|
|
1754
|
+
}[];
|
|
1755
|
+
pendingTopics?: string[];
|
|
1756
|
+
};
|
|
1757
|
+
"multipart/form-data": {
|
|
1758
|
+
topics: {
|
|
1759
|
+
topicId: string;
|
|
1760
|
+
topicName: string;
|
|
1761
|
+
status: string;
|
|
1762
|
+
subscribedAt: string | null;
|
|
1763
|
+
}[];
|
|
1764
|
+
pendingTopics?: string[];
|
|
1765
|
+
};
|
|
1766
|
+
"text/plain": {
|
|
1767
|
+
topics: {
|
|
1768
|
+
topicId: string;
|
|
1769
|
+
topicName: string;
|
|
1770
|
+
status: string;
|
|
1771
|
+
subscribedAt: string | null;
|
|
1772
|
+
}[];
|
|
1773
|
+
pendingTopics?: string[];
|
|
1774
|
+
};
|
|
1775
|
+
};
|
|
1776
|
+
};
|
|
1777
|
+
404: {
|
|
1778
|
+
headers: {
|
|
1779
|
+
[name: string]: unknown;
|
|
1780
|
+
};
|
|
1781
|
+
content: {
|
|
1782
|
+
"application/json": {
|
|
1783
|
+
/** @description Error message */
|
|
1784
|
+
error: string;
|
|
1785
|
+
};
|
|
1786
|
+
"multipart/form-data": {
|
|
1787
|
+
/** @description Error message */
|
|
1788
|
+
error: string;
|
|
1789
|
+
};
|
|
1790
|
+
"text/plain": {
|
|
1791
|
+
/** @description Error message */
|
|
1792
|
+
error: string;
|
|
1793
|
+
};
|
|
1794
|
+
};
|
|
582
1795
|
};
|
|
583
1796
|
};
|
|
584
1797
|
};
|
|
@@ -592,60 +1805,120 @@ interface operations {
|
|
|
592
1805
|
requestBody: {
|
|
593
1806
|
content: {
|
|
594
1807
|
"application/json": {
|
|
1808
|
+
/** @description Channel to send through */
|
|
595
1809
|
channel?: "email" | "sms";
|
|
1810
|
+
/** @description Name for the batch send */
|
|
596
1811
|
name?: string;
|
|
1812
|
+
/** @description Audience targeting type */
|
|
597
1813
|
audienceType?: "all" | "topic" | "segment";
|
|
1814
|
+
/** @description Topic ID to target */
|
|
598
1815
|
topicId?: string;
|
|
1816
|
+
/** @description Segment ID to target */
|
|
599
1817
|
segmentId?: string;
|
|
1818
|
+
/** @description Email subject line */
|
|
600
1819
|
subject?: string;
|
|
1820
|
+
/** @description Email preview text */
|
|
601
1821
|
previewText?: string;
|
|
1822
|
+
/** @description From email address */
|
|
602
1823
|
from?: string;
|
|
1824
|
+
/** @description From display name */
|
|
603
1825
|
fromName?: string;
|
|
1826
|
+
/** @description Reply-to email address */
|
|
604
1827
|
replyTo?: string;
|
|
1828
|
+
/** @description Email template ID */
|
|
605
1829
|
templateId?: string;
|
|
1830
|
+
/** @description Raw HTML content (if not using template) */
|
|
606
1831
|
htmlContent?: string;
|
|
1832
|
+
/** @description SMS body text */
|
|
607
1833
|
body?: string;
|
|
1834
|
+
/** @description SMS sender ID */
|
|
608
1835
|
senderId?: string;
|
|
1836
|
+
/**
|
|
1837
|
+
* Format: date-time
|
|
1838
|
+
* @description ISO 8601 datetime for scheduled send
|
|
1839
|
+
*/
|
|
609
1840
|
scheduledFor?: string;
|
|
1841
|
+
/** @description AWS account ID to use for sending */
|
|
610
1842
|
awsAccountId: string;
|
|
1843
|
+
/** @description Pre-counted recipient count */
|
|
611
1844
|
totalRecipients?: number;
|
|
612
1845
|
};
|
|
613
1846
|
"multipart/form-data": {
|
|
1847
|
+
/** @description Channel to send through */
|
|
614
1848
|
channel?: "email" | "sms";
|
|
1849
|
+
/** @description Name for the batch send */
|
|
615
1850
|
name?: string;
|
|
1851
|
+
/** @description Audience targeting type */
|
|
616
1852
|
audienceType?: "all" | "topic" | "segment";
|
|
1853
|
+
/** @description Topic ID to target */
|
|
617
1854
|
topicId?: string;
|
|
1855
|
+
/** @description Segment ID to target */
|
|
618
1856
|
segmentId?: string;
|
|
1857
|
+
/** @description Email subject line */
|
|
619
1858
|
subject?: string;
|
|
1859
|
+
/** @description Email preview text */
|
|
620
1860
|
previewText?: string;
|
|
1861
|
+
/** @description From email address */
|
|
621
1862
|
from?: string;
|
|
1863
|
+
/** @description From display name */
|
|
622
1864
|
fromName?: string;
|
|
1865
|
+
/** @description Reply-to email address */
|
|
623
1866
|
replyTo?: string;
|
|
1867
|
+
/** @description Email template ID */
|
|
624
1868
|
templateId?: string;
|
|
1869
|
+
/** @description Raw HTML content (if not using template) */
|
|
625
1870
|
htmlContent?: string;
|
|
1871
|
+
/** @description SMS body text */
|
|
626
1872
|
body?: string;
|
|
1873
|
+
/** @description SMS sender ID */
|
|
627
1874
|
senderId?: string;
|
|
1875
|
+
/**
|
|
1876
|
+
* Format: date-time
|
|
1877
|
+
* @description ISO 8601 datetime for scheduled send
|
|
1878
|
+
*/
|
|
628
1879
|
scheduledFor?: string;
|
|
1880
|
+
/** @description AWS account ID to use for sending */
|
|
629
1881
|
awsAccountId: string;
|
|
1882
|
+
/** @description Pre-counted recipient count */
|
|
630
1883
|
totalRecipients?: number;
|
|
631
1884
|
};
|
|
632
1885
|
"text/plain": {
|
|
1886
|
+
/** @description Channel to send through */
|
|
633
1887
|
channel?: "email" | "sms";
|
|
1888
|
+
/** @description Name for the batch send */
|
|
634
1889
|
name?: string;
|
|
1890
|
+
/** @description Audience targeting type */
|
|
635
1891
|
audienceType?: "all" | "topic" | "segment";
|
|
1892
|
+
/** @description Topic ID to target */
|
|
636
1893
|
topicId?: string;
|
|
1894
|
+
/** @description Segment ID to target */
|
|
637
1895
|
segmentId?: string;
|
|
1896
|
+
/** @description Email subject line */
|
|
638
1897
|
subject?: string;
|
|
1898
|
+
/** @description Email preview text */
|
|
639
1899
|
previewText?: string;
|
|
1900
|
+
/** @description From email address */
|
|
640
1901
|
from?: string;
|
|
1902
|
+
/** @description From display name */
|
|
641
1903
|
fromName?: string;
|
|
1904
|
+
/** @description Reply-to email address */
|
|
642
1905
|
replyTo?: string;
|
|
1906
|
+
/** @description Email template ID */
|
|
643
1907
|
templateId?: string;
|
|
1908
|
+
/** @description Raw HTML content (if not using template) */
|
|
644
1909
|
htmlContent?: string;
|
|
1910
|
+
/** @description SMS body text */
|
|
645
1911
|
body?: string;
|
|
1912
|
+
/** @description SMS sender ID */
|
|
646
1913
|
senderId?: string;
|
|
1914
|
+
/**
|
|
1915
|
+
* Format: date-time
|
|
1916
|
+
* @description ISO 8601 datetime for scheduled send
|
|
1917
|
+
*/
|
|
647
1918
|
scheduledFor?: string;
|
|
1919
|
+
/** @description AWS account ID to use for sending */
|
|
648
1920
|
awsAccountId: string;
|
|
1921
|
+
/** @description Pre-counted recipient count */
|
|
649
1922
|
totalRecipients?: number;
|
|
650
1923
|
};
|
|
651
1924
|
};
|
|
@@ -657,24 +1930,48 @@ interface operations {
|
|
|
657
1930
|
};
|
|
658
1931
|
content: {
|
|
659
1932
|
"application/json": {
|
|
1933
|
+
/** @description Batch ID */
|
|
660
1934
|
id: string;
|
|
1935
|
+
/** @description Batch status (queued, scheduled, processing, completed, failed, cancelled) */
|
|
661
1936
|
status: string;
|
|
1937
|
+
/** @description Channel (email or sms) */
|
|
662
1938
|
channel: string;
|
|
1939
|
+
/** @description Total number of recipients */
|
|
663
1940
|
totalRecipients: number;
|
|
1941
|
+
/**
|
|
1942
|
+
* Format: date-time
|
|
1943
|
+
* @description Creation timestamp
|
|
1944
|
+
*/
|
|
664
1945
|
createdAt: string;
|
|
665
1946
|
};
|
|
666
1947
|
"multipart/form-data": {
|
|
1948
|
+
/** @description Batch ID */
|
|
667
1949
|
id: string;
|
|
1950
|
+
/** @description Batch status (queued, scheduled, processing, completed, failed, cancelled) */
|
|
668
1951
|
status: string;
|
|
1952
|
+
/** @description Channel (email or sms) */
|
|
669
1953
|
channel: string;
|
|
1954
|
+
/** @description Total number of recipients */
|
|
670
1955
|
totalRecipients: number;
|
|
1956
|
+
/**
|
|
1957
|
+
* Format: date-time
|
|
1958
|
+
* @description Creation timestamp
|
|
1959
|
+
*/
|
|
671
1960
|
createdAt: string;
|
|
672
1961
|
};
|
|
673
1962
|
"text/plain": {
|
|
1963
|
+
/** @description Batch ID */
|
|
674
1964
|
id: string;
|
|
1965
|
+
/** @description Batch status (queued, scheduled, processing, completed, failed, cancelled) */
|
|
675
1966
|
status: string;
|
|
1967
|
+
/** @description Channel (email or sms) */
|
|
676
1968
|
channel: string;
|
|
1969
|
+
/** @description Total number of recipients */
|
|
677
1970
|
totalRecipients: number;
|
|
1971
|
+
/**
|
|
1972
|
+
* Format: date-time
|
|
1973
|
+
* @description Creation timestamp
|
|
1974
|
+
*/
|
|
678
1975
|
createdAt: string;
|
|
679
1976
|
};
|
|
680
1977
|
};
|
|
@@ -686,6 +1983,7 @@ interface operations {
|
|
|
686
1983
|
query?: never;
|
|
687
1984
|
header?: never;
|
|
688
1985
|
path: {
|
|
1986
|
+
/** @description Batch ID */
|
|
689
1987
|
id: string;
|
|
690
1988
|
};
|
|
691
1989
|
cookie?: never;
|
|
@@ -696,7 +1994,47 @@ interface operations {
|
|
|
696
1994
|
headers: {
|
|
697
1995
|
[name: string]: unknown;
|
|
698
1996
|
};
|
|
699
|
-
content
|
|
1997
|
+
content: {
|
|
1998
|
+
"application/json": {
|
|
1999
|
+
id: string;
|
|
2000
|
+
status: string;
|
|
2001
|
+
channel: string;
|
|
2002
|
+
name: string | null;
|
|
2003
|
+
totalRecipients: number;
|
|
2004
|
+
processedRecipients: number;
|
|
2005
|
+
sent: number;
|
|
2006
|
+
failed: number;
|
|
2007
|
+
startedAt: string | null;
|
|
2008
|
+
completedAt: string | null;
|
|
2009
|
+
createdAt: string;
|
|
2010
|
+
};
|
|
2011
|
+
"multipart/form-data": {
|
|
2012
|
+
id: string;
|
|
2013
|
+
status: string;
|
|
2014
|
+
channel: string;
|
|
2015
|
+
name: string | null;
|
|
2016
|
+
totalRecipients: number;
|
|
2017
|
+
processedRecipients: number;
|
|
2018
|
+
sent: number;
|
|
2019
|
+
failed: number;
|
|
2020
|
+
startedAt: string | null;
|
|
2021
|
+
completedAt: string | null;
|
|
2022
|
+
createdAt: string;
|
|
2023
|
+
};
|
|
2024
|
+
"text/plain": {
|
|
2025
|
+
id: string;
|
|
2026
|
+
status: string;
|
|
2027
|
+
channel: string;
|
|
2028
|
+
name: string | null;
|
|
2029
|
+
totalRecipients: number;
|
|
2030
|
+
processedRecipients: number;
|
|
2031
|
+
sent: number;
|
|
2032
|
+
failed: number;
|
|
2033
|
+
startedAt: string | null;
|
|
2034
|
+
completedAt: string | null;
|
|
2035
|
+
createdAt: string;
|
|
2036
|
+
};
|
|
2037
|
+
};
|
|
700
2038
|
};
|
|
701
2039
|
};
|
|
702
2040
|
};
|
|
@@ -705,6 +2043,7 @@ interface operations {
|
|
|
705
2043
|
query?: never;
|
|
706
2044
|
header?: never;
|
|
707
2045
|
path: {
|
|
2046
|
+
/** @description Batch ID to cancel */
|
|
708
2047
|
id: string;
|
|
709
2048
|
};
|
|
710
2049
|
cookie?: never;
|
|
@@ -787,7 +2126,51 @@ interface operations {
|
|
|
787
2126
|
headers: {
|
|
788
2127
|
[name: string]: unknown;
|
|
789
2128
|
};
|
|
790
|
-
content
|
|
2129
|
+
content: {
|
|
2130
|
+
"application/json": {
|
|
2131
|
+
success: boolean;
|
|
2132
|
+
/** @description Number of workflows triggered */
|
|
2133
|
+
workflowsTriggered: number;
|
|
2134
|
+
/** @description Number of executions resumed */
|
|
2135
|
+
executionsResumed: number;
|
|
2136
|
+
};
|
|
2137
|
+
"multipart/form-data": {
|
|
2138
|
+
success: boolean;
|
|
2139
|
+
/** @description Number of workflows triggered */
|
|
2140
|
+
workflowsTriggered: number;
|
|
2141
|
+
/** @description Number of executions resumed */
|
|
2142
|
+
executionsResumed: number;
|
|
2143
|
+
};
|
|
2144
|
+
"text/plain": {
|
|
2145
|
+
success: boolean;
|
|
2146
|
+
/** @description Number of workflows triggered */
|
|
2147
|
+
workflowsTriggered: number;
|
|
2148
|
+
/** @description Number of executions resumed */
|
|
2149
|
+
executionsResumed: number;
|
|
2150
|
+
};
|
|
2151
|
+
};
|
|
2152
|
+
};
|
|
2153
|
+
400: {
|
|
2154
|
+
headers: {
|
|
2155
|
+
[name: string]: unknown;
|
|
2156
|
+
};
|
|
2157
|
+
content: {
|
|
2158
|
+
"application/json": {
|
|
2159
|
+
/** @constant */
|
|
2160
|
+
success: false;
|
|
2161
|
+
error: string;
|
|
2162
|
+
};
|
|
2163
|
+
"multipart/form-data": {
|
|
2164
|
+
/** @constant */
|
|
2165
|
+
success: false;
|
|
2166
|
+
error: string;
|
|
2167
|
+
};
|
|
2168
|
+
"text/plain": {
|
|
2169
|
+
/** @constant */
|
|
2170
|
+
success: false;
|
|
2171
|
+
error: string;
|
|
2172
|
+
};
|
|
2173
|
+
};
|
|
791
2174
|
};
|
|
792
2175
|
};
|
|
793
2176
|
};
|
|
@@ -801,6 +2184,7 @@ interface operations {
|
|
|
801
2184
|
requestBody: {
|
|
802
2185
|
content: {
|
|
803
2186
|
"application/json": {
|
|
2187
|
+
/** @description List of events to process */
|
|
804
2188
|
events: {
|
|
805
2189
|
name: string;
|
|
806
2190
|
contactId?: string;
|
|
@@ -811,6 +2195,7 @@ interface operations {
|
|
|
811
2195
|
}[];
|
|
812
2196
|
};
|
|
813
2197
|
"multipart/form-data": {
|
|
2198
|
+
/** @description List of events to process */
|
|
814
2199
|
events: {
|
|
815
2200
|
name: string;
|
|
816
2201
|
contactId?: string;
|
|
@@ -821,6 +2206,7 @@ interface operations {
|
|
|
821
2206
|
}[];
|
|
822
2207
|
};
|
|
823
2208
|
"text/plain": {
|
|
2209
|
+
/** @description List of events to process */
|
|
824
2210
|
events: {
|
|
825
2211
|
name: string;
|
|
826
2212
|
contactId?: string;
|
|
@@ -837,7 +2223,41 @@ interface operations {
|
|
|
837
2223
|
headers: {
|
|
838
2224
|
[name: string]: unknown;
|
|
839
2225
|
};
|
|
840
|
-
content
|
|
2226
|
+
content: {
|
|
2227
|
+
"application/json": {
|
|
2228
|
+
success: boolean;
|
|
2229
|
+
/** @description Number of events processed */
|
|
2230
|
+
processed: number;
|
|
2231
|
+
/** @description Total workflows triggered */
|
|
2232
|
+
workflowsTriggered: number;
|
|
2233
|
+
/** @description Total executions resumed */
|
|
2234
|
+
executionsResumed: number;
|
|
2235
|
+
/** @description Error messages if any */
|
|
2236
|
+
errors: string[];
|
|
2237
|
+
};
|
|
2238
|
+
"multipart/form-data": {
|
|
2239
|
+
success: boolean;
|
|
2240
|
+
/** @description Number of events processed */
|
|
2241
|
+
processed: number;
|
|
2242
|
+
/** @description Total workflows triggered */
|
|
2243
|
+
workflowsTriggered: number;
|
|
2244
|
+
/** @description Total executions resumed */
|
|
2245
|
+
executionsResumed: number;
|
|
2246
|
+
/** @description Error messages if any */
|
|
2247
|
+
errors: string[];
|
|
2248
|
+
};
|
|
2249
|
+
"text/plain": {
|
|
2250
|
+
success: boolean;
|
|
2251
|
+
/** @description Number of events processed */
|
|
2252
|
+
processed: number;
|
|
2253
|
+
/** @description Total workflows triggered */
|
|
2254
|
+
workflowsTriggered: number;
|
|
2255
|
+
/** @description Total executions resumed */
|
|
2256
|
+
executionsResumed: number;
|
|
2257
|
+
/** @description Error messages if any */
|
|
2258
|
+
errors: string[];
|
|
2259
|
+
};
|
|
2260
|
+
};
|
|
841
2261
|
};
|
|
842
2262
|
};
|
|
843
2263
|
};
|
|
@@ -858,7 +2278,7 @@ interface operations {
|
|
|
858
2278
|
contactId?: string;
|
|
859
2279
|
/** @description Contact email (alternative to contactId) */
|
|
860
2280
|
contactEmail?: string;
|
|
861
|
-
/** @description Data to pass to the workflow
|
|
2281
|
+
/** @description Data to pass to the workflow */
|
|
862
2282
|
data?: {
|
|
863
2283
|
[key: string]: unknown;
|
|
864
2284
|
};
|
|
@@ -868,7 +2288,7 @@ interface operations {
|
|
|
868
2288
|
contactId?: string;
|
|
869
2289
|
/** @description Contact email (alternative to contactId) */
|
|
870
2290
|
contactEmail?: string;
|
|
871
|
-
/** @description Data to pass to the workflow
|
|
2291
|
+
/** @description Data to pass to the workflow */
|
|
872
2292
|
data?: {
|
|
873
2293
|
[key: string]: unknown;
|
|
874
2294
|
};
|
|
@@ -878,7 +2298,7 @@ interface operations {
|
|
|
878
2298
|
contactId?: string;
|
|
879
2299
|
/** @description Contact email (alternative to contactId) */
|
|
880
2300
|
contactEmail?: string;
|
|
881
|
-
/** @description Data to pass to the workflow
|
|
2301
|
+
/** @description Data to pass to the workflow */
|
|
882
2302
|
data?: {
|
|
883
2303
|
[key: string]: unknown;
|
|
884
2304
|
};
|
|
@@ -890,7 +2310,32 @@ interface operations {
|
|
|
890
2310
|
headers: {
|
|
891
2311
|
[name: string]: unknown;
|
|
892
2312
|
};
|
|
893
|
-
content
|
|
2313
|
+
content: {
|
|
2314
|
+
"application/json": {
|
|
2315
|
+
success: boolean;
|
|
2316
|
+
message?: string;
|
|
2317
|
+
workflowId?: string;
|
|
2318
|
+
workflowName?: string;
|
|
2319
|
+
contactId?: string;
|
|
2320
|
+
error?: string;
|
|
2321
|
+
};
|
|
2322
|
+
"multipart/form-data": {
|
|
2323
|
+
success: boolean;
|
|
2324
|
+
message?: string;
|
|
2325
|
+
workflowId?: string;
|
|
2326
|
+
workflowName?: string;
|
|
2327
|
+
contactId?: string;
|
|
2328
|
+
error?: string;
|
|
2329
|
+
};
|
|
2330
|
+
"text/plain": {
|
|
2331
|
+
success: boolean;
|
|
2332
|
+
message?: string;
|
|
2333
|
+
workflowId?: string;
|
|
2334
|
+
workflowName?: string;
|
|
2335
|
+
contactId?: string;
|
|
2336
|
+
error?: string;
|
|
2337
|
+
};
|
|
2338
|
+
};
|
|
894
2339
|
};
|
|
895
2340
|
};
|
|
896
2341
|
};
|
|
@@ -955,20 +2400,1174 @@ interface operations {
|
|
|
955
2400
|
headers: {
|
|
956
2401
|
[name: string]: unknown;
|
|
957
2402
|
};
|
|
958
|
-
content
|
|
959
|
-
|
|
2403
|
+
content: {
|
|
2404
|
+
"application/json": {
|
|
2405
|
+
success: boolean;
|
|
2406
|
+
workflowId?: string;
|
|
2407
|
+
workflowName?: string;
|
|
2408
|
+
/** @description Number of contacts triggered */
|
|
2409
|
+
triggered?: number;
|
|
2410
|
+
/** @description Error messages if any */
|
|
2411
|
+
errors?: string[];
|
|
2412
|
+
error?: string;
|
|
2413
|
+
};
|
|
2414
|
+
"multipart/form-data": {
|
|
2415
|
+
success: boolean;
|
|
2416
|
+
workflowId?: string;
|
|
2417
|
+
workflowName?: string;
|
|
2418
|
+
/** @description Number of contacts triggered */
|
|
2419
|
+
triggered?: number;
|
|
2420
|
+
/** @description Error messages if any */
|
|
2421
|
+
errors?: string[];
|
|
2422
|
+
error?: string;
|
|
2423
|
+
};
|
|
2424
|
+
"text/plain": {
|
|
2425
|
+
success: boolean;
|
|
2426
|
+
workflowId?: string;
|
|
2427
|
+
workflowName?: string;
|
|
2428
|
+
/** @description Number of contacts triggered */
|
|
2429
|
+
triggered?: number;
|
|
2430
|
+
/** @description Error messages if any */
|
|
2431
|
+
errors?: string[];
|
|
2432
|
+
error?: string;
|
|
2433
|
+
};
|
|
2434
|
+
};
|
|
2435
|
+
};
|
|
2436
|
+
};
|
|
2437
|
+
};
|
|
2438
|
+
postWebhooksSesByAwsAccountNumber: {
|
|
2439
|
+
parameters: {
|
|
2440
|
+
query?: never;
|
|
2441
|
+
header?: never;
|
|
2442
|
+
path: {
|
|
2443
|
+
/** @description 12-digit AWS account ID */
|
|
2444
|
+
awsAccountNumber: string;
|
|
2445
|
+
};
|
|
2446
|
+
cookie?: never;
|
|
2447
|
+
};
|
|
2448
|
+
requestBody?: never;
|
|
2449
|
+
responses: {
|
|
2450
|
+
200: {
|
|
2451
|
+
headers: {
|
|
2452
|
+
[name: string]: unknown;
|
|
2453
|
+
};
|
|
2454
|
+
content: {
|
|
2455
|
+
"application/json": {
|
|
2456
|
+
/** @description Processing status */
|
|
2457
|
+
status: string;
|
|
2458
|
+
eventType?: string;
|
|
2459
|
+
messageId?: string;
|
|
2460
|
+
reason?: string;
|
|
2461
|
+
};
|
|
2462
|
+
"multipart/form-data": {
|
|
2463
|
+
/** @description Processing status */
|
|
2464
|
+
status: string;
|
|
2465
|
+
eventType?: string;
|
|
2466
|
+
messageId?: string;
|
|
2467
|
+
reason?: string;
|
|
2468
|
+
};
|
|
2469
|
+
"text/plain": {
|
|
2470
|
+
/** @description Processing status */
|
|
2471
|
+
status: string;
|
|
2472
|
+
eventType?: string;
|
|
2473
|
+
messageId?: string;
|
|
2474
|
+
reason?: string;
|
|
2475
|
+
};
|
|
2476
|
+
};
|
|
2477
|
+
};
|
|
2478
|
+
401: {
|
|
2479
|
+
headers: {
|
|
2480
|
+
[name: string]: unknown;
|
|
2481
|
+
};
|
|
2482
|
+
content: {
|
|
2483
|
+
"application/json": {
|
|
2484
|
+
error: string;
|
|
2485
|
+
};
|
|
2486
|
+
"multipart/form-data": {
|
|
2487
|
+
error: string;
|
|
2488
|
+
};
|
|
2489
|
+
"text/plain": {
|
|
2490
|
+
error: string;
|
|
2491
|
+
};
|
|
2492
|
+
};
|
|
2493
|
+
};
|
|
2494
|
+
404: {
|
|
2495
|
+
headers: {
|
|
2496
|
+
[name: string]: unknown;
|
|
2497
|
+
};
|
|
2498
|
+
content: {
|
|
2499
|
+
"application/json": {
|
|
2500
|
+
error: string;
|
|
2501
|
+
};
|
|
2502
|
+
"multipart/form-data": {
|
|
2503
|
+
error: string;
|
|
2504
|
+
};
|
|
2505
|
+
"text/plain": {
|
|
2506
|
+
error: string;
|
|
2507
|
+
};
|
|
2508
|
+
};
|
|
2509
|
+
};
|
|
2510
|
+
500: {
|
|
2511
|
+
headers: {
|
|
2512
|
+
[name: string]: unknown;
|
|
2513
|
+
};
|
|
2514
|
+
content: {
|
|
2515
|
+
"application/json": {
|
|
2516
|
+
error: string;
|
|
2517
|
+
details?: string;
|
|
2518
|
+
};
|
|
2519
|
+
"multipart/form-data": {
|
|
2520
|
+
error: string;
|
|
2521
|
+
details?: string;
|
|
2522
|
+
};
|
|
2523
|
+
"text/plain": {
|
|
2524
|
+
error: string;
|
|
2525
|
+
details?: string;
|
|
2526
|
+
};
|
|
2527
|
+
};
|
|
2528
|
+
};
|
|
2529
|
+
};
|
|
2530
|
+
};
|
|
2531
|
+
getUnsubscribeByToken: {
|
|
2532
|
+
parameters: {
|
|
2533
|
+
query?: never;
|
|
2534
|
+
header?: never;
|
|
2535
|
+
path: {
|
|
2536
|
+
/** @description Unsubscribe token */
|
|
2537
|
+
token: string;
|
|
2538
|
+
};
|
|
2539
|
+
cookie?: never;
|
|
2540
|
+
};
|
|
2541
|
+
requestBody?: never;
|
|
2542
|
+
responses: {
|
|
2543
|
+
/** @description HTML confirmation page */
|
|
2544
|
+
200: {
|
|
2545
|
+
headers: {
|
|
2546
|
+
[name: string]: unknown;
|
|
2547
|
+
};
|
|
2548
|
+
content: {
|
|
2549
|
+
"application/json": string;
|
|
2550
|
+
"multipart/form-data": string;
|
|
2551
|
+
"text/plain": string;
|
|
2552
|
+
};
|
|
2553
|
+
};
|
|
2554
|
+
/** @description HTML error page */
|
|
2555
|
+
400: {
|
|
2556
|
+
headers: {
|
|
2557
|
+
[name: string]: unknown;
|
|
2558
|
+
};
|
|
2559
|
+
content: {
|
|
2560
|
+
"application/json": string;
|
|
2561
|
+
"multipart/form-data": string;
|
|
2562
|
+
"text/plain": string;
|
|
2563
|
+
};
|
|
2564
|
+
};
|
|
2565
|
+
/** @description HTML not found page */
|
|
2566
|
+
404: {
|
|
2567
|
+
headers: {
|
|
2568
|
+
[name: string]: unknown;
|
|
2569
|
+
};
|
|
2570
|
+
content: {
|
|
2571
|
+
"application/json": string;
|
|
2572
|
+
"multipart/form-data": string;
|
|
2573
|
+
"text/plain": string;
|
|
2574
|
+
};
|
|
2575
|
+
};
|
|
2576
|
+
};
|
|
2577
|
+
};
|
|
2578
|
+
postUnsubscribeByToken: {
|
|
2579
|
+
parameters: {
|
|
2580
|
+
query?: never;
|
|
2581
|
+
header?: never;
|
|
2582
|
+
path: {
|
|
2583
|
+
/** @description Unsubscribe token */
|
|
2584
|
+
token: string;
|
|
2585
|
+
};
|
|
2586
|
+
cookie?: never;
|
|
2587
|
+
};
|
|
2588
|
+
requestBody: {
|
|
2589
|
+
content: {
|
|
2590
|
+
"application/json": unknown;
|
|
2591
|
+
"multipart/form-data": unknown;
|
|
2592
|
+
"text/plain": unknown;
|
|
2593
|
+
};
|
|
2594
|
+
};
|
|
2595
|
+
responses: {
|
|
2596
|
+
200: {
|
|
2597
|
+
headers: {
|
|
2598
|
+
[name: string]: unknown;
|
|
2599
|
+
};
|
|
2600
|
+
content: {
|
|
2601
|
+
"application/json": {
|
|
2602
|
+
success: boolean;
|
|
2603
|
+
message?: string;
|
|
2604
|
+
contactId?: string;
|
|
2605
|
+
topicId?: string;
|
|
2606
|
+
};
|
|
2607
|
+
"multipart/form-data": {
|
|
2608
|
+
success: boolean;
|
|
2609
|
+
message?: string;
|
|
2610
|
+
contactId?: string;
|
|
2611
|
+
topicId?: string;
|
|
2612
|
+
};
|
|
2613
|
+
"text/plain": {
|
|
2614
|
+
success: boolean;
|
|
2615
|
+
message?: string;
|
|
2616
|
+
contactId?: string;
|
|
2617
|
+
topicId?: string;
|
|
2618
|
+
};
|
|
2619
|
+
};
|
|
2620
|
+
};
|
|
2621
|
+
400: {
|
|
2622
|
+
headers: {
|
|
2623
|
+
[name: string]: unknown;
|
|
2624
|
+
};
|
|
2625
|
+
content: {
|
|
2626
|
+
"application/json": {
|
|
2627
|
+
error: string;
|
|
2628
|
+
};
|
|
2629
|
+
"multipart/form-data": {
|
|
2630
|
+
error: string;
|
|
2631
|
+
};
|
|
2632
|
+
"text/plain": {
|
|
2633
|
+
error: string;
|
|
2634
|
+
};
|
|
2635
|
+
};
|
|
2636
|
+
};
|
|
2637
|
+
404: {
|
|
2638
|
+
headers: {
|
|
2639
|
+
[name: string]: unknown;
|
|
2640
|
+
};
|
|
2641
|
+
content: {
|
|
2642
|
+
"application/json": {
|
|
2643
|
+
error: string;
|
|
2644
|
+
};
|
|
2645
|
+
"multipart/form-data": {
|
|
2646
|
+
error: string;
|
|
2647
|
+
};
|
|
2648
|
+
"text/plain": {
|
|
2649
|
+
error: string;
|
|
2650
|
+
};
|
|
2651
|
+
};
|
|
2652
|
+
};
|
|
2653
|
+
};
|
|
2654
|
+
};
|
|
2655
|
+
postV1TemplatesPush: {
|
|
2656
|
+
parameters: {
|
|
2657
|
+
query?: never;
|
|
2658
|
+
header?: never;
|
|
2659
|
+
path?: never;
|
|
2660
|
+
cookie?: never;
|
|
2661
|
+
};
|
|
2662
|
+
requestBody: {
|
|
2663
|
+
content: {
|
|
2664
|
+
"application/json": {
|
|
2665
|
+
/** @description Template slug (filename without extension) */
|
|
2666
|
+
slug: string;
|
|
2667
|
+
/** @description React Email TSX source code */
|
|
2668
|
+
source: string;
|
|
2669
|
+
/** @description Compiled HTML output */
|
|
2670
|
+
compiledHtml: string;
|
|
2671
|
+
/** @description Compiled plain text output */
|
|
2672
|
+
compiledText: string;
|
|
2673
|
+
/** @description Email subject line */
|
|
2674
|
+
subject: string;
|
|
2675
|
+
/** @description Preview/preheader text */
|
|
2676
|
+
previewText?: string;
|
|
2677
|
+
/** @description Email type for compliance */
|
|
2678
|
+
emailType: "marketing" | "transactional";
|
|
2679
|
+
/** @description Template variables */
|
|
2680
|
+
variables: unknown[];
|
|
2681
|
+
/** @description SHA256 hash of source file */
|
|
2682
|
+
sourceHash: string;
|
|
2683
|
+
/** @description SES template name */
|
|
2684
|
+
sesTemplateName: string;
|
|
2685
|
+
/** @description Path in project (e.g. templates/welcome.tsx) */
|
|
2686
|
+
cliProjectPath?: string;
|
|
2687
|
+
/** @description Force overwrite even if edited on dashboard */
|
|
2688
|
+
force?: boolean;
|
|
2689
|
+
};
|
|
2690
|
+
"multipart/form-data": {
|
|
2691
|
+
/** @description Template slug (filename without extension) */
|
|
2692
|
+
slug: string;
|
|
2693
|
+
/** @description React Email TSX source code */
|
|
2694
|
+
source: string;
|
|
2695
|
+
/** @description Compiled HTML output */
|
|
2696
|
+
compiledHtml: string;
|
|
2697
|
+
/** @description Compiled plain text output */
|
|
2698
|
+
compiledText: string;
|
|
2699
|
+
/** @description Email subject line */
|
|
2700
|
+
subject: string;
|
|
2701
|
+
/** @description Preview/preheader text */
|
|
2702
|
+
previewText?: string;
|
|
2703
|
+
/** @description Email type for compliance */
|
|
2704
|
+
emailType: "marketing" | "transactional";
|
|
2705
|
+
/** @description Template variables */
|
|
2706
|
+
variables: unknown[];
|
|
2707
|
+
/** @description SHA256 hash of source file */
|
|
2708
|
+
sourceHash: string;
|
|
2709
|
+
/** @description SES template name */
|
|
2710
|
+
sesTemplateName: string;
|
|
2711
|
+
/** @description Path in project (e.g. templates/welcome.tsx) */
|
|
2712
|
+
cliProjectPath?: string;
|
|
2713
|
+
/** @description Force overwrite even if edited on dashboard */
|
|
2714
|
+
force?: boolean;
|
|
2715
|
+
};
|
|
2716
|
+
"text/plain": {
|
|
2717
|
+
/** @description Template slug (filename without extension) */
|
|
2718
|
+
slug: string;
|
|
2719
|
+
/** @description React Email TSX source code */
|
|
2720
|
+
source: string;
|
|
2721
|
+
/** @description Compiled HTML output */
|
|
2722
|
+
compiledHtml: string;
|
|
2723
|
+
/** @description Compiled plain text output */
|
|
2724
|
+
compiledText: string;
|
|
2725
|
+
/** @description Email subject line */
|
|
2726
|
+
subject: string;
|
|
2727
|
+
/** @description Preview/preheader text */
|
|
2728
|
+
previewText?: string;
|
|
2729
|
+
/** @description Email type for compliance */
|
|
2730
|
+
emailType: "marketing" | "transactional";
|
|
2731
|
+
/** @description Template variables */
|
|
2732
|
+
variables: unknown[];
|
|
2733
|
+
/** @description SHA256 hash of source file */
|
|
2734
|
+
sourceHash: string;
|
|
2735
|
+
/** @description SES template name */
|
|
2736
|
+
sesTemplateName: string;
|
|
2737
|
+
/** @description Path in project (e.g. templates/welcome.tsx) */
|
|
2738
|
+
cliProjectPath?: string;
|
|
2739
|
+
/** @description Force overwrite even if edited on dashboard */
|
|
2740
|
+
force?: boolean;
|
|
2741
|
+
};
|
|
2742
|
+
};
|
|
2743
|
+
};
|
|
2744
|
+
responses: {
|
|
2745
|
+
200: {
|
|
2746
|
+
headers: {
|
|
2747
|
+
[name: string]: unknown;
|
|
2748
|
+
};
|
|
2749
|
+
content?: never;
|
|
2750
|
+
};
|
|
2751
|
+
};
|
|
2752
|
+
};
|
|
2753
|
+
postV1TemplatesPushBatch: {
|
|
2754
|
+
parameters: {
|
|
2755
|
+
query?: never;
|
|
2756
|
+
header?: never;
|
|
2757
|
+
path?: never;
|
|
2758
|
+
cookie?: never;
|
|
2759
|
+
};
|
|
2760
|
+
requestBody: {
|
|
2761
|
+
content: {
|
|
2762
|
+
"application/json": {
|
|
2763
|
+
templates: {
|
|
2764
|
+
slug: string;
|
|
2765
|
+
source: string;
|
|
2766
|
+
compiledHtml: string;
|
|
2767
|
+
compiledText: string;
|
|
2768
|
+
subject: string;
|
|
2769
|
+
previewText?: string;
|
|
2770
|
+
emailType: "marketing" | "transactional";
|
|
2771
|
+
variables: unknown[];
|
|
2772
|
+
sourceHash: string;
|
|
2773
|
+
sesTemplateName: string;
|
|
2774
|
+
cliProjectPath?: string;
|
|
2775
|
+
force?: boolean;
|
|
2776
|
+
}[];
|
|
2777
|
+
};
|
|
2778
|
+
"multipart/form-data": {
|
|
2779
|
+
templates: {
|
|
2780
|
+
slug: string;
|
|
2781
|
+
source: string;
|
|
2782
|
+
compiledHtml: string;
|
|
2783
|
+
compiledText: string;
|
|
2784
|
+
subject: string;
|
|
2785
|
+
previewText?: string;
|
|
2786
|
+
emailType: "marketing" | "transactional";
|
|
2787
|
+
variables: unknown[];
|
|
2788
|
+
sourceHash: string;
|
|
2789
|
+
sesTemplateName: string;
|
|
2790
|
+
cliProjectPath?: string;
|
|
2791
|
+
force?: boolean;
|
|
2792
|
+
}[];
|
|
2793
|
+
};
|
|
2794
|
+
"text/plain": {
|
|
2795
|
+
templates: {
|
|
2796
|
+
slug: string;
|
|
2797
|
+
source: string;
|
|
2798
|
+
compiledHtml: string;
|
|
2799
|
+
compiledText: string;
|
|
2800
|
+
subject: string;
|
|
2801
|
+
previewText?: string;
|
|
2802
|
+
emailType: "marketing" | "transactional";
|
|
2803
|
+
variables: unknown[];
|
|
2804
|
+
sourceHash: string;
|
|
2805
|
+
sesTemplateName: string;
|
|
2806
|
+
cliProjectPath?: string;
|
|
2807
|
+
force?: boolean;
|
|
2808
|
+
}[];
|
|
2809
|
+
};
|
|
2810
|
+
};
|
|
2811
|
+
};
|
|
2812
|
+
responses: {
|
|
2813
|
+
200: {
|
|
2814
|
+
headers: {
|
|
2815
|
+
[name: string]: unknown;
|
|
2816
|
+
};
|
|
2817
|
+
content?: never;
|
|
2818
|
+
};
|
|
2819
|
+
};
|
|
2820
|
+
};
|
|
2821
|
+
getV1TemplatesPull: {
|
|
2822
|
+
parameters: {
|
|
2823
|
+
query?: never;
|
|
2824
|
+
header?: never;
|
|
2825
|
+
path?: never;
|
|
2826
|
+
cookie?: never;
|
|
2827
|
+
};
|
|
2828
|
+
requestBody?: never;
|
|
2829
|
+
responses: {
|
|
2830
|
+
200: {
|
|
2831
|
+
headers: {
|
|
2832
|
+
[name: string]: unknown;
|
|
2833
|
+
};
|
|
2834
|
+
content?: never;
|
|
2835
|
+
};
|
|
2836
|
+
};
|
|
2837
|
+
};
|
|
2838
|
+
"postToolsEmail-check": {
|
|
2839
|
+
parameters: {
|
|
2840
|
+
query?: never;
|
|
2841
|
+
header?: never;
|
|
2842
|
+
path?: never;
|
|
2843
|
+
cookie?: never;
|
|
2844
|
+
};
|
|
2845
|
+
requestBody: {
|
|
2846
|
+
content: {
|
|
2847
|
+
"application/json": {
|
|
2848
|
+
/** @description Domain to check */
|
|
2849
|
+
domain: string;
|
|
2850
|
+
/** @description Quick mode (skip blacklist checks) */
|
|
2851
|
+
quick?: boolean;
|
|
2852
|
+
/** @description Single DKIM selector to check */
|
|
2853
|
+
dkimSelector?: string;
|
|
2854
|
+
/** @description Multiple DKIM selectors to check */
|
|
2855
|
+
dkimSelectors?: string[];
|
|
2856
|
+
};
|
|
2857
|
+
"multipart/form-data": {
|
|
2858
|
+
/** @description Domain to check */
|
|
2859
|
+
domain: string;
|
|
2860
|
+
/** @description Quick mode (skip blacklist checks) */
|
|
2861
|
+
quick?: boolean;
|
|
2862
|
+
/** @description Single DKIM selector to check */
|
|
2863
|
+
dkimSelector?: string;
|
|
2864
|
+
/** @description Multiple DKIM selectors to check */
|
|
2865
|
+
dkimSelectors?: string[];
|
|
2866
|
+
};
|
|
2867
|
+
"text/plain": {
|
|
2868
|
+
/** @description Domain to check */
|
|
2869
|
+
domain: string;
|
|
2870
|
+
/** @description Quick mode (skip blacklist checks) */
|
|
2871
|
+
quick?: boolean;
|
|
2872
|
+
/** @description Single DKIM selector to check */
|
|
2873
|
+
dkimSelector?: string;
|
|
2874
|
+
/** @description Multiple DKIM selectors to check */
|
|
2875
|
+
dkimSelectors?: string[];
|
|
2876
|
+
};
|
|
2877
|
+
};
|
|
2878
|
+
};
|
|
2879
|
+
responses: {
|
|
2880
|
+
200: {
|
|
2881
|
+
headers: {
|
|
2882
|
+
[name: string]: unknown;
|
|
2883
|
+
};
|
|
2884
|
+
content: {
|
|
2885
|
+
"application/json": {
|
|
2886
|
+
success: boolean;
|
|
2887
|
+
domain?: string;
|
|
2888
|
+
checkedAt?: string;
|
|
2889
|
+
duration?: number;
|
|
2890
|
+
score?: {
|
|
2891
|
+
grade: string;
|
|
2892
|
+
score: number;
|
|
2893
|
+
maxScore: number;
|
|
2894
|
+
breakdown: {
|
|
2895
|
+
[key: string]: unknown;
|
|
2896
|
+
};
|
|
2897
|
+
};
|
|
2898
|
+
spf?: {
|
|
2899
|
+
exists: boolean;
|
|
2900
|
+
valid: boolean;
|
|
2901
|
+
record: string | null;
|
|
2902
|
+
lookupCount: number;
|
|
2903
|
+
lookupLimit: number;
|
|
2904
|
+
allMechanism: string | null;
|
|
2905
|
+
includes: string[];
|
|
2906
|
+
hasPtr: boolean;
|
|
2907
|
+
warnings: string[];
|
|
2908
|
+
};
|
|
2909
|
+
dkim?: {
|
|
2910
|
+
found: boolean;
|
|
2911
|
+
selectorsFound: {
|
|
2912
|
+
selector: string;
|
|
2913
|
+
keyType: string | null;
|
|
2914
|
+
keyBits: number | null;
|
|
2915
|
+
testMode: boolean;
|
|
2916
|
+
}[];
|
|
2917
|
+
selectorsChecked: number;
|
|
2918
|
+
warnings: string[];
|
|
2919
|
+
};
|
|
2920
|
+
dmarc?: {
|
|
2921
|
+
exists: boolean;
|
|
2922
|
+
valid: boolean;
|
|
2923
|
+
record: string | null;
|
|
2924
|
+
policy: string | null;
|
|
2925
|
+
subdomainPolicy: string | null;
|
|
2926
|
+
reportingEnabled: boolean;
|
|
2927
|
+
pct: number | null;
|
|
2928
|
+
alignmentSpf: string | null;
|
|
2929
|
+
alignmentDkim: string | null;
|
|
2930
|
+
ruaAddresses: string[];
|
|
2931
|
+
warnings: string[];
|
|
2932
|
+
};
|
|
2933
|
+
mx?: {
|
|
2934
|
+
exists: boolean;
|
|
2935
|
+
hasRedundancy: boolean;
|
|
2936
|
+
records: {
|
|
2937
|
+
exchange: string;
|
|
2938
|
+
priority: number;
|
|
2939
|
+
resolves: boolean;
|
|
2940
|
+
ipv4Count: number;
|
|
2941
|
+
ipv6Count: number;
|
|
2942
|
+
}[];
|
|
2943
|
+
};
|
|
2944
|
+
domainAge?: {
|
|
2945
|
+
ageInDays: number | null;
|
|
2946
|
+
createdAt: string | null;
|
|
2947
|
+
expiresAt: string | null;
|
|
2948
|
+
daysUntilExpiry: number | null;
|
|
2949
|
+
registrar: string | null;
|
|
2950
|
+
source: string | null;
|
|
2951
|
+
privacyEnabled: boolean;
|
|
2952
|
+
};
|
|
2953
|
+
ipv6?: {
|
|
2954
|
+
mxHasIpv6: boolean;
|
|
2955
|
+
spfIncludesIpv6: boolean;
|
|
2956
|
+
mxIpv6Count: number;
|
|
2957
|
+
};
|
|
2958
|
+
reverseDns?: {
|
|
2959
|
+
allHavePtr: boolean;
|
|
2960
|
+
allConfirm: boolean;
|
|
2961
|
+
count: number;
|
|
2962
|
+
};
|
|
2963
|
+
blacklist?: {
|
|
2964
|
+
checked: boolean;
|
|
2965
|
+
overallClean: boolean;
|
|
2966
|
+
domainListings: {
|
|
2967
|
+
blacklist: string;
|
|
2968
|
+
priority: string;
|
|
2969
|
+
delistUrl: string | null;
|
|
2970
|
+
}[];
|
|
2971
|
+
ipListings: {
|
|
2972
|
+
blacklist: string;
|
|
2973
|
+
priority: string;
|
|
2974
|
+
target: string;
|
|
2975
|
+
delistUrl: string | null;
|
|
2976
|
+
}[];
|
|
2977
|
+
};
|
|
2978
|
+
issues?: {
|
|
2979
|
+
check: string;
|
|
2980
|
+
reason: string;
|
|
2981
|
+
points: number;
|
|
2982
|
+
severity: string;
|
|
2983
|
+
}[];
|
|
2984
|
+
bonuses?: {
|
|
2985
|
+
check: string;
|
|
2986
|
+
reason: string;
|
|
2987
|
+
points: number;
|
|
2988
|
+
}[];
|
|
2989
|
+
error?: string;
|
|
2990
|
+
};
|
|
2991
|
+
"multipart/form-data": {
|
|
2992
|
+
success: boolean;
|
|
2993
|
+
domain?: string;
|
|
2994
|
+
checkedAt?: string;
|
|
2995
|
+
duration?: number;
|
|
2996
|
+
score?: {
|
|
2997
|
+
grade: string;
|
|
2998
|
+
score: number;
|
|
2999
|
+
maxScore: number;
|
|
3000
|
+
breakdown: {
|
|
3001
|
+
[key: string]: unknown;
|
|
3002
|
+
};
|
|
3003
|
+
};
|
|
3004
|
+
spf?: {
|
|
3005
|
+
exists: boolean;
|
|
3006
|
+
valid: boolean;
|
|
3007
|
+
record: string | null;
|
|
3008
|
+
lookupCount: number;
|
|
3009
|
+
lookupLimit: number;
|
|
3010
|
+
allMechanism: string | null;
|
|
3011
|
+
includes: string[];
|
|
3012
|
+
hasPtr: boolean;
|
|
3013
|
+
warnings: string[];
|
|
3014
|
+
};
|
|
3015
|
+
dkim?: {
|
|
3016
|
+
found: boolean;
|
|
3017
|
+
selectorsFound: {
|
|
3018
|
+
selector: string;
|
|
3019
|
+
keyType: string | null;
|
|
3020
|
+
keyBits: number | null;
|
|
3021
|
+
testMode: boolean;
|
|
3022
|
+
}[];
|
|
3023
|
+
selectorsChecked: number;
|
|
3024
|
+
warnings: string[];
|
|
3025
|
+
};
|
|
3026
|
+
dmarc?: {
|
|
3027
|
+
exists: boolean;
|
|
3028
|
+
valid: boolean;
|
|
3029
|
+
record: string | null;
|
|
3030
|
+
policy: string | null;
|
|
3031
|
+
subdomainPolicy: string | null;
|
|
3032
|
+
reportingEnabled: boolean;
|
|
3033
|
+
pct: number | null;
|
|
3034
|
+
alignmentSpf: string | null;
|
|
3035
|
+
alignmentDkim: string | null;
|
|
3036
|
+
ruaAddresses: string[];
|
|
3037
|
+
warnings: string[];
|
|
3038
|
+
};
|
|
3039
|
+
mx?: {
|
|
3040
|
+
exists: boolean;
|
|
3041
|
+
hasRedundancy: boolean;
|
|
3042
|
+
records: {
|
|
3043
|
+
exchange: string;
|
|
3044
|
+
priority: number;
|
|
3045
|
+
resolves: boolean;
|
|
3046
|
+
ipv4Count: number;
|
|
3047
|
+
ipv6Count: number;
|
|
3048
|
+
}[];
|
|
3049
|
+
};
|
|
3050
|
+
domainAge?: {
|
|
3051
|
+
ageInDays: number | null;
|
|
3052
|
+
createdAt: string | null;
|
|
3053
|
+
expiresAt: string | null;
|
|
3054
|
+
daysUntilExpiry: number | null;
|
|
3055
|
+
registrar: string | null;
|
|
3056
|
+
source: string | null;
|
|
3057
|
+
privacyEnabled: boolean;
|
|
3058
|
+
};
|
|
3059
|
+
ipv6?: {
|
|
3060
|
+
mxHasIpv6: boolean;
|
|
3061
|
+
spfIncludesIpv6: boolean;
|
|
3062
|
+
mxIpv6Count: number;
|
|
3063
|
+
};
|
|
3064
|
+
reverseDns?: {
|
|
3065
|
+
allHavePtr: boolean;
|
|
3066
|
+
allConfirm: boolean;
|
|
3067
|
+
count: number;
|
|
3068
|
+
};
|
|
3069
|
+
blacklist?: {
|
|
3070
|
+
checked: boolean;
|
|
3071
|
+
overallClean: boolean;
|
|
3072
|
+
domainListings: {
|
|
3073
|
+
blacklist: string;
|
|
3074
|
+
priority: string;
|
|
3075
|
+
delistUrl: string | null;
|
|
3076
|
+
}[];
|
|
3077
|
+
ipListings: {
|
|
3078
|
+
blacklist: string;
|
|
3079
|
+
priority: string;
|
|
3080
|
+
target: string;
|
|
3081
|
+
delistUrl: string | null;
|
|
3082
|
+
}[];
|
|
3083
|
+
};
|
|
3084
|
+
issues?: {
|
|
3085
|
+
check: string;
|
|
3086
|
+
reason: string;
|
|
3087
|
+
points: number;
|
|
3088
|
+
severity: string;
|
|
3089
|
+
}[];
|
|
3090
|
+
bonuses?: {
|
|
3091
|
+
check: string;
|
|
3092
|
+
reason: string;
|
|
3093
|
+
points: number;
|
|
3094
|
+
}[];
|
|
3095
|
+
error?: string;
|
|
3096
|
+
};
|
|
3097
|
+
"text/plain": {
|
|
3098
|
+
success: boolean;
|
|
3099
|
+
domain?: string;
|
|
3100
|
+
checkedAt?: string;
|
|
3101
|
+
duration?: number;
|
|
3102
|
+
score?: {
|
|
3103
|
+
grade: string;
|
|
3104
|
+
score: number;
|
|
3105
|
+
maxScore: number;
|
|
3106
|
+
breakdown: {
|
|
3107
|
+
[key: string]: unknown;
|
|
3108
|
+
};
|
|
3109
|
+
};
|
|
3110
|
+
spf?: {
|
|
3111
|
+
exists: boolean;
|
|
3112
|
+
valid: boolean;
|
|
3113
|
+
record: string | null;
|
|
3114
|
+
lookupCount: number;
|
|
3115
|
+
lookupLimit: number;
|
|
3116
|
+
allMechanism: string | null;
|
|
3117
|
+
includes: string[];
|
|
3118
|
+
hasPtr: boolean;
|
|
3119
|
+
warnings: string[];
|
|
3120
|
+
};
|
|
3121
|
+
dkim?: {
|
|
3122
|
+
found: boolean;
|
|
3123
|
+
selectorsFound: {
|
|
3124
|
+
selector: string;
|
|
3125
|
+
keyType: string | null;
|
|
3126
|
+
keyBits: number | null;
|
|
3127
|
+
testMode: boolean;
|
|
3128
|
+
}[];
|
|
3129
|
+
selectorsChecked: number;
|
|
3130
|
+
warnings: string[];
|
|
3131
|
+
};
|
|
3132
|
+
dmarc?: {
|
|
3133
|
+
exists: boolean;
|
|
3134
|
+
valid: boolean;
|
|
3135
|
+
record: string | null;
|
|
3136
|
+
policy: string | null;
|
|
3137
|
+
subdomainPolicy: string | null;
|
|
3138
|
+
reportingEnabled: boolean;
|
|
3139
|
+
pct: number | null;
|
|
3140
|
+
alignmentSpf: string | null;
|
|
3141
|
+
alignmentDkim: string | null;
|
|
3142
|
+
ruaAddresses: string[];
|
|
3143
|
+
warnings: string[];
|
|
3144
|
+
};
|
|
3145
|
+
mx?: {
|
|
3146
|
+
exists: boolean;
|
|
3147
|
+
hasRedundancy: boolean;
|
|
3148
|
+
records: {
|
|
3149
|
+
exchange: string;
|
|
3150
|
+
priority: number;
|
|
3151
|
+
resolves: boolean;
|
|
3152
|
+
ipv4Count: number;
|
|
3153
|
+
ipv6Count: number;
|
|
3154
|
+
}[];
|
|
3155
|
+
};
|
|
3156
|
+
domainAge?: {
|
|
3157
|
+
ageInDays: number | null;
|
|
3158
|
+
createdAt: string | null;
|
|
3159
|
+
expiresAt: string | null;
|
|
3160
|
+
daysUntilExpiry: number | null;
|
|
3161
|
+
registrar: string | null;
|
|
3162
|
+
source: string | null;
|
|
3163
|
+
privacyEnabled: boolean;
|
|
3164
|
+
};
|
|
3165
|
+
ipv6?: {
|
|
3166
|
+
mxHasIpv6: boolean;
|
|
3167
|
+
spfIncludesIpv6: boolean;
|
|
3168
|
+
mxIpv6Count: number;
|
|
3169
|
+
};
|
|
3170
|
+
reverseDns?: {
|
|
3171
|
+
allHavePtr: boolean;
|
|
3172
|
+
allConfirm: boolean;
|
|
3173
|
+
count: number;
|
|
3174
|
+
};
|
|
3175
|
+
blacklist?: {
|
|
3176
|
+
checked: boolean;
|
|
3177
|
+
overallClean: boolean;
|
|
3178
|
+
domainListings: {
|
|
3179
|
+
blacklist: string;
|
|
3180
|
+
priority: string;
|
|
3181
|
+
delistUrl: string | null;
|
|
3182
|
+
}[];
|
|
3183
|
+
ipListings: {
|
|
3184
|
+
blacklist: string;
|
|
3185
|
+
priority: string;
|
|
3186
|
+
target: string;
|
|
3187
|
+
delistUrl: string | null;
|
|
3188
|
+
}[];
|
|
3189
|
+
};
|
|
3190
|
+
issues?: {
|
|
3191
|
+
check: string;
|
|
3192
|
+
reason: string;
|
|
3193
|
+
points: number;
|
|
3194
|
+
severity: string;
|
|
3195
|
+
}[];
|
|
3196
|
+
bonuses?: {
|
|
3197
|
+
check: string;
|
|
3198
|
+
reason: string;
|
|
3199
|
+
points: number;
|
|
3200
|
+
}[];
|
|
3201
|
+
error?: string;
|
|
3202
|
+
};
|
|
3203
|
+
};
|
|
3204
|
+
};
|
|
3205
|
+
};
|
|
3206
|
+
};
|
|
3207
|
+
"getToolsEmail-checkByDomain": {
|
|
3208
|
+
parameters: {
|
|
3209
|
+
query?: never;
|
|
3210
|
+
header?: never;
|
|
3211
|
+
path: {
|
|
3212
|
+
/** @description Domain to check */
|
|
3213
|
+
domain: string;
|
|
3214
|
+
};
|
|
3215
|
+
cookie?: never;
|
|
3216
|
+
};
|
|
3217
|
+
requestBody?: never;
|
|
3218
|
+
responses: {
|
|
3219
|
+
200: {
|
|
3220
|
+
headers: {
|
|
3221
|
+
[name: string]: unknown;
|
|
3222
|
+
};
|
|
3223
|
+
content: {
|
|
3224
|
+
"application/json": {
|
|
3225
|
+
success: boolean;
|
|
3226
|
+
domain?: string;
|
|
3227
|
+
checkedAt?: string;
|
|
3228
|
+
duration?: number;
|
|
3229
|
+
score?: {
|
|
3230
|
+
grade: string;
|
|
3231
|
+
score: number;
|
|
3232
|
+
maxScore: number;
|
|
3233
|
+
breakdown: {
|
|
3234
|
+
[key: string]: unknown;
|
|
3235
|
+
};
|
|
3236
|
+
};
|
|
3237
|
+
spf?: {
|
|
3238
|
+
exists: boolean;
|
|
3239
|
+
valid: boolean;
|
|
3240
|
+
record: string | null;
|
|
3241
|
+
lookupCount: number;
|
|
3242
|
+
lookupLimit: number;
|
|
3243
|
+
allMechanism: string | null;
|
|
3244
|
+
includes: string[];
|
|
3245
|
+
hasPtr: boolean;
|
|
3246
|
+
warnings: string[];
|
|
3247
|
+
};
|
|
3248
|
+
dkim?: {
|
|
3249
|
+
found: boolean;
|
|
3250
|
+
selectorsFound: {
|
|
3251
|
+
selector: string;
|
|
3252
|
+
keyType: string | null;
|
|
3253
|
+
keyBits: number | null;
|
|
3254
|
+
testMode: boolean;
|
|
3255
|
+
}[];
|
|
3256
|
+
selectorsChecked: number;
|
|
3257
|
+
warnings: string[];
|
|
3258
|
+
};
|
|
3259
|
+
dmarc?: {
|
|
3260
|
+
exists: boolean;
|
|
3261
|
+
valid: boolean;
|
|
3262
|
+
record: string | null;
|
|
3263
|
+
policy: string | null;
|
|
3264
|
+
subdomainPolicy: string | null;
|
|
3265
|
+
reportingEnabled: boolean;
|
|
3266
|
+
pct: number | null;
|
|
3267
|
+
alignmentSpf: string | null;
|
|
3268
|
+
alignmentDkim: string | null;
|
|
3269
|
+
ruaAddresses: string[];
|
|
3270
|
+
warnings: string[];
|
|
3271
|
+
};
|
|
3272
|
+
mx?: {
|
|
3273
|
+
exists: boolean;
|
|
3274
|
+
hasRedundancy: boolean;
|
|
3275
|
+
records: {
|
|
3276
|
+
exchange: string;
|
|
3277
|
+
priority: number;
|
|
3278
|
+
resolves: boolean;
|
|
3279
|
+
ipv4Count: number;
|
|
3280
|
+
ipv6Count: number;
|
|
3281
|
+
}[];
|
|
3282
|
+
};
|
|
3283
|
+
domainAge?: {
|
|
3284
|
+
ageInDays: number | null;
|
|
3285
|
+
createdAt: string | null;
|
|
3286
|
+
expiresAt: string | null;
|
|
3287
|
+
daysUntilExpiry: number | null;
|
|
3288
|
+
registrar: string | null;
|
|
3289
|
+
source: string | null;
|
|
3290
|
+
privacyEnabled: boolean;
|
|
3291
|
+
};
|
|
3292
|
+
ipv6?: {
|
|
3293
|
+
mxHasIpv6: boolean;
|
|
3294
|
+
spfIncludesIpv6: boolean;
|
|
3295
|
+
mxIpv6Count: number;
|
|
3296
|
+
};
|
|
3297
|
+
reverseDns?: {
|
|
3298
|
+
allHavePtr: boolean;
|
|
3299
|
+
allConfirm: boolean;
|
|
3300
|
+
count: number;
|
|
3301
|
+
};
|
|
3302
|
+
blacklist?: {
|
|
3303
|
+
checked: boolean;
|
|
3304
|
+
overallClean: boolean;
|
|
3305
|
+
domainListings: {
|
|
3306
|
+
blacklist: string;
|
|
3307
|
+
priority: string;
|
|
3308
|
+
delistUrl: string | null;
|
|
3309
|
+
}[];
|
|
3310
|
+
ipListings: {
|
|
3311
|
+
blacklist: string;
|
|
3312
|
+
priority: string;
|
|
3313
|
+
target: string;
|
|
3314
|
+
delistUrl: string | null;
|
|
3315
|
+
}[];
|
|
3316
|
+
};
|
|
3317
|
+
issues?: {
|
|
3318
|
+
check: string;
|
|
3319
|
+
reason: string;
|
|
3320
|
+
points: number;
|
|
3321
|
+
severity: string;
|
|
3322
|
+
}[];
|
|
3323
|
+
bonuses?: {
|
|
3324
|
+
check: string;
|
|
3325
|
+
reason: string;
|
|
3326
|
+
points: number;
|
|
3327
|
+
}[];
|
|
3328
|
+
error?: string;
|
|
3329
|
+
};
|
|
3330
|
+
"multipart/form-data": {
|
|
3331
|
+
success: boolean;
|
|
3332
|
+
domain?: string;
|
|
3333
|
+
checkedAt?: string;
|
|
3334
|
+
duration?: number;
|
|
3335
|
+
score?: {
|
|
3336
|
+
grade: string;
|
|
3337
|
+
score: number;
|
|
3338
|
+
maxScore: number;
|
|
3339
|
+
breakdown: {
|
|
3340
|
+
[key: string]: unknown;
|
|
3341
|
+
};
|
|
3342
|
+
};
|
|
3343
|
+
spf?: {
|
|
3344
|
+
exists: boolean;
|
|
3345
|
+
valid: boolean;
|
|
3346
|
+
record: string | null;
|
|
3347
|
+
lookupCount: number;
|
|
3348
|
+
lookupLimit: number;
|
|
3349
|
+
allMechanism: string | null;
|
|
3350
|
+
includes: string[];
|
|
3351
|
+
hasPtr: boolean;
|
|
3352
|
+
warnings: string[];
|
|
3353
|
+
};
|
|
3354
|
+
dkim?: {
|
|
3355
|
+
found: boolean;
|
|
3356
|
+
selectorsFound: {
|
|
3357
|
+
selector: string;
|
|
3358
|
+
keyType: string | null;
|
|
3359
|
+
keyBits: number | null;
|
|
3360
|
+
testMode: boolean;
|
|
3361
|
+
}[];
|
|
3362
|
+
selectorsChecked: number;
|
|
3363
|
+
warnings: string[];
|
|
3364
|
+
};
|
|
3365
|
+
dmarc?: {
|
|
3366
|
+
exists: boolean;
|
|
3367
|
+
valid: boolean;
|
|
3368
|
+
record: string | null;
|
|
3369
|
+
policy: string | null;
|
|
3370
|
+
subdomainPolicy: string | null;
|
|
3371
|
+
reportingEnabled: boolean;
|
|
3372
|
+
pct: number | null;
|
|
3373
|
+
alignmentSpf: string | null;
|
|
3374
|
+
alignmentDkim: string | null;
|
|
3375
|
+
ruaAddresses: string[];
|
|
3376
|
+
warnings: string[];
|
|
3377
|
+
};
|
|
3378
|
+
mx?: {
|
|
3379
|
+
exists: boolean;
|
|
3380
|
+
hasRedundancy: boolean;
|
|
3381
|
+
records: {
|
|
3382
|
+
exchange: string;
|
|
3383
|
+
priority: number;
|
|
3384
|
+
resolves: boolean;
|
|
3385
|
+
ipv4Count: number;
|
|
3386
|
+
ipv6Count: number;
|
|
3387
|
+
}[];
|
|
3388
|
+
};
|
|
3389
|
+
domainAge?: {
|
|
3390
|
+
ageInDays: number | null;
|
|
3391
|
+
createdAt: string | null;
|
|
3392
|
+
expiresAt: string | null;
|
|
3393
|
+
daysUntilExpiry: number | null;
|
|
3394
|
+
registrar: string | null;
|
|
3395
|
+
source: string | null;
|
|
3396
|
+
privacyEnabled: boolean;
|
|
3397
|
+
};
|
|
3398
|
+
ipv6?: {
|
|
3399
|
+
mxHasIpv6: boolean;
|
|
3400
|
+
spfIncludesIpv6: boolean;
|
|
3401
|
+
mxIpv6Count: number;
|
|
3402
|
+
};
|
|
3403
|
+
reverseDns?: {
|
|
3404
|
+
allHavePtr: boolean;
|
|
3405
|
+
allConfirm: boolean;
|
|
3406
|
+
count: number;
|
|
3407
|
+
};
|
|
3408
|
+
blacklist?: {
|
|
3409
|
+
checked: boolean;
|
|
3410
|
+
overallClean: boolean;
|
|
3411
|
+
domainListings: {
|
|
3412
|
+
blacklist: string;
|
|
3413
|
+
priority: string;
|
|
3414
|
+
delistUrl: string | null;
|
|
3415
|
+
}[];
|
|
3416
|
+
ipListings: {
|
|
3417
|
+
blacklist: string;
|
|
3418
|
+
priority: string;
|
|
3419
|
+
target: string;
|
|
3420
|
+
delistUrl: string | null;
|
|
3421
|
+
}[];
|
|
3422
|
+
};
|
|
3423
|
+
issues?: {
|
|
3424
|
+
check: string;
|
|
3425
|
+
reason: string;
|
|
3426
|
+
points: number;
|
|
3427
|
+
severity: string;
|
|
3428
|
+
}[];
|
|
3429
|
+
bonuses?: {
|
|
3430
|
+
check: string;
|
|
3431
|
+
reason: string;
|
|
3432
|
+
points: number;
|
|
3433
|
+
}[];
|
|
3434
|
+
error?: string;
|
|
3435
|
+
};
|
|
3436
|
+
"text/plain": {
|
|
3437
|
+
success: boolean;
|
|
3438
|
+
domain?: string;
|
|
3439
|
+
checkedAt?: string;
|
|
3440
|
+
duration?: number;
|
|
3441
|
+
score?: {
|
|
3442
|
+
grade: string;
|
|
3443
|
+
score: number;
|
|
3444
|
+
maxScore: number;
|
|
3445
|
+
breakdown: {
|
|
3446
|
+
[key: string]: unknown;
|
|
3447
|
+
};
|
|
3448
|
+
};
|
|
3449
|
+
spf?: {
|
|
3450
|
+
exists: boolean;
|
|
3451
|
+
valid: boolean;
|
|
3452
|
+
record: string | null;
|
|
3453
|
+
lookupCount: number;
|
|
3454
|
+
lookupLimit: number;
|
|
3455
|
+
allMechanism: string | null;
|
|
3456
|
+
includes: string[];
|
|
3457
|
+
hasPtr: boolean;
|
|
3458
|
+
warnings: string[];
|
|
3459
|
+
};
|
|
3460
|
+
dkim?: {
|
|
3461
|
+
found: boolean;
|
|
3462
|
+
selectorsFound: {
|
|
3463
|
+
selector: string;
|
|
3464
|
+
keyType: string | null;
|
|
3465
|
+
keyBits: number | null;
|
|
3466
|
+
testMode: boolean;
|
|
3467
|
+
}[];
|
|
3468
|
+
selectorsChecked: number;
|
|
3469
|
+
warnings: string[];
|
|
3470
|
+
};
|
|
3471
|
+
dmarc?: {
|
|
3472
|
+
exists: boolean;
|
|
3473
|
+
valid: boolean;
|
|
3474
|
+
record: string | null;
|
|
3475
|
+
policy: string | null;
|
|
3476
|
+
subdomainPolicy: string | null;
|
|
3477
|
+
reportingEnabled: boolean;
|
|
3478
|
+
pct: number | null;
|
|
3479
|
+
alignmentSpf: string | null;
|
|
3480
|
+
alignmentDkim: string | null;
|
|
3481
|
+
ruaAddresses: string[];
|
|
3482
|
+
warnings: string[];
|
|
3483
|
+
};
|
|
3484
|
+
mx?: {
|
|
3485
|
+
exists: boolean;
|
|
3486
|
+
hasRedundancy: boolean;
|
|
3487
|
+
records: {
|
|
3488
|
+
exchange: string;
|
|
3489
|
+
priority: number;
|
|
3490
|
+
resolves: boolean;
|
|
3491
|
+
ipv4Count: number;
|
|
3492
|
+
ipv6Count: number;
|
|
3493
|
+
}[];
|
|
3494
|
+
};
|
|
3495
|
+
domainAge?: {
|
|
3496
|
+
ageInDays: number | null;
|
|
3497
|
+
createdAt: string | null;
|
|
3498
|
+
expiresAt: string | null;
|
|
3499
|
+
daysUntilExpiry: number | null;
|
|
3500
|
+
registrar: string | null;
|
|
3501
|
+
source: string | null;
|
|
3502
|
+
privacyEnabled: boolean;
|
|
3503
|
+
};
|
|
3504
|
+
ipv6?: {
|
|
3505
|
+
mxHasIpv6: boolean;
|
|
3506
|
+
spfIncludesIpv6: boolean;
|
|
3507
|
+
mxIpv6Count: number;
|
|
3508
|
+
};
|
|
3509
|
+
reverseDns?: {
|
|
3510
|
+
allHavePtr: boolean;
|
|
3511
|
+
allConfirm: boolean;
|
|
3512
|
+
count: number;
|
|
3513
|
+
};
|
|
3514
|
+
blacklist?: {
|
|
3515
|
+
checked: boolean;
|
|
3516
|
+
overallClean: boolean;
|
|
3517
|
+
domainListings: {
|
|
3518
|
+
blacklist: string;
|
|
3519
|
+
priority: string;
|
|
3520
|
+
delistUrl: string | null;
|
|
3521
|
+
}[];
|
|
3522
|
+
ipListings: {
|
|
3523
|
+
blacklist: string;
|
|
3524
|
+
priority: string;
|
|
3525
|
+
target: string;
|
|
3526
|
+
delistUrl: string | null;
|
|
3527
|
+
}[];
|
|
3528
|
+
};
|
|
3529
|
+
issues?: {
|
|
3530
|
+
check: string;
|
|
3531
|
+
reason: string;
|
|
3532
|
+
points: number;
|
|
3533
|
+
severity: string;
|
|
3534
|
+
}[];
|
|
3535
|
+
bonuses?: {
|
|
3536
|
+
check: string;
|
|
3537
|
+
reason: string;
|
|
3538
|
+
points: number;
|
|
3539
|
+
}[];
|
|
3540
|
+
error?: string;
|
|
3541
|
+
};
|
|
3542
|
+
};
|
|
3543
|
+
};
|
|
960
3544
|
};
|
|
961
3545
|
};
|
|
962
|
-
|
|
3546
|
+
"postV1Workflow-schedulesByWorkflowIdEnable": {
|
|
963
3547
|
parameters: {
|
|
964
3548
|
query?: never;
|
|
965
3549
|
header?: never;
|
|
966
3550
|
path: {
|
|
967
|
-
|
|
3551
|
+
workflowId: string;
|
|
968
3552
|
};
|
|
969
3553
|
cookie?: never;
|
|
970
3554
|
};
|
|
971
|
-
requestBody
|
|
3555
|
+
requestBody: {
|
|
3556
|
+
content: {
|
|
3557
|
+
"application/json": {
|
|
3558
|
+
cronExpression: string;
|
|
3559
|
+
timezone?: string;
|
|
3560
|
+
};
|
|
3561
|
+
"multipart/form-data": {
|
|
3562
|
+
cronExpression: string;
|
|
3563
|
+
timezone?: string;
|
|
3564
|
+
};
|
|
3565
|
+
"text/plain": {
|
|
3566
|
+
cronExpression: string;
|
|
3567
|
+
timezone?: string;
|
|
3568
|
+
};
|
|
3569
|
+
};
|
|
3570
|
+
};
|
|
972
3571
|
responses: {
|
|
973
3572
|
200: {
|
|
974
3573
|
headers: {
|
|
@@ -978,12 +3577,12 @@ interface operations {
|
|
|
978
3577
|
};
|
|
979
3578
|
};
|
|
980
3579
|
};
|
|
981
|
-
|
|
3580
|
+
"postV1Workflow-schedulesByWorkflowIdDisable": {
|
|
982
3581
|
parameters: {
|
|
983
3582
|
query?: never;
|
|
984
3583
|
header?: never;
|
|
985
3584
|
path: {
|
|
986
|
-
|
|
3585
|
+
workflowId: string;
|
|
987
3586
|
};
|
|
988
3587
|
cookie?: never;
|
|
989
3588
|
};
|
|
@@ -997,20 +3596,29 @@ interface operations {
|
|
|
997
3596
|
};
|
|
998
3597
|
};
|
|
999
3598
|
};
|
|
1000
|
-
|
|
3599
|
+
"putV1Workflow-schedulesByWorkflowId": {
|
|
1001
3600
|
parameters: {
|
|
1002
3601
|
query?: never;
|
|
1003
3602
|
header?: never;
|
|
1004
3603
|
path: {
|
|
1005
|
-
|
|
3604
|
+
workflowId: string;
|
|
1006
3605
|
};
|
|
1007
3606
|
cookie?: never;
|
|
1008
3607
|
};
|
|
1009
3608
|
requestBody: {
|
|
1010
3609
|
content: {
|
|
1011
|
-
"application/json":
|
|
1012
|
-
|
|
1013
|
-
|
|
3610
|
+
"application/json": {
|
|
3611
|
+
cronExpression: string;
|
|
3612
|
+
timezone?: string;
|
|
3613
|
+
};
|
|
3614
|
+
"multipart/form-data": {
|
|
3615
|
+
cronExpression: string;
|
|
3616
|
+
timezone?: string;
|
|
3617
|
+
};
|
|
3618
|
+
"text/plain": {
|
|
3619
|
+
cronExpression: string;
|
|
3620
|
+
timezone?: string;
|
|
3621
|
+
};
|
|
1014
3622
|
};
|
|
1015
3623
|
};
|
|
1016
3624
|
responses: {
|
|
@@ -1058,4 +3666,590 @@ interface WrapsPlatformConfig {
|
|
|
1058
3666
|
declare function createPlatformClient(config: WrapsPlatformConfig): openapi_fetch.Client<paths, `${string}/${string}`>;
|
|
1059
3667
|
type PlatformClient = ReturnType<typeof createPlatformClient>;
|
|
1060
3668
|
|
|
1061
|
-
|
|
3669
|
+
/**
|
|
3670
|
+
* Wraps Project Configuration
|
|
3671
|
+
*
|
|
3672
|
+
* Identity functions for TypeScript intellisense when defining
|
|
3673
|
+
* wraps.config.ts and brand.ts files.
|
|
3674
|
+
*/
|
|
3675
|
+
interface WrapsEnvironment {
|
|
3676
|
+
region?: string;
|
|
3677
|
+
from?: {
|
|
3678
|
+
email: string;
|
|
3679
|
+
name?: string;
|
|
3680
|
+
};
|
|
3681
|
+
replyTo?: string;
|
|
3682
|
+
}
|
|
3683
|
+
interface WrapsProjectConfig {
|
|
3684
|
+
/** Organization slug from wraps.dev */
|
|
3685
|
+
org: string;
|
|
3686
|
+
/** Default sender address */
|
|
3687
|
+
from?: {
|
|
3688
|
+
email: string;
|
|
3689
|
+
name?: string;
|
|
3690
|
+
};
|
|
3691
|
+
/** Default reply-to address */
|
|
3692
|
+
replyTo?: string;
|
|
3693
|
+
/** AWS region for SES */
|
|
3694
|
+
region?: string;
|
|
3695
|
+
/** Environment-specific overrides */
|
|
3696
|
+
environments?: Record<string, WrapsEnvironment>;
|
|
3697
|
+
/** Default environment name */
|
|
3698
|
+
defaultEnv?: string;
|
|
3699
|
+
/** Path to templates directory (default: "./templates") */
|
|
3700
|
+
templatesDir?: string;
|
|
3701
|
+
/** Path to workflows directory (default: "./workflows") */
|
|
3702
|
+
workflowsDir?: string;
|
|
3703
|
+
/** Path to brand file (default: "./brand.ts") */
|
|
3704
|
+
brandFile?: string;
|
|
3705
|
+
/** Preview server options */
|
|
3706
|
+
preview?: {
|
|
3707
|
+
port?: number;
|
|
3708
|
+
open?: boolean;
|
|
3709
|
+
};
|
|
3710
|
+
}
|
|
3711
|
+
interface WrapsBrandKit {
|
|
3712
|
+
/** Primary brand color (hex) */
|
|
3713
|
+
primaryColor: string;
|
|
3714
|
+
/** Secondary brand color (hex) */
|
|
3715
|
+
secondaryColor?: string;
|
|
3716
|
+
/** Email background color (hex) */
|
|
3717
|
+
backgroundColor?: string;
|
|
3718
|
+
/** Text color (hex) */
|
|
3719
|
+
textColor?: string;
|
|
3720
|
+
/** Body font family */
|
|
3721
|
+
fontFamily?: string;
|
|
3722
|
+
/** Heading font family */
|
|
3723
|
+
headingFontFamily?: string;
|
|
3724
|
+
/** Button border radius (CSS value) */
|
|
3725
|
+
buttonRadius?: string;
|
|
3726
|
+
/** Button style preset */
|
|
3727
|
+
buttonStyle?: 'rounded' | 'square' | 'pill';
|
|
3728
|
+
/** Company name for footer */
|
|
3729
|
+
companyName?: string;
|
|
3730
|
+
/** Company address for CAN-SPAM compliance */
|
|
3731
|
+
companyAddress?: string;
|
|
3732
|
+
/** Logo URL */
|
|
3733
|
+
logoUrl?: string;
|
|
3734
|
+
/** Social media links */
|
|
3735
|
+
socialLinks?: Array<{
|
|
3736
|
+
platform: string;
|
|
3737
|
+
url: string;
|
|
3738
|
+
}>;
|
|
3739
|
+
}
|
|
3740
|
+
/**
|
|
3741
|
+
* Define your Wraps project configuration.
|
|
3742
|
+
* Use this in `wraps/wraps.config.ts` for full TypeScript intellisense.
|
|
3743
|
+
*
|
|
3744
|
+
* @example
|
|
3745
|
+
* ```ts
|
|
3746
|
+
* import { defineConfig } from '@wraps.dev/client';
|
|
3747
|
+
*
|
|
3748
|
+
* export default defineConfig({
|
|
3749
|
+
* org: 'my-company',
|
|
3750
|
+
* from: { email: 'hello@myapp.com', name: 'My App' },
|
|
3751
|
+
* region: 'us-east-1',
|
|
3752
|
+
* });
|
|
3753
|
+
* ```
|
|
3754
|
+
*/
|
|
3755
|
+
declare function defineConfig(config: WrapsProjectConfig): WrapsProjectConfig;
|
|
3756
|
+
/**
|
|
3757
|
+
* Define your brand kit for consistent email styling.
|
|
3758
|
+
* Use this in `wraps/brand.ts` for full TypeScript intellisense.
|
|
3759
|
+
*
|
|
3760
|
+
* @example
|
|
3761
|
+
* ```ts
|
|
3762
|
+
* import { defineBrand } from '@wraps.dev/client';
|
|
3763
|
+
*
|
|
3764
|
+
* export default defineBrand({
|
|
3765
|
+
* primaryColor: '#5046e5',
|
|
3766
|
+
* companyName: 'My Company',
|
|
3767
|
+
* companyAddress: '123 Main St, City, ST 12345',
|
|
3768
|
+
* });
|
|
3769
|
+
* ```
|
|
3770
|
+
*/
|
|
3771
|
+
declare function defineBrand(brand: WrapsBrandKit): WrapsBrandKit;
|
|
3772
|
+
|
|
3773
|
+
/**
|
|
3774
|
+
* Workflow Definition Types
|
|
3775
|
+
*
|
|
3776
|
+
* Declarative TypeScript workflow definitions for email automation.
|
|
3777
|
+
* Use `defineWorkflow()` in `wraps/workflows/*.ts` for full TypeScript intellisense.
|
|
3778
|
+
*
|
|
3779
|
+
* @example
|
|
3780
|
+
* ```ts
|
|
3781
|
+
* import { defineWorkflow, sendEmail, delay, condition, exit } from '@wraps.dev/client';
|
|
3782
|
+
*
|
|
3783
|
+
* export default defineWorkflow({
|
|
3784
|
+
* name: 'User Onboarding',
|
|
3785
|
+
* description: 'Welcome sequence for new users',
|
|
3786
|
+
*
|
|
3787
|
+
* trigger: { type: 'contact_created' },
|
|
3788
|
+
*
|
|
3789
|
+
* steps: [
|
|
3790
|
+
* sendEmail('welcome', { template: 'welcome' }),
|
|
3791
|
+
* delay('wait-1-day', { days: 1 }),
|
|
3792
|
+
* condition('check-activation', {
|
|
3793
|
+
* field: 'contact.hasActivated',
|
|
3794
|
+
* operator: 'equals',
|
|
3795
|
+
* value: true,
|
|
3796
|
+
* branches: {
|
|
3797
|
+
* yes: [exit('activated')],
|
|
3798
|
+
* no: [sendEmail('tips', { template: 'getting-started-tips' })],
|
|
3799
|
+
* },
|
|
3800
|
+
* }),
|
|
3801
|
+
* ],
|
|
3802
|
+
* });
|
|
3803
|
+
* ```
|
|
3804
|
+
*/
|
|
3805
|
+
/**
|
|
3806
|
+
* Trigger types for workflow entry points
|
|
3807
|
+
*/
|
|
3808
|
+
type WorkflowTriggerType = 'event' | 'contact_created' | 'contact_updated' | 'segment_entry' | 'segment_exit' | 'schedule' | 'api' | 'topic_subscribed' | 'topic_unsubscribed';
|
|
3809
|
+
/**
|
|
3810
|
+
* Trigger configuration based on trigger type
|
|
3811
|
+
*/
|
|
3812
|
+
interface TriggerDefinition {
|
|
3813
|
+
/** The type of trigger that starts this workflow */
|
|
3814
|
+
type: WorkflowTriggerType;
|
|
3815
|
+
/** For 'event' trigger: the event name to listen for */
|
|
3816
|
+
eventName?: string;
|
|
3817
|
+
/** For segment triggers: the segment ID to monitor */
|
|
3818
|
+
segmentId?: string;
|
|
3819
|
+
/** For 'schedule' trigger: cron expression */
|
|
3820
|
+
schedule?: string;
|
|
3821
|
+
/** For 'schedule' trigger: timezone (e.g., 'America/New_York') */
|
|
3822
|
+
timezone?: string;
|
|
3823
|
+
/** For topic triggers: the topic ID to monitor */
|
|
3824
|
+
topicId?: string;
|
|
3825
|
+
}
|
|
3826
|
+
/**
|
|
3827
|
+
* Workflow step types available in the builder
|
|
3828
|
+
*/
|
|
3829
|
+
type WorkflowStepType = 'trigger' | 'send_email' | 'send_sms' | 'delay' | 'exit' | 'condition' | 'webhook' | 'update_contact' | 'wait_for_event' | 'wait_for_email_engagement' | 'subscribe_topic' | 'unsubscribe_topic';
|
|
3830
|
+
/**
|
|
3831
|
+
* Duration configuration for delays and timeouts
|
|
3832
|
+
*/
|
|
3833
|
+
interface DurationConfig {
|
|
3834
|
+
/** Number of days */
|
|
3835
|
+
days?: number;
|
|
3836
|
+
/** Number of hours */
|
|
3837
|
+
hours?: number;
|
|
3838
|
+
/** Number of minutes */
|
|
3839
|
+
minutes?: number;
|
|
3840
|
+
}
|
|
3841
|
+
/**
|
|
3842
|
+
* Condition operators for branching
|
|
3843
|
+
*/
|
|
3844
|
+
type ConditionOperator = 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'starts_with' | 'ends_with' | 'greater_than' | 'less_than' | 'greater_than_or_equals' | 'less_than_or_equals' | 'is_set' | 'is_not_set' | 'is_true' | 'is_false';
|
|
3845
|
+
/**
|
|
3846
|
+
* Configuration for send_email step
|
|
3847
|
+
*/
|
|
3848
|
+
interface SendEmailStepConfig {
|
|
3849
|
+
/** Template slug or inline content */
|
|
3850
|
+
template?: string;
|
|
3851
|
+
subject?: string;
|
|
3852
|
+
body?: string;
|
|
3853
|
+
/** Override sender address */
|
|
3854
|
+
from?: string;
|
|
3855
|
+
/** Override sender name */
|
|
3856
|
+
fromName?: string;
|
|
3857
|
+
/** Override reply-to address */
|
|
3858
|
+
replyTo?: string;
|
|
3859
|
+
}
|
|
3860
|
+
/**
|
|
3861
|
+
* Configuration for send_sms step
|
|
3862
|
+
*/
|
|
3863
|
+
interface SendSmsStepConfig {
|
|
3864
|
+
/** Template slug or inline message */
|
|
3865
|
+
template?: string;
|
|
3866
|
+
message?: string;
|
|
3867
|
+
/** Override sender ID */
|
|
3868
|
+
senderId?: string;
|
|
3869
|
+
}
|
|
3870
|
+
/**
|
|
3871
|
+
* Configuration for delay step (user-facing)
|
|
3872
|
+
*/
|
|
3873
|
+
interface DelayStepConfig extends DurationConfig {
|
|
3874
|
+
}
|
|
3875
|
+
/**
|
|
3876
|
+
* Configuration for delay step (internal/DB format)
|
|
3877
|
+
*/
|
|
3878
|
+
interface DelayStepDbConfig {
|
|
3879
|
+
/** Delay amount */
|
|
3880
|
+
amount: number;
|
|
3881
|
+
/** Delay unit */
|
|
3882
|
+
unit: 'minutes' | 'hours' | 'days' | 'weeks';
|
|
3883
|
+
}
|
|
3884
|
+
/**
|
|
3885
|
+
* Configuration for condition step
|
|
3886
|
+
*/
|
|
3887
|
+
interface ConditionStepConfig {
|
|
3888
|
+
/** Field to evaluate (e.g., 'contact.email', 'contact.hasActivated') */
|
|
3889
|
+
field: string;
|
|
3890
|
+
/** Comparison operator */
|
|
3891
|
+
operator: ConditionOperator;
|
|
3892
|
+
/** Value to compare against (not used for is_set, is_not_set, is_true, is_false) */
|
|
3893
|
+
value?: unknown;
|
|
3894
|
+
/** Branches for yes/no outcomes */
|
|
3895
|
+
branches: {
|
|
3896
|
+
yes?: StepDefinition[];
|
|
3897
|
+
no?: StepDefinition[];
|
|
3898
|
+
};
|
|
3899
|
+
}
|
|
3900
|
+
/**
|
|
3901
|
+
* Configuration for wait_for_event step (user-facing)
|
|
3902
|
+
*/
|
|
3903
|
+
interface WaitForEventStepConfig {
|
|
3904
|
+
/** Event name to wait for */
|
|
3905
|
+
eventName: string;
|
|
3906
|
+
/** Timeout duration (optional) - will be converted to timeoutSeconds */
|
|
3907
|
+
timeout?: DurationConfig;
|
|
3908
|
+
}
|
|
3909
|
+
/**
|
|
3910
|
+
* Configuration for wait_for_event step (internal/DB format)
|
|
3911
|
+
*/
|
|
3912
|
+
interface WaitForEventStepDbConfig {
|
|
3913
|
+
/** Event name to wait for */
|
|
3914
|
+
eventName: string;
|
|
3915
|
+
/** Timeout in seconds */
|
|
3916
|
+
timeoutSeconds?: number;
|
|
3917
|
+
}
|
|
3918
|
+
/**
|
|
3919
|
+
* Configuration for wait_for_email_engagement step (user-facing)
|
|
3920
|
+
*/
|
|
3921
|
+
interface WaitForEmailEngagementStepConfig {
|
|
3922
|
+
/** ID of the email step to track */
|
|
3923
|
+
emailStepId: string;
|
|
3924
|
+
/** Type of engagement to wait for */
|
|
3925
|
+
engagementType: 'opened' | 'clicked';
|
|
3926
|
+
/** Timeout duration (optional) - will be converted to timeoutSeconds */
|
|
3927
|
+
timeout?: DurationConfig;
|
|
3928
|
+
}
|
|
3929
|
+
/**
|
|
3930
|
+
* Configuration for wait_for_email_engagement step (internal/DB format)
|
|
3931
|
+
*/
|
|
3932
|
+
interface WaitForEmailEngagementStepDbConfig {
|
|
3933
|
+
/** Timeout in seconds */
|
|
3934
|
+
timeoutSeconds?: number;
|
|
3935
|
+
}
|
|
3936
|
+
/**
|
|
3937
|
+
* Configuration for update_contact step
|
|
3938
|
+
*/
|
|
3939
|
+
interface UpdateContactStepConfig {
|
|
3940
|
+
/** Field updates to apply */
|
|
3941
|
+
updates: Array<{
|
|
3942
|
+
field: string;
|
|
3943
|
+
operation: 'set' | 'increment' | 'decrement' | 'append' | 'remove';
|
|
3944
|
+
value?: unknown;
|
|
3945
|
+
}>;
|
|
3946
|
+
}
|
|
3947
|
+
/**
|
|
3948
|
+
* Configuration for webhook step
|
|
3949
|
+
*/
|
|
3950
|
+
interface WebhookStepConfig {
|
|
3951
|
+
/** Webhook URL */
|
|
3952
|
+
url: string;
|
|
3953
|
+
/** HTTP method (default: POST) */
|
|
3954
|
+
method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
3955
|
+
/** HTTP headers */
|
|
3956
|
+
headers?: Record<string, string>;
|
|
3957
|
+
/** Request body (for POST/PUT/PATCH) */
|
|
3958
|
+
body?: Record<string, unknown>;
|
|
3959
|
+
}
|
|
3960
|
+
/**
|
|
3961
|
+
* Configuration for subscribe/unsubscribe_topic step
|
|
3962
|
+
*/
|
|
3963
|
+
interface TopicStepConfig {
|
|
3964
|
+
/** Topic ID to subscribe to or unsubscribe from */
|
|
3965
|
+
topicId: string;
|
|
3966
|
+
/** Channel for the subscription */
|
|
3967
|
+
channel?: 'email' | 'sms';
|
|
3968
|
+
}
|
|
3969
|
+
/**
|
|
3970
|
+
* Configuration for exit step
|
|
3971
|
+
*/
|
|
3972
|
+
interface ExitStepConfig {
|
|
3973
|
+
/** Optional reason for exiting */
|
|
3974
|
+
reason?: string;
|
|
3975
|
+
/** Mark execution as completed, cancelled, or failed */
|
|
3976
|
+
markAs?: 'completed' | 'cancelled' | 'failed';
|
|
3977
|
+
}
|
|
3978
|
+
/**
|
|
3979
|
+
* A step in the workflow definition
|
|
3980
|
+
*/
|
|
3981
|
+
interface StepDefinition {
|
|
3982
|
+
/** Unique step identifier (used for transitions and references) */
|
|
3983
|
+
id: string;
|
|
3984
|
+
/** Step type */
|
|
3985
|
+
type: WorkflowStepType;
|
|
3986
|
+
/** Optional display name (defaults to type if not provided) */
|
|
3987
|
+
name?: string;
|
|
3988
|
+
/** Step-specific configuration */
|
|
3989
|
+
config: StepConfig;
|
|
3990
|
+
/** Branches for condition steps */
|
|
3991
|
+
branches?: {
|
|
3992
|
+
yes?: StepDefinition[];
|
|
3993
|
+
no?: StepDefinition[];
|
|
3994
|
+
};
|
|
3995
|
+
}
|
|
3996
|
+
/**
|
|
3997
|
+
* Union of all step configurations (internal/DB format)
|
|
3998
|
+
* This is the format stored in the database and used by the execution engine.
|
|
3999
|
+
*/
|
|
4000
|
+
type StepConfig = ({
|
|
4001
|
+
type: 'send_email';
|
|
4002
|
+
} & SendEmailStepConfig) | ({
|
|
4003
|
+
type: 'send_sms';
|
|
4004
|
+
} & SendSmsStepConfig) | ({
|
|
4005
|
+
type: 'delay';
|
|
4006
|
+
} & DelayStepDbConfig) | ({
|
|
4007
|
+
type: 'condition';
|
|
4008
|
+
} & Omit<ConditionStepConfig, 'branches'>) | ({
|
|
4009
|
+
type: 'wait_for_event';
|
|
4010
|
+
} & WaitForEventStepDbConfig) | ({
|
|
4011
|
+
type: 'wait_for_email_engagement';
|
|
4012
|
+
} & WaitForEmailEngagementStepDbConfig) | ({
|
|
4013
|
+
type: 'update_contact';
|
|
4014
|
+
} & UpdateContactStepConfig) | ({
|
|
4015
|
+
type: 'webhook';
|
|
4016
|
+
} & WebhookStepConfig) | ({
|
|
4017
|
+
type: 'subscribe_topic';
|
|
4018
|
+
} & TopicStepConfig) | ({
|
|
4019
|
+
type: 'unsubscribe_topic';
|
|
4020
|
+
} & TopicStepConfig) | ({
|
|
4021
|
+
type: 'exit';
|
|
4022
|
+
} & ExitStepConfig);
|
|
4023
|
+
/**
|
|
4024
|
+
* Workflow execution settings
|
|
4025
|
+
*/
|
|
4026
|
+
interface WorkflowSettings {
|
|
4027
|
+
/** Allow the same contact to re-enter the workflow if they trigger it again */
|
|
4028
|
+
allowReentry?: boolean;
|
|
4029
|
+
/** Minimum seconds between re-entries for the same contact (only used if allowReentry is true) */
|
|
4030
|
+
reentryDelaySeconds?: number;
|
|
4031
|
+
/** Maximum concurrent executions allowed for this workflow */
|
|
4032
|
+
maxConcurrentExecutions?: number;
|
|
4033
|
+
/** Cooldown period in seconds before a contact can trigger this workflow again */
|
|
4034
|
+
contactCooldownSeconds?: number;
|
|
4035
|
+
}
|
|
4036
|
+
/**
|
|
4037
|
+
* Complete workflow definition
|
|
4038
|
+
*/
|
|
4039
|
+
interface WorkflowDefinition {
|
|
4040
|
+
/** Display name for the workflow */
|
|
4041
|
+
name: string;
|
|
4042
|
+
/** Optional description */
|
|
4043
|
+
description?: string;
|
|
4044
|
+
/** What triggers this workflow */
|
|
4045
|
+
trigger: TriggerDefinition;
|
|
4046
|
+
/** Steps in the workflow (executed sequentially unless branched) */
|
|
4047
|
+
steps: StepDefinition[];
|
|
4048
|
+
/** Execution settings */
|
|
4049
|
+
settings?: WorkflowSettings;
|
|
4050
|
+
/** Optional: associate workflow with a topic for subscription checks */
|
|
4051
|
+
topicId?: string;
|
|
4052
|
+
/** Default sender settings (can be overridden per step) */
|
|
4053
|
+
defaults?: {
|
|
4054
|
+
from?: string;
|
|
4055
|
+
fromName?: string;
|
|
4056
|
+
replyTo?: string;
|
|
4057
|
+
senderId?: string;
|
|
4058
|
+
};
|
|
4059
|
+
}
|
|
4060
|
+
/**
|
|
4061
|
+
* Define an email automation workflow.
|
|
4062
|
+
* Use this in `wraps/workflows/*.ts` for full TypeScript intellisense.
|
|
4063
|
+
*
|
|
4064
|
+
* @example
|
|
4065
|
+
* ```ts
|
|
4066
|
+
* import { defineWorkflow, sendEmail, delay, exit } from '@wraps.dev/client';
|
|
4067
|
+
*
|
|
4068
|
+
* export default defineWorkflow({
|
|
4069
|
+
* name: 'Welcome Sequence',
|
|
4070
|
+
* trigger: { type: 'contact_created' },
|
|
4071
|
+
* steps: [
|
|
4072
|
+
* sendEmail('welcome', { template: 'welcome' }),
|
|
4073
|
+
* delay('wait-1-day', { days: 1 }),
|
|
4074
|
+
* sendEmail('tips', { template: 'getting-started-tips' }),
|
|
4075
|
+
* ],
|
|
4076
|
+
* });
|
|
4077
|
+
* ```
|
|
4078
|
+
*/
|
|
4079
|
+
declare function defineWorkflow(definition: WorkflowDefinition): WorkflowDefinition;
|
|
4080
|
+
|
|
4081
|
+
/**
|
|
4082
|
+
* Workflow Step Helper Functions
|
|
4083
|
+
*
|
|
4084
|
+
* Ergonomic helpers for defining workflow steps declaratively.
|
|
4085
|
+
* These functions return step definitions that can be used in `defineWorkflow()`.
|
|
4086
|
+
*/
|
|
4087
|
+
|
|
4088
|
+
/**
|
|
4089
|
+
* Send an email using a template or inline content.
|
|
4090
|
+
*
|
|
4091
|
+
* @example
|
|
4092
|
+
* ```ts
|
|
4093
|
+
* // Using a template
|
|
4094
|
+
* sendEmail('welcome', { template: 'welcome-email' })
|
|
4095
|
+
*
|
|
4096
|
+
* // With overrides
|
|
4097
|
+
* sendEmail('promo', {
|
|
4098
|
+
* template: 'promo-email',
|
|
4099
|
+
* from: 'marketing@example.com',
|
|
4100
|
+
* fromName: 'Marketing Team',
|
|
4101
|
+
* })
|
|
4102
|
+
* ```
|
|
4103
|
+
*/
|
|
4104
|
+
declare function sendEmail(id: string, config: SendEmailStepConfig & {
|
|
4105
|
+
name?: string;
|
|
4106
|
+
}): StepDefinition;
|
|
4107
|
+
/**
|
|
4108
|
+
* Send an SMS using a template or inline message.
|
|
4109
|
+
*
|
|
4110
|
+
* @example
|
|
4111
|
+
* ```ts
|
|
4112
|
+
* // Using a template
|
|
4113
|
+
* sendSms('reminder', { template: 'appointment-reminder' })
|
|
4114
|
+
*
|
|
4115
|
+
* // Inline message
|
|
4116
|
+
* sendSms('otp', { message: 'Your code is {{otp}}' })
|
|
4117
|
+
* ```
|
|
4118
|
+
*/
|
|
4119
|
+
declare function sendSms(id: string, config: SendSmsStepConfig & {
|
|
4120
|
+
name?: string;
|
|
4121
|
+
}): StepDefinition;
|
|
4122
|
+
/**
|
|
4123
|
+
* Wait for a specified duration before continuing.
|
|
4124
|
+
*
|
|
4125
|
+
* @example
|
|
4126
|
+
* ```ts
|
|
4127
|
+
* delay('wait-1-day', { days: 1 })
|
|
4128
|
+
* delay('wait-2-hours', { hours: 2 })
|
|
4129
|
+
* delay('wait-30-min', { minutes: 30 })
|
|
4130
|
+
* ```
|
|
4131
|
+
*/
|
|
4132
|
+
declare function delay(id: string, duration: DurationConfig & {
|
|
4133
|
+
name?: string;
|
|
4134
|
+
}): StepDefinition;
|
|
4135
|
+
/**
|
|
4136
|
+
* Branch the workflow based on a condition.
|
|
4137
|
+
*
|
|
4138
|
+
* @example
|
|
4139
|
+
* ```ts
|
|
4140
|
+
* condition('check-activated', {
|
|
4141
|
+
* field: 'contact.hasActivated',
|
|
4142
|
+
* operator: 'equals',
|
|
4143
|
+
* value: true,
|
|
4144
|
+
* branches: {
|
|
4145
|
+
* yes: [exit('already-active')],
|
|
4146
|
+
* no: [sendEmail('activation-reminder', { template: 'activate' })],
|
|
4147
|
+
* },
|
|
4148
|
+
* })
|
|
4149
|
+
* ```
|
|
4150
|
+
*/
|
|
4151
|
+
declare function condition(id: string, config: ConditionStepConfig & {
|
|
4152
|
+
name?: string;
|
|
4153
|
+
}): StepDefinition;
|
|
4154
|
+
/**
|
|
4155
|
+
* Wait for a specific event before continuing.
|
|
4156
|
+
*
|
|
4157
|
+
* @example
|
|
4158
|
+
* ```ts
|
|
4159
|
+
* waitForEvent('wait-for-purchase', {
|
|
4160
|
+
* eventName: 'purchase_completed',
|
|
4161
|
+
* timeout: { days: 7 },
|
|
4162
|
+
* })
|
|
4163
|
+
* ```
|
|
4164
|
+
*/
|
|
4165
|
+
declare function waitForEvent(id: string, config: WaitForEventStepConfig & {
|
|
4166
|
+
name?: string;
|
|
4167
|
+
}): StepDefinition;
|
|
4168
|
+
/**
|
|
4169
|
+
* Wait for engagement with a previous email step.
|
|
4170
|
+
*
|
|
4171
|
+
* @example
|
|
4172
|
+
* ```ts
|
|
4173
|
+
* waitForEmailEngagement('wait-for-open', {
|
|
4174
|
+
* emailStepId: 'welcome',
|
|
4175
|
+
* engagementType: 'opened',
|
|
4176
|
+
* timeout: { days: 3 },
|
|
4177
|
+
* })
|
|
4178
|
+
* ```
|
|
4179
|
+
*/
|
|
4180
|
+
declare function waitForEmailEngagement(id: string, config: WaitForEmailEngagementStepConfig & {
|
|
4181
|
+
name?: string;
|
|
4182
|
+
}): StepDefinition;
|
|
4183
|
+
/**
|
|
4184
|
+
* Exit the workflow.
|
|
4185
|
+
*
|
|
4186
|
+
* @example
|
|
4187
|
+
* ```ts
|
|
4188
|
+
* exit('completed')
|
|
4189
|
+
* exit('cancelled', { reason: 'User unsubscribed', markAs: 'cancelled' })
|
|
4190
|
+
* ```
|
|
4191
|
+
*/
|
|
4192
|
+
declare function exit(id: string, config?: ExitStepConfig & {
|
|
4193
|
+
name?: string;
|
|
4194
|
+
}): StepDefinition;
|
|
4195
|
+
/**
|
|
4196
|
+
* Update contact fields.
|
|
4197
|
+
*
|
|
4198
|
+
* @example
|
|
4199
|
+
* ```ts
|
|
4200
|
+
* updateContact('mark-welcomed', {
|
|
4201
|
+
* updates: [
|
|
4202
|
+
* { field: 'welcomeEmailSent', operation: 'set', value: true },
|
|
4203
|
+
* { field: 'emailCount', operation: 'increment', value: 1 },
|
|
4204
|
+
* ],
|
|
4205
|
+
* })
|
|
4206
|
+
* ```
|
|
4207
|
+
*/
|
|
4208
|
+
declare function updateContact(id: string, config: Omit<UpdateContactStepConfig, 'type'> & {
|
|
4209
|
+
name?: string;
|
|
4210
|
+
}): StepDefinition;
|
|
4211
|
+
/**
|
|
4212
|
+
* Subscribe a contact to a topic.
|
|
4213
|
+
*
|
|
4214
|
+
* @example
|
|
4215
|
+
* ```ts
|
|
4216
|
+
* subscribeTopic('subscribe-newsletter', {
|
|
4217
|
+
* topicId: 'newsletter',
|
|
4218
|
+
* channel: 'email',
|
|
4219
|
+
* })
|
|
4220
|
+
* ```
|
|
4221
|
+
*/
|
|
4222
|
+
declare function subscribeTopic(id: string, config: Omit<TopicStepConfig, 'type'> & {
|
|
4223
|
+
name?: string;
|
|
4224
|
+
}): StepDefinition;
|
|
4225
|
+
/**
|
|
4226
|
+
* Unsubscribe a contact from a topic.
|
|
4227
|
+
*
|
|
4228
|
+
* @example
|
|
4229
|
+
* ```ts
|
|
4230
|
+
* unsubscribeTopic('unsubscribe-promo', {
|
|
4231
|
+
* topicId: 'promotions',
|
|
4232
|
+
* channel: 'email',
|
|
4233
|
+
* })
|
|
4234
|
+
* ```
|
|
4235
|
+
*/
|
|
4236
|
+
declare function unsubscribeTopic(id: string, config: Omit<TopicStepConfig, 'type'> & {
|
|
4237
|
+
name?: string;
|
|
4238
|
+
}): StepDefinition;
|
|
4239
|
+
/**
|
|
4240
|
+
* Call an external webhook.
|
|
4241
|
+
*
|
|
4242
|
+
* @example
|
|
4243
|
+
* ```ts
|
|
4244
|
+
* webhook('notify-slack', {
|
|
4245
|
+
* url: 'https://hooks.slack.com/services/...',
|
|
4246
|
+
* method: 'POST',
|
|
4247
|
+
* body: { text: 'New user signed up!' },
|
|
4248
|
+
* })
|
|
4249
|
+
* ```
|
|
4250
|
+
*/
|
|
4251
|
+
declare function webhook(id: string, config: Omit<WebhookStepConfig, 'type'> & {
|
|
4252
|
+
name?: string;
|
|
4253
|
+
}): StepDefinition;
|
|
4254
|
+
|
|
4255
|
+
export { type ConditionOperator, type ConditionStepConfig, type DelayStepConfig, type DelayStepDbConfig, type DurationConfig, type ExitStepConfig, type PlatformClient, type SendEmailStepConfig, type SendSmsStepConfig, type StepConfig, type StepDefinition, type TopicStepConfig, type TriggerDefinition, type UpdateContactStepConfig, type WaitForEmailEngagementStepConfig, type WaitForEmailEngagementStepDbConfig, type WaitForEventStepConfig, type WaitForEventStepDbConfig, type WebhookStepConfig, type WorkflowDefinition, type WorkflowSettings, type WorkflowStepType, type WorkflowTriggerType, type WrapsBrandKit, type WrapsEnvironment, type WrapsPlatformConfig, type WrapsProjectConfig, condition, createPlatformClient, defineBrand, defineConfig, defineWorkflow, delay, exit, type operations, type paths, sendEmail, sendSms, subscribeTopic, unsubscribeTopic, updateContact, waitForEmailEngagement, waitForEvent, webhook };
|