samva 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +51 -6
  3. package/dist/{categories-DvsHUJtX.js → categories-BGUBFdH9.js} +13 -1
  4. package/dist/client/sdk.gen.d.ts +130 -32
  5. package/dist/client/types.gen.d.ts +979 -168
  6. package/dist/{client-Cj1bqIEe.js → client-CZjhOKPM.js} +898 -177
  7. package/dist/effect/analytics.d.ts +6 -6
  8. package/dist/effect/analytics.js +1 -1
  9. package/dist/effect/api-keys.d.ts +20 -20
  10. package/dist/effect/api-keys.js +1 -1
  11. package/dist/effect/attachments.js +1 -1
  12. package/dist/effect/brands.js +2 -2
  13. package/dist/effect/campaigns.d.ts +13 -13
  14. package/dist/effect/campaigns.js +1 -1
  15. package/dist/effect/categories.js +1 -1
  16. package/dist/effect/client.js +1 -1
  17. package/dist/effect/contact-groups.d.ts +9 -12
  18. package/dist/effect/contact-groups.js +1 -1
  19. package/dist/effect/contacts.d.ts +161 -76
  20. package/dist/effect/contacts.js +1 -1
  21. package/dist/effect/conversations.d.ts +20 -20
  22. package/dist/effect/conversations.js +1 -1
  23. package/dist/effect/custom-fields.d.ts +1 -1
  24. package/dist/effect/custom-fields.js +1 -1
  25. package/dist/effect/email.d.ts +27 -27
  26. package/dist/effect/email.js +2 -2
  27. package/dist/effect/extension-installations.d.ts +68 -2
  28. package/dist/effect/extension-installations.js +5 -3
  29. package/dist/effect/extensions.d.ts +3 -3
  30. package/dist/effect/extensions.js +1 -1
  31. package/dist/effect/feedback.d.ts +1 -1
  32. package/dist/effect/feedback.js +2 -2
  33. package/dist/effect/generated-metadata.d.ts +12 -0
  34. package/dist/effect/generated.d.ts +6502 -906
  35. package/dist/effect/index.d.ts +3 -1
  36. package/dist/effect/index.js +6 -4
  37. package/dist/effect/internal/client.d.ts +16 -2
  38. package/dist/effect/internal/operation.d.ts +14 -11
  39. package/dist/effect/mailboxes.d.ts +1725 -108
  40. package/dist/effect/mailboxes.js +3 -3
  41. package/dist/effect/media.d.ts +1 -1
  42. package/dist/effect/media.js +1 -1
  43. package/dist/effect/messages.d.ts +21 -19
  44. package/dist/effect/messages.js +1 -1
  45. package/dist/effect/namespaces.js +1 -1
  46. package/dist/effect/operations.d.ts +6 -6
  47. package/dist/effect/operations.js +1 -1
  48. package/dist/effect/organizations.d.ts +30 -0
  49. package/dist/effect/organizations.js +4 -2
  50. package/dist/effect/retry.js +1 -1
  51. package/dist/effect/scheduled-messages.d.ts +7 -7
  52. package/dist/effect/scheduled-messages.js +1 -1
  53. package/dist/effect/subscriptions.d.ts +15 -0
  54. package/dist/effect/subscriptions.js +9 -0
  55. package/dist/effect/templates.d.ts +52 -14
  56. package/dist/effect/templates.js +5 -3
  57. package/dist/effect/unsubscribe-groups.d.ts +1 -1
  58. package/dist/effect/unsubscribe-groups.js +1 -1
  59. package/dist/effect/webhooks.d.ts +15 -15
  60. package/dist/effect/webhooks.js +2 -2
  61. package/dist/index.js +4 -3
  62. package/dist/inline-attachments-BrNnSMF2.js +121 -0
  63. package/dist/inline-attachments.d.ts +65 -0
  64. package/dist/{mailbox-events-CsbF35vH.js → mailbox-events-VKR4f3qq.js} +6 -4
  65. package/dist/mailbox-events.d.ts +1 -1
  66. package/dist/{mailboxes-BtcktcNB.js → mailboxes-DT02zP7q.js} +13 -5
  67. package/dist/{operation-BEghYyLu.js → operation-g8nAzmIM.js} +63 -3
  68. package/dist/promises/errors.gen.d.ts +38 -2
  69. package/dist/promises/index.d.ts +7 -4
  70. package/dist/promises/index.js +4 -3
  71. package/dist/promises/types.gen.d.ts +1 -1
  72. package/dist/{promises-BzrwhHEW.js → promises-BFRKhpSS.js} +1070 -49
  73. package/dist/service-map.d.ts +40 -0
  74. package/package.json +7 -2
  75. package/dist/client-attribution-BTWYSXxo.js +0 -9
@@ -94,6 +94,36 @@ export type ExtensionVersionRef = {
94
94
  };
95
95
  export type ExtensionVersionId = string;
96
96
  export type ExtensionId = string;
97
+ export type UpgradeExtensionResponse = {
98
+ installation: ExtensionInstallation;
99
+ fromVersion: ExtensionVersionRef;
100
+ toVersion: ExtensionVersionRef;
101
+ permissionDiff: ExtensionPermissionDiff;
102
+ dryRun: boolean;
103
+ versionChange: ExtensionVersionChange | null;
104
+ };
105
+ export type ExtensionVersionChange = {
106
+ id: string;
107
+ organizationId: OrganizationId;
108
+ installationId: ExtensionInstallationId;
109
+ extensionId: ExtensionId;
110
+ fromVersion: ExtensionVersionRef;
111
+ toVersion: ExtensionVersionRef;
112
+ permissionDiff: ExtensionPermissionDiff;
113
+ changedBy: UserId;
114
+ changedAt: string;
115
+ };
116
+ export type UserId = string;
117
+ export type ExtensionPermissionDiff = {
118
+ added: Array<"permission:read" | "permission:update" | "permission:send" | "permission:quarantine.read" | "event:mailbox.message.received" | "event:mailbox.message.sent" | "event:mailbox.action.pending_approval" | "event:mailbox.message.quarantined" | "event:mailbox.message.released" | "event:mailbox.message.discarded">;
119
+ removed: Array<"permission:read" | "permission:update" | "permission:send" | "permission:quarantine.read" | "event:mailbox.message.received" | "event:mailbox.message.sent" | "event:mailbox.action.pending_approval" | "event:mailbox.message.quarantined" | "event:mailbox.message.released" | "event:mailbox.message.discarded">;
120
+ };
121
+ export type OrganizationId = string;
122
+ export type UpgradeExtensionPayload = {
123
+ version?: string | ExtensionVersionId | null | undefined;
124
+ acceptPermissions?: Array<"permission:read" | "permission:update" | "permission:send" | "permission:quarantine.read" | "event:mailbox.message.received" | "event:mailbox.message.sent" | "event:mailbox.action.pending_approval" | "event:mailbox.message.quarantined" | "event:mailbox.message.released" | "event:mailbox.message.discarded"> | null | undefined;
125
+ dryRun?: boolean | null | undefined;
126
+ };
97
127
  export type SuccessResponse = {
98
128
  success: boolean;
99
129
  };
@@ -227,7 +257,7 @@ export type MailboxEventPage = {
227
257
  };
228
258
  export type MailboxEvent = {
229
259
  id: MailboxEventId;
230
- type: "mailbox.created" | "address.attached" | "email.received" | "email.released" | "email.sent" | "thread.created" | "thread.updated" | "draft.created" | "draft.updated" | "action.proposed" | "action.policy_decided" | "action.approval_requested" | "action.approval_resolved" | "action.executed" | "action.failed";
260
+ type: "mailbox.created" | "address.attached" | "email.received" | "email.released" | "email.sent" | "thread.created" | "action.proposed" | "action.policy_decided" | "action.approval_requested" | "action.approval_resolved" | "action.accepted" | "action.executed" | "action.failed";
231
261
  threadId: MailboxThreadId | null;
232
262
  actionId: MailboxActionId | null;
233
263
  actor: {
@@ -243,10 +273,109 @@ export type MailboxEvent = {
243
273
  export type MailboxActionId = string;
244
274
  export type MailboxThreadId = string;
245
275
  export type MailboxEventId = string;
246
- export type MailboxAction = {
276
+ export type MailboxSendConflictError = {
277
+ _tag: "MailboxSendConflictError";
278
+ message: string;
279
+ resource: string;
247
280
  id: MailboxActionId;
248
- type: "sendMessage" | "reply" | "updateDraft" | "createNote" | "assignThread" | "changeThreadState" | "call" | "extensionRequest";
281
+ receipt: MailboxSendReceipt;
282
+ };
283
+ export type MailboxSendReceipt = {
284
+ actionId: MailboxActionId;
285
+ draftId: MailboxDraftId | null;
286
+ messageId: MessageId | null;
287
+ threadId: MailboxThreadId | null;
288
+ state: "approvalRequired" | "queued" | "accepted" | "completed" | "notSent" | "uncertain";
289
+ acceptedAt: string | null;
290
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | "screening-unavailable" | null;
291
+ reviewExpectedAt: string | null;
292
+ skippedRecipients: Array<SkippedRecipient>;
293
+ executeUntil: string | null;
294
+ retryAt: string | null;
295
+ problem: MailboxSendOutcome | null;
296
+ retryEligible: boolean;
297
+ decision: MailboxActionDecision | null;
298
+ createdAt: string;
299
+ updatedAt: string;
300
+ };
301
+ export type MailboxActionDecision = {
302
+ outcome: "allow" | "requireApproval" | "deny";
303
+ reason: string | null;
304
+ policyId: MailboxPolicyId | null;
305
+ source: "grant" | "installation" | "policy" | null;
306
+ decidedAt: string;
307
+ };
308
+ export type MailboxPolicyId = string;
309
+ export type MailboxSendOutcome = {
310
+ code: string;
311
+ message: string;
312
+ error?: MailboxSendError | null | undefined;
313
+ };
314
+ export type MailboxSendError = {
315
+ _tag: "SenderNotReadyError";
316
+ message: string;
317
+ sender: string;
318
+ retryAfterSeconds?: number | null | undefined;
319
+ } | {
320
+ _tag: "RateLimitedError";
321
+ message: string;
322
+ retryAfterSeconds: number;
323
+ } | {
324
+ _tag: "OnboardingReviewRequiredError";
325
+ message: string;
326
+ code: "review_required" | "review_in_progress" | "information_required" | "review_rejected" | "identity_review_required" | "identity_review_rejected" | "identity_changed";
327
+ decision: "undecided" | "approved" | "rejected";
328
+ stage: "collecting" | "automated_review" | "manual_review" | "information_requested" | "complete";
329
+ nextAction: "wait_for_review" | "provide_information" | "verify_sending_identity" | "reapply" | "contact_support";
330
+ identityId?: string | null | undefined;
331
+ } | {
332
+ _tag: "PaymentRequiredError";
333
+ message: string;
334
+ resource: string;
335
+ currentUsage: number;
336
+ limit: number;
337
+ } | {
338
+ _tag: "ValidationError";
339
+ message: string;
340
+ fields?: {
341
+ [key: string]: Array<string>;
342
+ } | null | undefined;
343
+ } | {
344
+ _tag: "ForbiddenError";
345
+ message: string;
346
+ } | {
347
+ _tag: "ResourceNotFoundError";
348
+ resource: string;
349
+ id: string;
350
+ message: string;
351
+ };
352
+ export type SkippedRecipient = {
353
+ address: string;
354
+ reason: "bounce" | "complaint" | "unsubscribe" | "manual" | "group-unsubscribe";
355
+ unsubscribeGroupId?: UnsubscribeId | null | undefined;
356
+ };
357
+ export type UnsubscribeId = string;
358
+ export type MessageId = string;
359
+ export type MailboxDraftId = string;
360
+ export type MailboxAction = MailboxSendAction | MailboxNonSendAction;
361
+ export type MailboxNonSendAction = {
362
+ id: MailboxActionId;
363
+ source: "humanUi" | "externalApi" | "aiSdkTool" | "extension" | "externalAgent" | "samvaManagedAgent" | "system";
364
+ proposedBy: {
365
+ kind: "user" | "apiKey" | "extension" | "externalAgent" | "samvaAgent" | "system";
366
+ id: string;
367
+ displayName?: string | null | undefined;
368
+ };
369
+ threadId: MailboxThreadId | null;
370
+ draftId: MailboxDraftId | null;
371
+ decision: MailboxActionDecision | null;
372
+ createdAt: string;
373
+ updatedAt: string;
374
+ type: "updateDraft" | "createNote" | "assignThread" | "changeThreadState" | "call" | "extensionRequest";
249
375
  state: "proposed" | "allowed" | "approvalRequired" | "policyDenied" | "approved" | "approvalDenied" | "executing" | "executed" | "failed";
376
+ };
377
+ export type MailboxSendAction = {
378
+ id: MailboxActionId;
250
379
  source: "humanUi" | "externalApi" | "aiSdkTool" | "extension" | "externalAgent" | "samvaManagedAgent" | "system";
251
380
  proposedBy: {
252
381
  kind: "user" | "apiKey" | "extension" | "externalAgent" | "samvaAgent" | "system";
@@ -258,15 +387,36 @@ export type MailboxAction = {
258
387
  decision: MailboxActionDecision | null;
259
388
  createdAt: string;
260
389
  updatedAt: string;
390
+ type: "sendMessage" | "reply";
391
+ state: "approvalRequired" | "queued" | "accepted" | "completed" | "notSent" | "uncertain";
392
+ send: MailboxSendReceipt;
393
+ intent: MailboxSendSnapshot | null;
394
+ };
395
+ export type MailboxSendSnapshot = {
396
+ draftRevision: number;
397
+ from: string;
398
+ fromName: string | null;
399
+ to: [string, ...Array<string>];
400
+ cc: Array<string>;
401
+ bcc: Array<string>;
402
+ replyTo: Array<string>;
403
+ subject: string;
404
+ text: string | null;
405
+ html: string | null;
406
+ attachments: Array<EmailAttachment>;
407
+ threadId: MailboxThreadId | null;
408
+ conversationId: ConversationId | null;
409
+ inReplyToMessageId: MessageId | null;
261
410
  };
262
- export type MailboxActionDecision = {
263
- outcome: "allow" | "requireApproval" | "deny";
264
- reason: string | null;
265
- policyId: MailboxPolicyId | null;
266
- decidedAt: string;
411
+ export type ConversationId = string;
412
+ export type EmailAttachment = {
413
+ filename: string;
414
+ content?: string | null | undefined;
415
+ mediaId?: MediaId | null | undefined;
416
+ contentType: string;
417
+ size: number;
267
418
  };
268
- export type MailboxPolicyId = string;
269
- export type MailboxDraftId = string;
419
+ export type MediaId = string;
270
420
  export type DenyMailboxActionPayload = {
271
421
  reason: string;
272
422
  };
@@ -281,32 +431,60 @@ export type PaymentRequiredError = {
281
431
  currentUsage: number;
282
432
  limit: number;
283
433
  };
284
- export type MailboxActionPage = {
285
- items: Array<MailboxAction>;
286
- nextCursor: string | null;
434
+ export type RateLimitedError = {
435
+ _tag: "RateLimitedError";
436
+ message: string;
437
+ retryAfterSeconds: number;
287
438
  };
288
- export type MailboxSendReceipt = {
439
+ export type SenderNotReadyError = {
440
+ _tag: "SenderNotReadyError";
441
+ message: string;
442
+ sender: string;
443
+ retryAfterSeconds?: number | null | undefined;
444
+ };
445
+ export type OnboardingReviewRequiredError = {
446
+ _tag: "OnboardingReviewRequiredError";
447
+ message: string;
448
+ code: "review_required" | "review_in_progress" | "information_required" | "review_rejected" | "identity_review_required" | "identity_review_rejected" | "identity_changed";
449
+ decision: "undecided" | "approved" | "rejected";
450
+ stage: "collecting" | "automated_review" | "manual_review" | "information_requested" | "complete";
451
+ nextAction: "wait_for_review" | "provide_information" | "verify_sending_identity" | "reapply" | "contact_support";
452
+ identityId?: string | null | undefined;
453
+ };
454
+ export type MailboxSendRefusedError = {
455
+ _tag: "MailboxSendRefusedError";
456
+ message: string;
457
+ receipt: MailboxSendReceipt;
458
+ };
459
+ export type MailboxPendingAction = MailboxSendAction | MailboxNonSendAction;
460
+ export type MailboxPendingSendReceipt = {
289
461
  actionId: MailboxActionId;
462
+ draftId: MailboxDraftId | null;
290
463
  messageId: MessageId | null;
291
- threadId: MailboxThreadId;
292
- status: "sent" | "pending_approval";
293
- waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | null;
464
+ threadId: MailboxThreadId | null;
465
+ state: "approvalRequired" | "queued" | "accepted" | "completed" | "notSent" | "uncertain";
466
+ acceptedAt: string | null;
467
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | "screening-unavailable" | null;
294
468
  reviewExpectedAt: string | null;
295
469
  skippedRecipients: Array<SkippedRecipient>;
470
+ executeUntil: string | null;
471
+ retryAt: string | null;
472
+ problem: MailboxSendOutcome | null;
473
+ retryEligible: boolean;
474
+ decision: MailboxActionDecision | null;
296
475
  createdAt: string;
476
+ updatedAt: string;
297
477
  };
298
- export type SkippedRecipient = {
299
- address: string;
300
- reason: "bounce" | "complaint" | "unsubscribe" | "manual" | "group-unsubscribe";
301
- unsubscribeGroupId?: UnsubscribeId | null | undefined;
478
+ export type MailboxActionPage = {
479
+ items: Array<MailboxAction>;
480
+ nextCursor: string | null;
302
481
  };
303
- export type UnsubscribeId = string;
304
- export type MessageId = string;
305
482
  export type MailboxDraft = {
306
483
  id: MailboxDraftId;
307
484
  threadId: MailboxThreadId | null;
308
485
  inReplyToMessageId: MessageId | null;
309
486
  state: MailboxDraftState;
487
+ lockedByActionId: MailboxActionId | null;
310
488
  to: Array<string>;
311
489
  subject: string | null;
312
490
  createdAt: string;
@@ -318,15 +496,7 @@ export type MailboxDraft = {
318
496
  text: string | null;
319
497
  attachments: Array<EmailAttachment>;
320
498
  };
321
- export type EmailAttachment = {
322
- filename: string;
323
- content?: string | null | undefined;
324
- mediaId?: MediaId | null | undefined;
325
- contentType: string;
326
- size: number;
327
- };
328
- export type MediaId = string;
329
- export type MailboxDraftState = "saved" | "approvalPending" | "sent";
499
+ export type MailboxDraftState = "saved" | "locked" | "sent";
330
500
  export type UpdateMailboxDraftPayload = {
331
501
  to?: Array<string> | null | undefined;
332
502
  cc?: Array<string> | null | null | undefined;
@@ -357,6 +527,7 @@ export type MailboxDraftSummary = {
357
527
  threadId: MailboxThreadId | null;
358
528
  inReplyToMessageId: MessageId | null;
359
529
  state: MailboxDraftState;
530
+ lockedByActionId: MailboxActionId | null;
360
531
  to: Array<string>;
361
532
  subject: string | null;
362
533
  createdAt: string;
@@ -397,11 +568,18 @@ export type ReplyMailboxMessagePayload = {
397
568
  html?: string | null | undefined;
398
569
  attachments?: Array<EmailAttachment> | null | undefined;
399
570
  };
571
+ export type MailboxCopiedAttachment = {
572
+ filename: string;
573
+ content?: string | null | undefined;
574
+ mediaId?: MediaId | null | undefined;
575
+ contentType: string;
576
+ size: number;
577
+ };
578
+ export type AttachmentId = string;
400
579
  export type MailboxDownloadUrl = {
401
580
  url: string;
402
581
  expiresAt: string;
403
582
  };
404
- export type AttachmentId = string;
405
583
  export type MailboxMessage = {
406
584
  id: MessageId;
407
585
  threadId: MailboxThreadId;
@@ -458,7 +636,6 @@ export type MailboxMessageSender = {
458
636
  displayName?: string | null | undefined;
459
637
  address: string;
460
638
  };
461
- export type ConversationId = string;
462
639
  export type SendMailboxMessagePayload = {
463
640
  to: [string, ...Array<string>];
464
641
  cc?: Array<string> | null | undefined;
@@ -668,7 +845,6 @@ export type CreateMailboxGrantPayload = {
668
845
  role: MailboxGrantRole;
669
846
  sendMode?: MailboxSendMode | null | undefined;
670
847
  };
671
- export type UserId = string;
672
848
  export type MailboxGrantPage = {
673
849
  items: Array<MailboxGrant>;
674
850
  nextCursor: string | null;
@@ -680,13 +856,13 @@ export type MailboxAgentActivity = {
680
856
  count: number;
681
857
  }>;
682
858
  byState: Array<{
683
- state: "proposed" | "allowed" | "approvalRequired" | "policyDenied" | "approved" | "approvalDenied" | "executing" | "executed" | "failed";
859
+ state: "proposed" | "allowed" | "approvalRequired" | "policyDenied" | "approved" | "approvalDenied" | "executing" | "executed" | "failed" | "queued" | "accepted" | "completed" | "notSent" | "uncertain";
684
860
  count: number;
685
861
  }>;
686
862
  };
687
863
  events: {
688
864
  byType: Array<{
689
- type: "mailbox.created" | "address.attached" | "email.received" | "email.released" | "email.sent" | "thread.created" | "thread.updated" | "draft.created" | "draft.updated" | "action.proposed" | "action.policy_decided" | "action.approval_requested" | "action.approval_resolved" | "action.executed" | "action.failed";
865
+ type: "mailbox.created" | "address.attached" | "email.received" | "email.released" | "email.sent" | "thread.created" | "action.proposed" | "action.policy_decided" | "action.approval_requested" | "action.approval_resolved" | "action.accepted" | "action.executed" | "action.failed";
690
866
  count: number;
691
867
  }>;
692
868
  };
@@ -871,11 +1047,6 @@ export type ApiKeyPage = {
871
1047
  items: Array<ApiKey>;
872
1048
  nextCursor: string | null;
873
1049
  };
874
- export type RateLimitedError = {
875
- _tag: "RateLimitedError";
876
- message: string;
877
- retryAfterSeconds: number;
878
- };
879
1050
  export type OperationAccepted = {
880
1051
  operation: Operation;
881
1052
  links: {
@@ -997,7 +1168,7 @@ export type WebhookEndpoint = {
997
1168
  id: WebhookEndpointId;
998
1169
  name: string;
999
1170
  url: string;
1000
- eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded">;
1171
+ eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.subscribed" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded">;
1001
1172
  channels: Array<"email"> | null;
1002
1173
  mailboxIds: Array<MailboxId> | null;
1003
1174
  namespaceId: NamespaceId | null;
@@ -1011,7 +1182,7 @@ export type WebhookEndpoint = {
1011
1182
  export type UpdateWebhookPayload = {
1012
1183
  name?: string | null | undefined;
1013
1184
  url?: string | null | undefined;
1014
- eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded"> | null | undefined;
1185
+ eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.subscribed" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded"> | null | undefined;
1015
1186
  channels?: Array<"email"> | null | null | undefined;
1016
1187
  mailboxIds?: [MailboxId, ...Array<MailboxId>] | null | null | undefined;
1017
1188
  namespaceId?: NamespaceId | null | null | undefined;
@@ -1028,7 +1199,7 @@ export type WebhookEndpointListItem = {
1028
1199
  id: WebhookEndpointId;
1029
1200
  name: string;
1030
1201
  url: string;
1031
- eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded">;
1202
+ eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.subscribed" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded">;
1032
1203
  channels: Array<"email"> | null;
1033
1204
  mailboxIds: Array<MailboxId> | null;
1034
1205
  namespaceId: NamespaceId | null;
@@ -1050,7 +1221,7 @@ export type WebhookDeliveryCounts = {
1050
1221
  export type CreateWebhookPayload = {
1051
1222
  name: string;
1052
1223
  url: string;
1053
- eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded">;
1224
+ eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.subscribed" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded">;
1054
1225
  channels?: Array<"email"> | null | undefined;
1055
1226
  mailboxIds?: [MailboxId, ...Array<MailboxId>] | null | undefined;
1056
1227
  namespaceId?: NamespaceId | null | undefined;
@@ -1124,7 +1295,6 @@ export type CreateBrand = {
1124
1295
  export type BrandList = {
1125
1296
  items: Array<Brand>;
1126
1297
  };
1127
- export type OrganizationId = string;
1128
1298
  export type TemplateProjectId = string;
1129
1299
  export type TemplateId = string;
1130
1300
  export type TemplateInputContractId = string;
@@ -1143,6 +1313,25 @@ export type TemplateInputContractPage = {
1143
1313
  nextCursor: string | null;
1144
1314
  };
1145
1315
  export type VersionCursor = string;
1316
+ export type TemplatePublicationRender = {
1317
+ subject: string;
1318
+ preheader?: string | undefined;
1319
+ html: string;
1320
+ text: string;
1321
+ };
1322
+ export type TemplatePublicationId = string;
1323
+ export type RenderTemplatePublicationPayload = {
1324
+ /**
1325
+ * The input to render with, validated against the publication's input schema.
1326
+ */
1327
+ data: {
1328
+ [key: string]: JsonValue;
1329
+ };
1330
+ locale?: RenderLocale | undefined;
1331
+ timeZone?: RenderTimeZone | undefined;
1332
+ };
1333
+ export type RenderTimeZone = string;
1334
+ export type RenderLocale = string;
1146
1335
  export type BrandRenderedFooter = {
1147
1336
  withUnsubscribe: BrandFooterBlock;
1148
1337
  withoutUnsubscribe: BrandFooterBlock;
@@ -1151,7 +1340,6 @@ export type BrandFooterBlock = {
1151
1340
  html: string;
1152
1341
  text: string;
1153
1342
  };
1154
- export type TemplatePublicationId = string;
1155
1343
  export type Template = {
1156
1344
  id: TemplateId;
1157
1345
  slug: string;
@@ -1379,6 +1567,54 @@ export type ContactGroupPage = {
1379
1567
  }>;
1380
1568
  nextCursor: string | null;
1381
1569
  };
1570
+ export type DeliveryUnavailableError = {
1571
+ _tag: "DeliveryUnavailableError";
1572
+ message: string;
1573
+ retryAfterSeconds: number;
1574
+ };
1575
+ export type FlagDisabledError = {
1576
+ _tag: "FlagDisabledError";
1577
+ flag: string;
1578
+ message: string;
1579
+ };
1580
+ export type CampaignFooterRequiredError = {
1581
+ _tag: "CampaignFooterRequiredError";
1582
+ message: string;
1583
+ };
1584
+ export type BrandAddressRequiredError = {
1585
+ _tag: "BrandAddressRequiredError";
1586
+ message: string;
1587
+ brand: string | null;
1588
+ };
1589
+ export type ExternalServiceError = {
1590
+ _tag: "ExternalServiceError";
1591
+ message: string;
1592
+ };
1593
+ export type SubscribeResult = {
1594
+ success: boolean;
1595
+ expiresAt: string;
1596
+ };
1597
+ export type SubscribePayload = {
1598
+ /**
1599
+ * The recipient email address; confirmation proves consent for this address.
1600
+ */
1601
+ email: string;
1602
+ contactGroupId: ContactGroupId;
1603
+ /**
1604
+ * Your verified email sender. The ordinary send pipeline selects its domain and customer brand.
1605
+ */
1606
+ from: {
1607
+ email: string;
1608
+ name?: string | null | undefined;
1609
+ };
1610
+ /**
1611
+ * Clear this unsubscribe group after confirmation; all other opt-outs remain.
1612
+ */
1613
+ unsubscribeGroupId?: UnsubscribeId | null | undefined;
1614
+ templateSlug?: string | null | undefined;
1615
+ consentIp?: string | null | undefined;
1616
+ consentSource?: string | null | undefined;
1617
+ };
1382
1618
  export type ContactGroupMembershipPage = {
1383
1619
  items: Array<{
1384
1620
  id: ContactGroupId;
@@ -1407,25 +1643,6 @@ export type BulkUpdateResult = {
1407
1643
  updated: number;
1408
1644
  failed: number;
1409
1645
  };
1410
- export type UnknownRecord = {
1411
- [key: string]: JsonValue;
1412
- };
1413
- export type Contact = {
1414
- id: ContactId;
1415
- name: string;
1416
- displayName: string | null;
1417
- avatar: string | null;
1418
- status: "active" | "paused" | "blocked" | "archived";
1419
- statusReason: string | null;
1420
- externalId: string | null;
1421
- identities: Array<ContactIdentity>;
1422
- profile: ContactProfile | null;
1423
- preferences: ContactPreferences | null;
1424
- tags: Array<string>;
1425
- metadata: JsonObject | null;
1426
- createdAt: string;
1427
- updatedAt: string;
1428
- };
1429
1646
  export type JsonObject = {
1430
1647
  [key: string]: JsonValue;
1431
1648
  };
@@ -1459,14 +1676,30 @@ export type ContactLocation = {
1459
1676
  city: string;
1460
1677
  timezone: string;
1461
1678
  };
1462
- export type ContactTags = {
1463
- tags: [string, ...Array<string>];
1464
- };
1465
1679
  export type ContactIdentityInput = {
1466
1680
  channel: "email";
1467
1681
  identifier: string;
1468
1682
  verified?: boolean | null | undefined;
1469
1683
  };
1684
+ export type Contact = {
1685
+ id: ContactId;
1686
+ name: string;
1687
+ displayName: string | null;
1688
+ avatar: string | null;
1689
+ status: "active" | "paused" | "blocked" | "archived";
1690
+ statusReason: string | null;
1691
+ externalId: string | null;
1692
+ identities: Array<ContactIdentity>;
1693
+ profile: ContactProfile | null;
1694
+ preferences: ContactPreferences | null;
1695
+ tags: Array<string>;
1696
+ metadata: JsonObject | null;
1697
+ createdAt: string;
1698
+ updatedAt: string;
1699
+ };
1700
+ export type ContactTags = {
1701
+ tags: [string, ...Array<string>];
1702
+ };
1470
1703
  export type ContactProfileUpdate = {
1471
1704
  firstName?: string | null | null | undefined;
1472
1705
  lastName?: string | null | null | undefined;
@@ -1475,6 +1708,16 @@ export type ContactProfileUpdate = {
1475
1708
  location?: ContactLocation | null | null | undefined;
1476
1709
  customFields?: ContactCustomFields | null | undefined;
1477
1710
  };
1711
+ export type ContactLookup = {
1712
+ type: "email";
1713
+ value: string;
1714
+ } | {
1715
+ type: "phone";
1716
+ value: string;
1717
+ } | {
1718
+ type: "externalId";
1719
+ value: string;
1720
+ };
1478
1721
  export type ContactPage = {
1479
1722
  items: Array<ContactSummary>;
1480
1723
  nextCursor: string | null;
@@ -1488,6 +1731,7 @@ export type ContactSummary = {
1488
1731
  channels: Array<"email">;
1489
1732
  tags: Array<string>;
1490
1733
  lists: Array<ContactListMembership>;
1734
+ customFields?: ContactCustomFields | null | undefined;
1491
1735
  lastActiveAt: string | null;
1492
1736
  createdAt: string;
1493
1737
  };
@@ -1549,6 +1793,9 @@ export type ConversationContext = {
1549
1793
  workflowData?: UnknownRecord | null | undefined;
1550
1794
  } | null | undefined;
1551
1795
  };
1796
+ export type UnknownRecord = {
1797
+ [key: string]: JsonValue;
1798
+ };
1552
1799
  export type ConversationContacts = {
1553
1800
  contactIds: [ContactId, ...Array<ContactId>];
1554
1801
  };
@@ -1573,7 +1820,7 @@ export type MessageSummary = {
1573
1820
  from: string | null;
1574
1821
  to: Array<string>;
1575
1822
  subject: string | null;
1576
- waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | null;
1823
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | "screening-unavailable" | null;
1577
1824
  createdAt: string;
1578
1825
  };
1579
1826
  export type ConversationPage = {
@@ -1858,10 +2105,6 @@ export type SuppressionEntry = {
1858
2105
  expiresAt: string | null;
1859
2106
  createdAt: string;
1860
2107
  };
1861
- export type ExternalServiceError = {
1862
- _tag: "ExternalServiceError";
1863
- message: string;
1864
- };
1865
2108
  export type EmailSenderId = string;
1866
2109
  export type EmailSenderPage = {
1867
2110
  items: Array<{
@@ -2263,7 +2506,10 @@ export type EmailContent = {
2263
2506
  timeZone?: RenderTimeZone | undefined;
2264
2507
  inReplyToMessageId?: MessageId | null | undefined;
2265
2508
  replyTo?: ReplyToAddresses | undefined;
2266
- unsubscribeGroupId?: UnsubscribeId | null | undefined;
2509
+ /**
2510
+ * The unsubscribe group for this send. Omit to inherit the template group; null disables group inheritance for a direct send. Campaigns require a group.
2511
+ */
2512
+ unsubscribeGroupId?: UnsubscribeId | null | null | undefined;
2267
2513
  tracking?: EmailTrackingOverrideV1 | undefined;
2268
2514
  footer?: EmailFooterOverride | undefined;
2269
2515
  };
@@ -2284,27 +2530,11 @@ export type EmailTrackingOverrideV1 = {
2284
2530
  clicks?: boolean | undefined;
2285
2531
  };
2286
2532
  export type ReplyToAddresses = Array<string> | null | null;
2287
- export type RenderTimeZone = string;
2288
- export type RenderLocale = string;
2289
2533
  export type TemplateData = JsonObject | null;
2290
2534
  export type EmailAttachments = Array<EmailAttachment> | null;
2291
2535
  export type CampaignRunPage = {
2292
2536
  items: Array<CampaignRun>;
2293
- nextCursor: string | null;
2294
- };
2295
- export type CampaignFooterRequiredError = {
2296
- _tag: "CampaignFooterRequiredError";
2297
- message: string;
2298
- };
2299
- export type BrandAddressRequiredError = {
2300
- _tag: "BrandAddressRequiredError";
2301
- message: string;
2302
- brand: string | null;
2303
- };
2304
- export type FlagDisabledError = {
2305
- _tag: "FlagDisabledError";
2306
- flag: string;
2307
- message: string;
2537
+ nextCursor: string | null;
2308
2538
  };
2309
2539
  export type Campaign = {
2310
2540
  id: CampaignId;
@@ -2357,7 +2587,10 @@ export type EmailDispatchContent = {
2357
2587
  timeZone?: RenderTimeZone | undefined;
2358
2588
  inReplyToMessageId?: MessageId | null | undefined;
2359
2589
  replyTo?: ReplyToAddresses | undefined;
2360
- unsubscribeGroupId?: UnsubscribeId | null | undefined;
2590
+ /**
2591
+ * The unsubscribe group for this send. Omit to inherit the template group; null disables group inheritance for a direct send. Campaigns require a group.
2592
+ */
2593
+ unsubscribeGroupId?: UnsubscribeId | null | null | undefined;
2361
2594
  tracking?: EmailTrackingOverrideV1 | undefined;
2362
2595
  footer?: EmailFooterOverride | undefined;
2363
2596
  };
@@ -2474,24 +2707,10 @@ export type ValidateEmailResponse = {
2474
2707
  hasText: boolean;
2475
2708
  };
2476
2709
  };
2477
- export type DeliveryUnavailableError = {
2478
- _tag: "DeliveryUnavailableError";
2479
- message: string;
2480
- retryAfterSeconds: number;
2481
- };
2482
- export type OnboardingReviewRequiredError = {
2483
- _tag: "OnboardingReviewRequiredError";
2484
- message: string;
2485
- code: "review_required" | "review_in_progress" | "information_required" | "review_rejected" | "identity_review_required" | "identity_review_rejected" | "identity_changed";
2486
- decision: "undecided" | "approved" | "rejected";
2487
- stage: "collecting" | "automated_review" | "manual_review" | "information_requested" | "complete";
2488
- nextAction: "wait_for_review" | "provide_information" | "verify_sending_identity" | "reapply" | "contact_support";
2489
- identityId?: string | null | undefined;
2490
- };
2491
2710
  export type MessageReceipt = {
2492
2711
  id: MessageId;
2493
2712
  status: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained";
2494
- waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | null;
2713
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | "screening-unavailable" | null;
2495
2714
  reviewExpectedAt: string | null;
2496
2715
  skippedRecipients: Array<SkippedRecipient>;
2497
2716
  createdAt: string;
@@ -2523,6 +2742,8 @@ export type MessageContent = {
2523
2742
  tracking?: EmailTrackingOverrideV1 | undefined;
2524
2743
  attachments?: Array<{
2525
2744
  filename: string;
2745
+ contentId?: string | null | undefined;
2746
+ isInline?: boolean | null | undefined;
2526
2747
  content?: string | null | undefined;
2527
2748
  mediaId?: MediaId | null | undefined;
2528
2749
  contentType: string;
@@ -2541,7 +2762,7 @@ export type MessageDelivery = {
2541
2762
  recipient: string | null;
2542
2763
  status: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained";
2543
2764
  attemptCount: number;
2544
- waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | null;
2765
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | "screening-unavailable" | null;
2545
2766
  nextRetryAt: string | null;
2546
2767
  sentAt: string | null;
2547
2768
  deliveredAt: string | null;
@@ -2577,7 +2798,7 @@ export type Message = {
2577
2798
  isTest: boolean;
2578
2799
  scheduledAt: string | null;
2579
2800
  submission: MessageSubmission | null;
2580
- waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | null;
2801
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | "screening-unavailable" | null;
2581
2802
  reviewExpectedAt: string | null;
2582
2803
  skippedRecipients: Array<SkippedRecipient>;
2583
2804
  createdAt: string;
@@ -2708,9 +2929,9 @@ export type MessagesSendErrors = {
2708
2929
  */
2709
2930
  502: BillingProviderError | ExternalServiceError;
2710
2931
  /**
2711
- * DeliveryUnavailableError
2932
+ * SenderNotReadyError | DeliveryUnavailableError
2712
2933
  */
2713
- 503: DeliveryUnavailableError;
2934
+ 503: SenderNotReadyError | DeliveryUnavailableError;
2714
2935
  /**
2715
2936
  * GatewayTimeoutError
2716
2937
  */
@@ -2946,7 +3167,7 @@ export type MessagesGetEmailResponses = {
2946
3167
  scheduling: {
2947
3168
  dueAt: string;
2948
3169
  expiresAt: string;
2949
- waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | null;
3170
+ waitReason: "rate" | "daily-quota" | "domain-health" | "sending-paused" | "upstream-unavailable" | "retry" | "campaign-paused" | "domain-warming" | "onboarding-review" | "content-review" | "screening-unavailable" | null;
2950
3171
  reviewExpectedAt: string | null;
2951
3172
  } | null;
2952
3173
  id: string;
@@ -3062,6 +3283,10 @@ export type MessagesValidateEmailErrors = {
3062
3283
  * InternalError
3063
3284
  */
3064
3285
  500: InternalError;
3286
+ /**
3287
+ * SenderNotReadyError
3288
+ */
3289
+ 503: SenderNotReadyError;
3065
3290
  /**
3066
3291
  * GatewayTimeoutError
3067
3292
  */
@@ -3518,6 +3743,10 @@ export type ScheduledMessagesResumeErrors = {
3518
3743
  * ExternalServiceError
3519
3744
  */
3520
3745
  502: ExternalServiceError;
3746
+ /**
3747
+ * SenderNotReadyError
3748
+ */
3749
+ 503: SenderNotReadyError;
3521
3750
  /**
3522
3751
  * GatewayTimeoutError
3523
3752
  */
@@ -3838,6 +4067,10 @@ export type CampaignsScheduleRunErrors = {
3838
4067
  * ExternalServiceError
3839
4068
  */
3840
4069
  502: ExternalServiceError;
4070
+ /**
4071
+ * SenderNotReadyError
4072
+ */
4073
+ 503: SenderNotReadyError;
3841
4074
  /**
3842
4075
  * GatewayTimeoutError
3843
4076
  */
@@ -4694,6 +4927,10 @@ export type EmailGetDomainByIdErrors = {
4694
4927
  * ValidationError
4695
4928
  */
4696
4929
  422: ValidationError;
4930
+ /**
4931
+ * InternalError
4932
+ */
4933
+ 500: InternalError;
4697
4934
  /**
4698
4935
  * GatewayTimeoutError
4699
4936
  */
@@ -5621,6 +5858,10 @@ export type EmailCheckSenderVerificationErrors = {
5621
5858
  * ValidationError
5622
5859
  */
5623
5860
  422: ValidationError;
5861
+ /**
5862
+ * InternalError
5863
+ */
5864
+ 500: InternalError;
5624
5865
  /**
5625
5866
  * ExternalServiceError
5626
5867
  */
@@ -6273,6 +6514,10 @@ export type EmailAddBlockErrors = {
6273
6514
  * ValidationError
6274
6515
  */
6275
6516
  422: ValidationError;
6517
+ /**
6518
+ * InternalError
6519
+ */
6520
+ 500: InternalError;
6276
6521
  /**
6277
6522
  * GatewayTimeoutError
6278
6523
  */
@@ -8083,6 +8328,9 @@ export type ContactsListData = {
8083
8328
  cursor?: Cursor | null | undefined;
8084
8329
  search?: string | null | undefined;
8085
8330
  status?: "active" | "paused" | "blocked" | "archived" | null | undefined;
8331
+ fields?: string | null | undefined;
8332
+ customField?: string | null | undefined;
8333
+ customFieldValue?: string | null | undefined;
8086
8334
  after?: string | null | undefined;
8087
8335
  before?: string | null | undefined;
8088
8336
  };
@@ -8224,11 +8472,15 @@ export type ContactsFindResponses = {
8224
8472
  export type ContactsFindResponse = ContactsFindResponses[keyof ContactsFindResponses];
8225
8473
  export type ContactsFindOrCreateData = {
8226
8474
  body: {
8227
- email?: string | null | undefined;
8228
- phone?: string | null | undefined;
8229
- externalId?: string | null | undefined;
8230
- name?: string | null | undefined;
8231
- displayName?: string | null | null | undefined;
8475
+ lookup: ContactLookup;
8476
+ create?: {
8477
+ name?: string | null | undefined;
8478
+ displayName?: string | null | null | undefined;
8479
+ avatar?: string | null | null | undefined;
8480
+ identities?: Array<ContactIdentityInput> | null | undefined;
8481
+ profile?: ContactProfile | null | null | undefined;
8482
+ externalId?: string | null | null | undefined;
8483
+ } | null | undefined;
8232
8484
  };
8233
8485
  path?: never;
8234
8486
  query?: never;
@@ -8271,9 +8523,12 @@ export type ContactsFindOrCreateErrors = {
8271
8523
  export type ContactsFindOrCreateError = ContactsFindOrCreateErrors[keyof ContactsFindOrCreateErrors];
8272
8524
  export type ContactsFindOrCreateResponses = {
8273
8525
  /**
8274
- * Contact
8526
+ * Success
8275
8527
  */
8276
- 200: Contact;
8528
+ 200: {
8529
+ contact: Contact;
8530
+ created: boolean;
8531
+ };
8277
8532
  };
8278
8533
  export type ContactsFindOrCreateResponse = ContactsFindOrCreateResponses[keyof ContactsFindOrCreateResponses];
8279
8534
  export type ContactsRemoveData = {
@@ -8662,16 +8917,18 @@ export type ContactsBulkImportData = {
8662
8917
  body: {
8663
8918
  contacts: Array<{
8664
8919
  name: string;
8665
- email?: string | null | undefined;
8666
- phone?: string | null | undefined;
8920
+ displayName?: string | null | null | undefined;
8921
+ avatar?: string | null | null | undefined;
8922
+ identities?: Array<ContactIdentityInput> | null | undefined;
8923
+ profile?: ContactProfile | null | null | undefined;
8924
+ preferences?: ContactPreferences | null | null | undefined;
8667
8925
  tags?: Array<string> | null | undefined;
8668
- firstName?: string | null | undefined;
8669
- lastName?: string | null | undefined;
8670
- company?: string | null | undefined;
8671
- jobTitle?: string | null | undefined;
8672
- customFields?: UnknownRecord | null | undefined;
8926
+ status?: "active" | "paused" | "blocked" | "archived" | null | undefined;
8927
+ statusReason?: string | null | null | undefined;
8928
+ externalId?: string | null | null | undefined;
8929
+ metadata?: JsonObject | null | null | undefined;
8673
8930
  }>;
8674
- upsertByEmail?: boolean | null | undefined;
8931
+ onConflict?: "skip" | "update" | null | undefined;
8675
8932
  };
8676
8933
  path?: never;
8677
8934
  query?: never;
@@ -8998,6 +9255,86 @@ export type ContactsGetGroupMembershipsResponses = {
8998
9255
  200: ContactGroupMembershipPage;
8999
9256
  };
9000
9257
  export type ContactsGetGroupMembershipsResponse = ContactsGetGroupMembershipsResponses[keyof ContactsGetGroupMembershipsResponses];
9258
+ export type SubscriptionsSubscribeData = {
9259
+ body: {
9260
+ /**
9261
+ * The recipient email address; confirmation proves consent for this address.
9262
+ */
9263
+ email: string;
9264
+ contactGroupId: ContactGroupId;
9265
+ /**
9266
+ * Your verified email sender. The ordinary send pipeline selects its domain and customer brand.
9267
+ */
9268
+ from: {
9269
+ email: string;
9270
+ name?: string | null | undefined;
9271
+ };
9272
+ /**
9273
+ * Clear this unsubscribe group after confirmation; all other opt-outs remain.
9274
+ */
9275
+ unsubscribeGroupId?: UnsubscribeId | null | undefined;
9276
+ templateSlug?: string | null | undefined;
9277
+ consentIp?: string | null | undefined;
9278
+ consentSource?: string | null | undefined;
9279
+ };
9280
+ path?: never;
9281
+ query?: never;
9282
+ url: "/v1/subscriptions";
9283
+ };
9284
+ export type SubscriptionsSubscribeErrors = {
9285
+ /**
9286
+ * UnauthorizedError
9287
+ */
9288
+ 401: UnauthorizedError;
9289
+ /**
9290
+ * PaymentRequiredError
9291
+ */
9292
+ 402: PaymentRequiredError;
9293
+ /**
9294
+ * ForbiddenError | OnboardingReviewRequiredError | FlagDisabledError
9295
+ */
9296
+ 403: ForbiddenError | OnboardingReviewRequiredError | FlagDisabledError;
9297
+ /**
9298
+ * ResourceNotFoundError
9299
+ */
9300
+ 404: ResourceNotFoundError;
9301
+ /**
9302
+ * ConflictError
9303
+ */
9304
+ 409: ConflictError;
9305
+ /**
9306
+ * ValidationError | BrandAddressRequiredError | CampaignFooterRequiredError
9307
+ */
9308
+ 422: ValidationError | BrandAddressRequiredError | CampaignFooterRequiredError;
9309
+ /**
9310
+ * RateLimitedError
9311
+ */
9312
+ 429: RateLimitedError;
9313
+ /**
9314
+ * InternalError
9315
+ */
9316
+ 500: InternalError;
9317
+ /**
9318
+ * BillingProviderError | ExternalServiceError
9319
+ */
9320
+ 502: BillingProviderError | ExternalServiceError;
9321
+ /**
9322
+ * SenderNotReadyError | DeliveryUnavailableError
9323
+ */
9324
+ 503: SenderNotReadyError | DeliveryUnavailableError;
9325
+ /**
9326
+ * GatewayTimeoutError
9327
+ */
9328
+ 504: GatewayTimeoutError;
9329
+ };
9330
+ export type SubscriptionsSubscribeError = SubscriptionsSubscribeErrors[keyof SubscriptionsSubscribeErrors];
9331
+ export type SubscriptionsSubscribeResponses = {
9332
+ /**
9333
+ * SubscribeResult
9334
+ */
9335
+ 200: SubscribeResult;
9336
+ };
9337
+ export type SubscriptionsSubscribeResponse = SubscriptionsSubscribeResponses[keyof SubscriptionsSubscribeResponses];
9001
9338
  export type ContactGroupsListData = {
9002
9339
  body?: never;
9003
9340
  path?: never;
@@ -9473,8 +9810,6 @@ export type ContactGroupsEvaluateDynamicResponse = ContactGroupsEvaluateDynamicR
9473
9810
  export type ContactGroupsPreviewData = {
9474
9811
  body: {
9475
9812
  criteria: {
9476
- contactTypes?: Array<string> | null | undefined;
9477
- capabilities?: Array<string> | null | undefined;
9478
9813
  tags?: Array<string> | null | undefined;
9479
9814
  channels?: Array<string> | null | undefined;
9480
9815
  match?: "all" | "any" | null | undefined;
@@ -9521,7 +9856,6 @@ export type ContactGroupsPreviewResponses = {
9521
9856
  sample: Array<{
9522
9857
  id: ContactId;
9523
9858
  name: string;
9524
- type: string;
9525
9859
  status: string;
9526
9860
  }>;
9527
9861
  };
@@ -12536,6 +12870,62 @@ export type TemplatesGetPublicationResponses = {
12536
12870
  };
12537
12871
  };
12538
12872
  export type TemplatesGetPublicationResponse = TemplatesGetPublicationResponses[keyof TemplatesGetPublicationResponses];
12873
+ export type TemplatesRenderPublicationData = {
12874
+ body: {
12875
+ /**
12876
+ * The input to render with, validated against the publication's input schema.
12877
+ */
12878
+ data: {
12879
+ [key: string]: JsonValue;
12880
+ };
12881
+ locale?: RenderLocale | undefined;
12882
+ timeZone?: RenderTimeZone | undefined;
12883
+ };
12884
+ path: {
12885
+ id: TemplateId;
12886
+ publicationId: TemplatePublicationId;
12887
+ };
12888
+ query?: never;
12889
+ url: "/v1/templates/{id}/publications/{publicationId}/render";
12890
+ };
12891
+ export type TemplatesRenderPublicationErrors = {
12892
+ /**
12893
+ * UnauthorizedError
12894
+ */
12895
+ 401: UnauthorizedError;
12896
+ /**
12897
+ * ForbiddenError
12898
+ */
12899
+ 403: ForbiddenError;
12900
+ /**
12901
+ * ResourceNotFoundError
12902
+ */
12903
+ 404: ResourceNotFoundError;
12904
+ /**
12905
+ * ConflictError
12906
+ */
12907
+ 409: ConflictError;
12908
+ /**
12909
+ * ValidationError
12910
+ */
12911
+ 422: ValidationError;
12912
+ /**
12913
+ * InternalError
12914
+ */
12915
+ 500: InternalError;
12916
+ /**
12917
+ * GatewayTimeoutError
12918
+ */
12919
+ 504: GatewayTimeoutError;
12920
+ };
12921
+ export type TemplatesRenderPublicationError = TemplatesRenderPublicationErrors[keyof TemplatesRenderPublicationErrors];
12922
+ export type TemplatesRenderPublicationResponses = {
12923
+ /**
12924
+ * TemplatePublicationRender
12925
+ */
12926
+ 200: TemplatePublicationRender;
12927
+ };
12928
+ export type TemplatesRenderPublicationResponse = TemplatesRenderPublicationResponses[keyof TemplatesRenderPublicationResponses];
12539
12929
  export type TemplatesListInputContractsData = {
12540
12930
  body?: never;
12541
12931
  path: {
@@ -13304,7 +13694,7 @@ export type WebhooksCreateData = {
13304
13694
  body: {
13305
13695
  name: string;
13306
13696
  url: string;
13307
- eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded">;
13697
+ eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.subscribed" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded">;
13308
13698
  channels?: Array<"email"> | null | undefined;
13309
13699
  mailboxIds?: [MailboxId, ...Array<MailboxId>] | null | undefined;
13310
13700
  namespaceId?: NamespaceId | null | undefined;
@@ -13458,7 +13848,7 @@ export type WebhooksUpdateData = {
13458
13848
  body: {
13459
13849
  name?: string | null | undefined;
13460
13850
  url?: string | null | undefined;
13461
- eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded"> | null | undefined;
13851
+ eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "message.opened" | "message.clicked" | "contact.created" | "contact.updated" | "contact.deleted" | "contact.subscribed" | "contact.unsubscribed" | "contact.resubscribed" | "conversation.created" | "conversation.updated" | "conversation.archived" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated" | "domain.warming.updated" | "mailbox.message.received" | "mailbox.message.sent" | "mailbox.action.pending_approval" | "mailbox.message.quarantined" | "mailbox.message.released" | "mailbox.message.discarded"> | null | undefined;
13462
13852
  channels?: Array<"email"> | null | null | undefined;
13463
13853
  mailboxIds?: [MailboxId, ...Array<MailboxId>] | null | null | undefined;
13464
13854
  namespaceId?: NamespaceId | null | null | undefined;
@@ -13933,6 +14323,79 @@ export type OrganizationsGetProfileResponses = {
13933
14323
  };
13934
14324
  };
13935
14325
  export type OrganizationsGetProfileResponse = OrganizationsGetProfileResponses[keyof OrganizationsGetProfileResponses];
14326
+ export type OrganizationsGetTrustTierData = {
14327
+ body?: never;
14328
+ path?: never;
14329
+ query?: never;
14330
+ url: "/v1/organizations/trust-tier";
14331
+ };
14332
+ export type OrganizationsGetTrustTierErrors = {
14333
+ /**
14334
+ * UnauthorizedError
14335
+ */
14336
+ 401: UnauthorizedError;
14337
+ /**
14338
+ * ForbiddenError
14339
+ */
14340
+ 403: ForbiddenError;
14341
+ /**
14342
+ * ResourceNotFoundError
14343
+ */
14344
+ 404: ResourceNotFoundError;
14345
+ /**
14346
+ * ValidationError
14347
+ */
14348
+ 422: ValidationError;
14349
+ /**
14350
+ * InternalError
14351
+ */
14352
+ 500: InternalError;
14353
+ /**
14354
+ * BillingProviderError
14355
+ */
14356
+ 502: BillingProviderError;
14357
+ /**
14358
+ * GatewayTimeoutError
14359
+ */
14360
+ 504: GatewayTimeoutError;
14361
+ };
14362
+ export type OrganizationsGetTrustTierError = OrganizationsGetTrustTierErrors[keyof OrganizationsGetTrustTierErrors];
14363
+ export type OrganizationsGetTrustTierResponses = {
14364
+ /**
14365
+ * Success
14366
+ */
14367
+ 200: {
14368
+ tier: "screened" | "probation" | "established";
14369
+ changedAt: string;
14370
+ sendingLimits: {
14371
+ sendsPerSecond: number;
14372
+ dailySends: number;
14373
+ probation: {
14374
+ hourlyRecipients: number;
14375
+ dailyRecipients: number;
14376
+ domainShare: number;
14377
+ domainShareFloor: number;
14378
+ } | null;
14379
+ };
14380
+ graduation: {
14381
+ firstSentAt: string | null;
14382
+ elapsedDays: number;
14383
+ sent: number;
14384
+ delivered: number;
14385
+ hardBounces: number;
14386
+ hardBounceRate: number | null;
14387
+ complaints: number;
14388
+ holds: number;
14389
+ requirements: {
14390
+ minimumDays: number;
14391
+ delivered: number;
14392
+ maximumHardBounceRate: number;
14393
+ };
14394
+ blockers: Array<"too_recent" | "too_few_delivered" | "held" | "complaints" | "bounce_rate">;
14395
+ } | null;
14396
+ };
14397
+ };
14398
+ export type OrganizationsGetTrustTierResponse = OrganizationsGetTrustTierResponses[keyof OrganizationsGetTrustTierResponses];
13936
14399
  export type OrganizationsGetUsageData = {
13937
14400
  body?: never;
13938
14401
  path?: never;
@@ -16006,21 +16469,25 @@ export type MailboxesSendMessageErrors = {
16006
16469
  */
16007
16470
  402: PaymentRequiredError;
16008
16471
  /**
16009
- * ForbiddenError
16472
+ * MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError
16010
16473
  */
16011
- 403: ForbiddenError;
16474
+ 403: MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError;
16012
16475
  /**
16013
16476
  * ResourceNotFoundError
16014
16477
  */
16015
16478
  404: ResourceNotFoundError;
16016
16479
  /**
16017
- * ConflictError
16480
+ * MailboxSendConflictError | ConflictError
16018
16481
  */
16019
- 409: ConflictError;
16482
+ 409: MailboxSendConflictError | ConflictError;
16020
16483
  /**
16021
16484
  * ValidationError
16022
16485
  */
16023
16486
  422: ValidationError;
16487
+ /**
16488
+ * RateLimitedError
16489
+ */
16490
+ 429: RateLimitedError;
16024
16491
  /**
16025
16492
  * InternalError
16026
16493
  */
@@ -16029,6 +16496,10 @@ export type MailboxesSendMessageErrors = {
16029
16496
  * BillingProviderError
16030
16497
  */
16031
16498
  502: BillingProviderError;
16499
+ /**
16500
+ * SenderNotReadyError
16501
+ */
16502
+ 503: SenderNotReadyError;
16032
16503
  /**
16033
16504
  * GatewayTimeoutError
16034
16505
  */
@@ -16040,6 +16511,10 @@ export type MailboxesSendMessageResponses = {
16040
16511
  * MailboxSendReceipt
16041
16512
  */
16042
16513
  200: MailboxSendReceipt;
16514
+ /**
16515
+ * MailboxPendingSendReceipt
16516
+ */
16517
+ 202: MailboxPendingSendReceipt;
16043
16518
  };
16044
16519
  export type MailboxesSendMessageResponse = MailboxesSendMessageResponses[keyof MailboxesSendMessageResponses];
16045
16520
  export type MailboxesGetMessageData = {
@@ -16136,9 +16611,53 @@ export type MailboxesGetMessageAttachmentData = {
16136
16611
  attachmentId: AttachmentId;
16137
16612
  };
16138
16613
  query?: never;
16139
- url: "/v1/mailboxes/{id}/messages/{messageId}/attachments/{attachmentId}";
16614
+ url: "/v1/mailboxes/{id}/messages/{messageId}/attachments/{attachmentId}";
16615
+ };
16616
+ export type MailboxesGetMessageAttachmentErrors = {
16617
+ /**
16618
+ * UnauthorizedError
16619
+ */
16620
+ 401: UnauthorizedError;
16621
+ /**
16622
+ * ForbiddenError
16623
+ */
16624
+ 403: ForbiddenError;
16625
+ /**
16626
+ * ResourceNotFoundError
16627
+ */
16628
+ 404: ResourceNotFoundError;
16629
+ /**
16630
+ * ValidationError
16631
+ */
16632
+ 422: ValidationError;
16633
+ /**
16634
+ * InternalError
16635
+ */
16636
+ 500: InternalError;
16637
+ /**
16638
+ * GatewayTimeoutError
16639
+ */
16640
+ 504: GatewayTimeoutError;
16641
+ };
16642
+ export type MailboxesGetMessageAttachmentError = MailboxesGetMessageAttachmentErrors[keyof MailboxesGetMessageAttachmentErrors];
16643
+ export type MailboxesGetMessageAttachmentResponses = {
16644
+ /**
16645
+ * MailboxDownloadUrl
16646
+ */
16647
+ 200: MailboxDownloadUrl;
16648
+ };
16649
+ export type MailboxesGetMessageAttachmentResponse = MailboxesGetMessageAttachmentResponses[keyof MailboxesGetMessageAttachmentResponses];
16650
+ export type MailboxesCopyMessageAttachmentData = {
16651
+ body?: never;
16652
+ path: {
16653
+ id: MailboxId;
16654
+ messageId: MessageId;
16655
+ attachmentId: AttachmentId;
16656
+ };
16657
+ query?: never;
16658
+ url: "/v1/mailboxes/{id}/messages/{messageId}/attachments/{attachmentId}/copy";
16140
16659
  };
16141
- export type MailboxesGetMessageAttachmentErrors = {
16660
+ export type MailboxesCopyMessageAttachmentErrors = {
16142
16661
  /**
16143
16662
  * UnauthorizedError
16144
16663
  */
@@ -16151,6 +16670,10 @@ export type MailboxesGetMessageAttachmentErrors = {
16151
16670
  * ResourceNotFoundError
16152
16671
  */
16153
16672
  404: ResourceNotFoundError;
16673
+ /**
16674
+ * ConflictError
16675
+ */
16676
+ 409: ConflictError;
16154
16677
  /**
16155
16678
  * ValidationError
16156
16679
  */
@@ -16164,14 +16687,14 @@ export type MailboxesGetMessageAttachmentErrors = {
16164
16687
  */
16165
16688
  504: GatewayTimeoutError;
16166
16689
  };
16167
- export type MailboxesGetMessageAttachmentError = MailboxesGetMessageAttachmentErrors[keyof MailboxesGetMessageAttachmentErrors];
16168
- export type MailboxesGetMessageAttachmentResponses = {
16690
+ export type MailboxesCopyMessageAttachmentError = MailboxesCopyMessageAttachmentErrors[keyof MailboxesCopyMessageAttachmentErrors];
16691
+ export type MailboxesCopyMessageAttachmentResponses = {
16169
16692
  /**
16170
- * MailboxDownloadUrl
16693
+ * MailboxCopiedAttachment
16171
16694
  */
16172
- 200: MailboxDownloadUrl;
16695
+ 201: MailboxCopiedAttachment;
16173
16696
  };
16174
- export type MailboxesGetMessageAttachmentResponse = MailboxesGetMessageAttachmentResponses[keyof MailboxesGetMessageAttachmentResponses];
16697
+ export type MailboxesCopyMessageAttachmentResponse = MailboxesCopyMessageAttachmentResponses[keyof MailboxesCopyMessageAttachmentResponses];
16175
16698
  export type MailboxesReplyData = {
16176
16699
  body: {
16177
16700
  cc?: Array<string> | null | undefined;
@@ -16200,21 +16723,25 @@ export type MailboxesReplyErrors = {
16200
16723
  */
16201
16724
  402: PaymentRequiredError;
16202
16725
  /**
16203
- * ForbiddenError
16726
+ * MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError
16204
16727
  */
16205
- 403: ForbiddenError;
16728
+ 403: MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError;
16206
16729
  /**
16207
16730
  * ResourceNotFoundError
16208
16731
  */
16209
16732
  404: ResourceNotFoundError;
16210
16733
  /**
16211
- * ConflictError
16734
+ * MailboxSendConflictError | ConflictError
16212
16735
  */
16213
- 409: ConflictError;
16736
+ 409: MailboxSendConflictError | ConflictError;
16214
16737
  /**
16215
16738
  * ValidationError
16216
16739
  */
16217
16740
  422: ValidationError;
16741
+ /**
16742
+ * RateLimitedError
16743
+ */
16744
+ 429: RateLimitedError;
16218
16745
  /**
16219
16746
  * InternalError
16220
16747
  */
@@ -16223,6 +16750,10 @@ export type MailboxesReplyErrors = {
16223
16750
  * BillingProviderError
16224
16751
  */
16225
16752
  502: BillingProviderError;
16753
+ /**
16754
+ * SenderNotReadyError
16755
+ */
16756
+ 503: SenderNotReadyError;
16226
16757
  /**
16227
16758
  * GatewayTimeoutError
16228
16759
  */
@@ -16234,6 +16765,10 @@ export type MailboxesReplyResponses = {
16234
16765
  * MailboxSendReceipt
16235
16766
  */
16236
16767
  200: MailboxSendReceipt;
16768
+ /**
16769
+ * MailboxPendingSendReceipt
16770
+ */
16771
+ 202: MailboxPendingSendReceipt;
16237
16772
  };
16238
16773
  export type MailboxesReplyResponse = MailboxesReplyResponses[keyof MailboxesReplyResponses];
16239
16774
  export type MailboxesReplyAllData = {
@@ -16264,21 +16799,25 @@ export type MailboxesReplyAllErrors = {
16264
16799
  */
16265
16800
  402: PaymentRequiredError;
16266
16801
  /**
16267
- * ForbiddenError
16802
+ * MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError
16268
16803
  */
16269
- 403: ForbiddenError;
16804
+ 403: MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError;
16270
16805
  /**
16271
16806
  * ResourceNotFoundError
16272
16807
  */
16273
16808
  404: ResourceNotFoundError;
16274
16809
  /**
16275
- * ConflictError
16810
+ * MailboxSendConflictError | ConflictError
16276
16811
  */
16277
- 409: ConflictError;
16812
+ 409: MailboxSendConflictError | ConflictError;
16278
16813
  /**
16279
16814
  * ValidationError
16280
16815
  */
16281
16816
  422: ValidationError;
16817
+ /**
16818
+ * RateLimitedError
16819
+ */
16820
+ 429: RateLimitedError;
16282
16821
  /**
16283
16822
  * InternalError
16284
16823
  */
@@ -16287,6 +16826,10 @@ export type MailboxesReplyAllErrors = {
16287
16826
  * BillingProviderError
16288
16827
  */
16289
16828
  502: BillingProviderError;
16829
+ /**
16830
+ * SenderNotReadyError
16831
+ */
16832
+ 503: SenderNotReadyError;
16290
16833
  /**
16291
16834
  * GatewayTimeoutError
16292
16835
  */
@@ -16298,6 +16841,10 @@ export type MailboxesReplyAllResponses = {
16298
16841
  * MailboxSendReceipt
16299
16842
  */
16300
16843
  200: MailboxSendReceipt;
16844
+ /**
16845
+ * MailboxPendingSendReceipt
16846
+ */
16847
+ 202: MailboxPendingSendReceipt;
16301
16848
  };
16302
16849
  export type MailboxesReplyAllResponse = MailboxesReplyAllResponses[keyof MailboxesReplyAllResponses];
16303
16850
  export type MailboxesForwardData = {
@@ -16329,21 +16876,25 @@ export type MailboxesForwardErrors = {
16329
16876
  */
16330
16877
  402: PaymentRequiredError;
16331
16878
  /**
16332
- * ForbiddenError
16879
+ * MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError
16333
16880
  */
16334
- 403: ForbiddenError;
16881
+ 403: MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError;
16335
16882
  /**
16336
16883
  * ResourceNotFoundError
16337
16884
  */
16338
16885
  404: ResourceNotFoundError;
16339
16886
  /**
16340
- * ConflictError
16887
+ * MailboxSendConflictError | ConflictError
16341
16888
  */
16342
- 409: ConflictError;
16889
+ 409: MailboxSendConflictError | ConflictError;
16343
16890
  /**
16344
16891
  * ValidationError
16345
16892
  */
16346
16893
  422: ValidationError;
16894
+ /**
16895
+ * RateLimitedError
16896
+ */
16897
+ 429: RateLimitedError;
16347
16898
  /**
16348
16899
  * InternalError
16349
16900
  */
@@ -16352,6 +16903,10 @@ export type MailboxesForwardErrors = {
16352
16903
  * BillingProviderError
16353
16904
  */
16354
16905
  502: BillingProviderError;
16906
+ /**
16907
+ * SenderNotReadyError
16908
+ */
16909
+ 503: SenderNotReadyError;
16355
16910
  /**
16356
16911
  * GatewayTimeoutError
16357
16912
  */
@@ -16363,6 +16918,10 @@ export type MailboxesForwardResponses = {
16363
16918
  * MailboxSendReceipt
16364
16919
  */
16365
16920
  200: MailboxSendReceipt;
16921
+ /**
16922
+ * MailboxPendingSendReceipt
16923
+ */
16924
+ 202: MailboxPendingSendReceipt;
16366
16925
  };
16367
16926
  export type MailboxesForwardResponse = MailboxesForwardResponses[keyof MailboxesForwardResponses];
16368
16927
  export type MailboxesListQuarantineData = {
@@ -16772,21 +17331,25 @@ export type MailboxesSendDraftErrors = {
16772
17331
  */
16773
17332
  402: PaymentRequiredError;
16774
17333
  /**
16775
- * ForbiddenError
17334
+ * MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError
16776
17335
  */
16777
- 403: ForbiddenError;
17336
+ 403: MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError;
16778
17337
  /**
16779
17338
  * ResourceNotFoundError
16780
17339
  */
16781
17340
  404: ResourceNotFoundError;
16782
17341
  /**
16783
- * ConflictError
17342
+ * MailboxSendConflictError | ConflictError
16784
17343
  */
16785
- 409: ConflictError;
17344
+ 409: MailboxSendConflictError | ConflictError;
16786
17345
  /**
16787
17346
  * ValidationError
16788
17347
  */
16789
17348
  422: ValidationError;
17349
+ /**
17350
+ * RateLimitedError
17351
+ */
17352
+ 429: RateLimitedError;
16790
17353
  /**
16791
17354
  * InternalError
16792
17355
  */
@@ -16795,6 +17358,10 @@ export type MailboxesSendDraftErrors = {
16795
17358
  * BillingProviderError
16796
17359
  */
16797
17360
  502: BillingProviderError;
17361
+ /**
17362
+ * SenderNotReadyError
17363
+ */
17364
+ 503: SenderNotReadyError;
16798
17365
  /**
16799
17366
  * GatewayTimeoutError
16800
17367
  */
@@ -16806,6 +17373,10 @@ export type MailboxesSendDraftResponses = {
16806
17373
  * MailboxSendReceipt
16807
17374
  */
16808
17375
  200: MailboxSendReceipt;
17376
+ /**
17377
+ * MailboxPendingSendReceipt
17378
+ */
17379
+ 202: MailboxPendingSendReceipt;
16809
17380
  };
16810
17381
  export type MailboxesSendDraftResponse = MailboxesSendDraftResponses[keyof MailboxesSendDraftResponses];
16811
17382
  export type MailboxesListActionsData = {
@@ -16816,7 +17387,8 @@ export type MailboxesListActionsData = {
16816
17387
  query?: {
16817
17388
  limit?: string | null | undefined;
16818
17389
  cursor?: Cursor | null | undefined;
16819
- state?: "proposed" | "allowed" | "approvalRequired" | "policyDenied" | "approved" | "approvalDenied" | "executing" | "executed" | "failed" | null | undefined;
17390
+ threadId?: MailboxThreadId | null | undefined;
17391
+ state?: "proposed" | "allowed" | "approvalRequired" | "policyDenied" | "approved" | "approvalDenied" | "executing" | "executed" | "failed" | "queued" | "accepted" | "completed" | "notSent" | "uncertain" | null | undefined;
16820
17392
  after?: string | null | undefined;
16821
17393
  before?: string | null | undefined;
16822
17394
  };
@@ -16856,6 +17428,183 @@ export type MailboxesListActionsResponses = {
16856
17428
  200: MailboxActionPage;
16857
17429
  };
16858
17430
  export type MailboxesListActionsResponse = MailboxesListActionsResponses[keyof MailboxesListActionsResponses];
17431
+ export type MailboxesGetActionData = {
17432
+ body?: never;
17433
+ path: {
17434
+ id: MailboxId;
17435
+ actionId: MailboxActionId;
17436
+ };
17437
+ query?: never;
17438
+ url: "/v1/mailboxes/{id}/actions/{actionId}";
17439
+ };
17440
+ export type MailboxesGetActionErrors = {
17441
+ /**
17442
+ * UnauthorizedError
17443
+ */
17444
+ 401: UnauthorizedError;
17445
+ /**
17446
+ * ForbiddenError
17447
+ */
17448
+ 403: ForbiddenError;
17449
+ /**
17450
+ * ResourceNotFoundError
17451
+ */
17452
+ 404: ResourceNotFoundError;
17453
+ /**
17454
+ * ValidationError
17455
+ */
17456
+ 422: ValidationError;
17457
+ /**
17458
+ * InternalError
17459
+ */
17460
+ 500: InternalError;
17461
+ /**
17462
+ * GatewayTimeoutError
17463
+ */
17464
+ 504: GatewayTimeoutError;
17465
+ };
17466
+ export type MailboxesGetActionError = MailboxesGetActionErrors[keyof MailboxesGetActionErrors];
17467
+ export type MailboxesGetActionResponses = {
17468
+ /**
17469
+ * MailboxAction
17470
+ */
17471
+ 200: MailboxAction;
17472
+ };
17473
+ export type MailboxesGetActionResponse = MailboxesGetActionResponses[keyof MailboxesGetActionResponses];
17474
+ export type MailboxesCancelActionData = {
17475
+ body?: never;
17476
+ path: {
17477
+ id: MailboxId;
17478
+ actionId: MailboxActionId;
17479
+ };
17480
+ query?: never;
17481
+ url: "/v1/mailboxes/{id}/actions/{actionId}/cancel";
17482
+ };
17483
+ export type MailboxesCancelActionErrors = {
17484
+ /**
17485
+ * UnauthorizedError
17486
+ */
17487
+ 401: UnauthorizedError;
17488
+ /**
17489
+ * PaymentRequiredError
17490
+ */
17491
+ 402: PaymentRequiredError;
17492
+ /**
17493
+ * MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError
17494
+ */
17495
+ 403: MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError;
17496
+ /**
17497
+ * ResourceNotFoundError
17498
+ */
17499
+ 404: ResourceNotFoundError;
17500
+ /**
17501
+ * MailboxSendConflictError | ConflictError
17502
+ */
17503
+ 409: MailboxSendConflictError | ConflictError;
17504
+ /**
17505
+ * ValidationError
17506
+ */
17507
+ 422: ValidationError;
17508
+ /**
17509
+ * RateLimitedError
17510
+ */
17511
+ 429: RateLimitedError;
17512
+ /**
17513
+ * InternalError
17514
+ */
17515
+ 500: InternalError;
17516
+ /**
17517
+ * BillingProviderError
17518
+ */
17519
+ 502: BillingProviderError;
17520
+ /**
17521
+ * SenderNotReadyError
17522
+ */
17523
+ 503: SenderNotReadyError;
17524
+ /**
17525
+ * GatewayTimeoutError
17526
+ */
17527
+ 504: GatewayTimeoutError;
17528
+ };
17529
+ export type MailboxesCancelActionError = MailboxesCancelActionErrors[keyof MailboxesCancelActionErrors];
17530
+ export type MailboxesCancelActionResponses = {
17531
+ /**
17532
+ * MailboxSendReceipt
17533
+ */
17534
+ 200: MailboxSendReceipt;
17535
+ /**
17536
+ * MailboxPendingSendReceipt
17537
+ */
17538
+ 202: MailboxPendingSendReceipt;
17539
+ };
17540
+ export type MailboxesCancelActionResponse = MailboxesCancelActionResponses[keyof MailboxesCancelActionResponses];
17541
+ export type MailboxesRetryActionData = {
17542
+ body?: never;
17543
+ path: {
17544
+ id: MailboxId;
17545
+ actionId: MailboxActionId;
17546
+ };
17547
+ query?: never;
17548
+ url: "/v1/mailboxes/{id}/actions/{actionId}/retry";
17549
+ };
17550
+ export type MailboxesRetryActionErrors = {
17551
+ /**
17552
+ * UnauthorizedError
17553
+ */
17554
+ 401: UnauthorizedError;
17555
+ /**
17556
+ * PaymentRequiredError
17557
+ */
17558
+ 402: PaymentRequiredError;
17559
+ /**
17560
+ * MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError
17561
+ */
17562
+ 403: MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError;
17563
+ /**
17564
+ * ResourceNotFoundError
17565
+ */
17566
+ 404: ResourceNotFoundError;
17567
+ /**
17568
+ * MailboxSendConflictError | ConflictError
17569
+ */
17570
+ 409: MailboxSendConflictError | ConflictError;
17571
+ /**
17572
+ * ValidationError
17573
+ */
17574
+ 422: ValidationError;
17575
+ /**
17576
+ * RateLimitedError
17577
+ */
17578
+ 429: RateLimitedError;
17579
+ /**
17580
+ * InternalError
17581
+ */
17582
+ 500: InternalError;
17583
+ /**
17584
+ * BillingProviderError
17585
+ */
17586
+ 502: BillingProviderError;
17587
+ /**
17588
+ * SenderNotReadyError
17589
+ */
17590
+ 503: SenderNotReadyError;
17591
+ /**
17592
+ * GatewayTimeoutError
17593
+ */
17594
+ 504: GatewayTimeoutError;
17595
+ };
17596
+ export type MailboxesRetryActionError = MailboxesRetryActionErrors[keyof MailboxesRetryActionErrors];
17597
+ export type MailboxesRetryActionResponses = {
17598
+ /**
17599
+ * MailboxSendReceipt
17600
+ */
17601
+ 200: MailboxSendReceipt;
17602
+ /**
17603
+ * MailboxPendingSendReceipt
17604
+ */
17605
+ 202: MailboxPendingSendReceipt;
17606
+ };
17607
+ export type MailboxesRetryActionResponse = MailboxesRetryActionResponses[keyof MailboxesRetryActionResponses];
16859
17608
  export type MailboxesApproveActionData = {
16860
17609
  body?: never;
16861
17610
  path: {
@@ -16875,21 +17624,25 @@ export type MailboxesApproveActionErrors = {
16875
17624
  */
16876
17625
  402: PaymentRequiredError;
16877
17626
  /**
16878
- * ForbiddenError
17627
+ * MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError
16879
17628
  */
16880
- 403: ForbiddenError;
17629
+ 403: MailboxSendRefusedError | OnboardingReviewRequiredError | ForbiddenError;
16881
17630
  /**
16882
17631
  * ResourceNotFoundError
16883
17632
  */
16884
17633
  404: ResourceNotFoundError;
16885
17634
  /**
16886
- * ConflictError
17635
+ * MailboxSendConflictError | ConflictError
16887
17636
  */
16888
- 409: ConflictError;
17637
+ 409: MailboxSendConflictError | ConflictError;
16889
17638
  /**
16890
17639
  * ValidationError
16891
17640
  */
16892
17641
  422: ValidationError;
17642
+ /**
17643
+ * RateLimitedError
17644
+ */
17645
+ 429: RateLimitedError;
16893
17646
  /**
16894
17647
  * InternalError
16895
17648
  */
@@ -16898,6 +17651,10 @@ export type MailboxesApproveActionErrors = {
16898
17651
  * BillingProviderError
16899
17652
  */
16900
17653
  502: BillingProviderError;
17654
+ /**
17655
+ * SenderNotReadyError
17656
+ */
17657
+ 503: SenderNotReadyError;
16901
17658
  /**
16902
17659
  * GatewayTimeoutError
16903
17660
  */
@@ -16909,6 +17666,10 @@ export type MailboxesApproveActionResponses = {
16909
17666
  * MailboxAction
16910
17667
  */
16911
17668
  200: MailboxAction;
17669
+ /**
17670
+ * MailboxPendingAction
17671
+ */
17672
+ 202: MailboxPendingAction;
16912
17673
  };
16913
17674
  export type MailboxesApproveActionResponse = MailboxesApproveActionResponses[keyof MailboxesApproveActionResponses];
16914
17675
  export type MailboxesDenyActionData = {
@@ -16936,9 +17697,9 @@ export type MailboxesDenyActionErrors = {
16936
17697
  */
16937
17698
  404: ResourceNotFoundError;
16938
17699
  /**
16939
- * ConflictError
17700
+ * ConflictError | MailboxSendConflictError
16940
17701
  */
16941
- 409: ConflictError;
17702
+ 409: ConflictError | MailboxSendConflictError;
16942
17703
  /**
16943
17704
  * ValidationError
16944
17705
  */
@@ -17657,6 +18418,56 @@ export type ExtensionInstallationsGetResponses = {
17657
18418
  200: ExtensionInstallation;
17658
18419
  };
17659
18420
  export type ExtensionInstallationsGetResponse = ExtensionInstallationsGetResponses[keyof ExtensionInstallationsGetResponses];
18421
+ export type ExtensionInstallationsUpgradeData = {
18422
+ body: {
18423
+ version?: string | ExtensionVersionId | null | undefined;
18424
+ acceptPermissions?: Array<"permission:read" | "permission:update" | "permission:send" | "permission:quarantine.read" | "event:mailbox.message.received" | "event:mailbox.message.sent" | "event:mailbox.action.pending_approval" | "event:mailbox.message.quarantined" | "event:mailbox.message.released" | "event:mailbox.message.discarded"> | null | undefined;
18425
+ dryRun?: boolean | null | undefined;
18426
+ };
18427
+ path: {
18428
+ id: ExtensionInstallationId;
18429
+ };
18430
+ query?: never;
18431
+ url: "/v1/extension-installations/{id}/upgrade";
18432
+ };
18433
+ export type ExtensionInstallationsUpgradeErrors = {
18434
+ /**
18435
+ * UnauthorizedError
18436
+ */
18437
+ 401: UnauthorizedError;
18438
+ /**
18439
+ * ForbiddenError
18440
+ */
18441
+ 403: ForbiddenError;
18442
+ /**
18443
+ * ResourceNotFoundError
18444
+ */
18445
+ 404: ResourceNotFoundError;
18446
+ /**
18447
+ * ConflictError
18448
+ */
18449
+ 409: ConflictError;
18450
+ /**
18451
+ * ValidationError
18452
+ */
18453
+ 422: ValidationError;
18454
+ /**
18455
+ * InternalError
18456
+ */
18457
+ 500: InternalError;
18458
+ /**
18459
+ * GatewayTimeoutError
18460
+ */
18461
+ 504: GatewayTimeoutError;
18462
+ };
18463
+ export type ExtensionInstallationsUpgradeError = ExtensionInstallationsUpgradeErrors[keyof ExtensionInstallationsUpgradeErrors];
18464
+ export type ExtensionInstallationsUpgradeResponses = {
18465
+ /**
18466
+ * UpgradeExtensionResponse
18467
+ */
18468
+ 200: UpgradeExtensionResponse;
18469
+ };
18470
+ export type ExtensionInstallationsUpgradeResponse = ExtensionInstallationsUpgradeResponses[keyof ExtensionInstallationsUpgradeResponses];
17660
18471
  export type ExtensionInstallationsDisableData = {
17661
18472
  body?: never;
17662
18473
  path: {