samva 0.4.0 → 0.5.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/{categories-CsUa8ojo.js → categories-B9Nw2v_F.js} +5 -1
- package/dist/client/sdk.gen.d.ts +150 -11
- package/dist/client/types.gen.d.ts +893 -37
- package/dist/{client-BmZK_uCt.js → client-B7gEkvEq.js} +952 -110
- package/dist/{client-attribution-BslSOa_8.js → client-attribution-B2yJBXdZ.js} +2 -2
- package/dist/effect/api-keys.js +1 -1
- package/dist/effect/campaigns.d.ts +16 -0
- package/dist/effect/campaigns.js +1 -1
- package/dist/effect/categories.js +1 -1
- package/dist/effect/client.js +1 -1
- package/dist/effect/contacts.js +1 -1
- package/dist/effect/conversations.d.ts +15 -0
- package/dist/effect/conversations.js +1 -1
- package/dist/effect/design.js +1 -1
- package/dist/effect/email.d.ts +700 -2
- package/dist/effect/email.js +27 -3
- package/dist/effect/generated-metadata.d.ts +4 -0
- package/dist/effect/generated.d.ts +4102 -359
- package/dist/effect/index.js +2 -2
- package/dist/effect/internal/operation.d.ts +13 -3
- package/dist/effect/media.d.ts +3 -3
- package/dist/effect/media.js +1 -1
- package/dist/effect/messages.d.ts +180 -1
- package/dist/effect/messages.js +5 -3
- package/dist/effect/operations.js +1 -1
- package/dist/effect/organizations.js +1 -1
- package/dist/effect/retry.js +1 -1
- package/dist/effect/scheduled-messages.d.ts +90 -6
- package/dist/effect/scheduled-messages.js +5 -3
- package/dist/effect/templates.d.ts +12 -0
- package/dist/effect/templates.js +2 -2
- package/dist/effect/webhooks.d.ts +40 -6
- package/dist/effect/webhooks.js +2 -2
- package/dist/index.js +2 -2
- package/dist/{operation-B1knNlxk.js → operation-B4FjN6wq.js} +50 -2
- package/dist/promises/errors.gen.d.ts +21 -2
- package/dist/promises/index.d.ts +1 -0
- package/dist/promises/index.js +2 -2
- package/dist/promises/types.gen.d.ts +1 -1
- package/dist/{promises-n1opem5V.js → promises-CP_nxUus.js} +502 -11
- package/dist/service-map.d.ts +66 -0
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type ClientOptions = {
|
|
2
|
-
baseUrl:
|
|
2
|
+
baseUrl: "https://api.samva.dev" | (string & {});
|
|
3
3
|
};
|
|
4
4
|
export type ConversationId = string;
|
|
5
5
|
export type ContactId = string;
|
|
@@ -64,6 +64,11 @@ export type Message = {
|
|
|
64
64
|
contact: MessageContact | null;
|
|
65
65
|
}>;
|
|
66
66
|
deliveries: Array<{
|
|
67
|
+
scheduling: {
|
|
68
|
+
dueAt: string;
|
|
69
|
+
expiresAt: string;
|
|
70
|
+
waitReason: "rate" | "daily-quota" | "domain-health" | "tenant-health" | "provider-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | null;
|
|
71
|
+
} | null;
|
|
67
72
|
id: string;
|
|
68
73
|
messageId: string;
|
|
69
74
|
recipientId: string | null;
|
|
@@ -270,6 +275,15 @@ export type ValidationError = {
|
|
|
270
275
|
[key: string]: Array<string>;
|
|
271
276
|
} | null | undefined;
|
|
272
277
|
};
|
|
278
|
+
export type OnboardingReviewRequiredError = {
|
|
279
|
+
_tag: "OnboardingReviewRequiredError";
|
|
280
|
+
operation: string;
|
|
281
|
+
code: "review_required" | "review_in_progress" | "information_required" | "review_rejected" | "identity_review_required" | "identity_review_rejected" | "identity_changed";
|
|
282
|
+
decision: "undecided" | "approved" | "rejected" | "exempt";
|
|
283
|
+
stage: "collecting" | "automated_review" | "manual_review" | "information_requested" | "complete";
|
|
284
|
+
nextAction: "wait_for_review" | "provide_information" | "verify_sending_identity" | "reapply" | "contact_support";
|
|
285
|
+
identityId?: string | null | undefined;
|
|
286
|
+
};
|
|
273
287
|
export type FlagDisabledError = {
|
|
274
288
|
_tag: "FlagDisabledError";
|
|
275
289
|
operation: string;
|
|
@@ -281,6 +295,20 @@ export type WebhookEnqueueError = {
|
|
|
281
295
|
reason: string;
|
|
282
296
|
details?: string | null | undefined;
|
|
283
297
|
};
|
|
298
|
+
export type ValidateEmailResponse = {
|
|
299
|
+
valid: true;
|
|
300
|
+
from: {
|
|
301
|
+
email: string;
|
|
302
|
+
name: string | null;
|
|
303
|
+
};
|
|
304
|
+
recipientCount: number;
|
|
305
|
+
content: {
|
|
306
|
+
source: "inline" | "template";
|
|
307
|
+
subject: string;
|
|
308
|
+
hasHtml: boolean;
|
|
309
|
+
hasText: boolean;
|
|
310
|
+
};
|
|
311
|
+
};
|
|
284
312
|
export type MessageEventId = string;
|
|
285
313
|
export type OperationId = string;
|
|
286
314
|
export type OperationResource = {
|
|
@@ -345,10 +373,11 @@ export type EmailDispatchSendMessagePayload = {
|
|
|
345
373
|
email: EmailDispatchContent;
|
|
346
374
|
};
|
|
347
375
|
export type DispatchSendMessagePayload = EmailDispatchSendMessagePayload;
|
|
376
|
+
export type IanaTimezone = string;
|
|
348
377
|
export type ScheduledMessageId = string;
|
|
349
378
|
export type ScheduledMessage = {
|
|
350
379
|
id: ScheduledMessageId;
|
|
351
|
-
status: "pending" | "dispatching" | "dispatched" | "cancelled" | "failed";
|
|
380
|
+
status: "pending" | "dispatching" | "paused" | "dispatched" | "cancelled" | "failed";
|
|
352
381
|
scheduledFor: string;
|
|
353
382
|
timezone: string;
|
|
354
383
|
send: SendMessagePayload;
|
|
@@ -423,6 +452,7 @@ export type Campaign = {
|
|
|
423
452
|
createdAt: string;
|
|
424
453
|
updatedAt: string;
|
|
425
454
|
};
|
|
455
|
+
export type EmailDomainId = string;
|
|
426
456
|
export type CampaignRun = {
|
|
427
457
|
id: CampaignRunId;
|
|
428
458
|
campaignId: CampaignId;
|
|
@@ -439,6 +469,8 @@ export type CampaignRun = {
|
|
|
439
469
|
failedCount: number;
|
|
440
470
|
skippedCount: number;
|
|
441
471
|
failureReason: string | null;
|
|
472
|
+
holdReason: string | null;
|
|
473
|
+
holdDomainId: EmailDomainId | null;
|
|
442
474
|
lastContactId: string | null;
|
|
443
475
|
createdBy: string | null;
|
|
444
476
|
actorEmail: string;
|
|
@@ -451,6 +483,39 @@ export type CampaignRunAction = {
|
|
|
451
483
|
item: CampaignRun;
|
|
452
484
|
};
|
|
453
485
|
export type CampaignRecipientId = string;
|
|
486
|
+
export type IdentityClearanceStatus = {
|
|
487
|
+
identityId: string;
|
|
488
|
+
decision: "undecided" | "approved" | "rejected";
|
|
489
|
+
generation: number;
|
|
490
|
+
code: "review_required" | "review_in_progress" | "information_required" | "review_rejected" | "identity_review_required" | "identity_review_rejected" | "identity_changed" | null;
|
|
491
|
+
nextAction: "wait_for_review" | "provide_information" | "verify_sending_identity" | "reapply" | "contact_support" | null;
|
|
492
|
+
updatedAt: string;
|
|
493
|
+
};
|
|
494
|
+
export type OnboardingReviewStatus = {
|
|
495
|
+
decision: "undecided" | "approved" | "rejected" | "exempt";
|
|
496
|
+
stage: "collecting" | "automated_review" | "manual_review" | "information_requested" | "complete";
|
|
497
|
+
generation: number;
|
|
498
|
+
canSend: boolean;
|
|
499
|
+
code: "review_required" | "review_in_progress" | "information_required" | "review_rejected" | "identity_review_required" | "identity_review_rejected" | "identity_changed" | null;
|
|
500
|
+
nextAction: "wait_for_review" | "provide_information" | "verify_sending_identity" | "reapply" | "contact_support" | null;
|
|
501
|
+
canReapply: boolean;
|
|
502
|
+
informationRequest: {
|
|
503
|
+
id: string;
|
|
504
|
+
requestedFields: Array<string>;
|
|
505
|
+
requestedAt: string;
|
|
506
|
+
canRespond: boolean;
|
|
507
|
+
} | null;
|
|
508
|
+
identities: Array<IdentityClearanceStatus>;
|
|
509
|
+
updatedAt: string | null;
|
|
510
|
+
};
|
|
511
|
+
export type ReapplyOnboardingReviewInput = {
|
|
512
|
+
expectedGeneration: number;
|
|
513
|
+
};
|
|
514
|
+
export type RespondToOnboardingInformationRequestInput = {
|
|
515
|
+
expectedGeneration: number;
|
|
516
|
+
responseText: string;
|
|
517
|
+
evidenceMediaIds: Array<MediaId>;
|
|
518
|
+
};
|
|
454
519
|
export type EmailTrackingDefaults = {
|
|
455
520
|
opens: boolean;
|
|
456
521
|
clicks: boolean;
|
|
@@ -463,7 +528,6 @@ export type EmailRecipientTrackingPreference = {
|
|
|
463
528
|
createdAt: string | null;
|
|
464
529
|
updatedAt: string | null;
|
|
465
530
|
};
|
|
466
|
-
export type EmailDomainId = string;
|
|
467
531
|
export type EmailSenderId = string;
|
|
468
532
|
export type DeliverabilityFacts = {
|
|
469
533
|
bounceRate: number;
|
|
@@ -498,6 +562,27 @@ export type EmailChannelError = {
|
|
|
498
562
|
message: string;
|
|
499
563
|
statusCode?: number | null | undefined;
|
|
500
564
|
};
|
|
565
|
+
export type EmailDkimRotation = {
|
|
566
|
+
id: string;
|
|
567
|
+
domainId: EmailDomainId;
|
|
568
|
+
phase: "staged" | "cutover" | "complete";
|
|
569
|
+
selector: string;
|
|
570
|
+
record: {
|
|
571
|
+
name: string;
|
|
572
|
+
type: "TXT";
|
|
573
|
+
value: string;
|
|
574
|
+
ttl: string;
|
|
575
|
+
};
|
|
576
|
+
formerRecord: {
|
|
577
|
+
name: string;
|
|
578
|
+
type: "TXT";
|
|
579
|
+
value: string;
|
|
580
|
+
};
|
|
581
|
+
/**
|
|
582
|
+
* Earliest minimum retention horizon only. The former public key remains published indefinitely until a separately approved retirement verifies at least two actual former-record TTLs have elapsed.
|
|
583
|
+
*/
|
|
584
|
+
minimumRetainUntil: string | null;
|
|
585
|
+
};
|
|
501
586
|
export type EmailDomainVerification = {
|
|
502
587
|
domainId: EmailDomainId;
|
|
503
588
|
domain: string;
|
|
@@ -532,6 +617,40 @@ export type EmailDomainVerification = {
|
|
|
532
617
|
message: string;
|
|
533
618
|
failedAt: string;
|
|
534
619
|
} | null;
|
|
620
|
+
health: {
|
|
621
|
+
actionOwner: "customer" | "samva" | "provider" | "none";
|
|
622
|
+
action: string;
|
|
623
|
+
freshness: "current" | "stale" | "unknown";
|
|
624
|
+
observedAt: string | null;
|
|
625
|
+
staleAt: string | null;
|
|
626
|
+
nextRetryAt: string | null;
|
|
627
|
+
reason: "ready" | "dns-action-required" | "dns-unavailable" | "provider-pending" | "provider-failed" | "samva-repair" | "signing-custody-action-required" | "provider-ownership-action-required" | "inactive" | "observation-stale" | "observation-unknown";
|
|
628
|
+
};
|
|
629
|
+
/**
|
|
630
|
+
* Stored domain, tenant and workspace health. Ready does not guarantee send acceptance or report configuration-set/account pauses.
|
|
631
|
+
*/
|
|
632
|
+
sending: {
|
|
633
|
+
actionOwner: "customer" | "samva" | "provider" | "none";
|
|
634
|
+
action: string;
|
|
635
|
+
freshness: "current" | "stale" | "unknown";
|
|
636
|
+
observedAt: string | null;
|
|
637
|
+
staleAt: string | null;
|
|
638
|
+
nextRetryAt: string | null;
|
|
639
|
+
status: "ready" | "blocked" | "unknown";
|
|
640
|
+
reason: "domain-not-ready" | "domain-observation-stale" | "operator-paused" | "provider-paused" | "tenant-health-stale" | "tenant-health-unknown" | "ready";
|
|
641
|
+
};
|
|
642
|
+
dmarc: {
|
|
643
|
+
status: "valid" | "missing" | "invalid" | "multiple" | "unknown";
|
|
644
|
+
source: "direct" | "organizational" | "none";
|
|
645
|
+
policyDomain: string | null;
|
|
646
|
+
policy: "none" | "quarantine" | "reject" | null;
|
|
647
|
+
subdomainPolicy: "none" | "quarantine" | "reject" | null;
|
|
648
|
+
effectivePolicy: "none" | "quarantine" | "reject" | null;
|
|
649
|
+
observedAt: string | null;
|
|
650
|
+
staleAt: string | null;
|
|
651
|
+
guidance: string;
|
|
652
|
+
};
|
|
653
|
+
rotation: EmailDkimRotation | null;
|
|
535
654
|
};
|
|
536
655
|
export type DomainConnectEligibility = {
|
|
537
656
|
eligible: false;
|
|
@@ -597,11 +716,99 @@ export type ForwardingConditions = {
|
|
|
597
716
|
hasAttachments?: boolean | null | undefined;
|
|
598
717
|
};
|
|
599
718
|
export type EmailForwardingRuleId = string;
|
|
719
|
+
export type DomainWarmingDomainRef = {
|
|
720
|
+
id: EmailDomainId;
|
|
721
|
+
domain: string;
|
|
722
|
+
};
|
|
723
|
+
export type EmailDomainWarmingPlanId = string;
|
|
724
|
+
export type DomainWarmingPlan = {
|
|
725
|
+
id: EmailDomainWarmingPlanId;
|
|
726
|
+
status: "active" | "paused" | "completed";
|
|
727
|
+
identity: "new" | "migrating" | "returning";
|
|
728
|
+
initialDailyRecipients: number;
|
|
729
|
+
dailyGrowthPercent: number;
|
|
730
|
+
targetDailyRecipients: number;
|
|
731
|
+
holdReason: string | null;
|
|
732
|
+
heldAt: string | null;
|
|
733
|
+
pausedAt: string | null;
|
|
734
|
+
completedAt: string | null;
|
|
735
|
+
createdAt: string;
|
|
736
|
+
updatedAt: string;
|
|
737
|
+
};
|
|
738
|
+
export type EmailDomainWarmingBatchId = string;
|
|
739
|
+
export type DomainWarmingBatch = {
|
|
740
|
+
id: EmailDomainWarmingBatchId;
|
|
741
|
+
sequence: number;
|
|
742
|
+
state: "scheduled" | "open" | "closed" | "cancelled";
|
|
743
|
+
startsAt: string;
|
|
744
|
+
endsAt: string;
|
|
745
|
+
allowanceRecipients: number;
|
|
746
|
+
dailyGrowthPercent: number;
|
|
747
|
+
targetDailyRecipients: number;
|
|
748
|
+
reservedRecipients: number;
|
|
749
|
+
acceptedRecipients: number;
|
|
750
|
+
cancelledAt: string | null;
|
|
751
|
+
createdAt: string;
|
|
752
|
+
};
|
|
753
|
+
export type EmailDomainWarmingDecisionId = string;
|
|
754
|
+
export type DomainWarmingDecision = {
|
|
755
|
+
id: EmailDomainWarmingDecisionId;
|
|
756
|
+
kind: "plan-created" | "policy-updated" | "window-opened" | "window-cancelled" | "paused" | "resumed" | "held" | "completed";
|
|
757
|
+
batchId: EmailDomainWarmingBatchId | null;
|
|
758
|
+
actor: string;
|
|
759
|
+
note: string | null;
|
|
760
|
+
createdAt: string;
|
|
761
|
+
};
|
|
762
|
+
export type DomainWarmingWindowHour = {
|
|
763
|
+
sent: number;
|
|
764
|
+
bounced: number;
|
|
765
|
+
complained: number;
|
|
766
|
+
};
|
|
767
|
+
export type DomainWarmingEvidence = {
|
|
768
|
+
observedAt: string;
|
|
769
|
+
windowHours: number;
|
|
770
|
+
minimumSends: number;
|
|
771
|
+
sent: number;
|
|
772
|
+
bounced: number;
|
|
773
|
+
complained: number;
|
|
774
|
+
hourly: Array<DomainWarmingWindowHour>;
|
|
775
|
+
bounceThreshold: number;
|
|
776
|
+
complaintThreshold: number;
|
|
777
|
+
verdict: "insufficient-evidence" | "healthy" | "over-threshold";
|
|
778
|
+
thresholdReason: string | null;
|
|
779
|
+
};
|
|
780
|
+
export type DomainWarmingHolds = {
|
|
781
|
+
workspacePausedAt: string | null;
|
|
782
|
+
workspacePauseReason: string | null;
|
|
783
|
+
sendingStatus: "enabled" | "disabled" | "reinstated" | "unknown";
|
|
784
|
+
};
|
|
785
|
+
export type DomainWarming = {
|
|
786
|
+
domain: DomainWarmingDomainRef;
|
|
787
|
+
plan: DomainWarmingPlan | null;
|
|
788
|
+
batches: Array<DomainWarmingBatch>;
|
|
789
|
+
decisions: Array<DomainWarmingDecision>;
|
|
790
|
+
evidence: DomainWarmingEvidence;
|
|
791
|
+
holds: DomainWarmingHolds;
|
|
792
|
+
};
|
|
793
|
+
export type CreateDomainWarmingPlanPayload = {
|
|
794
|
+
identity: "new" | "migrating" | "returning";
|
|
795
|
+
initialDailyRecipients: number;
|
|
796
|
+
dailyGrowthPercent: number;
|
|
797
|
+
targetDailyRecipients: number;
|
|
798
|
+
};
|
|
799
|
+
export type UpdateDomainWarmingPolicyPayload = {
|
|
800
|
+
dailyGrowthPercent: number;
|
|
801
|
+
targetDailyRecipients: number;
|
|
802
|
+
note?: string | null | undefined;
|
|
803
|
+
};
|
|
804
|
+
export type DomainWarmingNotePayload = {
|
|
805
|
+
note?: string | null | undefined;
|
|
806
|
+
};
|
|
600
807
|
export type CreateMediaPayload = {
|
|
601
808
|
filename: string;
|
|
602
809
|
contentType: string;
|
|
603
810
|
sizeBytes: number;
|
|
604
|
-
purpose: "attachment" | "avatar";
|
|
811
|
+
purpose: "attachment" | "avatar" | "review_evidence";
|
|
605
812
|
checksumSha256?: string | null | undefined;
|
|
606
813
|
};
|
|
607
814
|
export type OrganizationId = string;
|
|
@@ -623,7 +830,7 @@ export type CreatedMedia = {
|
|
|
623
830
|
width: number | null;
|
|
624
831
|
height: number | null;
|
|
625
832
|
durationMs: number | null;
|
|
626
|
-
purpose: "attachment" | "avatar";
|
|
833
|
+
purpose: "attachment" | "avatar" | "review_evidence";
|
|
627
834
|
checksumSha256: string | null;
|
|
628
835
|
expiresAt: string | null;
|
|
629
836
|
createdAt: string;
|
|
@@ -640,7 +847,7 @@ export type Media = {
|
|
|
640
847
|
width: number | null;
|
|
641
848
|
height: number | null;
|
|
642
849
|
durationMs: number | null;
|
|
643
|
-
purpose: "attachment" | "avatar";
|
|
850
|
+
purpose: "attachment" | "avatar" | "review_evidence";
|
|
644
851
|
checksumSha256: string | null;
|
|
645
852
|
expiresAt: string | null;
|
|
646
853
|
createdAt: string;
|
|
@@ -973,6 +1180,8 @@ export type TemplateSummary = {
|
|
|
973
1180
|
status: "draft" | "pending" | "approved" | "published" | "rejected" | "archived";
|
|
974
1181
|
usageCount: number;
|
|
975
1182
|
lastUsedAt: string | null;
|
|
1183
|
+
workspaceRevision: string | null;
|
|
1184
|
+
previewFixture: string | null;
|
|
976
1185
|
createdAt: string;
|
|
977
1186
|
updatedAt: string;
|
|
978
1187
|
};
|
|
@@ -1091,7 +1300,7 @@ export type DesignSettings = {
|
|
|
1091
1300
|
export type CreateWebhookPayload = {
|
|
1092
1301
|
name: string;
|
|
1093
1302
|
url: string;
|
|
1094
|
-
eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated">;
|
|
1303
|
+
eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
|
|
1095
1304
|
channels?: Array<"email"> | null | undefined;
|
|
1096
1305
|
headers?: {
|
|
1097
1306
|
[key: string]: string;
|
|
@@ -1102,7 +1311,27 @@ export type WebhookEndpoint = {
|
|
|
1102
1311
|
id: WebhookEndpointId;
|
|
1103
1312
|
name: string;
|
|
1104
1313
|
url: string;
|
|
1105
|
-
eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated">;
|
|
1314
|
+
eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
|
|
1315
|
+
channels: Array<"email"> | null;
|
|
1316
|
+
status: "active" | "disabled";
|
|
1317
|
+
hasCustomHeaders: boolean;
|
|
1318
|
+
failureStartedAt: string | null;
|
|
1319
|
+
lastSucceededAt: string | null;
|
|
1320
|
+
createdAt: string;
|
|
1321
|
+
updatedAt: string;
|
|
1322
|
+
};
|
|
1323
|
+
export type WebhookDeliveryCounts = {
|
|
1324
|
+
total: number;
|
|
1325
|
+
pending: number;
|
|
1326
|
+
delivered: number;
|
|
1327
|
+
exhausted: number;
|
|
1328
|
+
cancelled: number;
|
|
1329
|
+
};
|
|
1330
|
+
export type WebhookEndpointListItem = {
|
|
1331
|
+
id: WebhookEndpointId;
|
|
1332
|
+
name: string;
|
|
1333
|
+
url: string;
|
|
1334
|
+
eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
|
|
1106
1335
|
channels: Array<"email"> | null;
|
|
1107
1336
|
status: "active" | "disabled";
|
|
1108
1337
|
hasCustomHeaders: boolean;
|
|
@@ -1110,11 +1339,12 @@ export type WebhookEndpoint = {
|
|
|
1110
1339
|
lastSucceededAt: string | null;
|
|
1111
1340
|
createdAt: string;
|
|
1112
1341
|
updatedAt: string;
|
|
1342
|
+
deliveries: WebhookDeliveryCounts;
|
|
1113
1343
|
};
|
|
1114
1344
|
export type UpdateWebhookPayload = {
|
|
1115
1345
|
name?: string | null | undefined;
|
|
1116
1346
|
url?: string | null | undefined;
|
|
1117
|
-
eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated"> | null | undefined;
|
|
1347
|
+
eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated"> | null | undefined;
|
|
1118
1348
|
channels?: Array<"email"> | null | null | undefined;
|
|
1119
1349
|
headers?: {
|
|
1120
1350
|
[key: string]: string;
|
|
@@ -1129,6 +1359,21 @@ export type TestWebhookPayload = {
|
|
|
1129
1359
|
export type WebhookEventId = string;
|
|
1130
1360
|
export type WebhookDeliveryId = string;
|
|
1131
1361
|
export type WebhookAttemptId = string;
|
|
1362
|
+
export type WebhookDailyDeliveries = {
|
|
1363
|
+
date: string;
|
|
1364
|
+
pending: number;
|
|
1365
|
+
delivered: number;
|
|
1366
|
+
exhausted: number;
|
|
1367
|
+
cancelled: number;
|
|
1368
|
+
};
|
|
1369
|
+
export type WebhookStatsResponse = {
|
|
1370
|
+
total: number;
|
|
1371
|
+
pending: number;
|
|
1372
|
+
delivered: number;
|
|
1373
|
+
exhausted: number;
|
|
1374
|
+
cancelled: number;
|
|
1375
|
+
daily: Array<WebhookDailyDeliveries>;
|
|
1376
|
+
};
|
|
1132
1377
|
export type Organization = {
|
|
1133
1378
|
id: string;
|
|
1134
1379
|
billingAccountId: string;
|
|
@@ -1251,9 +1496,9 @@ export type MessagesSendErrors = {
|
|
|
1251
1496
|
*/
|
|
1252
1497
|
402: PaymentRequiredError;
|
|
1253
1498
|
/**
|
|
1254
|
-
* ForbiddenError | FlagDisabledError
|
|
1499
|
+
* ForbiddenError | OnboardingReviewRequiredError | FlagDisabledError
|
|
1255
1500
|
*/
|
|
1256
|
-
403: FlagDisabledError | ForbiddenError;
|
|
1501
|
+
403: OnboardingReviewRequiredError | FlagDisabledError | ForbiddenError;
|
|
1257
1502
|
/**
|
|
1258
1503
|
* ResourceNotFoundError
|
|
1259
1504
|
*/
|
|
@@ -1393,6 +1638,38 @@ export type MessagesGetEmailResponses = {
|
|
|
1393
1638
|
* Success
|
|
1394
1639
|
*/
|
|
1395
1640
|
200: {
|
|
1641
|
+
deliveries: Array<{
|
|
1642
|
+
scheduling: {
|
|
1643
|
+
dueAt: string;
|
|
1644
|
+
expiresAt: string;
|
|
1645
|
+
waitReason: "rate" | "daily-quota" | "domain-health" | "tenant-health" | "provider-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | null;
|
|
1646
|
+
} | null;
|
|
1647
|
+
id: string;
|
|
1648
|
+
messageId: string;
|
|
1649
|
+
recipientId: string | null;
|
|
1650
|
+
channel: "email";
|
|
1651
|
+
status: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained";
|
|
1652
|
+
attemptCount: number;
|
|
1653
|
+
maxAttempts: number;
|
|
1654
|
+
queuedAt: string | null;
|
|
1655
|
+
claimedAt: string | null;
|
|
1656
|
+
lastAttemptAt: string | null;
|
|
1657
|
+
nextRetryAt: string | null;
|
|
1658
|
+
sentAt: string | null;
|
|
1659
|
+
deliveredAt: string | null;
|
|
1660
|
+
readAt: string | null;
|
|
1661
|
+
failedAt: string | null;
|
|
1662
|
+
terminalAt: string | null;
|
|
1663
|
+
errorCode: string | null;
|
|
1664
|
+
errorMessage: string | null;
|
|
1665
|
+
errorDetails: JsonValue | null;
|
|
1666
|
+
cost: string;
|
|
1667
|
+
currency: string;
|
|
1668
|
+
idempotencyKey: string | null;
|
|
1669
|
+
metadata: JsonValue | null;
|
|
1670
|
+
createdAt: string;
|
|
1671
|
+
updatedAt: string;
|
|
1672
|
+
}>;
|
|
1396
1673
|
id: MessageId;
|
|
1397
1674
|
organizationId: string;
|
|
1398
1675
|
conversationId: ConversationId | null;
|
|
@@ -1445,6 +1722,51 @@ export type MessagesGetEmailResponses = {
|
|
|
1445
1722
|
};
|
|
1446
1723
|
};
|
|
1447
1724
|
export type MessagesGetEmailResponse = MessagesGetEmailResponses[keyof MessagesGetEmailResponses];
|
|
1725
|
+
export type MessagesValidateEmailData = {
|
|
1726
|
+
body: {
|
|
1727
|
+
conversationId?: ConversationId | null | null | undefined;
|
|
1728
|
+
metadata?: MessageMetadata | undefined;
|
|
1729
|
+
channel: "email";
|
|
1730
|
+
to: EmailRecipients;
|
|
1731
|
+
cc?: EmailCcRecipients | undefined;
|
|
1732
|
+
bcc?: EmailBccRecipients | undefined;
|
|
1733
|
+
from?: EmailSender | undefined;
|
|
1734
|
+
email: EmailContent;
|
|
1735
|
+
};
|
|
1736
|
+
path?: never;
|
|
1737
|
+
query?: never;
|
|
1738
|
+
url: "/v1/messages/validate/email";
|
|
1739
|
+
};
|
|
1740
|
+
export type MessagesValidateEmailErrors = {
|
|
1741
|
+
/**
|
|
1742
|
+
* UnauthorizedError
|
|
1743
|
+
*/
|
|
1744
|
+
401: UnauthorizedError;
|
|
1745
|
+
/**
|
|
1746
|
+
* ForbiddenError
|
|
1747
|
+
*/
|
|
1748
|
+
403: ForbiddenError;
|
|
1749
|
+
/**
|
|
1750
|
+
* ResourceNotFoundError
|
|
1751
|
+
*/
|
|
1752
|
+
404: ResourceNotFoundError;
|
|
1753
|
+
/**
|
|
1754
|
+
* ValidationError
|
|
1755
|
+
*/
|
|
1756
|
+
422: ValidationError;
|
|
1757
|
+
/**
|
|
1758
|
+
* InternalError
|
|
1759
|
+
*/
|
|
1760
|
+
500: InternalError;
|
|
1761
|
+
};
|
|
1762
|
+
export type MessagesValidateEmailError = MessagesValidateEmailErrors[keyof MessagesValidateEmailErrors];
|
|
1763
|
+
export type MessagesValidateEmailResponses = {
|
|
1764
|
+
/**
|
|
1765
|
+
* ValidateEmailResponse
|
|
1766
|
+
*/
|
|
1767
|
+
200: ValidateEmailResponse;
|
|
1768
|
+
};
|
|
1769
|
+
export type MessagesValidateEmailResponse = MessagesValidateEmailResponses[keyof MessagesValidateEmailResponses];
|
|
1448
1770
|
export type MessagesGetStatusData = {
|
|
1449
1771
|
body?: never;
|
|
1450
1772
|
path: {
|
|
@@ -1642,7 +1964,7 @@ export type ScheduledMessagesListData = {
|
|
|
1642
1964
|
body?: never;
|
|
1643
1965
|
path?: never;
|
|
1644
1966
|
query?: {
|
|
1645
|
-
status?: "pending" | "dispatching" | "dispatched" | "cancelled" | "failed" | null | undefined;
|
|
1967
|
+
status?: "pending" | "dispatching" | "paused" | "dispatched" | "cancelled" | "failed" | null | undefined;
|
|
1646
1968
|
page?: string | null | undefined;
|
|
1647
1969
|
limit?: string | null | undefined;
|
|
1648
1970
|
};
|
|
@@ -1677,7 +1999,7 @@ export type ScheduledMessagesCreateData = {
|
|
|
1677
1999
|
body: {
|
|
1678
2000
|
send: DispatchSendMessagePayload;
|
|
1679
2001
|
scheduledFor: string;
|
|
1680
|
-
timezone?:
|
|
2002
|
+
timezone?: IanaTimezone | null | undefined;
|
|
1681
2003
|
idempotencyKey?: string | null | undefined;
|
|
1682
2004
|
referenceId?: string | null | undefined;
|
|
1683
2005
|
};
|
|
@@ -1794,6 +2116,57 @@ export type ScheduledMessagesCancelResponses = {
|
|
|
1794
2116
|
};
|
|
1795
2117
|
};
|
|
1796
2118
|
export type ScheduledMessagesCancelResponse = ScheduledMessagesCancelResponses[keyof ScheduledMessagesCancelResponses];
|
|
2119
|
+
export type ScheduledMessagesResumeData = {
|
|
2120
|
+
body: {
|
|
2121
|
+
choice: "send_now";
|
|
2122
|
+
} | {
|
|
2123
|
+
choice: "new_time";
|
|
2124
|
+
scheduledFor: string;
|
|
2125
|
+
};
|
|
2126
|
+
path: {
|
|
2127
|
+
id: ScheduledMessageId;
|
|
2128
|
+
};
|
|
2129
|
+
query?: never;
|
|
2130
|
+
url: "/v1/messages/scheduled/{id}/resume";
|
|
2131
|
+
};
|
|
2132
|
+
export type ScheduledMessagesResumeErrors = {
|
|
2133
|
+
/**
|
|
2134
|
+
* UnauthorizedError
|
|
2135
|
+
*/
|
|
2136
|
+
401: UnauthorizedError;
|
|
2137
|
+
/**
|
|
2138
|
+
* ForbiddenError
|
|
2139
|
+
*/
|
|
2140
|
+
403: ForbiddenError;
|
|
2141
|
+
/**
|
|
2142
|
+
* ResourceNotFoundError
|
|
2143
|
+
*/
|
|
2144
|
+
404: ResourceNotFoundError;
|
|
2145
|
+
/**
|
|
2146
|
+
* ConflictError
|
|
2147
|
+
*/
|
|
2148
|
+
409: ConflictError;
|
|
2149
|
+
/**
|
|
2150
|
+
* ValidationError
|
|
2151
|
+
*/
|
|
2152
|
+
422: ValidationError;
|
|
2153
|
+
/**
|
|
2154
|
+
* InternalError
|
|
2155
|
+
*/
|
|
2156
|
+
500: InternalError;
|
|
2157
|
+
/**
|
|
2158
|
+
* ExternalServiceError
|
|
2159
|
+
*/
|
|
2160
|
+
502: ExternalServiceError;
|
|
2161
|
+
};
|
|
2162
|
+
export type ScheduledMessagesResumeError = ScheduledMessagesResumeErrors[keyof ScheduledMessagesResumeErrors];
|
|
2163
|
+
export type ScheduledMessagesResumeResponses = {
|
|
2164
|
+
/**
|
|
2165
|
+
* ScheduledMessage
|
|
2166
|
+
*/
|
|
2167
|
+
200: ScheduledMessage;
|
|
2168
|
+
};
|
|
2169
|
+
export type ScheduledMessagesResumeResponse = ScheduledMessagesResumeResponses[keyof ScheduledMessagesResumeResponses];
|
|
1797
2170
|
export type CampaignsListData = {
|
|
1798
2171
|
body?: never;
|
|
1799
2172
|
path?: never;
|
|
@@ -2292,6 +2665,104 @@ export type CampaignsListRecipientsResponses = {
|
|
|
2292
2665
|
};
|
|
2293
2666
|
};
|
|
2294
2667
|
export type CampaignsListRecipientsResponse = CampaignsListRecipientsResponses[keyof CampaignsListRecipientsResponses];
|
|
2668
|
+
export type EmailGetOnboardingReviewData = {
|
|
2669
|
+
body?: never;
|
|
2670
|
+
path?: never;
|
|
2671
|
+
query?: never;
|
|
2672
|
+
url: "/v1/email/onboarding-review";
|
|
2673
|
+
};
|
|
2674
|
+
export type EmailGetOnboardingReviewErrors = {
|
|
2675
|
+
/**
|
|
2676
|
+
* UnauthorizedError
|
|
2677
|
+
*/
|
|
2678
|
+
401: UnauthorizedError;
|
|
2679
|
+
/**
|
|
2680
|
+
* ForbiddenError
|
|
2681
|
+
*/
|
|
2682
|
+
403: ForbiddenError;
|
|
2683
|
+
/**
|
|
2684
|
+
* InternalError
|
|
2685
|
+
*/
|
|
2686
|
+
500: InternalError;
|
|
2687
|
+
};
|
|
2688
|
+
export type EmailGetOnboardingReviewError = EmailGetOnboardingReviewErrors[keyof EmailGetOnboardingReviewErrors];
|
|
2689
|
+
export type EmailGetOnboardingReviewResponses = {
|
|
2690
|
+
/**
|
|
2691
|
+
* OnboardingReviewStatus
|
|
2692
|
+
*/
|
|
2693
|
+
200: OnboardingReviewStatus;
|
|
2694
|
+
};
|
|
2695
|
+
export type EmailGetOnboardingReviewResponse = EmailGetOnboardingReviewResponses[keyof EmailGetOnboardingReviewResponses];
|
|
2696
|
+
export type EmailReapplyOnboardingReviewData = {
|
|
2697
|
+
body: {
|
|
2698
|
+
expectedGeneration: number;
|
|
2699
|
+
};
|
|
2700
|
+
path?: never;
|
|
2701
|
+
query?: never;
|
|
2702
|
+
url: "/v1/email/onboarding-review/reapply";
|
|
2703
|
+
};
|
|
2704
|
+
export type EmailReapplyOnboardingReviewErrors = {
|
|
2705
|
+
/**
|
|
2706
|
+
* UnauthorizedError
|
|
2707
|
+
*/
|
|
2708
|
+
401: UnauthorizedError;
|
|
2709
|
+
/**
|
|
2710
|
+
* ForbiddenError
|
|
2711
|
+
*/
|
|
2712
|
+
403: ForbiddenError;
|
|
2713
|
+
/**
|
|
2714
|
+
* ConflictError
|
|
2715
|
+
*/
|
|
2716
|
+
409: ConflictError;
|
|
2717
|
+
/**
|
|
2718
|
+
* InternalError
|
|
2719
|
+
*/
|
|
2720
|
+
500: InternalError;
|
|
2721
|
+
};
|
|
2722
|
+
export type EmailReapplyOnboardingReviewError = EmailReapplyOnboardingReviewErrors[keyof EmailReapplyOnboardingReviewErrors];
|
|
2723
|
+
export type EmailReapplyOnboardingReviewResponses = {
|
|
2724
|
+
/**
|
|
2725
|
+
* OnboardingReviewStatus
|
|
2726
|
+
*/
|
|
2727
|
+
200: OnboardingReviewStatus;
|
|
2728
|
+
};
|
|
2729
|
+
export type EmailReapplyOnboardingReviewResponse = EmailReapplyOnboardingReviewResponses[keyof EmailReapplyOnboardingReviewResponses];
|
|
2730
|
+
export type EmailRespondToOnboardingInformationRequestData = {
|
|
2731
|
+
body: {
|
|
2732
|
+
expectedGeneration: number;
|
|
2733
|
+
responseText: string;
|
|
2734
|
+
evidenceMediaIds: Array<MediaId>;
|
|
2735
|
+
};
|
|
2736
|
+
path?: never;
|
|
2737
|
+
query?: never;
|
|
2738
|
+
url: "/v1/email/onboarding-review/respond";
|
|
2739
|
+
};
|
|
2740
|
+
export type EmailRespondToOnboardingInformationRequestErrors = {
|
|
2741
|
+
/**
|
|
2742
|
+
* UnauthorizedError
|
|
2743
|
+
*/
|
|
2744
|
+
401: UnauthorizedError;
|
|
2745
|
+
/**
|
|
2746
|
+
* ForbiddenError
|
|
2747
|
+
*/
|
|
2748
|
+
403: ForbiddenError;
|
|
2749
|
+
/**
|
|
2750
|
+
* ConflictError
|
|
2751
|
+
*/
|
|
2752
|
+
409: ConflictError;
|
|
2753
|
+
/**
|
|
2754
|
+
* InternalError
|
|
2755
|
+
*/
|
|
2756
|
+
500: InternalError;
|
|
2757
|
+
};
|
|
2758
|
+
export type EmailRespondToOnboardingInformationRequestError = EmailRespondToOnboardingInformationRequestErrors[keyof EmailRespondToOnboardingInformationRequestErrors];
|
|
2759
|
+
export type EmailRespondToOnboardingInformationRequestResponses = {
|
|
2760
|
+
/**
|
|
2761
|
+
* OnboardingReviewStatus
|
|
2762
|
+
*/
|
|
2763
|
+
200: OnboardingReviewStatus;
|
|
2764
|
+
};
|
|
2765
|
+
export type EmailRespondToOnboardingInformationRequestResponse = EmailRespondToOnboardingInformationRequestResponses[keyof EmailRespondToOnboardingInformationRequestResponses];
|
|
2295
2766
|
export type EmailGetTrackingDefaultsData = {
|
|
2296
2767
|
body?: never;
|
|
2297
2768
|
path?: never;
|
|
@@ -2610,6 +3081,51 @@ export type EmailAdvanceDomainVerificationResponses = {
|
|
|
2610
3081
|
200: EmailDomainVerification;
|
|
2611
3082
|
};
|
|
2612
3083
|
export type EmailAdvanceDomainVerificationResponse = EmailAdvanceDomainVerificationResponses[keyof EmailAdvanceDomainVerificationResponses];
|
|
3084
|
+
export type EmailRotateDomainDkimData = {
|
|
3085
|
+
body?: never;
|
|
3086
|
+
headers: {
|
|
3087
|
+
"idempotency-key": string;
|
|
3088
|
+
};
|
|
3089
|
+
path: {
|
|
3090
|
+
id: EmailDomainId;
|
|
3091
|
+
};
|
|
3092
|
+
query?: never;
|
|
3093
|
+
url: "/v1/email/domains/{id}/dkim-rotation";
|
|
3094
|
+
};
|
|
3095
|
+
export type EmailRotateDomainDkimErrors = {
|
|
3096
|
+
/**
|
|
3097
|
+
* UnauthorizedError
|
|
3098
|
+
*/
|
|
3099
|
+
401: UnauthorizedError;
|
|
3100
|
+
/**
|
|
3101
|
+
* ForbiddenError
|
|
3102
|
+
*/
|
|
3103
|
+
403: ForbiddenError;
|
|
3104
|
+
/**
|
|
3105
|
+
* ResourceNotFoundError
|
|
3106
|
+
*/
|
|
3107
|
+
404: ResourceNotFoundError;
|
|
3108
|
+
/**
|
|
3109
|
+
* ConflictError
|
|
3110
|
+
*/
|
|
3111
|
+
409: ConflictError;
|
|
3112
|
+
/**
|
|
3113
|
+
* InternalError
|
|
3114
|
+
*/
|
|
3115
|
+
500: InternalError;
|
|
3116
|
+
/**
|
|
3117
|
+
* EmailChannelError
|
|
3118
|
+
*/
|
|
3119
|
+
502: EmailChannelError;
|
|
3120
|
+
};
|
|
3121
|
+
export type EmailRotateDomainDkimError = EmailRotateDomainDkimErrors[keyof EmailRotateDomainDkimErrors];
|
|
3122
|
+
export type EmailRotateDomainDkimResponses = {
|
|
3123
|
+
/**
|
|
3124
|
+
* EmailDkimRotation
|
|
3125
|
+
*/
|
|
3126
|
+
200: EmailDkimRotation;
|
|
3127
|
+
};
|
|
3128
|
+
export type EmailRotateDomainDkimResponse = EmailRotateDomainDkimResponses[keyof EmailRotateDomainDkimResponses];
|
|
2613
3129
|
export type EmailRemoveDomainData = {
|
|
2614
3130
|
body?: never;
|
|
2615
3131
|
path: {
|
|
@@ -3423,7 +3939,45 @@ export type EmailRemoveSenderData = {
|
|
|
3423
3939
|
query?: never;
|
|
3424
3940
|
url: "/v1/email/senders/{id}";
|
|
3425
3941
|
};
|
|
3426
|
-
export type EmailRemoveSenderErrors = {
|
|
3942
|
+
export type EmailRemoveSenderErrors = {
|
|
3943
|
+
/**
|
|
3944
|
+
* UnauthorizedError
|
|
3945
|
+
*/
|
|
3946
|
+
401: UnauthorizedError;
|
|
3947
|
+
/**
|
|
3948
|
+
* ForbiddenError
|
|
3949
|
+
*/
|
|
3950
|
+
403: ForbiddenError;
|
|
3951
|
+
/**
|
|
3952
|
+
* ResourceNotFoundError
|
|
3953
|
+
*/
|
|
3954
|
+
404: ResourceNotFoundError;
|
|
3955
|
+
/**
|
|
3956
|
+
* ValidationError
|
|
3957
|
+
*/
|
|
3958
|
+
422: ValidationError;
|
|
3959
|
+
/**
|
|
3960
|
+
* InternalError
|
|
3961
|
+
*/
|
|
3962
|
+
500: InternalError;
|
|
3963
|
+
};
|
|
3964
|
+
export type EmailRemoveSenderError = EmailRemoveSenderErrors[keyof EmailRemoveSenderErrors];
|
|
3965
|
+
export type EmailRemoveSenderResponses = {
|
|
3966
|
+
/**
|
|
3967
|
+
* SuccessResult
|
|
3968
|
+
*/
|
|
3969
|
+
200: SuccessResult;
|
|
3970
|
+
};
|
|
3971
|
+
export type EmailRemoveSenderResponse = EmailRemoveSenderResponses[keyof EmailRemoveSenderResponses];
|
|
3972
|
+
export type EmailGetSenderData = {
|
|
3973
|
+
body?: never;
|
|
3974
|
+
path: {
|
|
3975
|
+
id: EmailSenderId;
|
|
3976
|
+
};
|
|
3977
|
+
query?: never;
|
|
3978
|
+
url: "/v1/email/senders/{id}";
|
|
3979
|
+
};
|
|
3980
|
+
export type EmailGetSenderErrors = {
|
|
3427
3981
|
/**
|
|
3428
3982
|
* UnauthorizedError
|
|
3429
3983
|
*/
|
|
@@ -3436,23 +3990,36 @@ export type EmailRemoveSenderErrors = {
|
|
|
3436
3990
|
* ResourceNotFoundError
|
|
3437
3991
|
*/
|
|
3438
3992
|
404: ResourceNotFoundError;
|
|
3439
|
-
/**
|
|
3440
|
-
* ValidationError
|
|
3441
|
-
*/
|
|
3442
|
-
422: ValidationError;
|
|
3443
3993
|
/**
|
|
3444
3994
|
* InternalError
|
|
3445
3995
|
*/
|
|
3446
3996
|
500: InternalError;
|
|
3447
3997
|
};
|
|
3448
|
-
export type
|
|
3449
|
-
export type
|
|
3998
|
+
export type EmailGetSenderError = EmailGetSenderErrors[keyof EmailGetSenderErrors];
|
|
3999
|
+
export type EmailGetSenderResponses = {
|
|
3450
4000
|
/**
|
|
3451
|
-
*
|
|
4001
|
+
* Success
|
|
3452
4002
|
*/
|
|
3453
|
-
200:
|
|
4003
|
+
200: {
|
|
4004
|
+
id: EmailSenderId;
|
|
4005
|
+
organizationId: string;
|
|
4006
|
+
email: string;
|
|
4007
|
+
name: string | null;
|
|
4008
|
+
domainId: EmailDomainId | null;
|
|
4009
|
+
verificationStatus: "pending" | "verified" | "failed";
|
|
4010
|
+
verifiedAt: string | null;
|
|
4011
|
+
verificationToken: string | null;
|
|
4012
|
+
providerLifecycle: "provisioning" | "active" | "deleting" | "failed";
|
|
4013
|
+
providerFailureCode: string | null;
|
|
4014
|
+
isDefault: boolean;
|
|
4015
|
+
replyToEmails: Array<string> | null;
|
|
4016
|
+
deliverability: DeliverabilityFacts;
|
|
4017
|
+
isActive: boolean;
|
|
4018
|
+
createdAt: string;
|
|
4019
|
+
updatedAt: string;
|
|
4020
|
+
};
|
|
3454
4021
|
};
|
|
3455
|
-
export type
|
|
4022
|
+
export type EmailGetSenderResponse = EmailGetSenderResponses[keyof EmailGetSenderResponses];
|
|
3456
4023
|
export type EmailSetDefaultSenderData = {
|
|
3457
4024
|
body?: never;
|
|
3458
4025
|
path: {
|
|
@@ -4164,6 +4731,10 @@ export type EmailCreateForwardingRuleErrors = {
|
|
|
4164
4731
|
* ForbiddenError
|
|
4165
4732
|
*/
|
|
4166
4733
|
403: ForbiddenError;
|
|
4734
|
+
/**
|
|
4735
|
+
* ResourceNotFoundError
|
|
4736
|
+
*/
|
|
4737
|
+
404: ResourceNotFoundError;
|
|
4167
4738
|
/**
|
|
4168
4739
|
* ValidationError
|
|
4169
4740
|
*/
|
|
@@ -4332,12 +4903,298 @@ export type EmailGetForwardingLogResponses = {
|
|
|
4332
4903
|
};
|
|
4333
4904
|
};
|
|
4334
4905
|
export type EmailGetForwardingLogResponse = EmailGetForwardingLogResponses[keyof EmailGetForwardingLogResponses];
|
|
4906
|
+
export type EmailGetDomainWarmingData = {
|
|
4907
|
+
body?: never;
|
|
4908
|
+
path: {
|
|
4909
|
+
id: EmailDomainId;
|
|
4910
|
+
};
|
|
4911
|
+
query?: never;
|
|
4912
|
+
url: "/v1/email/domains/{id}/warming";
|
|
4913
|
+
};
|
|
4914
|
+
export type EmailGetDomainWarmingErrors = {
|
|
4915
|
+
/**
|
|
4916
|
+
* UnauthorizedError
|
|
4917
|
+
*/
|
|
4918
|
+
401: UnauthorizedError;
|
|
4919
|
+
/**
|
|
4920
|
+
* ForbiddenError
|
|
4921
|
+
*/
|
|
4922
|
+
403: ForbiddenError;
|
|
4923
|
+
/**
|
|
4924
|
+
* ResourceNotFoundError
|
|
4925
|
+
*/
|
|
4926
|
+
404: ResourceNotFoundError;
|
|
4927
|
+
/**
|
|
4928
|
+
* InternalError
|
|
4929
|
+
*/
|
|
4930
|
+
500: InternalError;
|
|
4931
|
+
};
|
|
4932
|
+
export type EmailGetDomainWarmingError = EmailGetDomainWarmingErrors[keyof EmailGetDomainWarmingErrors];
|
|
4933
|
+
export type EmailGetDomainWarmingResponses = {
|
|
4934
|
+
/**
|
|
4935
|
+
* DomainWarming
|
|
4936
|
+
*/
|
|
4937
|
+
200: DomainWarming;
|
|
4938
|
+
};
|
|
4939
|
+
export type EmailGetDomainWarmingResponse = EmailGetDomainWarmingResponses[keyof EmailGetDomainWarmingResponses];
|
|
4940
|
+
export type EmailCreateDomainWarmingPlanData = {
|
|
4941
|
+
body: {
|
|
4942
|
+
identity: "new" | "migrating" | "returning";
|
|
4943
|
+
initialDailyRecipients: number;
|
|
4944
|
+
dailyGrowthPercent: number;
|
|
4945
|
+
targetDailyRecipients: number;
|
|
4946
|
+
};
|
|
4947
|
+
path: {
|
|
4948
|
+
id: EmailDomainId;
|
|
4949
|
+
};
|
|
4950
|
+
query?: never;
|
|
4951
|
+
url: "/v1/email/domains/{id}/warming";
|
|
4952
|
+
};
|
|
4953
|
+
export type EmailCreateDomainWarmingPlanErrors = {
|
|
4954
|
+
/**
|
|
4955
|
+
* UnauthorizedError
|
|
4956
|
+
*/
|
|
4957
|
+
401: UnauthorizedError;
|
|
4958
|
+
/**
|
|
4959
|
+
* ForbiddenError
|
|
4960
|
+
*/
|
|
4961
|
+
403: ForbiddenError;
|
|
4962
|
+
/**
|
|
4963
|
+
* ResourceNotFoundError
|
|
4964
|
+
*/
|
|
4965
|
+
404: ResourceNotFoundError;
|
|
4966
|
+
/**
|
|
4967
|
+
* ConflictError
|
|
4968
|
+
*/
|
|
4969
|
+
409: ConflictError;
|
|
4970
|
+
/**
|
|
4971
|
+
* ValidationError
|
|
4972
|
+
*/
|
|
4973
|
+
422: ValidationError;
|
|
4974
|
+
/**
|
|
4975
|
+
* InternalError
|
|
4976
|
+
*/
|
|
4977
|
+
500: InternalError;
|
|
4978
|
+
};
|
|
4979
|
+
export type EmailCreateDomainWarmingPlanError = EmailCreateDomainWarmingPlanErrors[keyof EmailCreateDomainWarmingPlanErrors];
|
|
4980
|
+
export type EmailCreateDomainWarmingPlanResponses = {
|
|
4981
|
+
/**
|
|
4982
|
+
* Success
|
|
4983
|
+
*/
|
|
4984
|
+
201: DomainWarming;
|
|
4985
|
+
};
|
|
4986
|
+
export type EmailCreateDomainWarmingPlanResponse = EmailCreateDomainWarmingPlanResponses[keyof EmailCreateDomainWarmingPlanResponses];
|
|
4987
|
+
export type EmailUpdateDomainWarmingPolicyData = {
|
|
4988
|
+
body: {
|
|
4989
|
+
dailyGrowthPercent: number;
|
|
4990
|
+
targetDailyRecipients: number;
|
|
4991
|
+
note?: string | null | undefined;
|
|
4992
|
+
};
|
|
4993
|
+
path: {
|
|
4994
|
+
id: EmailDomainId;
|
|
4995
|
+
};
|
|
4996
|
+
query?: never;
|
|
4997
|
+
url: "/v1/email/domains/{id}/warming/policy";
|
|
4998
|
+
};
|
|
4999
|
+
export type EmailUpdateDomainWarmingPolicyErrors = {
|
|
5000
|
+
/**
|
|
5001
|
+
* UnauthorizedError
|
|
5002
|
+
*/
|
|
5003
|
+
401: UnauthorizedError;
|
|
5004
|
+
/**
|
|
5005
|
+
* ForbiddenError
|
|
5006
|
+
*/
|
|
5007
|
+
403: ForbiddenError;
|
|
5008
|
+
/**
|
|
5009
|
+
* ResourceNotFoundError
|
|
5010
|
+
*/
|
|
5011
|
+
404: ResourceNotFoundError;
|
|
5012
|
+
/**
|
|
5013
|
+
* ConflictError
|
|
5014
|
+
*/
|
|
5015
|
+
409: ConflictError;
|
|
5016
|
+
/**
|
|
5017
|
+
* ValidationError
|
|
5018
|
+
*/
|
|
5019
|
+
422: ValidationError;
|
|
5020
|
+
/**
|
|
5021
|
+
* InternalError
|
|
5022
|
+
*/
|
|
5023
|
+
500: InternalError;
|
|
5024
|
+
};
|
|
5025
|
+
export type EmailUpdateDomainWarmingPolicyError = EmailUpdateDomainWarmingPolicyErrors[keyof EmailUpdateDomainWarmingPolicyErrors];
|
|
5026
|
+
export type EmailUpdateDomainWarmingPolicyResponses = {
|
|
5027
|
+
/**
|
|
5028
|
+
* DomainWarming
|
|
5029
|
+
*/
|
|
5030
|
+
200: DomainWarming;
|
|
5031
|
+
};
|
|
5032
|
+
export type EmailUpdateDomainWarmingPolicyResponse = EmailUpdateDomainWarmingPolicyResponses[keyof EmailUpdateDomainWarmingPolicyResponses];
|
|
5033
|
+
export type EmailCancelDomainWarmingBatchData = {
|
|
5034
|
+
body?: never;
|
|
5035
|
+
path: {
|
|
5036
|
+
id: EmailDomainId;
|
|
5037
|
+
batchId: EmailDomainWarmingBatchId;
|
|
5038
|
+
};
|
|
5039
|
+
query?: never;
|
|
5040
|
+
url: "/v1/email/domains/{id}/warming/batches/{batchId}";
|
|
5041
|
+
};
|
|
5042
|
+
export type EmailCancelDomainWarmingBatchErrors = {
|
|
5043
|
+
/**
|
|
5044
|
+
* UnauthorizedError
|
|
5045
|
+
*/
|
|
5046
|
+
401: UnauthorizedError;
|
|
5047
|
+
/**
|
|
5048
|
+
* ForbiddenError
|
|
5049
|
+
*/
|
|
5050
|
+
403: ForbiddenError;
|
|
5051
|
+
/**
|
|
5052
|
+
* ResourceNotFoundError
|
|
5053
|
+
*/
|
|
5054
|
+
404: ResourceNotFoundError;
|
|
5055
|
+
/**
|
|
5056
|
+
* ConflictError
|
|
5057
|
+
*/
|
|
5058
|
+
409: ConflictError;
|
|
5059
|
+
/**
|
|
5060
|
+
* InternalError
|
|
5061
|
+
*/
|
|
5062
|
+
500: InternalError;
|
|
5063
|
+
};
|
|
5064
|
+
export type EmailCancelDomainWarmingBatchError = EmailCancelDomainWarmingBatchErrors[keyof EmailCancelDomainWarmingBatchErrors];
|
|
5065
|
+
export type EmailCancelDomainWarmingBatchResponses = {
|
|
5066
|
+
/**
|
|
5067
|
+
* DomainWarming
|
|
5068
|
+
*/
|
|
5069
|
+
200: DomainWarming;
|
|
5070
|
+
};
|
|
5071
|
+
export type EmailCancelDomainWarmingBatchResponse = EmailCancelDomainWarmingBatchResponses[keyof EmailCancelDomainWarmingBatchResponses];
|
|
5072
|
+
export type EmailPauseDomainWarmingData = {
|
|
5073
|
+
body: {
|
|
5074
|
+
note?: string | null | undefined;
|
|
5075
|
+
};
|
|
5076
|
+
path: {
|
|
5077
|
+
id: EmailDomainId;
|
|
5078
|
+
};
|
|
5079
|
+
query?: never;
|
|
5080
|
+
url: "/v1/email/domains/{id}/warming/pause";
|
|
5081
|
+
};
|
|
5082
|
+
export type EmailPauseDomainWarmingErrors = {
|
|
5083
|
+
/**
|
|
5084
|
+
* UnauthorizedError
|
|
5085
|
+
*/
|
|
5086
|
+
401: UnauthorizedError;
|
|
5087
|
+
/**
|
|
5088
|
+
* ForbiddenError
|
|
5089
|
+
*/
|
|
5090
|
+
403: ForbiddenError;
|
|
5091
|
+
/**
|
|
5092
|
+
* ResourceNotFoundError
|
|
5093
|
+
*/
|
|
5094
|
+
404: ResourceNotFoundError;
|
|
5095
|
+
/**
|
|
5096
|
+
* ConflictError
|
|
5097
|
+
*/
|
|
5098
|
+
409: ConflictError;
|
|
5099
|
+
/**
|
|
5100
|
+
* InternalError
|
|
5101
|
+
*/
|
|
5102
|
+
500: InternalError;
|
|
5103
|
+
};
|
|
5104
|
+
export type EmailPauseDomainWarmingError = EmailPauseDomainWarmingErrors[keyof EmailPauseDomainWarmingErrors];
|
|
5105
|
+
export type EmailPauseDomainWarmingResponses = {
|
|
5106
|
+
/**
|
|
5107
|
+
* DomainWarming
|
|
5108
|
+
*/
|
|
5109
|
+
200: DomainWarming;
|
|
5110
|
+
};
|
|
5111
|
+
export type EmailPauseDomainWarmingResponse = EmailPauseDomainWarmingResponses[keyof EmailPauseDomainWarmingResponses];
|
|
5112
|
+
export type EmailResumeDomainWarmingData = {
|
|
5113
|
+
body: {
|
|
5114
|
+
note?: string | null | undefined;
|
|
5115
|
+
};
|
|
5116
|
+
path: {
|
|
5117
|
+
id: EmailDomainId;
|
|
5118
|
+
};
|
|
5119
|
+
query?: never;
|
|
5120
|
+
url: "/v1/email/domains/{id}/warming/resume";
|
|
5121
|
+
};
|
|
5122
|
+
export type EmailResumeDomainWarmingErrors = {
|
|
5123
|
+
/**
|
|
5124
|
+
* UnauthorizedError
|
|
5125
|
+
*/
|
|
5126
|
+
401: UnauthorizedError;
|
|
5127
|
+
/**
|
|
5128
|
+
* ForbiddenError
|
|
5129
|
+
*/
|
|
5130
|
+
403: ForbiddenError;
|
|
5131
|
+
/**
|
|
5132
|
+
* ResourceNotFoundError
|
|
5133
|
+
*/
|
|
5134
|
+
404: ResourceNotFoundError;
|
|
5135
|
+
/**
|
|
5136
|
+
* ConflictError
|
|
5137
|
+
*/
|
|
5138
|
+
409: ConflictError;
|
|
5139
|
+
/**
|
|
5140
|
+
* InternalError
|
|
5141
|
+
*/
|
|
5142
|
+
500: InternalError;
|
|
5143
|
+
};
|
|
5144
|
+
export type EmailResumeDomainWarmingError = EmailResumeDomainWarmingErrors[keyof EmailResumeDomainWarmingErrors];
|
|
5145
|
+
export type EmailResumeDomainWarmingResponses = {
|
|
5146
|
+
/**
|
|
5147
|
+
* DomainWarming
|
|
5148
|
+
*/
|
|
5149
|
+
200: DomainWarming;
|
|
5150
|
+
};
|
|
5151
|
+
export type EmailResumeDomainWarmingResponse = EmailResumeDomainWarmingResponses[keyof EmailResumeDomainWarmingResponses];
|
|
5152
|
+
export type EmailCompleteDomainWarmingData = {
|
|
5153
|
+
body: {
|
|
5154
|
+
note?: string | null | undefined;
|
|
5155
|
+
};
|
|
5156
|
+
path: {
|
|
5157
|
+
id: EmailDomainId;
|
|
5158
|
+
};
|
|
5159
|
+
query?: never;
|
|
5160
|
+
url: "/v1/email/domains/{id}/warming/complete";
|
|
5161
|
+
};
|
|
5162
|
+
export type EmailCompleteDomainWarmingErrors = {
|
|
5163
|
+
/**
|
|
5164
|
+
* UnauthorizedError
|
|
5165
|
+
*/
|
|
5166
|
+
401: UnauthorizedError;
|
|
5167
|
+
/**
|
|
5168
|
+
* ForbiddenError
|
|
5169
|
+
*/
|
|
5170
|
+
403: ForbiddenError;
|
|
5171
|
+
/**
|
|
5172
|
+
* ResourceNotFoundError
|
|
5173
|
+
*/
|
|
5174
|
+
404: ResourceNotFoundError;
|
|
5175
|
+
/**
|
|
5176
|
+
* ConflictError
|
|
5177
|
+
*/
|
|
5178
|
+
409: ConflictError;
|
|
5179
|
+
/**
|
|
5180
|
+
* InternalError
|
|
5181
|
+
*/
|
|
5182
|
+
500: InternalError;
|
|
5183
|
+
};
|
|
5184
|
+
export type EmailCompleteDomainWarmingError = EmailCompleteDomainWarmingErrors[keyof EmailCompleteDomainWarmingErrors];
|
|
5185
|
+
export type EmailCompleteDomainWarmingResponses = {
|
|
5186
|
+
/**
|
|
5187
|
+
* DomainWarming
|
|
5188
|
+
*/
|
|
5189
|
+
200: DomainWarming;
|
|
5190
|
+
};
|
|
5191
|
+
export type EmailCompleteDomainWarmingResponse = EmailCompleteDomainWarmingResponses[keyof EmailCompleteDomainWarmingResponses];
|
|
4335
5192
|
export type MediaCreateData = {
|
|
4336
5193
|
body: {
|
|
4337
5194
|
filename: string;
|
|
4338
5195
|
contentType: string;
|
|
4339
5196
|
sizeBytes: number;
|
|
4340
|
-
purpose: "attachment" | "avatar";
|
|
5197
|
+
purpose: "attachment" | "avatar" | "review_evidence";
|
|
4341
5198
|
checksumSha256?: string | null | undefined;
|
|
4342
5199
|
};
|
|
4343
5200
|
path?: never;
|
|
@@ -7908,6 +8765,7 @@ export type WebhooksListData = {
|
|
|
7908
8765
|
page?: string | null | undefined;
|
|
7909
8766
|
limit?: string | null | undefined;
|
|
7910
8767
|
search?: string | null | undefined;
|
|
8768
|
+
status?: "active" | "disabled" | null | undefined;
|
|
7911
8769
|
};
|
|
7912
8770
|
url: "/v1/webhooks";
|
|
7913
8771
|
};
|
|
@@ -7931,7 +8789,7 @@ export type WebhooksListResponses = {
|
|
|
7931
8789
|
* Success
|
|
7932
8790
|
*/
|
|
7933
8791
|
200: {
|
|
7934
|
-
items: Array<
|
|
8792
|
+
items: Array<WebhookEndpointListItem>;
|
|
7935
8793
|
pagination: PaginationMeta;
|
|
7936
8794
|
};
|
|
7937
8795
|
};
|
|
@@ -7940,7 +8798,7 @@ export type WebhooksCreateData = {
|
|
|
7940
8798
|
body: {
|
|
7941
8799
|
name: string;
|
|
7942
8800
|
url: string;
|
|
7943
|
-
eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated">;
|
|
8801
|
+
eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated">;
|
|
7944
8802
|
channels?: Array<"email"> | null | undefined;
|
|
7945
8803
|
headers?: {
|
|
7946
8804
|
[key: string]: string;
|
|
@@ -8068,7 +8926,7 @@ export type WebhooksUpdateData = {
|
|
|
8068
8926
|
body: {
|
|
8069
8927
|
name?: string | null | undefined;
|
|
8070
8928
|
url?: string | null | undefined;
|
|
8071
|
-
eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated"> | null | undefined;
|
|
8929
|
+
eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated"> | null | undefined;
|
|
8072
8930
|
channels?: Array<"email"> | null | null | undefined;
|
|
8073
8931
|
headers?: {
|
|
8074
8932
|
[key: string]: string;
|
|
@@ -8194,6 +9052,8 @@ export type WebhooksGetLogsResponses = {
|
|
|
8194
9052
|
data: Array<{
|
|
8195
9053
|
id: WebhookDeliveryId;
|
|
8196
9054
|
eventId: WebhookEventId;
|
|
9055
|
+
eventType: string;
|
|
9056
|
+
occurredAt: string;
|
|
8197
9057
|
endpointId: WebhookEndpointId;
|
|
8198
9058
|
status: "pending" | "delivered" | "exhausted" | "cancelled";
|
|
8199
9059
|
automaticAttempts: number;
|
|
@@ -8227,7 +9087,9 @@ export type WebhooksGetStatsData = {
|
|
|
8227
9087
|
path: {
|
|
8228
9088
|
webhookId: WebhookEndpointId;
|
|
8229
9089
|
};
|
|
8230
|
-
query?:
|
|
9090
|
+
query?: {
|
|
9091
|
+
period?: "7d" | "30d" | "90d" | null | undefined;
|
|
9092
|
+
};
|
|
8231
9093
|
url: "/v1/webhooks/{webhookId}/stats";
|
|
8232
9094
|
};
|
|
8233
9095
|
export type WebhooksGetStatsErrors = {
|
|
@@ -8251,15 +9113,9 @@ export type WebhooksGetStatsErrors = {
|
|
|
8251
9113
|
export type WebhooksGetStatsError = WebhooksGetStatsErrors[keyof WebhooksGetStatsErrors];
|
|
8252
9114
|
export type WebhooksGetStatsResponses = {
|
|
8253
9115
|
/**
|
|
8254
|
-
*
|
|
9116
|
+
* WebhookStatsResponse
|
|
8255
9117
|
*/
|
|
8256
|
-
200:
|
|
8257
|
-
total: number;
|
|
8258
|
-
pending: number;
|
|
8259
|
-
delivered: number;
|
|
8260
|
-
exhausted: number;
|
|
8261
|
-
cancelled: number;
|
|
8262
|
-
};
|
|
9118
|
+
200: WebhookStatsResponse;
|
|
8263
9119
|
};
|
|
8264
9120
|
export type WebhooksGetStatsResponse = WebhooksGetStatsResponses[keyof WebhooksGetStatsResponses];
|
|
8265
9121
|
export type WebhooksRetryDeliveryData = {
|
|
@@ -8427,7 +9283,7 @@ export type OrganizationsUpdateData = {
|
|
|
8427
9283
|
billingEmail?: string | null | undefined;
|
|
8428
9284
|
countryCode?: string | null | undefined;
|
|
8429
9285
|
currency?: string | null | undefined;
|
|
8430
|
-
timezone?:
|
|
9286
|
+
timezone?: IanaTimezone | null | undefined;
|
|
8431
9287
|
isActive?: boolean | null | undefined;
|
|
8432
9288
|
metadata?: {
|
|
8433
9289
|
[key: string]: JsonValue;
|