samva 0.1.1 → 0.3.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 (47) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +10 -3
  3. package/dist/client/sdk.gen.d.ts +333 -188
  4. package/dist/client/types.gen.d.ts +1452 -718
  5. package/dist/{client-DVALvDUe.js → client-BOghX8fr.js} +1990 -1631
  6. package/dist/effect/api-keys.d.ts +14 -14
  7. package/dist/effect/api-keys.js +1 -1
  8. package/dist/effect/campaigns.d.ts +233 -861
  9. package/dist/effect/campaigns.js +1 -1
  10. package/dist/effect/categories.d.ts +1 -1
  11. package/dist/effect/client.js +1 -1
  12. package/dist/effect/contacts.d.ts +131 -231
  13. package/dist/effect/contacts.js +1 -1
  14. package/dist/effect/conversations.d.ts +91 -208
  15. package/dist/effect/conversations.js +1 -1
  16. package/dist/effect/design.d.ts +11 -11
  17. package/dist/effect/design.js +1 -1
  18. package/dist/effect/email.d.ts +164 -168
  19. package/dist/effect/email.js +20 -18
  20. package/dist/effect/generated.d.ts +13753 -14935
  21. package/dist/effect/index.d.ts +1 -0
  22. package/dist/effect/index.js +3 -2
  23. package/dist/effect/internal/operation.d.ts +15 -113
  24. package/dist/effect/media.d.ts +80 -0
  25. package/dist/effect/media.js +19 -0
  26. package/dist/effect/messages.d.ts +41 -261
  27. package/dist/effect/messages.js +1 -1
  28. package/dist/effect/operations.d.ts +10 -10
  29. package/dist/effect/operations.js +1 -1
  30. package/dist/effect/organizations.d.ts +24 -42
  31. package/dist/effect/organizations.js +1 -1
  32. package/dist/effect/scheduled-messages.d.ts +43 -502
  33. package/dist/effect/scheduled-messages.js +1 -1
  34. package/dist/effect/templates.d.ts +312 -1542
  35. package/dist/effect/templates.js +26 -18
  36. package/dist/effect/webhooks.d.ts +26 -27
  37. package/dist/effect/webhooks.js +2 -2
  38. package/dist/index.js +1 -1
  39. package/dist/{normalize-LkWl4HUF.js → normalize-BKFjbR9t.js} +5 -13
  40. package/dist/normalize.d.ts +3 -33
  41. package/dist/{operation-UtKNITtG.js → operation-C2Q4cFJL.js} +67 -26
  42. package/dist/promises/index.d.ts +6 -14
  43. package/dist/promises/index.js +1 -1
  44. package/dist/promises/types.gen.d.ts +1 -1
  45. package/dist/{promises-QxEfMTho.js → promises-oiy7mOyu.js} +680 -157
  46. package/dist/service-map.d.ts +92 -40
  47. package/package.json +19 -14
@@ -9,7 +9,7 @@ export type MessageContact = {
9
9
  displayName: string | null;
10
10
  type: string;
11
11
  identities: Array<{
12
- channel: "sms" | "whatsapp" | "email";
12
+ channel: "email";
13
13
  identifier: string;
14
14
  verified: boolean;
15
15
  }>;
@@ -26,7 +26,7 @@ export type Message = {
26
26
  actorMetadata: {
27
27
  [key: string]: JsonValue;
28
28
  } | null;
29
- channel: "sms" | "whatsapp" | "email";
29
+ channel: "email";
30
30
  direction: "outbound" | "inbound";
31
31
  content: JsonValue;
32
32
  metadata: {
@@ -67,7 +67,7 @@ export type Message = {
67
67
  id: string;
68
68
  messageId: string;
69
69
  recipientId: string | null;
70
- channel: "sms" | "whatsapp" | "email";
70
+ channel: "email";
71
71
  status: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained";
72
72
  attemptCount: number;
73
73
  maxAttempts: number;
@@ -124,48 +124,6 @@ export type Message = {
124
124
  createdAt: string;
125
125
  updatedAt: string;
126
126
  }>;
127
- smsDeliveryDetails: Array<{
128
- deliveryId: string;
129
- fromNumber: string;
130
- toNumber: string;
131
- segmentCount: number;
132
- encoding: string;
133
- dltTemplateId: string | null;
134
- dltEntityId: string | null;
135
- dltContentId: string | null;
136
- carrier: string | null;
137
- numSegmentsReported: number | null;
138
- createdAt: string;
139
- updatedAt: string;
140
- }>;
141
- whatsappDeliveryDetails: Array<{
142
- deliveryId: string;
143
- fromNumber: string;
144
- toNumber: string;
145
- messageType: "text" | "image" | "video" | "audio" | "document" | "location" | "contacts" | "template" | "interactive" | "sticker" | "reaction" | "order" | "button" | "system" | "unsupported";
146
- templateName: string | null;
147
- templateLanguage: string | null;
148
- templateCategory: string | null;
149
- templateParams: JsonObject | null;
150
- mediaUrl: string | null;
151
- mediaType: string | null;
152
- mediaS3Key: string | null;
153
- interactiveType: string | null;
154
- contextMessageId: string | null;
155
- conversationType: "marketing" | "utility" | "authentication" | "service" | null;
156
- serviceWindowId: string | null;
157
- freeEntryPointId: string | null;
158
- isBillable: boolean;
159
- pricing: {
160
- messageCost: string;
161
- reason: string;
162
- sentInServiceWindow: boolean;
163
- sentInFreeEntryPoint: boolean;
164
- } | null;
165
- recipientId: string | null;
166
- createdAt: string;
167
- updatedAt: string;
168
- }>;
169
127
  };
170
128
  export type PaginationMeta = {
171
129
  page: number;
@@ -217,13 +175,15 @@ export type EmailSender = {
217
175
  email: string;
218
176
  name?: string | null | undefined;
219
177
  } | null;
220
- export type EmailAttachments = Array<{
178
+ export type MediaId = string;
179
+ export type EmailAttachment = {
221
180
  filename: string;
222
181
  content?: string | null | undefined;
223
- url?: string | null | undefined;
182
+ mediaId?: MediaId | null | undefined;
224
183
  contentType: string;
225
184
  size: number;
226
- }> | null;
185
+ };
186
+ export type EmailAttachments = Array<EmailAttachment> | null;
227
187
  export type TemplateId = string;
228
188
  export type TemplateData = JsonObject | null;
229
189
  export type ReplyToAddresses = Array<string> | null | null;
@@ -268,60 +228,7 @@ export type EmailSendMessagePayload = {
268
228
  from?: EmailSender | undefined;
269
229
  email: EmailContent;
270
230
  };
271
- export type SmsRecipient = {
272
- contactId: ContactId;
273
- } | {
274
- phone: string;
275
- name?: string | null | undefined;
276
- displayName?: string | null | null | undefined;
277
- };
278
- export type SmsRecipients = [SmsRecipient];
279
- export type SmsTemplateData = JsonObject | null;
280
- export type SmsContent = {
281
- text?: string | null | undefined;
282
- templateId?: TemplateId | null | undefined;
283
- templateSlug?: string | null | undefined;
284
- templateData?: SmsTemplateData | undefined;
285
- };
286
- /**
287
- * SMS sending is coming soon. The payload is accepted by the contract today and the endpoint answers 403 until the channel launches for your organization.
288
- */
289
- export type SmsSendMessagePayload = {
290
- conversationId?: ConversationId | null | null | undefined;
291
- metadata?: MessageMetadata | undefined;
292
- channel: "sms";
293
- to: SmsRecipients;
294
- sms: SmsContent;
295
- };
296
- export type WhatsAppRecipient = {
297
- contactId: ContactId;
298
- } | {
299
- whatsapp: string;
300
- name?: string | null | undefined;
301
- displayName?: string | null | null | undefined;
302
- };
303
- export type WhatsAppRecipients = [WhatsAppRecipient];
304
- export type WhatsAppTemplateData = JsonObject | null;
305
- export type WhatsAppContent = {
306
- text?: string | null | undefined;
307
- mediaUrl?: string | null | undefined;
308
- mediaType?: "image" | "video" | "audio" | "document" | null | undefined;
309
- templateId?: TemplateId | null | undefined;
310
- templateSlug?: string | null | undefined;
311
- templateCategory?: "marketing" | "utility" | "authentication" | null | undefined;
312
- templateData?: WhatsAppTemplateData | undefined;
313
- };
314
- /**
315
- * WhatsApp sending is coming soon. The payload is accepted by the contract today and the endpoint answers 403 until the channel launches for your organization.
316
- */
317
- export type WhatsAppSendMessagePayload = {
318
- conversationId?: ConversationId | null | null | undefined;
319
- metadata?: MessageMetadata | undefined;
320
- channel: "whatsapp";
321
- to: WhatsAppRecipients;
322
- whatsapp: WhatsAppContent;
323
- };
324
- export type SendMessagePayload = EmailSendMessagePayload | SmsSendMessagePayload | WhatsAppSendMessagePayload;
231
+ export type SendMessagePayload = EmailSendMessagePayload;
325
232
  export type ConflictError = {
326
233
  _tag: "ConflictError";
327
234
  operation: string;
@@ -388,7 +295,7 @@ export type Operation = {
388
295
  status: "pending" | "running" | "succeeded" | "failed";
389
296
  phase: "accepted" | "dispatching" | "provisioning" | "deleting" | "finalizing" | "completed";
390
297
  error: {
391
- code: "validation-failed" | "conflict" | "capacity-unavailable" | "provider-unavailable" | "timed-out" | "internal";
298
+ code: "validation-failed" | "conflict" | "capacity-unavailable" | "provider-rejected" | "provider-unavailable" | "timed-out" | "internal";
392
299
  message: string;
393
300
  } | null;
394
301
  createdAt: string;
@@ -431,63 +338,20 @@ export type EmailDispatchSendMessagePayload = {
431
338
  from?: EmailSender | undefined;
432
339
  email: EmailDispatchContent;
433
340
  };
434
- export type SmsDispatchContent = {
435
- text?: string | null | undefined;
436
- templateId?: TemplateId | null | undefined;
437
- templateSlug?: string | null | undefined;
438
- templateData?: SmsTemplateData | undefined;
439
- };
440
- /**
441
- * SMS sending is coming soon. The payload is accepted by the contract today and the endpoint answers 403 until the channel launches for your organization.
442
- */
443
- export type SmsDispatchSendMessagePayload = {
444
- conversationId?: ConversationId | null | null | undefined;
445
- metadata?: MessageMetadata | undefined;
446
- channel: "sms";
447
- to: SmsRecipients;
448
- sms: SmsDispatchContent;
449
- };
450
- export type WhatsAppDispatchContent = {
451
- text?: string | null | undefined;
452
- mediaUrl?: string | null | undefined;
453
- mediaType?: "image" | "video" | "audio" | "document" | null | undefined;
454
- templateId?: TemplateId | null | undefined;
455
- templateSlug?: string | null | undefined;
456
- templateCategory?: "marketing" | "utility" | "authentication" | null | undefined;
457
- templateData?: WhatsAppTemplateData | undefined;
458
- };
459
- /**
460
- * WhatsApp sending is coming soon. The payload is accepted by the contract today and the endpoint answers 403 until the channel launches for your organization.
461
- */
462
- export type WhatsAppDispatchSendMessagePayload = {
463
- conversationId?: ConversationId | null | null | undefined;
464
- metadata?: MessageMetadata | undefined;
465
- channel: "whatsapp";
466
- to: WhatsAppRecipients;
467
- whatsapp: WhatsAppDispatchContent;
468
- };
469
- export type DispatchSendMessagePayload = EmailDispatchSendMessagePayload | SmsDispatchSendMessagePayload | WhatsAppDispatchSendMessagePayload;
341
+ export type DispatchSendMessagePayload = EmailDispatchSendMessagePayload;
470
342
  export type ScheduledMessageId = string;
471
343
  export type ScheduledMessage = {
472
344
  id: ScheduledMessageId;
473
345
  status: "pending" | "dispatching" | "dispatched" | "cancelled" | "failed";
474
346
  scheduledFor: string;
475
347
  timezone: string;
476
- send: SendMessagePayload | {
477
- kind: "editor-session-snapshot";
478
- channel: "email" | "sms" | "whatsapp";
479
- sessionId: string;
480
- revision: string;
481
- templateId: TemplateId;
482
- templateVersion: number;
483
- isTest: boolean;
484
- };
348
+ send: SendMessagePayload;
485
349
  messageId: MessageId | null;
486
350
  idempotencyKey: string | null;
487
351
  referenceId: string | null;
488
352
  failureReason: string | null;
489
353
  attempts: number;
490
- createdBy: string;
354
+ createdBy: string | null;
491
355
  actorEmail: string;
492
356
  memberRole: string;
493
357
  createdAt: string;
@@ -503,19 +367,7 @@ export type EmailCampaignContentInput = {
503
367
  conversationId?: CampaignConversationRef | undefined;
504
368
  metadata?: CampaignContentMetadata | undefined;
505
369
  };
506
- export type SmsCampaignContentInput = {
507
- channel: "sms";
508
- sms: SmsDispatchContent;
509
- conversationId?: CampaignConversationRef | undefined;
510
- metadata?: CampaignContentMetadata | undefined;
511
- };
512
- export type WhatsAppCampaignContentInput = {
513
- channel: "whatsapp";
514
- whatsapp: WhatsAppDispatchContent;
515
- conversationId?: CampaignConversationRef | undefined;
516
- metadata?: CampaignContentMetadata | undefined;
517
- };
518
- export type CampaignContentInput = EmailCampaignContentInput | SmsCampaignContentInput | WhatsAppCampaignContentInput;
370
+ export type CampaignContentInput = EmailCampaignContentInput;
519
371
  export type ContactGroupId = string;
520
372
  export type CampaignAudience = {
521
373
  includeTags?: Array<string> | null | undefined;
@@ -534,34 +386,37 @@ export type EmailCampaignContent = {
534
386
  conversationId?: CampaignConversationRef | undefined;
535
387
  metadata?: CampaignContentMetadata | undefined;
536
388
  };
537
- export type SmsCampaignContent = {
538
- channel: "sms";
539
- sms: SmsContent;
540
- conversationId?: CampaignConversationRef | undefined;
541
- metadata?: CampaignContentMetadata | undefined;
389
+ export type CampaignContent = EmailCampaignContent;
390
+ export type CampaignDefinitionSummary = {
391
+ state: "editable" | "frozen" | "archived";
392
+ frozenAt: string | null;
542
393
  };
543
- export type WhatsAppCampaignContent = {
544
- channel: "whatsapp";
545
- whatsapp: WhatsAppContent;
546
- conversationId?: CampaignConversationRef | undefined;
547
- metadata?: CampaignContentMetadata | undefined;
394
+ export type CampaignRunId = string;
395
+ export type CampaignLatestRun = {
396
+ id: CampaignRunId;
397
+ status: "scheduled" | "resolving" | "dispatching" | "paused" | "completed" | "cancelled" | "failed";
398
+ scheduledFor: string;
399
+ completedAt: string | null;
400
+ totalRecipients: number;
401
+ dispatchedCount: number;
402
+ failedCount: number;
403
+ skippedCount: number;
548
404
  };
549
- export type CampaignContent = EmailCampaignContent | SmsCampaignContent | WhatsAppCampaignContent;
550
405
  export type Campaign = {
551
406
  id: CampaignId;
552
407
  name: string;
553
- channel: "sms" | "whatsapp" | "email";
408
+ channel: "email";
554
409
  content: CampaignContent;
555
410
  audience: CampaignAudience;
556
411
  policy: CampaignPolicy;
557
- status: "draft" | "archived";
558
- createdBy: string;
412
+ definition: CampaignDefinitionSummary;
413
+ latestRun: CampaignLatestRun | null;
414
+ createdBy: string | null;
559
415
  actorEmail: string;
560
416
  memberRole: string;
561
417
  createdAt: string;
562
418
  updatedAt: string;
563
419
  };
564
- export type CampaignRunId = string;
565
420
  export type CampaignRun = {
566
421
  id: CampaignRunId;
567
422
  campaignId: CampaignId;
@@ -579,7 +434,7 @@ export type CampaignRun = {
579
434
  skippedCount: number;
580
435
  failureReason: string | null;
581
436
  lastContactId: string | null;
582
- createdBy: string;
437
+ createdBy: string | null;
583
438
  actorEmail: string;
584
439
  memberRole: string;
585
440
  createdAt: string;
@@ -612,7 +467,7 @@ export type DeliverabilityFacts = {
612
467
  export type EmailDomain = {
613
468
  id: EmailDomainId;
614
469
  domain: string;
615
- status: "pending" | "verified" | "failed";
470
+ phase: "dns-setup" | "provider-setup" | "provider-verification" | "ready" | "degraded" | "failed";
616
471
  dkimSelector?: string | null | undefined;
617
472
  dkimPublicKey?: string | null | undefined;
618
473
  dnsRecords: Array<{
@@ -637,39 +492,84 @@ export type EmailChannelError = {
637
492
  message: string;
638
493
  statusCode?: number | null | undefined;
639
494
  };
640
- export type EmailDomainVerificationStatusResponse = {
495
+ export type EmailDomainVerification = {
496
+ domainId: EmailDomainId;
641
497
  domain: string;
642
- isVerified: boolean;
643
- verificationStatus: string;
644
- mailFromStatus?: string | null | undefined;
498
+ phase: "dns-setup" | "provider-setup" | "provider-verification" | "ready" | "degraded" | "failed";
499
+ records: Array<{
500
+ record: {
501
+ type: "A" | "AAAA" | "CNAME" | "MX" | "NS" | "SOA" | "PTR" | "SRV" | "TXT" | "CAA";
502
+ name: string;
503
+ value: string;
504
+ ttl?: string | null | undefined;
505
+ description?: string | null | undefined;
506
+ priority?: number | null | undefined;
507
+ };
508
+ status: "unchecked" | "missing" | "mismatch" | "found";
509
+ observedValues: Array<string>;
510
+ checkedAt?: string | null | undefined;
511
+ resolutionFailure?: {
512
+ code?: string | null | undefined;
513
+ message: string;
514
+ } | null | undefined;
515
+ }>;
516
+ provider: {
517
+ identity: "pending" | "verified" | "failed" | "unknown";
518
+ dkim?: "pending" | "verified" | "failed" | "unknown" | null | undefined;
519
+ mailFrom?: "pending" | "verified" | "failed" | "unknown" | null | undefined;
520
+ } | null;
521
+ operationId: OperationId | null;
522
+ checkedAt: string | null;
523
+ nextCheckAt: string | null;
524
+ failure: {
525
+ code: string;
526
+ message: string;
527
+ failedAt: string;
528
+ } | null;
529
+ };
530
+ export type DomainConnectEligibility = {
531
+ eligible: false;
532
+ reason: "no-record" | "no-settings" | "no-sync" | "no-template" | "unavailable";
533
+ } | {
534
+ eligible: true;
535
+ providerName?: string | null | undefined;
536
+ };
537
+ export type DomainConnectApplyUrlResult = {
538
+ url: string;
539
+ };
540
+ export type DomainConnectCompleteResult = {
541
+ status: "applied" | "cancelled" | "invalid";
645
542
  };
646
543
  export type SuccessResult = {
647
544
  success: boolean;
648
545
  message: string;
649
546
  };
650
547
  export type WebhookEndpointId = string;
651
- export type BrandedTrackingDnsRecord = {
548
+ export type CustomTrackingDnsRecord = {
652
549
  name: string;
653
550
  type: string;
654
551
  value: string;
655
552
  };
656
- export type BrandedTrackingStatus = {
553
+ export type CustomTrackingStatus = {
657
554
  enabled: boolean;
658
- brandedTracking: {
555
+ customTracking: {
659
556
  status: "pending" | "caa-blocked" | "active" | "teardown-scheduled" | "disabled";
660
557
  label: string;
661
558
  hostname: string;
662
559
  region: string;
663
560
  sslStatus: string | null;
664
561
  dnsRecords: {
665
- tracking: BrandedTrackingDnsRecord | null;
666
- dcvDelegation: BrandedTrackingDnsRecord | null;
562
+ tracking: CustomTrackingDnsRecord | null;
563
+ dcvDelegation: CustomTrackingDnsRecord | null;
667
564
  };
668
565
  caaBlocked: boolean;
669
566
  verificationErrors: Array<string>;
670
567
  teardownScheduledAt: string | null;
671
568
  } | null;
672
569
  };
570
+ export type CustomTrackingDomainConnectCompleteResult = {
571
+ status: "applied" | "cancelled" | "stale" | "invalid";
572
+ };
673
573
  export type SuppressionId = string;
674
574
  export type SuppressionEntry = {
675
575
  id: SuppressionId;
@@ -691,7 +591,66 @@ export type ForwardingConditions = {
691
591
  hasAttachments?: boolean | null | undefined;
692
592
  };
693
593
  export type EmailForwardingRuleId = string;
594
+ export type CreateMediaPayload = {
595
+ filename: string;
596
+ contentType: string;
597
+ sizeBytes: number;
598
+ purpose: "attachment" | "avatar";
599
+ checksumSha256?: string | null | undefined;
600
+ };
694
601
  export type OrganizationId = string;
602
+ export type MediaUploadInstruction = {
603
+ url: string;
604
+ method: "PUT";
605
+ headers: {
606
+ [key: string]: string;
607
+ };
608
+ expiresAt: string;
609
+ };
610
+ export type CreatedMedia = {
611
+ id: MediaId;
612
+ organizationId: OrganizationId;
613
+ status: "pending" | "uploading" | "processing" | "ready" | "failed" | "deleted";
614
+ filename: string;
615
+ contentType: string;
616
+ sizeBytes: number;
617
+ width: number | null;
618
+ height: number | null;
619
+ durationMs: number | null;
620
+ purpose: "attachment" | "avatar";
621
+ checksumSha256: string | null;
622
+ expiresAt: string | null;
623
+ createdAt: string;
624
+ confirmedAt: string | null;
625
+ upload: MediaUploadInstruction;
626
+ };
627
+ export type Media = {
628
+ id: MediaId;
629
+ organizationId: OrganizationId;
630
+ status: "pending" | "uploading" | "processing" | "ready" | "failed" | "deleted";
631
+ filename: string;
632
+ contentType: string;
633
+ sizeBytes: number;
634
+ width: number | null;
635
+ height: number | null;
636
+ durationMs: number | null;
637
+ purpose: "attachment" | "avatar";
638
+ checksumSha256: string | null;
639
+ expiresAt: string | null;
640
+ createdAt: string;
641
+ confirmedAt: string | null;
642
+ };
643
+ export type CompletedMedia = {
644
+ media: Media;
645
+ downloadUrl: string;
646
+ };
647
+ export type SuccessResponse = {
648
+ success: boolean;
649
+ };
650
+ export type MediaDownloadUrl = {
651
+ url: string;
652
+ expiresAt: string;
653
+ };
695
654
  export type UnknownRecord = {
696
655
  [key: string]: JsonValue;
697
656
  };
@@ -744,8 +703,48 @@ export type Conversation = {
744
703
  description: string | null;
745
704
  externalId: string | null;
746
705
  parentConversationId: ConversationId | null;
747
- channels: Array<"sms" | "whatsapp" | "email">;
748
- primaryChannel: "sms" | "whatsapp" | "email";
706
+ channels: Array<"email">;
707
+ primaryChannel: "email";
708
+ status: "active" | "waiting" | "resolved" | "escalated" | "archived";
709
+ statusReason: string | null;
710
+ priority: number;
711
+ urgency: "low" | "medium" | "high" | "critical";
712
+ complexity: "simple" | "moderate" | "complex";
713
+ metadata: ConversationMetadata | null;
714
+ actorTracking: ActorTracking;
715
+ metrics: ConversationMetrics;
716
+ context: ConversationContext | null;
717
+ tags: Array<string>;
718
+ categories: Array<string>;
719
+ isTest: boolean;
720
+ isInternal: boolean;
721
+ isPrivate: boolean;
722
+ startedAt: string;
723
+ lastActivityAt: string;
724
+ lastHumanActivityAt: string | null;
725
+ resolvedAt: string | null;
726
+ archivedAt: string | null;
727
+ resolvedBy: ActorId | null;
728
+ resolutionType: "automated" | "human_assisted" | "escalated" | "abandoned" | "timeout" | null;
729
+ resolutionNotes: string | null;
730
+ createdAt: string;
731
+ updatedAt: string;
732
+ createdBy: ActorId | null;
733
+ };
734
+ export type ConversationParticipant = {
735
+ actorId: ActorId;
736
+ actorType: "contact" | "system" | "sender_identity" | "agent" | "user";
737
+ contact: MessageContact;
738
+ };
739
+ export type ConversationDetail = {
740
+ id: ConversationId;
741
+ organizationId: OrganizationId;
742
+ title: string | null;
743
+ description: string | null;
744
+ externalId: string | null;
745
+ parentConversationId: ConversationId | null;
746
+ channels: Array<"email">;
747
+ primaryChannel: "email";
749
748
  status: "active" | "waiting" | "resolved" | "escalated" | "archived";
750
749
  statusReason: string | null;
751
750
  priority: number;
@@ -771,12 +770,13 @@ export type Conversation = {
771
770
  createdAt: string;
772
771
  updatedAt: string;
773
772
  createdBy: ActorId | null;
773
+ participants: Array<ConversationParticipant>;
774
774
  };
775
775
  export type ConversationContacts = {
776
776
  contactIds: [ContactId, ContactId];
777
777
  };
778
778
  export type ContactIdentity = {
779
- channel: "sms" | "whatsapp" | "email";
779
+ channel: "email";
780
780
  identifier: string;
781
781
  verified: boolean;
782
782
  };
@@ -822,13 +822,11 @@ export type ContactAccessConfig = {
822
822
  } | null | undefined;
823
823
  };
824
824
  export type ContactPreferences = {
825
- preferredChannels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
825
+ preferredChannels?: Array<"email"> | null | undefined;
826
826
  language?: string | null | undefined;
827
827
  timezone?: string | null | undefined;
828
828
  notifications?: {
829
829
  email?: boolean | null | undefined;
830
- sms?: boolean | null | undefined;
831
- whatsapp?: boolean | null | undefined;
832
830
  quiet_hours?: {
833
831
  start: string;
834
832
  end: string;
@@ -840,6 +838,34 @@ export type ContactPreferences = {
840
838
  maxMessageLength?: number | null | undefined;
841
839
  } | null | undefined;
842
840
  };
841
+ export type ContactActivitySummary = {
842
+ totalInteractions: number;
843
+ lastActiveAt: string | null;
844
+ };
845
+ export type ContactListItem = {
846
+ id: ContactId;
847
+ organizationId: OrganizationId;
848
+ type: "human" | "system";
849
+ name: string;
850
+ displayName: string | null;
851
+ avatar: string | null;
852
+ identities: Array<ContactIdentity>;
853
+ humanProfile: HumanProfile | null;
854
+ capabilities: Array<string>;
855
+ tags: Array<string>;
856
+ accessLevel: "public" | "authenticated" | "vip" | "internal";
857
+ accessConfig: ContactAccessConfig | null;
858
+ preferences: ContactPreferences | null;
859
+ status: "active" | "paused" | "blocked" | "archived";
860
+ statusReason: string | null;
861
+ externalId: string | null;
862
+ metadata: JsonObject | null;
863
+ createdAt: string;
864
+ updatedAt: string;
865
+ createdBy: ContactId | null;
866
+ lastModifiedBy: ContactId | null;
867
+ engagement: ContactActivitySummary;
868
+ };
843
869
  export type Contact = {
844
870
  id: ContactId;
845
871
  organizationId: OrganizationId;
@@ -851,7 +877,6 @@ export type Contact = {
851
877
  humanProfile: HumanProfile | null;
852
878
  capabilities: Array<string>;
853
879
  tags: Array<string>;
854
- engagement: UnknownRecord;
855
880
  accessLevel: "public" | "authenticated" | "vip" | "internal";
856
881
  accessConfig: ContactAccessConfig | null;
857
882
  preferences: ContactPreferences | null;
@@ -891,12 +916,6 @@ export type TemplateVariable = {
891
916
  };
892
917
  export type UserId = string;
893
918
  export type TemplateCompliance = {
894
- dltTemplateId?: string | null | undefined;
895
- dltStatus?: "pending" | "approved" | "rejected" | "expired" | null | undefined;
896
- dltApprovedAt?: string | null | undefined;
897
- whatsappTemplateId?: string | null | undefined;
898
- whatsappStatus?: "draft" | "pending" | "approved" | "published" | "rejected" | "archived" | null | undefined;
899
- whatsappApprovedAt?: string | null | undefined;
900
919
  metaStatus?: string | null | undefined;
901
920
  submittedAt?: string | null | null | undefined;
902
921
  qualityScore?: string | null | undefined;
@@ -984,7 +1003,7 @@ export type Template = {
984
1003
  name: string;
985
1004
  slug: string;
986
1005
  familyId: TemplateFamilyId | null;
987
- channel: "sms" | "whatsapp" | "email";
1006
+ channel: "email";
988
1007
  origin: "dashboard" | "tsx";
989
1008
  description: string | null;
990
1009
  category: string | null;
@@ -994,7 +1013,6 @@ export type Template = {
994
1013
  opens?: boolean | null | undefined;
995
1014
  clicks?: boolean | null | undefined;
996
1015
  } | null | undefined;
997
- source: string | null;
998
1016
  email: {
999
1017
  subject: string;
1000
1018
  preheader: string | null;
@@ -1002,66 +1020,6 @@ export type Template = {
1002
1020
  [key: string]: string;
1003
1021
  } | null;
1004
1022
  } | null;
1005
- sms: {
1006
- body: string;
1007
- encoding: string | null;
1008
- estimatedSegments: number | null;
1009
- category: "transactional" | "promotional" | "service_implicit" | null;
1010
- } | null;
1011
- whatsapp: {
1012
- name: string;
1013
- language: string;
1014
- category: "marketing" | "utility" | "authentication" | "service";
1015
- headerType: "text" | "image" | "video" | "document" | "none" | null;
1016
- headerMediaType: string | null;
1017
- headerContent: string | null;
1018
- bodyContent: string;
1019
- footerContent: string | null;
1020
- components: Array<{
1021
- type: "header" | "body" | "footer" | "button";
1022
- format?: "TEXT" | "IMAGE" | "VIDEO" | "DOCUMENT" | null | undefined;
1023
- text?: string | null | undefined;
1024
- example?: {
1025
- header_text?: Array<string> | null | undefined;
1026
- body_text?: Array<Array<string>> | null | undefined;
1027
- } | null | undefined;
1028
- buttons?: Array<{
1029
- type: "QUICK_REPLY" | "URL" | "PHONE_NUMBER" | "COPY_CODE";
1030
- text?: string | null | undefined;
1031
- url?: string | null | undefined;
1032
- phone_number?: string | null | undefined;
1033
- example?: string | null | undefined;
1034
- }> | null | undefined;
1035
- parameters?: Array<{
1036
- type: "text" | "currency" | "date_time" | "image" | "document" | "video";
1037
- text?: string | null | undefined;
1038
- currency?: {
1039
- fallback_value: string;
1040
- code: string;
1041
- amount_1000: number;
1042
- } | null | undefined;
1043
- date_time?: {
1044
- fallback_value: string;
1045
- } | null | undefined;
1046
- image?: {
1047
- link: string;
1048
- } | null | undefined;
1049
- document?: {
1050
- link: string;
1051
- filename?: string | null | undefined;
1052
- } | null | undefined;
1053
- video?: {
1054
- link: string;
1055
- } | null | undefined;
1056
- }> | null | undefined;
1057
- }> | null;
1058
- buttons: Array<{
1059
- [key: string]: JsonValue;
1060
- }> | null;
1061
- examples: {
1062
- [key: string]: JsonValue;
1063
- } | null;
1064
- } | null;
1065
1023
  variableSchema: Array<TemplateVariable> | null;
1066
1024
  compliance: TemplateCompliance | null;
1067
1025
  designOverrides: Design | null;
@@ -1071,7 +1029,6 @@ export type Template = {
1071
1029
  isActive: boolean;
1072
1030
  isDefault: boolean;
1073
1031
  version: number;
1074
- publishedSource?: string | null | null | undefined;
1075
1032
  publishedAt?: string | null | null | undefined;
1076
1033
  publishedBy?: string | null | null | undefined;
1077
1034
  createdAt: string;
@@ -1081,7 +1038,7 @@ export type TemplateSummary = {
1081
1038
  id: TemplateId;
1082
1039
  name: string;
1083
1040
  slug: string;
1084
- channel: "sms" | "whatsapp" | "email";
1041
+ channel: "email";
1085
1042
  origin: "dashboard" | "tsx";
1086
1043
  description: string | null;
1087
1044
  category: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null;
@@ -1100,7 +1057,7 @@ export type TemplateFamily = {
1100
1057
  id: TemplateId;
1101
1058
  name: string;
1102
1059
  slug: string;
1103
- channel: "sms" | "whatsapp" | "email";
1060
+ channel: "email";
1104
1061
  variableSchema: Array<TemplateVariable> | null;
1105
1062
  status: "draft" | "pending" | "approved" | "published" | "rejected" | "archived";
1106
1063
  isActive: boolean;
@@ -1114,9 +1071,6 @@ export type TemplateFamily = {
1114
1071
  export type TemplateFamilyName = {
1115
1072
  name: string;
1116
1073
  };
1117
- export type SuccessResponse = {
1118
- success: boolean;
1119
- };
1120
1074
  export type TemplatePerformance = {
1121
1075
  deliveryRate?: number | null | undefined;
1122
1076
  openRate?: number | null | undefined;
@@ -1161,11 +1115,6 @@ export type UpdateTemplatePayload = {
1161
1115
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
1162
1116
  fromDefault?: TemplateFromDefault | null | null | undefined;
1163
1117
  replyToDefault?: Array<string> | null | null | undefined;
1164
- source?: string | null | undefined;
1165
- subject?: string | null | undefined;
1166
- headers?: {
1167
- [key: string]: string;
1168
- } | null | null | undefined;
1169
1118
  variableSchema?: Array<TemplateVariable> | null | null | undefined;
1170
1119
  compliance?: TemplateCompliance | null | null | undefined;
1171
1120
  performance?: TemplatePerformance | null | null | undefined;
@@ -1175,6 +1124,7 @@ export type UpdateTemplatePayload = {
1175
1124
  version?: number | null | undefined;
1176
1125
  };
1177
1126
  };
1127
+ export type MailboxExtensionId = string;
1178
1128
  export type TemplateSourceVersionId = string;
1179
1129
  export type DesignSettings = {
1180
1130
  design: Design | null;
@@ -1185,8 +1135,8 @@ export type DesignSettings = {
1185
1135
  export type CreateWebhookPayload = {
1186
1136
  name: string;
1187
1137
  url: string;
1188
- 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">;
1189
- channels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
1138
+ 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">;
1139
+ channels?: Array<"email"> | null | undefined;
1190
1140
  headers?: {
1191
1141
  [key: string]: string;
1192
1142
  } | null | undefined;
@@ -1196,8 +1146,8 @@ export type WebhookEndpoint = {
1196
1146
  id: WebhookEndpointId;
1197
1147
  name: string;
1198
1148
  url: string;
1199
- 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">;
1200
- channels: Array<"sms" | "whatsapp" | "email"> | null;
1149
+ 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">;
1150
+ channels: Array<"email"> | null;
1201
1151
  status: "active" | "disabled";
1202
1152
  hasCustomHeaders: boolean;
1203
1153
  failureStartedAt: string | null;
@@ -1208,8 +1158,8 @@ export type WebhookEndpoint = {
1208
1158
  export type UpdateWebhookPayload = {
1209
1159
  name?: string | null | undefined;
1210
1160
  url?: string | null | undefined;
1211
- 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"> | null | undefined;
1212
- channels?: Array<"sms" | "whatsapp" | "email"> | null | null | undefined;
1161
+ 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;
1162
+ channels?: Array<"email"> | null | null | undefined;
1213
1163
  headers?: {
1214
1164
  [key: string]: string;
1215
1165
  } | null | undefined;
@@ -1245,10 +1195,6 @@ export type Organization = {
1245
1195
  emailFooterEnabledDefault: boolean | null;
1246
1196
  messagesUsed: number;
1247
1197
  messagesUsedThisMonth: number;
1248
- smsUsed: number;
1249
- smsUsedThisMonth: number;
1250
- whatsappUsed: number;
1251
- whatsappUsedThisMonth: number;
1252
1198
  emailUsed: number;
1253
1199
  emailUsedThisMonth: number;
1254
1200
  contactsUsed: number;
@@ -1295,7 +1241,7 @@ export type MessagesListData = {
1295
1241
  query?: {
1296
1242
  page?: string | null | undefined;
1297
1243
  limit?: string | null | undefined;
1298
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
1244
+ channel?: "email" | null | undefined;
1299
1245
  status?: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained" | null | undefined;
1300
1246
  conversationId?: ConversationId | null | undefined;
1301
1247
  contactId?: ContactId | null | undefined;
@@ -1330,7 +1276,7 @@ export type MessagesListResponses = {
1330
1276
  };
1331
1277
  export type MessagesListResponse = MessagesListResponses[keyof MessagesListResponses];
1332
1278
  export type MessagesSendData = {
1333
- body: EmailSendMessagePayload | SmsSendMessagePayload | WhatsAppSendMessagePayload;
1279
+ body: EmailSendMessagePayload;
1334
1280
  headers?: {
1335
1281
  "idempotency-key"?: string | null | undefined;
1336
1282
  };
@@ -1350,7 +1296,7 @@ export type MessagesSendErrors = {
1350
1296
  /**
1351
1297
  * ForbiddenError | FlagDisabledError
1352
1298
  */
1353
- 403: ForbiddenError | FlagDisabledError;
1299
+ 403: FlagDisabledError | ForbiddenError;
1354
1300
  /**
1355
1301
  * ResourceNotFoundError
1356
1302
  */
@@ -1494,7 +1440,7 @@ export type MessagesGetEmailResponses = {
1494
1440
  organizationId: string;
1495
1441
  conversationId: ConversationId | null;
1496
1442
  status: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained";
1497
- channel: "sms" | "whatsapp" | "email";
1443
+ channel: "email";
1498
1444
  direction: "outbound" | "inbound";
1499
1445
  subject: string | null;
1500
1446
  fromEmail: string;
@@ -1929,7 +1875,7 @@ export type CampaignsListResponse = CampaignsListResponses[keyof CampaignsListRe
1929
1875
  export type CampaignsCreateData = {
1930
1876
  body: {
1931
1877
  name: string;
1932
- channel: "sms" | "whatsapp" | "email";
1878
+ channel: "email";
1933
1879
  content: CampaignContentInput;
1934
1880
  audience: CampaignAudience;
1935
1881
  policy?: CampaignPolicy | null | undefined;
@@ -2561,7 +2507,7 @@ export type EmailListDomainsResponses = {
2561
2507
  items: Array<{
2562
2508
  id: EmailDomainId;
2563
2509
  domain: string;
2564
- status: "pending" | "verified" | "failed";
2510
+ phase: "dns-setup" | "provider-setup" | "provider-verification" | "ready" | "degraded" | "failed";
2565
2511
  dkimSelector?: string | null | undefined;
2566
2512
  dkimPublicKey?: string | null | undefined;
2567
2513
  isDefault: boolean;
@@ -2615,18 +2561,15 @@ export type EmailAddDomainResponses = {
2615
2561
  201: EmailDomain;
2616
2562
  };
2617
2563
  export type EmailAddDomainResponse = EmailAddDomainResponses[keyof EmailAddDomainResponses];
2618
- export type EmailProvisionDomainData = {
2619
- body: {
2620
- domain: string;
2621
- };
2622
- headers: {
2623
- "idempotency-key": string;
2564
+ export type EmailGetDomainVerificationData = {
2565
+ body?: never;
2566
+ path: {
2567
+ id: EmailDomainId;
2624
2568
  };
2625
- path?: never;
2626
2569
  query?: never;
2627
- url: "/v1/email/domain-operations";
2570
+ url: "/v1/email/domains/{id}/verification";
2628
2571
  };
2629
- export type EmailProvisionDomainErrors = {
2572
+ export type EmailGetDomainVerificationErrors = {
2630
2573
  /**
2631
2574
  * UnauthorizedError
2632
2575
  */
@@ -2636,39 +2579,31 @@ export type EmailProvisionDomainErrors = {
2636
2579
  */
2637
2580
  403: ForbiddenError;
2638
2581
  /**
2639
- * ConflictError
2640
- */
2641
- 409: ConflictError;
2642
- /**
2643
- * ValidationError
2582
+ * ResourceNotFoundError
2644
2583
  */
2645
- 422: ValidationError;
2584
+ 404: ResourceNotFoundError;
2646
2585
  /**
2647
2586
  * InternalError
2648
2587
  */
2649
2588
  500: InternalError;
2650
- /**
2651
- * EmailChannelError
2652
- */
2653
- 502: EmailChannelError;
2654
2589
  };
2655
- export type EmailProvisionDomainError = EmailProvisionDomainErrors[keyof EmailProvisionDomainErrors];
2656
- export type EmailProvisionDomainResponses = {
2590
+ export type EmailGetDomainVerificationError = EmailGetDomainVerificationErrors[keyof EmailGetDomainVerificationErrors];
2591
+ export type EmailGetDomainVerificationResponses = {
2657
2592
  /**
2658
- * OperationAccepted
2593
+ * EmailDomainVerification
2659
2594
  */
2660
- 202: OperationAccepted;
2595
+ 200: EmailDomainVerification;
2661
2596
  };
2662
- export type EmailProvisionDomainResponse = EmailProvisionDomainResponses[keyof EmailProvisionDomainResponses];
2663
- export type EmailVerifyDomainData = {
2597
+ export type EmailGetDomainVerificationResponse = EmailGetDomainVerificationResponses[keyof EmailGetDomainVerificationResponses];
2598
+ export type EmailAdvanceDomainVerificationData = {
2664
2599
  body?: never;
2665
2600
  path: {
2666
2601
  id: EmailDomainId;
2667
2602
  };
2668
2603
  query?: never;
2669
- url: "/v1/email/domains/{id}/verify";
2604
+ url: "/v1/email/domains/{id}/verification";
2670
2605
  };
2671
- export type EmailVerifyDomainErrors = {
2606
+ export type EmailAdvanceDomainVerificationErrors = {
2672
2607
  /**
2673
2608
  * UnauthorizedError
2674
2609
  */
@@ -2681,6 +2616,18 @@ export type EmailVerifyDomainErrors = {
2681
2616
  * ResourceNotFoundError
2682
2617
  */
2683
2618
  404: ResourceNotFoundError;
2619
+ /**
2620
+ * ConflictError
2621
+ */
2622
+ 409: ConflictError;
2623
+ /**
2624
+ * ValidationError
2625
+ */
2626
+ 422: ValidationError;
2627
+ /**
2628
+ * RateLimitedError
2629
+ */
2630
+ 429: RateLimitedError;
2684
2631
  /**
2685
2632
  * InternalError
2686
2633
  */
@@ -2690,25 +2637,23 @@ export type EmailVerifyDomainErrors = {
2690
2637
  */
2691
2638
  502: EmailChannelError;
2692
2639
  };
2693
- export type EmailVerifyDomainError = EmailVerifyDomainErrors[keyof EmailVerifyDomainErrors];
2694
- export type EmailVerifyDomainResponses = {
2640
+ export type EmailAdvanceDomainVerificationError = EmailAdvanceDomainVerificationErrors[keyof EmailAdvanceDomainVerificationErrors];
2641
+ export type EmailAdvanceDomainVerificationResponses = {
2695
2642
  /**
2696
- * Success
2643
+ * EmailDomainVerification
2697
2644
  */
2698
- 200: {
2699
- success: true;
2700
- };
2645
+ 200: EmailDomainVerification;
2701
2646
  };
2702
- export type EmailVerifyDomainResponse = EmailVerifyDomainResponses[keyof EmailVerifyDomainResponses];
2703
- export type EmailCheckDomainVerificationData = {
2647
+ export type EmailAdvanceDomainVerificationResponse = EmailAdvanceDomainVerificationResponses[keyof EmailAdvanceDomainVerificationResponses];
2648
+ export type EmailRemoveDomainData = {
2704
2649
  body?: never;
2705
2650
  path: {
2706
2651
  id: EmailDomainId;
2707
2652
  };
2708
2653
  query?: never;
2709
- url: "/v1/email/domains/{id}/verification";
2654
+ url: "/v1/email/domains/{id}";
2710
2655
  };
2711
- export type EmailCheckDomainVerificationErrors = {
2656
+ export type EmailRemoveDomainErrors = {
2712
2657
  /**
2713
2658
  * UnauthorizedError
2714
2659
  */
@@ -2726,57 +2671,19 @@ export type EmailCheckDomainVerificationErrors = {
2726
2671
  */
2727
2672
  500: InternalError;
2728
2673
  /**
2729
- * EmailChannelError
2674
+ * EmailChannelError | BillingProviderError
2730
2675
  */
2731
- 502: EmailChannelError;
2676
+ 502: EmailChannelError | BillingProviderError;
2732
2677
  };
2733
- export type EmailCheckDomainVerificationError = EmailCheckDomainVerificationErrors[keyof EmailCheckDomainVerificationErrors];
2734
- export type EmailCheckDomainVerificationResponses = {
2678
+ export type EmailRemoveDomainError = EmailRemoveDomainErrors[keyof EmailRemoveDomainErrors];
2679
+ export type EmailRemoveDomainResponses = {
2735
2680
  /**
2736
- * EmailDomainVerificationStatusResponse
2681
+ * SuccessResult
2737
2682
  */
2738
- 200: EmailDomainVerificationStatusResponse;
2683
+ 200: SuccessResult;
2739
2684
  };
2740
- export type EmailCheckDomainVerificationResponse = EmailCheckDomainVerificationResponses[keyof EmailCheckDomainVerificationResponses];
2741
- export type EmailRemoveDomainData = {
2742
- body?: never;
2743
- path: {
2744
- id: EmailDomainId;
2745
- };
2746
- query?: never;
2747
- url: "/v1/email/domains/{id}";
2748
- };
2749
- export type EmailRemoveDomainErrors = {
2750
- /**
2751
- * UnauthorizedError
2752
- */
2753
- 401: UnauthorizedError;
2754
- /**
2755
- * ForbiddenError
2756
- */
2757
- 403: ForbiddenError;
2758
- /**
2759
- * ResourceNotFoundError
2760
- */
2761
- 404: ResourceNotFoundError;
2762
- /**
2763
- * InternalError
2764
- */
2765
- 500: InternalError;
2766
- /**
2767
- * EmailChannelError | BillingProviderError
2768
- */
2769
- 502: EmailChannelError | BillingProviderError;
2770
- };
2771
- export type EmailRemoveDomainError = EmailRemoveDomainErrors[keyof EmailRemoveDomainErrors];
2772
- export type EmailRemoveDomainResponses = {
2773
- /**
2774
- * SuccessResult
2775
- */
2776
- 200: SuccessResult;
2777
- };
2778
- export type EmailRemoveDomainResponse = EmailRemoveDomainResponses[keyof EmailRemoveDomainResponses];
2779
- export type EmailGetDomainByIdData = {
2685
+ export type EmailRemoveDomainResponse = EmailRemoveDomainResponses[keyof EmailRemoveDomainResponses];
2686
+ export type EmailGetDomainByIdData = {
2780
2687
  body?: never;
2781
2688
  path: {
2782
2689
  id: EmailDomainId;
@@ -2848,7 +2755,9 @@ export type EmailGetDomainConnectData = {
2848
2755
  path: {
2849
2756
  id: EmailDomainId;
2850
2757
  };
2851
- query?: never;
2758
+ query: {
2759
+ mode: "send-only" | "send-and-receive";
2760
+ };
2852
2761
  url: "/v1/email/domains/{id}/domain-connect";
2853
2762
  };
2854
2763
  export type EmailGetDomainConnectErrors = {
@@ -2872,18 +2781,14 @@ export type EmailGetDomainConnectErrors = {
2872
2781
  export type EmailGetDomainConnectError = EmailGetDomainConnectErrors[keyof EmailGetDomainConnectErrors];
2873
2782
  export type EmailGetDomainConnectResponses = {
2874
2783
  /**
2875
- * Success
2784
+ * DomainConnectEligibility
2876
2785
  */
2877
- 200: {
2878
- eligible: boolean;
2879
- reason?: string | null | undefined;
2880
- providerName?: string | null | undefined;
2881
- };
2786
+ 200: DomainConnectEligibility;
2882
2787
  };
2883
2788
  export type EmailGetDomainConnectResponse = EmailGetDomainConnectResponses[keyof EmailGetDomainConnectResponses];
2884
2789
  export type EmailBuildDomainConnectApplyUrlData = {
2885
2790
  body: {
2886
- inbound?: boolean | null | undefined;
2791
+ mode: "send-only" | "send-and-receive";
2887
2792
  };
2888
2793
  path: {
2889
2794
  id: EmailDomainId;
@@ -2920,11 +2825,9 @@ export type EmailBuildDomainConnectApplyUrlErrors = {
2920
2825
  export type EmailBuildDomainConnectApplyUrlError = EmailBuildDomainConnectApplyUrlErrors[keyof EmailBuildDomainConnectApplyUrlErrors];
2921
2826
  export type EmailBuildDomainConnectApplyUrlResponses = {
2922
2827
  /**
2923
- * Success
2828
+ * DomainConnectApplyUrlResult
2924
2829
  */
2925
- 200: {
2926
- url: string;
2927
- };
2830
+ 200: DomainConnectApplyUrlResult;
2928
2831
  };
2929
2832
  export type EmailBuildDomainConnectApplyUrlResponse = EmailBuildDomainConnectApplyUrlResponses[keyof EmailBuildDomainConnectApplyUrlResponses];
2930
2833
  export type EmailCompleteDomainConnectData = {
@@ -2963,11 +2866,9 @@ export type EmailCompleteDomainConnectErrors = {
2963
2866
  export type EmailCompleteDomainConnectError = EmailCompleteDomainConnectErrors[keyof EmailCompleteDomainConnectErrors];
2964
2867
  export type EmailCompleteDomainConnectResponses = {
2965
2868
  /**
2966
- * Success
2869
+ * DomainConnectCompleteResult
2967
2870
  */
2968
- 200: {
2969
- status: "applied" | "cancelled" | "invalid";
2970
- };
2871
+ 200: DomainConnectCompleteResult;
2971
2872
  };
2972
2873
  export type EmailCompleteDomainConnectResponse = EmailCompleteDomainConnectResponses[keyof EmailCompleteDomainConnectResponses];
2973
2874
  export type EmailEnableReceivingData = {
@@ -3017,39 +2918,6 @@ export type EmailEnableReceivingResponses = {
3017
2918
  };
3018
2919
  };
3019
2920
  export type EmailEnableReceivingResponse = EmailEnableReceivingResponses[keyof EmailEnableReceivingResponses];
3020
- export type EmailGetDomainStatusData = {
3021
- body?: never;
3022
- path: {
3023
- id: EmailDomainId;
3024
- };
3025
- query?: never;
3026
- url: "/v1/email/domains/{id}/status";
3027
- };
3028
- export type EmailGetDomainStatusErrors = {
3029
- /**
3030
- * UnauthorizedError
3031
- */
3032
- 401: UnauthorizedError;
3033
- /**
3034
- * ForbiddenError
3035
- */
3036
- 403: ForbiddenError;
3037
- /**
3038
- * ResourceNotFoundError
3039
- */
3040
- 404: ResourceNotFoundError;
3041
- };
3042
- export type EmailGetDomainStatusError = EmailGetDomainStatusErrors[keyof EmailGetDomainStatusErrors];
3043
- export type EmailGetDomainStatusResponses = {
3044
- /**
3045
- * Success
3046
- */
3047
- 200: {
3048
- domain: string;
3049
- status: "pending" | "verified" | "failed";
3050
- };
3051
- };
3052
- export type EmailGetDomainStatusResponse = EmailGetDomainStatusResponses[keyof EmailGetDomainStatusResponses];
3053
2921
  export type EmailSetDefaultDomainData = {
3054
2922
  body?: never;
3055
2923
  path: {
@@ -3209,15 +3077,15 @@ export type EmailUpdateDomainConfigResponses = {
3209
3077
  };
3210
3078
  };
3211
3079
  export type EmailUpdateDomainConfigResponse = EmailUpdateDomainConfigResponses[keyof EmailUpdateDomainConfigResponses];
3212
- export type EmailDisableBrandedTrackingData = {
3080
+ export type EmailDisableCustomTrackingData = {
3213
3081
  body?: never;
3214
3082
  path: {
3215
3083
  id: EmailDomainId;
3216
3084
  };
3217
3085
  query?: never;
3218
- url: "/v1/email/domains/{id}/branded-tracking";
3086
+ url: "/v1/email/domains/{id}/custom-tracking";
3219
3087
  };
3220
- export type EmailDisableBrandedTrackingErrors = {
3088
+ export type EmailDisableCustomTrackingErrors = {
3221
3089
  /**
3222
3090
  * UnauthorizedError
3223
3091
  */
@@ -3239,23 +3107,23 @@ export type EmailDisableBrandedTrackingErrors = {
3239
3107
  */
3240
3108
  502: EmailChannelError;
3241
3109
  };
3242
- export type EmailDisableBrandedTrackingError = EmailDisableBrandedTrackingErrors[keyof EmailDisableBrandedTrackingErrors];
3243
- export type EmailDisableBrandedTrackingResponses = {
3110
+ export type EmailDisableCustomTrackingError = EmailDisableCustomTrackingErrors[keyof EmailDisableCustomTrackingErrors];
3111
+ export type EmailDisableCustomTrackingResponses = {
3244
3112
  /**
3245
3113
  * SuccessResult
3246
3114
  */
3247
3115
  200: SuccessResult;
3248
3116
  };
3249
- export type EmailDisableBrandedTrackingResponse = EmailDisableBrandedTrackingResponses[keyof EmailDisableBrandedTrackingResponses];
3250
- export type EmailGetBrandedTrackingData = {
3117
+ export type EmailDisableCustomTrackingResponse = EmailDisableCustomTrackingResponses[keyof EmailDisableCustomTrackingResponses];
3118
+ export type EmailGetCustomTrackingData = {
3251
3119
  body?: never;
3252
3120
  path: {
3253
3121
  id: EmailDomainId;
3254
3122
  };
3255
3123
  query?: never;
3256
- url: "/v1/email/domains/{id}/branded-tracking";
3124
+ url: "/v1/email/domains/{id}/custom-tracking";
3257
3125
  };
3258
- export type EmailGetBrandedTrackingErrors = {
3126
+ export type EmailGetCustomTrackingErrors = {
3259
3127
  /**
3260
3128
  * UnauthorizedError
3261
3129
  */
@@ -3269,15 +3137,15 @@ export type EmailGetBrandedTrackingErrors = {
3269
3137
  */
3270
3138
  500: InternalError;
3271
3139
  };
3272
- export type EmailGetBrandedTrackingError = EmailGetBrandedTrackingErrors[keyof EmailGetBrandedTrackingErrors];
3273
- export type EmailGetBrandedTrackingResponses = {
3140
+ export type EmailGetCustomTrackingError = EmailGetCustomTrackingErrors[keyof EmailGetCustomTrackingErrors];
3141
+ export type EmailGetCustomTrackingResponses = {
3274
3142
  /**
3275
- * BrandedTrackingStatus
3143
+ * CustomTrackingStatus
3276
3144
  */
3277
- 200: BrandedTrackingStatus;
3145
+ 200: CustomTrackingStatus;
3278
3146
  };
3279
- export type EmailGetBrandedTrackingResponse = EmailGetBrandedTrackingResponses[keyof EmailGetBrandedTrackingResponses];
3280
- export type EmailEnableBrandedTrackingData = {
3147
+ export type EmailGetCustomTrackingResponse = EmailGetCustomTrackingResponses[keyof EmailGetCustomTrackingResponses];
3148
+ export type EmailEnableCustomTrackingData = {
3281
3149
  body: {
3282
3150
  label?: string | null | undefined;
3283
3151
  };
@@ -3285,9 +3153,9 @@ export type EmailEnableBrandedTrackingData = {
3285
3153
  id: EmailDomainId;
3286
3154
  };
3287
3155
  query?: never;
3288
- url: "/v1/email/domains/{id}/branded-tracking";
3156
+ url: "/v1/email/domains/{id}/custom-tracking";
3289
3157
  };
3290
- export type EmailEnableBrandedTrackingErrors = {
3158
+ export type EmailEnableCustomTrackingErrors = {
3291
3159
  /**
3292
3160
  * UnauthorizedError
3293
3161
  */
@@ -3313,14 +3181,123 @@ export type EmailEnableBrandedTrackingErrors = {
3313
3181
  */
3314
3182
  502: EmailChannelError | BillingProviderError;
3315
3183
  };
3316
- export type EmailEnableBrandedTrackingError = EmailEnableBrandedTrackingErrors[keyof EmailEnableBrandedTrackingErrors];
3317
- export type EmailEnableBrandedTrackingResponses = {
3184
+ export type EmailEnableCustomTrackingError = EmailEnableCustomTrackingErrors[keyof EmailEnableCustomTrackingErrors];
3185
+ export type EmailEnableCustomTrackingResponses = {
3186
+ /**
3187
+ * CustomTrackingStatus
3188
+ */
3189
+ 200: CustomTrackingStatus;
3190
+ };
3191
+ export type EmailEnableCustomTrackingResponse = EmailEnableCustomTrackingResponses[keyof EmailEnableCustomTrackingResponses];
3192
+ export type EmailGetCustomTrackingDomainConnectData = {
3193
+ body?: never;
3194
+ path: {
3195
+ id: EmailDomainId;
3196
+ };
3197
+ query?: never;
3198
+ url: "/v1/email/domains/{id}/custom-tracking/domain-connect";
3199
+ };
3200
+ export type EmailGetCustomTrackingDomainConnectErrors = {
3201
+ /**
3202
+ * UnauthorizedError
3203
+ */
3204
+ 401: UnauthorizedError;
3205
+ /**
3206
+ * ForbiddenError
3207
+ */
3208
+ 403: ForbiddenError;
3209
+ /**
3210
+ * ResourceNotFoundError
3211
+ */
3212
+ 404: ResourceNotFoundError;
3213
+ /**
3214
+ * InternalError
3215
+ */
3216
+ 500: InternalError;
3217
+ };
3218
+ export type EmailGetCustomTrackingDomainConnectError = EmailGetCustomTrackingDomainConnectErrors[keyof EmailGetCustomTrackingDomainConnectErrors];
3219
+ export type EmailGetCustomTrackingDomainConnectResponses = {
3220
+ /**
3221
+ * DomainConnectEligibility
3222
+ */
3223
+ 200: DomainConnectEligibility;
3224
+ };
3225
+ export type EmailGetCustomTrackingDomainConnectResponse = EmailGetCustomTrackingDomainConnectResponses[keyof EmailGetCustomTrackingDomainConnectResponses];
3226
+ export type EmailBuildCustomTrackingDomainConnectApplyUrlData = {
3227
+ body?: never;
3228
+ path: {
3229
+ id: EmailDomainId;
3230
+ };
3231
+ query?: never;
3232
+ url: "/v1/email/domains/{id}/custom-tracking/domain-connect/apply-url";
3233
+ };
3234
+ export type EmailBuildCustomTrackingDomainConnectApplyUrlErrors = {
3235
+ /**
3236
+ * UnauthorizedError
3237
+ */
3238
+ 401: UnauthorizedError;
3239
+ /**
3240
+ * ForbiddenError
3241
+ */
3242
+ 403: ForbiddenError;
3243
+ /**
3244
+ * ResourceNotFoundError
3245
+ */
3246
+ 404: ResourceNotFoundError;
3247
+ /**
3248
+ * ValidationError
3249
+ */
3250
+ 422: ValidationError;
3251
+ /**
3252
+ * InternalError
3253
+ */
3254
+ 500: InternalError;
3255
+ /**
3256
+ * EmailChannelError
3257
+ */
3258
+ 502: EmailChannelError;
3259
+ };
3260
+ export type EmailBuildCustomTrackingDomainConnectApplyUrlError = EmailBuildCustomTrackingDomainConnectApplyUrlErrors[keyof EmailBuildCustomTrackingDomainConnectApplyUrlErrors];
3261
+ export type EmailBuildCustomTrackingDomainConnectApplyUrlResponses = {
3262
+ /**
3263
+ * DomainConnectApplyUrlResult
3264
+ */
3265
+ 200: DomainConnectApplyUrlResult;
3266
+ };
3267
+ export type EmailBuildCustomTrackingDomainConnectApplyUrlResponse = EmailBuildCustomTrackingDomainConnectApplyUrlResponses[keyof EmailBuildCustomTrackingDomainConnectApplyUrlResponses];
3268
+ export type EmailCompleteCustomTrackingDomainConnectData = {
3269
+ body: {
3270
+ state: string;
3271
+ error?: string | null | undefined;
3272
+ };
3273
+ path: {
3274
+ id: EmailDomainId;
3275
+ };
3276
+ query?: never;
3277
+ url: "/v1/email/domains/{id}/custom-tracking/domain-connect/complete";
3278
+ };
3279
+ export type EmailCompleteCustomTrackingDomainConnectErrors = {
3280
+ /**
3281
+ * UnauthorizedError
3282
+ */
3283
+ 401: UnauthorizedError;
3284
+ /**
3285
+ * ForbiddenError
3286
+ */
3287
+ 403: ForbiddenError;
3288
+ /**
3289
+ * InternalError
3290
+ */
3291
+ 500: InternalError;
3292
+ };
3293
+ export type EmailCompleteCustomTrackingDomainConnectError = EmailCompleteCustomTrackingDomainConnectErrors[keyof EmailCompleteCustomTrackingDomainConnectErrors];
3294
+ export type EmailCompleteCustomTrackingDomainConnectResponses = {
3318
3295
  /**
3319
- * BrandedTrackingStatus
3296
+ * CustomTrackingDomainConnectCompleteResult
3320
3297
  */
3321
- 200: BrandedTrackingStatus;
3298
+ 200: CustomTrackingDomainConnectCompleteResult;
3322
3299
  };
3323
- export type EmailEnableBrandedTrackingResponse = EmailEnableBrandedTrackingResponses[keyof EmailEnableBrandedTrackingResponses];
3300
+ export type EmailCompleteCustomTrackingDomainConnectResponse = EmailCompleteCustomTrackingDomainConnectResponses[keyof EmailCompleteCustomTrackingDomainConnectResponses];
3324
3301
  export type EmailListSendersData = {
3325
3302
  body?: never;
3326
3303
  path?: never;
@@ -4383,21 +4360,19 @@ export type EmailGetForwardingLogResponses = {
4383
4360
  };
4384
4361
  };
4385
4362
  export type EmailGetForwardingLogResponse = EmailGetForwardingLogResponses[keyof EmailGetForwardingLogResponses];
4386
- export type ConversationsListData = {
4387
- body?: never;
4388
- path?: never;
4389
- query?: {
4390
- page?: string | null | undefined;
4391
- limit?: string | null | undefined;
4392
- status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
4393
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
4394
- contactId?: ContactId | null | undefined;
4395
- startDate?: string | null | undefined;
4396
- endDate?: string | null | undefined;
4363
+ export type MediaCreateData = {
4364
+ body: {
4365
+ filename: string;
4366
+ contentType: string;
4367
+ sizeBytes: number;
4368
+ purpose: "attachment" | "avatar";
4369
+ checksumSha256?: string | null | undefined;
4397
4370
  };
4398
- url: "/v1/conversations";
4371
+ path?: never;
4372
+ query?: never;
4373
+ url: "/v1/media";
4399
4374
  };
4400
- export type ConversationsListErrors = {
4375
+ export type MediaCreateErrors = {
4401
4376
  /**
4402
4377
  * UnauthorizedError
4403
4378
  */
@@ -4406,50 +4381,32 @@ export type ConversationsListErrors = {
4406
4381
  * ForbiddenError
4407
4382
  */
4408
4383
  403: ForbiddenError;
4384
+ /**
4385
+ * ValidationError
4386
+ */
4387
+ 422: ValidationError;
4409
4388
  /**
4410
4389
  * InternalError
4411
4390
  */
4412
4391
  500: InternalError;
4413
4392
  };
4414
- export type ConversationsListError = ConversationsListErrors[keyof ConversationsListErrors];
4415
- export type ConversationsListResponses = {
4393
+ export type MediaCreateError = MediaCreateErrors[keyof MediaCreateErrors];
4394
+ export type MediaCreateResponses = {
4416
4395
  /**
4417
- * Success
4396
+ * CreatedMedia
4418
4397
  */
4419
- 200: {
4420
- items: Array<Conversation>;
4421
- pagination: PaginationMeta;
4422
- };
4398
+ 201: CreatedMedia;
4423
4399
  };
4424
- export type ConversationsListResponse = ConversationsListResponses[keyof ConversationsListResponses];
4425
- export type ConversationsCreateData = {
4426
- body: {
4427
- title?: string | null | undefined;
4428
- description?: string | null | undefined;
4429
- externalId?: string | null | undefined;
4430
- parentConversationId?: ConversationId | null | undefined;
4431
- channels: Array<"sms" | "whatsapp" | "email">;
4432
- primaryChannel: "sms" | "whatsapp" | "email";
4433
- status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
4434
- statusReason?: string | null | undefined;
4435
- priority?: number | null | undefined;
4436
- urgency?: "low" | "medium" | "high" | "critical" | null | undefined;
4437
- complexity?: "simple" | "moderate" | "complex" | null | undefined;
4438
- metadata?: ConversationMetadata | null | null | undefined;
4439
- actorTracking?: ActorTracking | null | undefined;
4440
- metrics?: ConversationMetrics | null | undefined;
4441
- context?: ConversationContext | null | null | undefined;
4442
- tags?: Array<string> | null | undefined;
4443
- categories?: Array<string> | null | undefined;
4444
- isTest?: boolean | null | undefined;
4445
- isInternal?: boolean | null | undefined;
4446
- isPrivate?: boolean | null | undefined;
4400
+ export type MediaCreateResponse = MediaCreateResponses[keyof MediaCreateResponses];
4401
+ export type MediaCompleteData = {
4402
+ body?: never;
4403
+ path: {
4404
+ mediaId: MediaId;
4447
4405
  };
4448
- path?: never;
4449
4406
  query?: never;
4450
- url: "/v1/conversations";
4407
+ url: "/v1/media/{mediaId}/complete";
4451
4408
  };
4452
- export type ConversationsCreateErrors = {
4409
+ export type MediaCompleteErrors = {
4453
4410
  /**
4454
4411
  * UnauthorizedError
4455
4412
  */
@@ -4458,6 +4415,10 @@ export type ConversationsCreateErrors = {
4458
4415
  * ForbiddenError
4459
4416
  */
4460
4417
  403: ForbiddenError;
4418
+ /**
4419
+ * ResourceNotFoundError
4420
+ */
4421
+ 404: ResourceNotFoundError;
4461
4422
  /**
4462
4423
  * ValidationError
4463
4424
  */
@@ -4467,23 +4428,23 @@ export type ConversationsCreateErrors = {
4467
4428
  */
4468
4429
  500: InternalError;
4469
4430
  };
4470
- export type ConversationsCreateError = ConversationsCreateErrors[keyof ConversationsCreateErrors];
4471
- export type ConversationsCreateResponses = {
4431
+ export type MediaCompleteError = MediaCompleteErrors[keyof MediaCompleteErrors];
4432
+ export type MediaCompleteResponses = {
4472
4433
  /**
4473
- * Success
4434
+ * CompletedMedia
4474
4435
  */
4475
- 201: Conversation;
4436
+ 200: CompletedMedia;
4476
4437
  };
4477
- export type ConversationsCreateResponse = ConversationsCreateResponses[keyof ConversationsCreateResponses];
4478
- export type ConversationsGetByIdData = {
4438
+ export type MediaCompleteResponse = MediaCompleteResponses[keyof MediaCompleteResponses];
4439
+ export type MediaRemoveData = {
4479
4440
  body?: never;
4480
4441
  path: {
4481
- id: ConversationId;
4442
+ mediaId: MediaId;
4482
4443
  };
4483
4444
  query?: never;
4484
- url: "/v1/conversations/{id}";
4445
+ url: "/v1/media/{mediaId}";
4485
4446
  };
4486
- export type ConversationsGetByIdErrors = {
4447
+ export type MediaRemoveErrors = {
4487
4448
  /**
4488
4449
  * UnauthorizedError
4489
4450
  */
@@ -4496,38 +4457,240 @@ export type ConversationsGetByIdErrors = {
4496
4457
  * ResourceNotFoundError
4497
4458
  */
4498
4459
  404: ResourceNotFoundError;
4460
+ /**
4461
+ * ValidationError
4462
+ */
4463
+ 422: ValidationError;
4499
4464
  /**
4500
4465
  * InternalError
4501
4466
  */
4502
4467
  500: InternalError;
4503
4468
  };
4504
- export type ConversationsGetByIdError = ConversationsGetByIdErrors[keyof ConversationsGetByIdErrors];
4505
- export type ConversationsGetByIdResponses = {
4469
+ export type MediaRemoveError = MediaRemoveErrors[keyof MediaRemoveErrors];
4470
+ export type MediaRemoveResponses = {
4506
4471
  /**
4507
- * Conversation
4472
+ * SuccessResponse
4508
4473
  */
4509
- 200: Conversation;
4474
+ 200: SuccessResponse;
4510
4475
  };
4511
- export type ConversationsGetByIdResponse = ConversationsGetByIdResponses[keyof ConversationsGetByIdResponses];
4512
- export type ConversationsUpdateData = {
4513
- body: {
4514
- title?: string | null | undefined;
4515
- description?: string | null | null | undefined;
4516
- externalId?: string | null | null | undefined;
4517
- parentConversationId?: ConversationId | null | null | undefined;
4518
- primaryChannel?: "sms" | "whatsapp" | "email" | null | undefined;
4519
- status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
4520
- statusReason?: string | null | null | undefined;
4521
- priority?: number | null | undefined;
4522
- urgency?: "low" | "medium" | "high" | "critical" | null | undefined;
4523
- complexity?: "simple" | "moderate" | "complex" | null | undefined;
4524
- context?: ConversationContext | null | null | undefined;
4525
- metadata?: ConversationMetadata | null | null | undefined;
4526
- metrics?: ConversationMetrics | null | undefined;
4527
- actorTracking?: ActorTracking | null | undefined;
4528
- channels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
4529
- tags?: Array<string> | null | undefined;
4530
- categories?: Array<string> | null | undefined;
4476
+ export type MediaRemoveResponse = MediaRemoveResponses[keyof MediaRemoveResponses];
4477
+ export type MediaGetByIdData = {
4478
+ body?: never;
4479
+ path: {
4480
+ mediaId: MediaId;
4481
+ };
4482
+ query?: never;
4483
+ url: "/v1/media/{mediaId}";
4484
+ };
4485
+ export type MediaGetByIdErrors = {
4486
+ /**
4487
+ * UnauthorizedError
4488
+ */
4489
+ 401: UnauthorizedError;
4490
+ /**
4491
+ * ForbiddenError
4492
+ */
4493
+ 403: ForbiddenError;
4494
+ /**
4495
+ * ResourceNotFoundError
4496
+ */
4497
+ 404: ResourceNotFoundError;
4498
+ /**
4499
+ * InternalError
4500
+ */
4501
+ 500: InternalError;
4502
+ };
4503
+ export type MediaGetByIdError = MediaGetByIdErrors[keyof MediaGetByIdErrors];
4504
+ export type MediaGetByIdResponses = {
4505
+ /**
4506
+ * Media
4507
+ */
4508
+ 200: Media;
4509
+ };
4510
+ export type MediaGetByIdResponse = MediaGetByIdResponses[keyof MediaGetByIdResponses];
4511
+ export type MediaDownloadUrlData = {
4512
+ body?: never;
4513
+ path: {
4514
+ mediaId: MediaId;
4515
+ };
4516
+ query?: never;
4517
+ url: "/v1/media/{mediaId}/url";
4518
+ };
4519
+ export type MediaDownloadUrlErrors = {
4520
+ /**
4521
+ * UnauthorizedError
4522
+ */
4523
+ 401: UnauthorizedError;
4524
+ /**
4525
+ * ForbiddenError
4526
+ */
4527
+ 403: ForbiddenError;
4528
+ /**
4529
+ * ResourceNotFoundError
4530
+ */
4531
+ 404: ResourceNotFoundError;
4532
+ /**
4533
+ * ValidationError
4534
+ */
4535
+ 422: ValidationError;
4536
+ /**
4537
+ * InternalError
4538
+ */
4539
+ 500: InternalError;
4540
+ };
4541
+ export type MediaDownloadUrlError = MediaDownloadUrlErrors[keyof MediaDownloadUrlErrors];
4542
+ export type MediaDownloadUrlResponses = {
4543
+ /**
4544
+ * MediaDownloadUrl
4545
+ */
4546
+ 200: MediaDownloadUrl;
4547
+ };
4548
+ export type MediaDownloadUrlResponse = MediaDownloadUrlResponses[keyof MediaDownloadUrlResponses];
4549
+ export type ConversationsListData = {
4550
+ body?: never;
4551
+ path?: never;
4552
+ query?: {
4553
+ page?: string | null | undefined;
4554
+ limit?: string | null | undefined;
4555
+ status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
4556
+ channel?: "email" | null | undefined;
4557
+ contactId?: ContactId | null | undefined;
4558
+ startDate?: string | null | undefined;
4559
+ endDate?: string | null | undefined;
4560
+ };
4561
+ url: "/v1/conversations";
4562
+ };
4563
+ export type ConversationsListErrors = {
4564
+ /**
4565
+ * UnauthorizedError
4566
+ */
4567
+ 401: UnauthorizedError;
4568
+ /**
4569
+ * ForbiddenError
4570
+ */
4571
+ 403: ForbiddenError;
4572
+ /**
4573
+ * InternalError
4574
+ */
4575
+ 500: InternalError;
4576
+ };
4577
+ export type ConversationsListError = ConversationsListErrors[keyof ConversationsListErrors];
4578
+ export type ConversationsListResponses = {
4579
+ /**
4580
+ * Success
4581
+ */
4582
+ 200: {
4583
+ items: Array<Conversation>;
4584
+ pagination: PaginationMeta;
4585
+ };
4586
+ };
4587
+ export type ConversationsListResponse = ConversationsListResponses[keyof ConversationsListResponses];
4588
+ export type ConversationsCreateData = {
4589
+ body: {
4590
+ title?: string | null | undefined;
4591
+ description?: string | null | undefined;
4592
+ externalId?: string | null | undefined;
4593
+ parentConversationId?: ConversationId | null | undefined;
4594
+ channels: Array<"email">;
4595
+ primaryChannel: "email";
4596
+ status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
4597
+ statusReason?: string | null | undefined;
4598
+ priority?: number | null | undefined;
4599
+ urgency?: "low" | "medium" | "high" | "critical" | null | undefined;
4600
+ complexity?: "simple" | "moderate" | "complex" | null | undefined;
4601
+ metadata?: ConversationMetadata | null | null | undefined;
4602
+ actorTracking?: ActorTracking | null | undefined;
4603
+ metrics?: ConversationMetrics | null | undefined;
4604
+ context?: ConversationContext | null | null | undefined;
4605
+ tags?: Array<string> | null | undefined;
4606
+ categories?: Array<string> | null | undefined;
4607
+ isTest?: boolean | null | undefined;
4608
+ isInternal?: boolean | null | undefined;
4609
+ isPrivate?: boolean | null | undefined;
4610
+ };
4611
+ path?: never;
4612
+ query?: never;
4613
+ url: "/v1/conversations";
4614
+ };
4615
+ export type ConversationsCreateErrors = {
4616
+ /**
4617
+ * UnauthorizedError
4618
+ */
4619
+ 401: UnauthorizedError;
4620
+ /**
4621
+ * ForbiddenError
4622
+ */
4623
+ 403: ForbiddenError;
4624
+ /**
4625
+ * ValidationError
4626
+ */
4627
+ 422: ValidationError;
4628
+ /**
4629
+ * InternalError
4630
+ */
4631
+ 500: InternalError;
4632
+ };
4633
+ export type ConversationsCreateError = ConversationsCreateErrors[keyof ConversationsCreateErrors];
4634
+ export type ConversationsCreateResponses = {
4635
+ /**
4636
+ * Success
4637
+ */
4638
+ 201: Conversation;
4639
+ };
4640
+ export type ConversationsCreateResponse = ConversationsCreateResponses[keyof ConversationsCreateResponses];
4641
+ export type ConversationsGetByIdData = {
4642
+ body?: never;
4643
+ path: {
4644
+ id: ConversationId;
4645
+ };
4646
+ query?: never;
4647
+ url: "/v1/conversations/{id}";
4648
+ };
4649
+ export type ConversationsGetByIdErrors = {
4650
+ /**
4651
+ * UnauthorizedError
4652
+ */
4653
+ 401: UnauthorizedError;
4654
+ /**
4655
+ * ForbiddenError
4656
+ */
4657
+ 403: ForbiddenError;
4658
+ /**
4659
+ * ResourceNotFoundError
4660
+ */
4661
+ 404: ResourceNotFoundError;
4662
+ /**
4663
+ * InternalError
4664
+ */
4665
+ 500: InternalError;
4666
+ };
4667
+ export type ConversationsGetByIdError = ConversationsGetByIdErrors[keyof ConversationsGetByIdErrors];
4668
+ export type ConversationsGetByIdResponses = {
4669
+ /**
4670
+ * ConversationDetail
4671
+ */
4672
+ 200: ConversationDetail;
4673
+ };
4674
+ export type ConversationsGetByIdResponse = ConversationsGetByIdResponses[keyof ConversationsGetByIdResponses];
4675
+ export type ConversationsUpdateData = {
4676
+ body: {
4677
+ title?: string | null | undefined;
4678
+ description?: string | null | null | undefined;
4679
+ externalId?: string | null | null | undefined;
4680
+ parentConversationId?: ConversationId | null | null | undefined;
4681
+ primaryChannel?: "email" | null | undefined;
4682
+ status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
4683
+ statusReason?: string | null | null | undefined;
4684
+ priority?: number | null | undefined;
4685
+ urgency?: "low" | "medium" | "high" | "critical" | null | undefined;
4686
+ complexity?: "simple" | "moderate" | "complex" | null | undefined;
4687
+ context?: ConversationContext | null | null | undefined;
4688
+ metadata?: ConversationMetadata | null | null | undefined;
4689
+ metrics?: ConversationMetrics | null | undefined;
4690
+ actorTracking?: ActorTracking | null | undefined;
4691
+ channels?: Array<"email"> | null | undefined;
4692
+ tags?: Array<string> | null | undefined;
4693
+ categories?: Array<string> | null | undefined;
4531
4694
  isTest?: boolean | null | undefined;
4532
4695
  isInternal?: boolean | null | undefined;
4533
4696
  isPrivate?: boolean | null | undefined;
@@ -4722,7 +4885,7 @@ export type ContactsListResponses = {
4722
4885
  * Success
4723
4886
  */
4724
4887
  200: {
4725
- items: Array<Contact>;
4888
+ items: Array<ContactListItem>;
4726
4889
  pagination: PaginationMeta;
4727
4890
  };
4728
4891
  };
@@ -4737,39 +4900,6 @@ export type ContactsCreateData = {
4737
4900
  humanProfile?: HumanProfile | null | null | undefined;
4738
4901
  capabilities?: Array<string> | null | undefined;
4739
4902
  tags?: Array<string> | null | undefined;
4740
- engagement?: {
4741
- totalInteractions: number;
4742
- lastActiveAt: string;
4743
- averageResponseTime: number;
4744
- satisfactionScore?: number | null | undefined;
4745
- channels: {
4746
- sms?: {
4747
- sent: number;
4748
- received: number;
4749
- failed: number;
4750
- lastAt?: string | null | undefined;
4751
- } | null | undefined;
4752
- whatsapp?: {
4753
- sent: number;
4754
- received: number;
4755
- failed: number;
4756
- lastAt?: string | null | undefined;
4757
- } | null | undefined;
4758
- email?: {
4759
- sent: number;
4760
- received: number;
4761
- failed: number;
4762
- bounced: number;
4763
- lastAt?: string | null | undefined;
4764
- } | null | undefined;
4765
- };
4766
- performance?: {
4767
- successRate: number;
4768
- escalationRate: number;
4769
- resolutionRate: number;
4770
- averageHandlingTime: number;
4771
- } | null | undefined;
4772
- } | null | undefined;
4773
4903
  accessLevel?: "public" | "authenticated" | "vip" | "internal" | null | undefined;
4774
4904
  accessConfig?: ContactAccessConfig | null | null | undefined;
4775
4905
  preferences?: ContactPreferences | null | null | undefined;
@@ -4822,7 +4952,6 @@ export type ContactsFindData = {
4822
4952
  body: {
4823
4953
  email?: string | null | undefined;
4824
4954
  phone?: string | null | undefined;
4825
- whatsapp?: string | null | undefined;
4826
4955
  externalId?: string | null | undefined;
4827
4956
  };
4828
4957
  path?: never;
@@ -4863,7 +4992,6 @@ export type ContactsFindOrCreateData = {
4863
4992
  body: {
4864
4993
  email?: string | null | undefined;
4865
4994
  phone?: string | null | undefined;
4866
- whatsapp?: string | null | undefined;
4867
4995
  externalId?: string | null | undefined;
4868
4996
  name?: string | null | undefined;
4869
4997
  displayName?: string | null | null | undefined;
@@ -4994,39 +5122,6 @@ export type ContactsUpdateData = {
4994
5122
  humanProfile?: HumanProfile | null | null | undefined;
4995
5123
  capabilities?: Array<string> | null | undefined;
4996
5124
  tags?: Array<string> | null | undefined;
4997
- engagement?: {
4998
- totalInteractions: number;
4999
- lastActiveAt: string;
5000
- averageResponseTime: number;
5001
- satisfactionScore?: number | null | undefined;
5002
- channels: {
5003
- sms?: {
5004
- sent: number;
5005
- received: number;
5006
- failed: number;
5007
- lastAt?: string | null | undefined;
5008
- } | null | undefined;
5009
- whatsapp?: {
5010
- sent: number;
5011
- received: number;
5012
- failed: number;
5013
- lastAt?: string | null | undefined;
5014
- } | null | undefined;
5015
- email?: {
5016
- sent: number;
5017
- received: number;
5018
- failed: number;
5019
- bounced: number;
5020
- lastAt?: string | null | undefined;
5021
- } | null | undefined;
5022
- };
5023
- performance?: {
5024
- successRate: number;
5025
- escalationRate: number;
5026
- resolutionRate: number;
5027
- averageHandlingTime: number;
5028
- } | null | undefined;
5029
- } | null | undefined;
5030
5125
  accessLevel?: "public" | "authenticated" | "vip" | "internal" | null | undefined;
5031
5126
  accessConfig?: ContactAccessConfig | null | null | undefined;
5032
5127
  preferences?: ContactPreferences | null | null | undefined;
@@ -5346,7 +5441,7 @@ export type ContactsGetActivityTimelineData = {
5346
5441
  query?: {
5347
5442
  page?: string | null | undefined;
5348
5443
  limit?: string | null | undefined;
5349
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
5444
+ channel?: "email" | null | undefined;
5350
5445
  };
5351
5446
  url: "/v1/contacts/{id}/activity";
5352
5447
  };
@@ -5437,7 +5532,7 @@ export type TemplatesListData = {
5437
5532
  page?: string | null | undefined;
5438
5533
  limit?: string | null | undefined;
5439
5534
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | undefined;
5440
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
5535
+ channel?: "email" | null | undefined;
5441
5536
  status?: "draft" | "pending" | "approved" | "published" | "rejected" | "archived" | null | undefined;
5442
5537
  search?: string | null | undefined;
5443
5538
  sortBy?: "name" | "createdAt" | "updatedAt" | "usageCount" | "lastUsedAt" | null | undefined;
@@ -5530,9 +5625,9 @@ export type TemplatesListDashboardData = {
5530
5625
  query: {
5531
5626
  page?: string | null | undefined;
5532
5627
  limit?: string | null | undefined;
5533
- allowedChannels: "sms" | "whatsapp" | "email" | Array<"sms" | "whatsapp" | "email">;
5628
+ allowedChannels: "email" | Array<"email">;
5534
5629
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | undefined;
5535
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
5630
+ channel?: "email" | null | undefined;
5536
5631
  status?: "draft" | "pending" | "approved" | "published" | "rejected" | "archived" | null | undefined;
5537
5632
  search?: string | null | undefined;
5538
5633
  sortBy?: "name" | "createdAt" | "updatedAt" | "usageCount" | "lastUsedAt" | null | undefined;
@@ -5883,7 +5978,7 @@ export type TemplatesAddFamilyChannelData = {
5883
5978
  body?: never;
5884
5979
  path: {
5885
5980
  familyId: TemplateFamilyId;
5886
- channel: "sms" | "whatsapp" | "email";
5981
+ channel: "email";
5887
5982
  };
5888
5983
  query?: never;
5889
5984
  url: "/v1/templates/families/{familyId}/channels/{channel}";
@@ -6000,11 +6095,6 @@ export type TemplatesUpdateData = {
6000
6095
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | null | undefined;
6001
6096
  fromDefault?: TemplateFromDefault | null | null | undefined;
6002
6097
  replyToDefault?: Array<string> | null | null | undefined;
6003
- source?: string | null | undefined;
6004
- subject?: string | null | undefined;
6005
- headers?: {
6006
- [key: string]: string;
6007
- } | null | null | undefined;
6008
6098
  variableSchema?: Array<TemplateVariable> | null | null | undefined;
6009
6099
  compliance?: TemplateCompliance | null | null | undefined;
6010
6100
  performance?: TemplatePerformance | null | null | undefined;
@@ -6092,21 +6182,15 @@ export type TemplatesApproveResponses = {
6092
6182
  200: Template;
6093
6183
  };
6094
6184
  export type TemplatesApproveResponse = TemplatesApproveResponses[keyof TemplatesApproveResponses];
6095
- export type TemplatesRenderData = {
6185
+ export type TemplateDocumentsBootstrapData = {
6096
6186
  body: {
6097
- data: {
6098
- variables?: {
6099
- [key: string]: string;
6100
- } | null | undefined;
6101
- };
6102
- };
6103
- path: {
6104
- id: TemplateId;
6187
+ templateId: TemplateId;
6105
6188
  };
6189
+ path?: never;
6106
6190
  query?: never;
6107
- url: "/v1/templates/{id}/render";
6191
+ url: "/v1/template-documents/bootstrap";
6108
6192
  };
6109
- export type TemplatesRenderErrors = {
6193
+ export type TemplateDocumentsBootstrapErrors = {
6110
6194
  /**
6111
6195
  * UnauthorizedError
6112
6196
  */
@@ -6119,6 +6203,10 @@ export type TemplatesRenderErrors = {
6119
6203
  * ResourceNotFoundError
6120
6204
  */
6121
6205
  404: ResourceNotFoundError;
6206
+ /**
6207
+ * ConflictError
6208
+ */
6209
+ 409: ConflictError;
6122
6210
  /**
6123
6211
  * ValidationError
6124
6212
  */
@@ -6128,47 +6216,40 @@ export type TemplatesRenderErrors = {
6128
6216
  */
6129
6217
  500: InternalError;
6130
6218
  };
6131
- export type TemplatesRenderError = TemplatesRenderErrors[keyof TemplatesRenderErrors];
6132
- export type TemplatesRenderResponses = {
6219
+ export type TemplateDocumentsBootstrapError = TemplateDocumentsBootstrapErrors[keyof TemplateDocumentsBootstrapErrors];
6220
+ export type TemplateDocumentsBootstrapResponses = {
6133
6221
  /**
6134
6222
  * Success
6135
6223
  */
6136
6224
  200: {
6137
- channel: "sms" | "whatsapp" | "email";
6138
- rendered: {
6139
- subject?: string | null | undefined;
6140
- html?: string | null | undefined;
6141
- text: string;
6225
+ templateId: TemplateId;
6226
+ organizationId: OrganizationId;
6227
+ channel: "email";
6228
+ source: string;
6229
+ revision: string;
6230
+ sourceDigest: string;
6231
+ createdAt: string;
6232
+ updatedAt: string;
6233
+ createdBy: {
6234
+ userId: UserId;
6235
+ via: "api" | "mcp" | "agent";
6236
+ };
6237
+ updatedBy: {
6238
+ userId: UserId;
6239
+ via: "api" | "mcp" | "agent";
6142
6240
  };
6143
- sms?: {
6144
- encoding: string | null;
6145
- estimatedSegments: number | null;
6146
- } | null | undefined;
6147
- whatsapp?: {
6148
- name: string;
6149
- language: string;
6150
- category: string;
6151
- headerContent?: string | null | undefined;
6152
- bodyContent: string;
6153
- footerContent?: string | null | undefined;
6154
- buttons: Array<{
6155
- [key: string]: JsonValue;
6156
- }>;
6157
- } | null | undefined;
6158
- missingVariables: Array<string>;
6159
- errors: Array<string>;
6160
6241
  };
6161
6242
  };
6162
- export type TemplatesRenderResponse = TemplatesRenderResponses[keyof TemplatesRenderResponses];
6163
- export type TemplatesDuplicateData = {
6243
+ export type TemplateDocumentsBootstrapResponse = TemplateDocumentsBootstrapResponses[keyof TemplateDocumentsBootstrapResponses];
6244
+ export type TemplateDocumentsGetData = {
6164
6245
  body?: never;
6165
6246
  path: {
6166
- id: TemplateId;
6247
+ templateId: TemplateId;
6167
6248
  };
6168
6249
  query?: never;
6169
- url: "/v1/templates/{id}/duplicate";
6250
+ url: "/v1/template-documents/{templateId}";
6170
6251
  };
6171
- export type TemplatesDuplicateErrors = {
6252
+ export type TemplateDocumentsGetErrors = {
6172
6253
  /**
6173
6254
  * UnauthorizedError
6174
6255
  */
@@ -6185,28 +6266,67 @@ export type TemplatesDuplicateErrors = {
6185
6266
  * ConflictError
6186
6267
  */
6187
6268
  409: ConflictError;
6269
+ /**
6270
+ * ValidationError
6271
+ */
6272
+ 422: ValidationError;
6188
6273
  /**
6189
6274
  * InternalError
6190
6275
  */
6191
6276
  500: InternalError;
6192
6277
  };
6193
- export type TemplatesDuplicateError = TemplatesDuplicateErrors[keyof TemplatesDuplicateErrors];
6194
- export type TemplatesDuplicateResponses = {
6278
+ export type TemplateDocumentsGetError = TemplateDocumentsGetErrors[keyof TemplateDocumentsGetErrors];
6279
+ export type TemplateDocumentsGetResponses = {
6195
6280
  /**
6196
6281
  * Success
6197
6282
  */
6198
- 201: Template;
6283
+ 200: {
6284
+ templateId: TemplateId;
6285
+ organizationId: OrganizationId;
6286
+ channel: "email";
6287
+ source: string;
6288
+ revision: string;
6289
+ sourceDigest: string;
6290
+ createdAt: string;
6291
+ updatedAt: string;
6292
+ createdBy: {
6293
+ userId: UserId;
6294
+ via: "api" | "mcp" | "agent";
6295
+ };
6296
+ updatedBy: {
6297
+ userId: UserId;
6298
+ via: "api" | "mcp" | "agent";
6299
+ };
6300
+ };
6199
6301
  };
6200
- export type TemplatesDuplicateResponse = TemplatesDuplicateResponses[keyof TemplatesDuplicateResponses];
6201
- export type TemplatesPublishData = {
6202
- body?: never;
6302
+ export type TemplateDocumentsGetResponse = TemplateDocumentsGetResponses[keyof TemplateDocumentsGetResponses];
6303
+ export type TemplateDocumentsIssueAgentAdmissionData = {
6304
+ body: {
6305
+ method: "GET" | "HEAD" | "POST";
6306
+ route: "prompt" | "read" | "abort" | "clear";
6307
+ referenceDigest?: string | undefined;
6308
+ research?: {
6309
+ kind: "query";
6310
+ query: string;
6311
+ } | {
6312
+ kind: "url";
6313
+ url: string;
6314
+ } | {
6315
+ kind: "styleguide";
6316
+ domain: string;
6317
+ } | undefined;
6318
+ competitorMessage?: {
6319
+ watchId: MailboxExtensionId;
6320
+ messageId: MessageId;
6321
+ } | undefined;
6322
+ };
6203
6323
  path: {
6204
- id: TemplateId;
6324
+ templateId: TemplateId;
6205
6325
  };
6206
6326
  query?: never;
6207
- url: "/v1/templates/{id}/publish";
6327
+ url: "/v1/template-documents/{templateId}/agent-admission";
6208
6328
  };
6209
- export type TemplatesPublishErrors = {
6329
+ export type TemplateDocumentsIssueAgentAdmissionErrors = {
6210
6330
  /**
6211
6331
  * UnauthorizedError
6212
6332
  */
@@ -6232,23 +6352,171 @@ export type TemplatesPublishErrors = {
6232
6352
  */
6233
6353
  500: InternalError;
6234
6354
  };
6235
- export type TemplatesPublishError = TemplatesPublishErrors[keyof TemplatesPublishErrors];
6236
- export type TemplatesPublishResponses = {
6355
+ export type TemplateDocumentsIssueAgentAdmissionError = TemplateDocumentsIssueAgentAdmissionErrors[keyof TemplateDocumentsIssueAgentAdmissionErrors];
6356
+ export type TemplateDocumentsIssueAgentAdmissionResponses = {
6237
6357
  /**
6238
- * Template
6358
+ * Success
6239
6359
  */
6240
- 200: Template;
6241
- };
6242
- export type TemplatesPublishResponse = TemplatesPublishResponses[keyof TemplatesPublishResponses];
6243
- export type TemplatesUnpublishData = {
6244
- body?: never;
6245
- path: {
6246
- id: TemplateId;
6247
- };
6360
+ 200: {
6361
+ token: string;
6362
+ conversationId: string;
6363
+ snapshot: {
6364
+ templateId: TemplateId;
6365
+ organizationId: OrganizationId;
6366
+ channel: "email";
6367
+ source: string;
6368
+ revision: string;
6369
+ sourceDigest: string;
6370
+ };
6371
+ reference?: {
6372
+ version: 1;
6373
+ referenceId: string;
6374
+ name: string;
6375
+ description: string;
6376
+ galleryPath: string;
6377
+ digest: string;
6378
+ citation: {
6379
+ kind: string;
6380
+ digest: string;
6381
+ locator?: string | undefined;
6382
+ };
6383
+ policy: "samva-owned-source";
6384
+ source: string;
6385
+ } | {
6386
+ version: 1;
6387
+ referenceId: string;
6388
+ name: string;
6389
+ description: string;
6390
+ galleryPath: string;
6391
+ digest: string;
6392
+ citation: {
6393
+ kind: string;
6394
+ digest: string;
6395
+ locator?: string | undefined;
6396
+ };
6397
+ policy: "reviewed-public-structure";
6398
+ structure: {
6399
+ nodes: Array<{
6400
+ tag: string;
6401
+ depth: number;
6402
+ childIndex: number;
6403
+ }>;
6404
+ components: Array<{
6405
+ tag: string;
6406
+ count: number;
6407
+ }>;
6408
+ palette: Array<string>;
6409
+ };
6410
+ } | {
6411
+ version: 1;
6412
+ policy: "authorized-message-structure";
6413
+ referenceId: string;
6414
+ name: string;
6415
+ description: string;
6416
+ digest: string;
6417
+ citation: {
6418
+ kind: string;
6419
+ digest: string;
6420
+ locator?: string | undefined;
6421
+ };
6422
+ structure: {
6423
+ sections: number;
6424
+ headings: number;
6425
+ images: number;
6426
+ links: number;
6427
+ buttons: number;
6428
+ textLength: number;
6429
+ subjectLength: number;
6430
+ palette: Array<string>;
6431
+ };
6432
+ } | {
6433
+ version: 1;
6434
+ policy: "public-research";
6435
+ request: {
6436
+ kind: "query";
6437
+ query: string;
6438
+ } | {
6439
+ kind: "url";
6440
+ url: string;
6441
+ } | {
6442
+ kind: "styleguide";
6443
+ domain: string;
6444
+ };
6445
+ digest: string;
6446
+ citations: Array<{
6447
+ title: string;
6448
+ url: string;
6449
+ excerpts: Array<string>;
6450
+ }>;
6451
+ citation: {
6452
+ kind: string;
6453
+ digest: string;
6454
+ locator?: string | undefined;
6455
+ };
6456
+ } | undefined;
6457
+ proposalBinding?: string | undefined;
6458
+ };
6459
+ };
6460
+ export type TemplateDocumentsIssueAgentAdmissionResponse = TemplateDocumentsIssueAgentAdmissionResponses[keyof TemplateDocumentsIssueAgentAdmissionResponses];
6461
+ export type TemplateDocumentsCompleteAgentConversationClearData = {
6462
+ body: {
6463
+ conversationId: string;
6464
+ };
6465
+ path: {
6466
+ templateId: TemplateId;
6467
+ };
6468
+ query?: never;
6469
+ url: "/v1/template-documents/{templateId}/agent-conversation/clear-completion";
6470
+ };
6471
+ export type TemplateDocumentsCompleteAgentConversationClearErrors = {
6472
+ /**
6473
+ * UnauthorizedError
6474
+ */
6475
+ 401: UnauthorizedError;
6476
+ /**
6477
+ * ForbiddenError
6478
+ */
6479
+ 403: ForbiddenError;
6480
+ /**
6481
+ * ResourceNotFoundError
6482
+ */
6483
+ 404: ResourceNotFoundError;
6484
+ /**
6485
+ * ConflictError
6486
+ */
6487
+ 409: ConflictError;
6488
+ /**
6489
+ * InternalError
6490
+ */
6491
+ 500: InternalError;
6492
+ };
6493
+ export type TemplateDocumentsCompleteAgentConversationClearError = TemplateDocumentsCompleteAgentConversationClearErrors[keyof TemplateDocumentsCompleteAgentConversationClearErrors];
6494
+ export type TemplateDocumentsCompleteAgentConversationClearResponses = {
6495
+ /**
6496
+ * <No Content>
6497
+ */
6498
+ 200: unknown;
6499
+ };
6500
+ export type TemplateDocumentsApplyAgentProposalData = {
6501
+ body: {
6502
+ expectedRevision: string;
6503
+ sourceDigest: string;
6504
+ idempotencyKey: string;
6505
+ source: string;
6506
+ references: Array<{
6507
+ kind: string;
6508
+ digest: string;
6509
+ locator?: string | undefined;
6510
+ }>;
6511
+ proposalBinding?: string | undefined;
6512
+ };
6513
+ path: {
6514
+ templateId: TemplateId;
6515
+ };
6248
6516
  query?: never;
6249
- url: "/v1/templates/{id}/unpublish";
6517
+ url: "/v1/template-documents/{templateId}/agent-proposals/apply";
6250
6518
  };
6251
- export type TemplatesUnpublishErrors = {
6519
+ export type TemplateDocumentsApplyAgentProposalErrors = {
6252
6520
  /**
6253
6521
  * UnauthorizedError
6254
6522
  */
@@ -6261,6 +6529,10 @@ export type TemplatesUnpublishErrors = {
6261
6529
  * ResourceNotFoundError
6262
6530
  */
6263
6531
  404: ResourceNotFoundError;
6532
+ /**
6533
+ * ConflictError
6534
+ */
6535
+ 409: ConflictError;
6264
6536
  /**
6265
6537
  * ValidationError
6266
6538
  */
@@ -6270,23 +6542,43 @@ export type TemplatesUnpublishErrors = {
6270
6542
  */
6271
6543
  500: InternalError;
6272
6544
  };
6273
- export type TemplatesUnpublishError = TemplatesUnpublishErrors[keyof TemplatesUnpublishErrors];
6274
- export type TemplatesUnpublishResponses = {
6545
+ export type TemplateDocumentsApplyAgentProposalError = TemplateDocumentsApplyAgentProposalErrors[keyof TemplateDocumentsApplyAgentProposalErrors];
6546
+ export type TemplateDocumentsApplyAgentProposalResponses = {
6275
6547
  /**
6276
- * Template
6548
+ * Success
6277
6549
  */
6278
- 200: Template;
6550
+ 200: {
6551
+ templateId: TemplateId;
6552
+ organizationId: OrganizationId;
6553
+ channel: "email";
6554
+ source: string;
6555
+ revision: string;
6556
+ sourceDigest: string;
6557
+ createdAt: string;
6558
+ updatedAt: string;
6559
+ createdBy: {
6560
+ userId: UserId;
6561
+ via: "api" | "mcp" | "agent";
6562
+ };
6563
+ updatedBy: {
6564
+ userId: UserId;
6565
+ via: "api" | "mcp" | "agent";
6566
+ };
6567
+ };
6279
6568
  };
6280
- export type TemplatesUnpublishResponse = TemplatesUnpublishResponses[keyof TemplatesUnpublishResponses];
6281
- export type TemplatesVersionHistoryData = {
6282
- body?: never;
6569
+ export type TemplateDocumentsApplyAgentProposalResponse = TemplateDocumentsApplyAgentProposalResponses[keyof TemplateDocumentsApplyAgentProposalResponses];
6570
+ export type TemplateDocumentsReplaceData = {
6571
+ body: {
6572
+ expectedRevision: string;
6573
+ source: string;
6574
+ };
6283
6575
  path: {
6284
- id: TemplateId;
6576
+ templateId: TemplateId;
6285
6577
  };
6286
6578
  query?: never;
6287
- url: "/v1/templates/{id}/versions";
6579
+ url: "/v1/template-documents/{templateId}/source";
6288
6580
  };
6289
- export type TemplatesVersionHistoryErrors = {
6581
+ export type TemplateDocumentsReplaceErrors = {
6290
6582
  /**
6291
6583
  * UnauthorizedError
6292
6584
  */
@@ -6299,41 +6591,55 @@ export type TemplatesVersionHistoryErrors = {
6299
6591
  * ResourceNotFoundError
6300
6592
  */
6301
6593
  404: ResourceNotFoundError;
6594
+ /**
6595
+ * ConflictError
6596
+ */
6597
+ 409: ConflictError;
6598
+ /**
6599
+ * ValidationError
6600
+ */
6601
+ 422: ValidationError;
6302
6602
  /**
6303
6603
  * InternalError
6304
6604
  */
6305
6605
  500: InternalError;
6306
6606
  };
6307
- export type TemplatesVersionHistoryError = TemplatesVersionHistoryErrors[keyof TemplatesVersionHistoryErrors];
6308
- export type TemplatesVersionHistoryResponses = {
6607
+ export type TemplateDocumentsReplaceError = TemplateDocumentsReplaceErrors[keyof TemplateDocumentsReplaceErrors];
6608
+ export type TemplateDocumentsReplaceResponses = {
6309
6609
  /**
6310
6610
  * Success
6311
6611
  */
6312
6612
  200: {
6313
- versions: Array<{
6314
- id: string;
6315
- version: number;
6316
- status: string;
6317
- isCurrent: boolean;
6318
- source: string | null;
6319
- publishedAt: string | null;
6320
- publishedBy: string | null;
6321
- createdAt: string;
6322
- updatedAt: string;
6323
- }>;
6613
+ templateId: TemplateId;
6614
+ organizationId: OrganizationId;
6615
+ channel: "email";
6616
+ source: string;
6617
+ revision: string;
6618
+ sourceDigest: string;
6619
+ createdAt: string;
6620
+ updatedAt: string;
6621
+ createdBy: {
6622
+ userId: UserId;
6623
+ via: "api" | "mcp" | "agent";
6624
+ };
6625
+ updatedBy: {
6626
+ userId: UserId;
6627
+ via: "api" | "mcp" | "agent";
6628
+ };
6324
6629
  };
6325
6630
  };
6326
- export type TemplatesVersionHistoryResponse = TemplatesVersionHistoryResponses[keyof TemplatesVersionHistoryResponses];
6327
- export type TemplatesRestoreVersionData = {
6328
- body?: never;
6631
+ export type TemplateDocumentsReplaceResponse = TemplateDocumentsReplaceResponses[keyof TemplateDocumentsReplaceResponses];
6632
+ export type TemplateDocumentsSaveData = {
6633
+ body: {
6634
+ revision: string;
6635
+ };
6329
6636
  path: {
6330
- id: TemplateId;
6331
- versionId: TemplateSourceVersionId;
6637
+ templateId: TemplateId;
6332
6638
  };
6333
6639
  query?: never;
6334
- url: "/v1/templates/{id}/versions/{versionId}/restore";
6640
+ url: "/v1/template-documents/{templateId}/save";
6335
6641
  };
6336
- export type TemplatesRestoreVersionErrors = {
6642
+ export type TemplateDocumentsSaveErrors = {
6337
6643
  /**
6338
6644
  * UnauthorizedError
6339
6645
  */
@@ -6350,35 +6656,98 @@ export type TemplatesRestoreVersionErrors = {
6350
6656
  * ConflictError
6351
6657
  */
6352
6658
  409: ConflictError;
6659
+ /**
6660
+ * ValidationError
6661
+ */
6662
+ 422: ValidationError;
6353
6663
  /**
6354
6664
  * InternalError
6355
6665
  */
6356
6666
  500: InternalError;
6357
6667
  };
6358
- export type TemplatesRestoreVersionError = TemplatesRestoreVersionErrors[keyof TemplatesRestoreVersionErrors];
6359
- export type TemplatesRestoreVersionResponses = {
6668
+ export type TemplateDocumentsSaveError = TemplateDocumentsSaveErrors[keyof TemplateDocumentsSaveErrors];
6669
+ export type TemplateDocumentsSaveResponses = {
6360
6670
  /**
6361
- * Template
6671
+ * Success
6362
6672
  */
6363
- 200: Template;
6673
+ 200: {
6674
+ id: string;
6675
+ templateId: TemplateId;
6676
+ documentRevision: string;
6677
+ sourceDigest: string;
6678
+ compilerVersion: string;
6679
+ createdAt: string;
6680
+ versionId: string;
6681
+ };
6364
6682
  };
6365
- export type TemplatesRestoreVersionResponse = TemplatesRestoreVersionResponses[keyof TemplatesRestoreVersionResponses];
6366
- export type TemplatesSpamCheckData = {
6683
+ export type TemplateDocumentsSaveResponse = TemplateDocumentsSaveResponses[keyof TemplateDocumentsSaveResponses];
6684
+ export type TemplateDocumentsRenderData = {
6367
6685
  body: {
6368
- templateId: TemplateId;
6369
- inputs?: {
6686
+ revision: string;
6687
+ variables?: {
6370
6688
  [key: string]: JsonValue;
6371
6689
  } | null | undefined;
6372
- } | {
6373
- subject: string;
6374
- html: string;
6690
+ };
6691
+ path: {
6692
+ templateId: TemplateId;
6693
+ };
6694
+ query?: never;
6695
+ url: "/v1/template-documents/{templateId}/render";
6696
+ };
6697
+ export type TemplateDocumentsRenderErrors = {
6698
+ /**
6699
+ * UnauthorizedError
6700
+ */
6701
+ 401: UnauthorizedError;
6702
+ /**
6703
+ * ForbiddenError
6704
+ */
6705
+ 403: ForbiddenError;
6706
+ /**
6707
+ * ResourceNotFoundError
6708
+ */
6709
+ 404: ResourceNotFoundError;
6710
+ /**
6711
+ * ConflictError
6712
+ */
6713
+ 409: ConflictError;
6714
+ /**
6715
+ * ValidationError
6716
+ */
6717
+ 422: ValidationError;
6718
+ /**
6719
+ * InternalError
6720
+ */
6721
+ 500: InternalError;
6722
+ };
6723
+ export type TemplateDocumentsRenderError = TemplateDocumentsRenderErrors[keyof TemplateDocumentsRenderErrors];
6724
+ export type TemplateDocumentsRenderResponses = {
6725
+ /**
6726
+ * Success
6727
+ */
6728
+ 200: {
6729
+ channel: "email";
6730
+ subject?: string | null | undefined;
6731
+ html?: string | null | undefined;
6375
6732
  text: string;
6733
+ missingVariables: Array<string>;
6734
+ };
6735
+ };
6736
+ export type TemplateDocumentsRenderResponse = TemplateDocumentsRenderResponses[keyof TemplateDocumentsRenderResponses];
6737
+ export type TemplateDocumentsSpamCheckData = {
6738
+ body: {
6739
+ revision: string;
6740
+ variables?: {
6741
+ [key: string]: JsonValue;
6742
+ } | null | undefined;
6743
+ };
6744
+ path: {
6745
+ templateId: TemplateId;
6376
6746
  };
6377
- path?: never;
6378
6747
  query?: never;
6379
- url: "/v1/templates/spam-check";
6748
+ url: "/v1/template-documents/{templateId}/spam-check";
6380
6749
  };
6381
- export type TemplatesSpamCheckErrors = {
6750
+ export type TemplateDocumentsSpamCheckErrors = {
6382
6751
  /**
6383
6752
  * UnauthorizedError
6384
6753
  */
@@ -6391,6 +6760,10 @@ export type TemplatesSpamCheckErrors = {
6391
6760
  * ResourceNotFoundError
6392
6761
  */
6393
6762
  404: ResourceNotFoundError;
6763
+ /**
6764
+ * ConflictError
6765
+ */
6766
+ 409: ConflictError;
6394
6767
  /**
6395
6768
  * ValidationError
6396
6769
  */
@@ -6400,8 +6773,8 @@ export type TemplatesSpamCheckErrors = {
6400
6773
  */
6401
6774
  500: InternalError;
6402
6775
  };
6403
- export type TemplatesSpamCheckError = TemplatesSpamCheckErrors[keyof TemplatesSpamCheckErrors];
6404
- export type TemplatesSpamCheckResponses = {
6776
+ export type TemplateDocumentsSpamCheckError = TemplateDocumentsSpamCheckErrors[keyof TemplateDocumentsSpamCheckErrors];
6777
+ export type TemplateDocumentsSpamCheckResponses = {
6405
6778
  /**
6406
6779
  * Success
6407
6780
  */
@@ -6417,7 +6790,355 @@ export type TemplatesSpamCheckResponses = {
6417
6790
  recommendations: Array<string>;
6418
6791
  };
6419
6792
  };
6420
- export type TemplatesSpamCheckResponse = TemplatesSpamCheckResponses[keyof TemplatesSpamCheckResponses];
6793
+ export type TemplateDocumentsSpamCheckResponse = TemplateDocumentsSpamCheckResponses[keyof TemplateDocumentsSpamCheckResponses];
6794
+ export type TemplateDocumentsTestSendData = {
6795
+ body: {
6796
+ revision: string;
6797
+ to: string;
6798
+ variables?: {
6799
+ [key: string]: JsonValue;
6800
+ } | null | undefined;
6801
+ };
6802
+ path: {
6803
+ templateId: TemplateId;
6804
+ };
6805
+ query?: never;
6806
+ url: "/v1/template-documents/{templateId}/send-test";
6807
+ };
6808
+ export type TemplateDocumentsTestSendErrors = {
6809
+ /**
6810
+ * UnauthorizedError
6811
+ */
6812
+ 401: UnauthorizedError;
6813
+ /**
6814
+ * PaymentRequiredError
6815
+ */
6816
+ 402: PaymentRequiredError;
6817
+ /**
6818
+ * ForbiddenError
6819
+ */
6820
+ 403: ForbiddenError;
6821
+ /**
6822
+ * ResourceNotFoundError
6823
+ */
6824
+ 404: ResourceNotFoundError;
6825
+ /**
6826
+ * ConflictError
6827
+ */
6828
+ 409: ConflictError;
6829
+ /**
6830
+ * ValidationError
6831
+ */
6832
+ 422: ValidationError;
6833
+ /**
6834
+ * RateLimitedError
6835
+ */
6836
+ 429: RateLimitedError;
6837
+ /**
6838
+ * InternalError | WebhookEnqueueError
6839
+ */
6840
+ 500: InternalError | WebhookEnqueueError;
6841
+ /**
6842
+ * BillingProviderError
6843
+ */
6844
+ 502: BillingProviderError;
6845
+ };
6846
+ export type TemplateDocumentsTestSendError = TemplateDocumentsTestSendErrors[keyof TemplateDocumentsTestSendErrors];
6847
+ export type TemplateDocumentsTestSendResponses = {
6848
+ /**
6849
+ * Success
6850
+ */
6851
+ 200: {
6852
+ messageId: string;
6853
+ status: string;
6854
+ rendered: {
6855
+ channel: "email";
6856
+ subject?: string | null | undefined;
6857
+ html?: string | null | undefined;
6858
+ text: string;
6859
+ missingVariables: Array<string>;
6860
+ };
6861
+ };
6862
+ };
6863
+ export type TemplateDocumentsTestSendResponse = TemplateDocumentsTestSendResponses[keyof TemplateDocumentsTestSendResponses];
6864
+ export type TemplateDocumentsSendData = {
6865
+ body: {
6866
+ revision: string;
6867
+ to: Array<{
6868
+ address: string;
6869
+ name?: string | null | undefined;
6870
+ }>;
6871
+ variables?: {
6872
+ [key: string]: JsonValue;
6873
+ } | null | undefined;
6874
+ schedule?: string | null | null | undefined;
6875
+ };
6876
+ path: {
6877
+ templateId: TemplateId;
6878
+ };
6879
+ query?: never;
6880
+ url: "/v1/template-documents/{templateId}/send";
6881
+ };
6882
+ export type TemplateDocumentsSendErrors = {
6883
+ /**
6884
+ * UnauthorizedError
6885
+ */
6886
+ 401: UnauthorizedError;
6887
+ /**
6888
+ * PaymentRequiredError
6889
+ */
6890
+ 402: PaymentRequiredError;
6891
+ /**
6892
+ * ForbiddenError | FlagDisabledError
6893
+ */
6894
+ 403: FlagDisabledError | ForbiddenError;
6895
+ /**
6896
+ * ResourceNotFoundError
6897
+ */
6898
+ 404: ResourceNotFoundError;
6899
+ /**
6900
+ * ConflictError
6901
+ */
6902
+ 409: ConflictError;
6903
+ /**
6904
+ * ValidationError
6905
+ */
6906
+ 422: ValidationError;
6907
+ /**
6908
+ * RateLimitedError
6909
+ */
6910
+ 429: RateLimitedError;
6911
+ /**
6912
+ * InternalError | WebhookEnqueueError
6913
+ */
6914
+ 500: InternalError | WebhookEnqueueError;
6915
+ /**
6916
+ * ExternalServiceError | BillingProviderError
6917
+ */
6918
+ 502: ExternalServiceError | BillingProviderError;
6919
+ };
6920
+ export type TemplateDocumentsSendError = TemplateDocumentsSendErrors[keyof TemplateDocumentsSendErrors];
6921
+ export type TemplateDocumentsSendResponses = {
6922
+ /**
6923
+ * Success
6924
+ */
6925
+ 200: {
6926
+ kind: "sent";
6927
+ messageId: string;
6928
+ acceptedAt: string;
6929
+ } | {
6930
+ kind: "scheduled";
6931
+ scheduledMessageId: string;
6932
+ scheduledFor: string;
6933
+ };
6934
+ };
6935
+ export type TemplateDocumentsSendResponse = TemplateDocumentsSendResponses[keyof TemplateDocumentsSendResponses];
6936
+ export type TemplateDocumentsVersionsData = {
6937
+ body?: never;
6938
+ path: {
6939
+ templateId: TemplateId;
6940
+ };
6941
+ query?: never;
6942
+ url: "/v1/template-documents/{templateId}/versions";
6943
+ };
6944
+ export type TemplateDocumentsVersionsErrors = {
6945
+ /**
6946
+ * UnauthorizedError
6947
+ */
6948
+ 401: UnauthorizedError;
6949
+ /**
6950
+ * ForbiddenError
6951
+ */
6952
+ 403: ForbiddenError;
6953
+ /**
6954
+ * ResourceNotFoundError
6955
+ */
6956
+ 404: ResourceNotFoundError;
6957
+ /**
6958
+ * ConflictError
6959
+ */
6960
+ 409: ConflictError;
6961
+ /**
6962
+ * ValidationError
6963
+ */
6964
+ 422: ValidationError;
6965
+ /**
6966
+ * InternalError
6967
+ */
6968
+ 500: InternalError;
6969
+ };
6970
+ export type TemplateDocumentsVersionsError = TemplateDocumentsVersionsErrors[keyof TemplateDocumentsVersionsErrors];
6971
+ export type TemplateDocumentsVersionsResponses = {
6972
+ /**
6973
+ * Success
6974
+ */
6975
+ 200: {
6976
+ versions: Array<{
6977
+ versionId: TemplateSourceVersionId;
6978
+ version: number;
6979
+ status: string;
6980
+ isCurrent: boolean;
6981
+ materializationId: string;
6982
+ documentRevision: string;
6983
+ sourceDigest: string;
6984
+ compilerVersion: string;
6985
+ publishedAt: string | null;
6986
+ archivedAt: string | null;
6987
+ createdAt: string;
6988
+ }>;
6989
+ };
6990
+ };
6991
+ export type TemplateDocumentsVersionsResponse = TemplateDocumentsVersionsResponses[keyof TemplateDocumentsVersionsResponses];
6992
+ export type TemplateDocumentsPublishData = {
6993
+ body?: never;
6994
+ path: {
6995
+ templateId: TemplateId;
6996
+ };
6997
+ query?: never;
6998
+ url: "/v1/template-documents/{templateId}/publish";
6999
+ };
7000
+ export type TemplateDocumentsPublishErrors = {
7001
+ /**
7002
+ * UnauthorizedError
7003
+ */
7004
+ 401: UnauthorizedError;
7005
+ /**
7006
+ * ForbiddenError
7007
+ */
7008
+ 403: ForbiddenError;
7009
+ /**
7010
+ * ResourceNotFoundError
7011
+ */
7012
+ 404: ResourceNotFoundError;
7013
+ /**
7014
+ * ConflictError
7015
+ */
7016
+ 409: ConflictError;
7017
+ /**
7018
+ * ValidationError
7019
+ */
7020
+ 422: ValidationError;
7021
+ /**
7022
+ * InternalError
7023
+ */
7024
+ 500: InternalError;
7025
+ };
7026
+ export type TemplateDocumentsPublishError = TemplateDocumentsPublishErrors[keyof TemplateDocumentsPublishErrors];
7027
+ export type TemplateDocumentsPublishResponses = {
7028
+ /**
7029
+ * Success
7030
+ */
7031
+ 200: {
7032
+ versionId: string;
7033
+ };
7034
+ };
7035
+ export type TemplateDocumentsPublishResponse = TemplateDocumentsPublishResponses[keyof TemplateDocumentsPublishResponses];
7036
+ export type TemplateDocumentsUnpublishData = {
7037
+ body?: never;
7038
+ path: {
7039
+ templateId: TemplateId;
7040
+ };
7041
+ query?: never;
7042
+ url: "/v1/template-documents/{templateId}/unpublish";
7043
+ };
7044
+ export type TemplateDocumentsUnpublishErrors = {
7045
+ /**
7046
+ * UnauthorizedError
7047
+ */
7048
+ 401: UnauthorizedError;
7049
+ /**
7050
+ * ForbiddenError
7051
+ */
7052
+ 403: ForbiddenError;
7053
+ /**
7054
+ * ResourceNotFoundError
7055
+ */
7056
+ 404: ResourceNotFoundError;
7057
+ /**
7058
+ * ConflictError
7059
+ */
7060
+ 409: ConflictError;
7061
+ /**
7062
+ * ValidationError
7063
+ */
7064
+ 422: ValidationError;
7065
+ /**
7066
+ * InternalError
7067
+ */
7068
+ 500: InternalError;
7069
+ };
7070
+ export type TemplateDocumentsUnpublishError = TemplateDocumentsUnpublishErrors[keyof TemplateDocumentsUnpublishErrors];
7071
+ export type TemplateDocumentsUnpublishResponses = {
7072
+ /**
7073
+ * Success
7074
+ */
7075
+ 200: {
7076
+ versionId: string;
7077
+ };
7078
+ };
7079
+ export type TemplateDocumentsUnpublishResponse = TemplateDocumentsUnpublishResponses[keyof TemplateDocumentsUnpublishResponses];
7080
+ export type TemplateDocumentsRestoreData = {
7081
+ body: {
7082
+ expectedRevision: string;
7083
+ };
7084
+ path: {
7085
+ templateId: TemplateId;
7086
+ versionId: TemplateSourceVersionId;
7087
+ };
7088
+ query?: never;
7089
+ url: "/v1/template-documents/{templateId}/versions/{versionId}/restore";
7090
+ };
7091
+ export type TemplateDocumentsRestoreErrors = {
7092
+ /**
7093
+ * UnauthorizedError
7094
+ */
7095
+ 401: UnauthorizedError;
7096
+ /**
7097
+ * ForbiddenError
7098
+ */
7099
+ 403: ForbiddenError;
7100
+ /**
7101
+ * ResourceNotFoundError
7102
+ */
7103
+ 404: ResourceNotFoundError;
7104
+ /**
7105
+ * ConflictError
7106
+ */
7107
+ 409: ConflictError;
7108
+ /**
7109
+ * ValidationError
7110
+ */
7111
+ 422: ValidationError;
7112
+ /**
7113
+ * InternalError
7114
+ */
7115
+ 500: InternalError;
7116
+ };
7117
+ export type TemplateDocumentsRestoreError = TemplateDocumentsRestoreErrors[keyof TemplateDocumentsRestoreErrors];
7118
+ export type TemplateDocumentsRestoreResponses = {
7119
+ /**
7120
+ * Success
7121
+ */
7122
+ 200: {
7123
+ templateId: TemplateId;
7124
+ organizationId: OrganizationId;
7125
+ channel: "email";
7126
+ source: string;
7127
+ revision: string;
7128
+ sourceDigest: string;
7129
+ createdAt: string;
7130
+ updatedAt: string;
7131
+ createdBy: {
7132
+ userId: UserId;
7133
+ via: "api" | "mcp" | "agent";
7134
+ };
7135
+ updatedBy: {
7136
+ userId: UserId;
7137
+ via: "api" | "mcp" | "agent";
7138
+ };
7139
+ };
7140
+ };
7141
+ export type TemplateDocumentsRestoreResponse = TemplateDocumentsRestoreResponses[keyof TemplateDocumentsRestoreResponses];
6421
7142
  export type DesignGetData = {
6422
7143
  body?: never;
6423
7144
  path?: never;
@@ -6519,8 +7240,8 @@ export type WebhooksCreateData = {
6519
7240
  body: {
6520
7241
  name: string;
6521
7242
  url: string;
6522
- 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">;
6523
- channels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
7243
+ 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">;
7244
+ channels?: Array<"email"> | null | undefined;
6524
7245
  headers?: {
6525
7246
  [key: string]: string;
6526
7247
  } | null | undefined;
@@ -6547,6 +7268,10 @@ export type WebhooksCreateErrors = {
6547
7268
  * ConflictError
6548
7269
  */
6549
7270
  409: ConflictError;
7271
+ /**
7272
+ * ValidationError
7273
+ */
7274
+ 422: ValidationError;
6550
7275
  /**
6551
7276
  * InternalError
6552
7277
  */
@@ -6643,8 +7368,8 @@ export type WebhooksUpdateData = {
6643
7368
  body: {
6644
7369
  name?: string | null | undefined;
6645
7370
  url?: string | null | undefined;
6646
- 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"> | null | undefined;
6647
- channels?: Array<"sms" | "whatsapp" | "email"> | null | null | undefined;
7371
+ 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;
7372
+ channels?: Array<"email"> | null | null | undefined;
6648
7373
  headers?: {
6649
7374
  [key: string]: string;
6650
7375
  } | null | undefined;
@@ -6673,6 +7398,10 @@ export type WebhooksUpdateErrors = {
6673
7398
  * ConflictError
6674
7399
  */
6675
7400
  409: ConflictError;
7401
+ /**
7402
+ * ValidationError
7403
+ */
7404
+ 422: ValidationError;
6676
7405
  /**
6677
7406
  * InternalError
6678
7407
  */
@@ -6783,7 +7512,6 @@ export type WebhooksGetLogsResponses = {
6783
7512
  responseHeaders: {
6784
7513
  [key: string]: string;
6785
7514
  } | null;
6786
- responseBody: string | null;
6787
7515
  durationMs: number | null;
6788
7516
  errorCode: string | null;
6789
7517
  errorMessage: string | null;
@@ -7074,9 +7802,7 @@ export type OrganizationsGetUsageResponses = {
7074
7802
  usage: {
7075
7803
  periodStart: string;
7076
7804
  periodEnd: string;
7077
- smsCount: number;
7078
7805
  emailCount: number;
7079
- whatsappCount: number;
7080
7806
  totalMessages: number;
7081
7807
  };
7082
7808
  billing: {
@@ -7232,6 +7958,10 @@ export type ApiKeysCreateErrors = {
7232
7958
  * ResourceNotFoundError
7233
7959
  */
7234
7960
  404: ResourceNotFoundError;
7961
+ /**
7962
+ * ValidationError
7963
+ */
7964
+ 422: ValidationError;
7235
7965
  /**
7236
7966
  * InternalError
7237
7967
  */
@@ -7379,6 +8109,10 @@ export type ApiKeysRotateErrors = {
7379
8109
  * ResourceNotFoundError
7380
8110
  */
7381
8111
  404: ResourceNotFoundError;
8112
+ /**
8113
+ * ValidationError
8114
+ */
8115
+ 422: ValidationError;
7382
8116
  /**
7383
8117
  * InternalError
7384
8118
  */