samva 0.15.0 → 0.17.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 (128) hide show
  1. package/AGENTS.md +4 -1
  2. package/README.md +46 -1
  3. package/dist/analytics-CaqPRsry.js +207 -0
  4. package/dist/api-keys-Ce1Y4_Ip.js +274 -0
  5. package/dist/attachments-DYqVIraC.js +140 -0
  6. package/dist/brands-ZwuOGIWO.js +175 -0
  7. package/dist/campaigns-DZlz1E9E.js +522 -0
  8. package/dist/categories-CA4XIQAb.js +1011 -0
  9. package/dist/client/sdk.gen.d.ts +234 -49
  10. package/dist/client/types.gen.d.ts +1521 -348
  11. package/dist/client-DOzUrdTE.js +1115 -0
  12. package/dist/contact-groups-BLbFXnjq.js +446 -0
  13. package/dist/contacts-BbsoXXB4.js +787 -0
  14. package/dist/conversations-_sRHueML.js +494 -0
  15. package/dist/custom-fields-BHWbwlKn.js +176 -0
  16. package/dist/effect/analytics.js +2 -21
  17. package/dist/effect/api-keys.d.ts +1 -0
  18. package/dist/effect/api-keys.js +2 -25
  19. package/dist/effect/attachments.js +2 -17
  20. package/dist/effect/brands.d.ts +1 -1
  21. package/dist/effect/brands.js +3 -24
  22. package/dist/effect/campaigns.js +2 -33
  23. package/dist/effect/categories.js +1 -1
  24. package/dist/effect/client.d.ts +1 -1
  25. package/dist/effect/client.js +3 -4
  26. package/dist/effect/contact-groups.js +2 -29
  27. package/dist/effect/contacts.d.ts +52 -0
  28. package/dist/effect/contacts.js +2 -47
  29. package/dist/effect/conversations.js +2 -35
  30. package/dist/effect/custom-fields.js +2 -17
  31. package/dist/effect/email.d.ts +3 -20
  32. package/dist/effect/email.js +2 -141
  33. package/dist/effect/events.d.ts +121 -0
  34. package/dist/effect/events.js +3 -0
  35. package/dist/effect/extension-installations.js +2 -27
  36. package/dist/effect/extensions.js +2 -19
  37. package/dist/effect/feedback.d.ts +1 -1
  38. package/dist/effect/feedback.js +3 -13
  39. package/dist/effect/generated/analytics.d.ts +715 -0
  40. package/dist/effect/generated/api-keys.d.ts +1627 -0
  41. package/dist/effect/generated/attachments.d.ts +554 -0
  42. package/dist/effect/generated/brands.d.ts +1118 -0
  43. package/dist/effect/generated/campaigns.d.ts +3783 -0
  44. package/dist/effect/generated/contact-events.d.ts +158 -0
  45. package/dist/effect/generated/contact-groups.d.ts +1445 -0
  46. package/dist/effect/generated/contacts.d.ts +3789 -0
  47. package/dist/effect/generated/conversations.d.ts +2870 -0
  48. package/dist/effect/generated/custom-fields.d.ts +562 -0
  49. package/dist/effect/generated/email.d.ts +10622 -0
  50. package/dist/effect/generated/events.d.ts +463 -0
  51. package/dist/effect/generated/extension-installations.d.ts +1786 -0
  52. package/dist/effect/generated/extensions.d.ts +927 -0
  53. package/dist/effect/generated/feedback.d.ts +116 -0
  54. package/dist/effect/generated/index.d.ts +61 -0
  55. package/dist/effect/generated/journeys.d.ts +6135 -0
  56. package/dist/effect/generated/mailboxes.d.ts +13641 -0
  57. package/dist/effect/generated/media.d.ts +741 -0
  58. package/dist/effect/generated/messages.d.ts +2355 -0
  59. package/dist/effect/generated/namespaces.d.ts +654 -0
  60. package/dist/effect/generated/operations.d.ts +514 -0
  61. package/dist/effect/generated/organizations.d.ts +1111 -0
  62. package/dist/effect/generated/scheduled-messages.d.ts +1798 -0
  63. package/dist/effect/generated/shared.d.ts +3250 -0
  64. package/dist/effect/generated/subscriptions.d.ts +188 -0
  65. package/dist/effect/generated/templates.d.ts +8177 -0
  66. package/dist/effect/generated/unsubscribe-groups.d.ts +1153 -0
  67. package/dist/effect/generated/webhooks.d.ts +1697 -0
  68. package/dist/effect/generated/whoami.d.ts +291 -0
  69. package/dist/effect/generated-metadata.d.ts +1631 -0
  70. package/dist/effect/index.d.ts +4 -1
  71. package/dist/effect/index.js +29 -26
  72. package/dist/effect/internal/client.d.ts +10 -7
  73. package/dist/effect/internal/email-sender.d.ts +17 -0
  74. package/dist/effect/internal/operation.d.ts +12 -72
  75. package/dist/effect/internal/send.d.ts +60 -0
  76. package/dist/effect/journeys.d.ts +2153 -0
  77. package/dist/effect/journeys.js +2 -0
  78. package/dist/effect/mailboxes.d.ts +255 -205
  79. package/dist/effect/mailboxes.js +2 -2
  80. package/dist/effect/media.js +3 -1
  81. package/dist/effect/messages.d.ts +2 -2
  82. package/dist/effect/messages.js +3 -1
  83. package/dist/effect/namespaces.js +2 -19
  84. package/dist/effect/operations.js +2 -15
  85. package/dist/effect/organizations.js +2 -23
  86. package/dist/effect/retry.js +1 -1
  87. package/dist/effect/scheduled-messages.js +2 -19
  88. package/dist/effect/subscriptions.js +2 -9
  89. package/dist/effect/templates.d.ts +1 -1
  90. package/dist/effect/templates.js +3 -78
  91. package/dist/effect/unsubscribe-groups.js +2 -27
  92. package/dist/effect/webhooks.d.ts +9 -9
  93. package/dist/effect/webhooks.js +3 -33
  94. package/dist/effect/whoami.d.ts +46 -0
  95. package/dist/effect/whoami.js +2 -0
  96. package/dist/email-R0NAA9PW.js +2498 -0
  97. package/dist/events-CxbTUHYT.js +82 -0
  98. package/dist/extension-installations-CD94LPmk.js +407 -0
  99. package/dist/extensions-BKyNQLvu.js +220 -0
  100. package/dist/feedback-Bpa09JOS.js +52 -0
  101. package/dist/index.js +3 -3
  102. package/dist/{inline-attachments-UxLeyytJ.js → inline-attachments-Bi1hDltp.js} +2 -2
  103. package/dist/journeys-CARo_BJT.js +499 -0
  104. package/dist/mailboxes-BRDn7BIK.js +2470 -0
  105. package/dist/media-VrrtNnft.js +181 -0
  106. package/dist/namespaces-CcvEbG-y.js +152 -0
  107. package/dist/{operation-BZ5Xov-x.js → operation-n_IYgNVK.js} +85 -102
  108. package/dist/operations-CmB3FHwf.js +93 -0
  109. package/dist/organizations-A-plufWc.js +252 -0
  110. package/dist/promises/errors.gen.d.ts +12 -2
  111. package/dist/promises/index.d.ts +9 -3
  112. package/dist/promises/index.js +3 -3
  113. package/dist/promises/types.gen.d.ts +1 -1
  114. package/dist/{promises-Cd6Jamqk.js → promises---Kbh-7z.js} +745 -195
  115. package/dist/runtime-P0l1_2-C.js +25 -0
  116. package/dist/scheduled-messages-DkKZRRaN.js +207 -0
  117. package/dist/send-Bxc0XfGE.js +722 -0
  118. package/dist/service-map.d.ts +101 -15
  119. package/dist/subscriptions-DEXYtMXg.js +67 -0
  120. package/dist/templates-DZomxsG7.js +2289 -0
  121. package/dist/unsubscribe-groups-Iqk4Isf9.js +291 -0
  122. package/dist/webhooks-CPXuu8Xf.js +530 -0
  123. package/dist/whoami-Ccz0jwlt.js +59 -0
  124. package/package.json +17 -3
  125. package/dist/categories-BGUBFdH9.js +0 -183
  126. package/dist/client-CDg7zJs0.js +0 -13726
  127. package/dist/effect/generated.d.ts +0 -64059
  128. package/dist/mailboxes-BH_JPmOE.js +0 -159
@@ -1,4 +1,4 @@
1
- import { a as withUploadedAttachments, n as mediaCreateBody, o as CLIENT_ATTRIBUTION_HEADER, r as planInlineUploads, s as clientAttribution, t as MediaUploadError } from "./inline-attachments-UxLeyytJ.js";
1
+ import { a as withUploadedAttachments, n as mediaCreateBody, o as CLIENT_ATTRIBUTION_HEADER, r as planInlineUploads, s as clientAttribution, t as MediaUploadError } from "./inline-attachments-Bi1hDltp.js";
2
2
  import { t as MailboxEventStream } from "./mailbox-events-VKR4f3qq.js";
3
3
  import { n as buildMessagesSendPayload, r as replyToEmailsPayload, t as buildEmailSendPayload } from "./normalize-B79uJIeb.js";
4
4
  //#region src/client/core/bodySerializer.gen.ts
@@ -740,13 +740,44 @@ var Messages = class {
740
740
  * Sends a message on the requested channel and returns its receipt (id, status, and why it waits when it does) with a 201 Created status. Requires `messages:create` or the send permission of the channel it sends on, such as `email:send`. `channel` selects the payload variant. Repeating an identical request with the same optional `Idempotency-Key` header returns the original receipt; reusing the key for different content returns a conflict.
741
741
  */
742
742
  static send(parameters, options) {
743
- const params = buildClientParams([parameters], [{ args: [{
744
- in: "headers",
745
- key: "idempotency-key"
746
- }, {
747
- key: "emailSendMessagePayload",
748
- map: "body"
749
- }] }]);
743
+ const params = buildClientParams([parameters], [{ args: [
744
+ {
745
+ in: "headers",
746
+ key: "idempotency-key"
747
+ },
748
+ {
749
+ in: "body",
750
+ key: "conversationId"
751
+ },
752
+ {
753
+ in: "body",
754
+ key: "metadata"
755
+ },
756
+ {
757
+ in: "body",
758
+ key: "channel"
759
+ },
760
+ {
761
+ in: "body",
762
+ key: "to"
763
+ },
764
+ {
765
+ in: "body",
766
+ key: "cc"
767
+ },
768
+ {
769
+ in: "body",
770
+ key: "bcc"
771
+ },
772
+ {
773
+ in: "body",
774
+ key: "from"
775
+ },
776
+ {
777
+ in: "body",
778
+ key: "email"
779
+ }
780
+ ] }]);
750
781
  return (options?.client ?? client).post({
751
782
  security: [{
752
783
  name: "x-api-key",
@@ -2066,7 +2097,7 @@ var Email = class {
2066
2097
  /**
2067
2098
  * Set the default sending domain
2068
2099
  *
2069
- * Marks a verified domain as the organization's default sending domain, atomically clearing any previous default. Omitted-`from` sends resolve through the default domain's default sender.
2100
+ * Marks a verified domain as the organization's default sending domain, atomically clearing any previous default. Provisioning and inbound routing prefer the default domain when several apply. It does not choose the `from` of omitted-`from` sends; those use the organization default sender.
2070
2101
  */
2071
2102
  static setDefaultDomain(parameters, options) {
2072
2103
  const params = buildClientParams([parameters], [{ args: [{
@@ -2084,54 +2115,6 @@ var Email = class {
2084
2115
  });
2085
2116
  }
2086
2117
  /**
2087
- * Clear a domain's default sender
2088
- *
2089
- * Removes the domain's default sender so omitted-`from` sends fall through to the organization default sender.
2090
- */
2091
- static clearDomainDefaultSender(parameters, options) {
2092
- const params = buildClientParams([parameters], [{ args: [{
2093
- in: "path",
2094
- key: "id"
2095
- }] }]);
2096
- return (options?.client ?? client).delete({
2097
- security: [{
2098
- name: "x-api-key",
2099
- type: "apiKey"
2100
- }],
2101
- url: "/v1/email/domains/{id}/default-sender",
2102
- ...options,
2103
- ...params
2104
- });
2105
- }
2106
- /**
2107
- * Set a domain's default sender
2108
- *
2109
- * Sets the default sender used for omitted-`from` sends from this domain. The sender must belong to the domain and be verified and active.
2110
- */
2111
- static setDomainDefaultSender(parameters, options) {
2112
- const params = buildClientParams([parameters], [{ args: [{
2113
- in: "path",
2114
- key: "id"
2115
- }, {
2116
- in: "body",
2117
- key: "senderId"
2118
- }] }]);
2119
- return (options?.client ?? client).put({
2120
- security: [{
2121
- name: "x-api-key",
2122
- type: "apiKey"
2123
- }],
2124
- url: "/v1/email/domains/{id}/default-sender",
2125
- ...options,
2126
- ...params,
2127
- headers: {
2128
- "Content-Type": "application/json",
2129
- ...options?.headers,
2130
- ...params.headers
2131
- }
2132
- });
2133
- }
2134
- /**
2135
2118
  * Update a domain's send-settings config
2136
2119
  *
2137
2120
  * Overrides the domain's open/click tracking, reply-to, unsubscribe-group defaults, and the brand its mail uses for the settings cascade. An omitted field is left unchanged; null clears it back to the organization default. Returns the saved config.
@@ -2493,7 +2476,7 @@ var Email = class {
2493
2476
  /**
2494
2477
  * Set the organization default sender
2495
2478
  *
2496
- * Marks a verified, active sender as the organization default, atomically clearing any previous default. Used for omitted-`from` sends when no default domain sender applies.
2479
+ * Marks a verified, active sender as the organization default, atomically clearing any previous default. Omitted-`from` sends use it when neither the request nor the template names a `from`; with no default, the organization's sole verified sender is used.
2497
2480
  */
2498
2481
  static setDefaultSender(parameters, options) {
2499
2482
  const params = buildClientParams([parameters], [{ args: [{
@@ -4538,7 +4521,491 @@ var Contacts = class {
4538
4521
  name: "x-api-key",
4539
4522
  type: "apiKey"
4540
4523
  }],
4541
- url: "/v1/contacts/bulk-import",
4524
+ url: "/v1/contacts/bulk-import",
4525
+ ...options,
4526
+ ...params,
4527
+ headers: {
4528
+ "Content-Type": "application/json",
4529
+ ...options?.headers,
4530
+ ...params.headers
4531
+ }
4532
+ });
4533
+ }
4534
+ /**
4535
+ * Bulk delete contacts
4536
+ *
4537
+ * Permanently deletes multiple contacts by ID, returning counts of deleted and failed records.
4538
+ */
4539
+ static bulkDelete(parameters, options) {
4540
+ const params = buildClientParams([parameters], [{ args: [{
4541
+ in: "body",
4542
+ key: "ids"
4543
+ }] }]);
4544
+ return (options?.client ?? client).post({
4545
+ security: [{
4546
+ name: "x-api-key",
4547
+ type: "apiKey"
4548
+ }],
4549
+ url: "/v1/contacts/bulk-delete",
4550
+ ...options,
4551
+ ...params,
4552
+ headers: {
4553
+ "Content-Type": "application/json",
4554
+ ...options?.headers,
4555
+ ...params.headers
4556
+ }
4557
+ });
4558
+ }
4559
+ /**
4560
+ * Bulk update contact tags
4561
+ *
4562
+ * Adds, removes, or replaces tags on multiple contacts in one request, returning counts of updated and failed records.
4563
+ */
4564
+ static bulkUpdateTags(parameters, options) {
4565
+ const params = buildClientParams([parameters], [{ args: [
4566
+ {
4567
+ in: "body",
4568
+ key: "ids"
4569
+ },
4570
+ {
4571
+ in: "body",
4572
+ key: "operation"
4573
+ },
4574
+ {
4575
+ in: "body",
4576
+ key: "tags"
4577
+ }
4578
+ ] }]);
4579
+ return (options?.client ?? client).post({
4580
+ security: [{
4581
+ name: "x-api-key",
4582
+ type: "apiKey"
4583
+ }],
4584
+ url: "/v1/contacts/bulk-update-tags",
4585
+ ...options,
4586
+ ...params,
4587
+ headers: {
4588
+ "Content-Type": "application/json",
4589
+ ...options?.headers,
4590
+ ...params.headers
4591
+ }
4592
+ });
4593
+ }
4594
+ /**
4595
+ * Bulk update contact status
4596
+ *
4597
+ * Sets the status on multiple contacts in one request, returning counts of updated and failed records.
4598
+ */
4599
+ static bulkUpdateStatus(parameters, options) {
4600
+ const params = buildClientParams([parameters], [{ args: [{
4601
+ in: "body",
4602
+ key: "ids"
4603
+ }, {
4604
+ in: "body",
4605
+ key: "status"
4606
+ }] }]);
4607
+ return (options?.client ?? client).post({
4608
+ security: [{
4609
+ name: "x-api-key",
4610
+ type: "apiKey"
4611
+ }],
4612
+ url: "/v1/contacts/bulk-update-status",
4613
+ ...options,
4614
+ ...params,
4615
+ headers: {
4616
+ "Content-Type": "application/json",
4617
+ ...options?.headers,
4618
+ ...params.headers
4619
+ }
4620
+ });
4621
+ }
4622
+ /**
4623
+ * Export contacts
4624
+ *
4625
+ * Exports contacts as JSON or CSV, returning the serialized data and a count of exported records.
4626
+ */
4627
+ static export(parameters, options) {
4628
+ const params = buildClientParams([parameters], [{ args: [
4629
+ {
4630
+ in: "body",
4631
+ key: "ids"
4632
+ },
4633
+ {
4634
+ in: "body",
4635
+ key: "format"
4636
+ },
4637
+ {
4638
+ in: "body",
4639
+ key: "filters"
4640
+ },
4641
+ {
4642
+ in: "body",
4643
+ key: "fields"
4644
+ }
4645
+ ] }]);
4646
+ return (options?.client ?? client).post({
4647
+ security: [{
4648
+ name: "x-api-key",
4649
+ type: "apiKey"
4650
+ }],
4651
+ url: "/v1/contacts/export",
4652
+ ...options,
4653
+ ...params,
4654
+ headers: {
4655
+ "Content-Type": "application/json",
4656
+ ...options?.headers,
4657
+ ...params.headers
4658
+ }
4659
+ });
4660
+ }
4661
+ /**
4662
+ * Get contact activity timeline
4663
+ *
4664
+ * Returns a contact's message activity, newest first, optionally filtered by channel. Pass `nextCursor` back as `cursor` for the next page; it is null on the last page.
4665
+ */
4666
+ static getActivityTimeline(parameters, options) {
4667
+ const params = buildClientParams([parameters], [{ args: [
4668
+ {
4669
+ in: "path",
4670
+ key: "id"
4671
+ },
4672
+ {
4673
+ in: "query",
4674
+ key: "limit"
4675
+ },
4676
+ {
4677
+ in: "query",
4678
+ key: "cursor"
4679
+ },
4680
+ {
4681
+ in: "query",
4682
+ key: "channel"
4683
+ }
4684
+ ] }]);
4685
+ return (options?.client ?? client).get({
4686
+ security: [{
4687
+ name: "x-api-key",
4688
+ type: "apiKey"
4689
+ }],
4690
+ url: "/v1/contacts/{id}/activity",
4691
+ ...options,
4692
+ ...params
4693
+ });
4694
+ }
4695
+ /**
4696
+ * List a contact's group memberships
4697
+ *
4698
+ * Returns the contact groups a contact belongs to, most recently joined first. Pass `nextCursor` back as `cursor` for the next page; it is null on the last page.
4699
+ */
4700
+ static getGroupMemberships(parameters, options) {
4701
+ const params = buildClientParams([parameters], [{ args: [
4702
+ {
4703
+ in: "path",
4704
+ key: "id"
4705
+ },
4706
+ {
4707
+ in: "query",
4708
+ key: "limit"
4709
+ },
4710
+ {
4711
+ in: "query",
4712
+ key: "cursor"
4713
+ }
4714
+ ] }]);
4715
+ return (options?.client ?? client).get({
4716
+ security: [{
4717
+ name: "x-api-key",
4718
+ type: "apiKey"
4719
+ }],
4720
+ url: "/v1/contacts/{id}/groups",
4721
+ ...options,
4722
+ ...params
4723
+ });
4724
+ }
4725
+ };
4726
+ var Events = class {
4727
+ /**
4728
+ * Record a contact event
4729
+ *
4730
+ * Records a custom contact event. Identify the contact by exactly one ID, external ID, or email. A missing email or external ID creates a contact; an unknown contact ID returns 404. An organization-scoped idempotency key replays the original event. Event names use letters, digits, underscores, hyphens, and dots, up to 255 characters; contact. and samva. prefixes are reserved. Properties allow at most 50 keys and 32 KiB of UTF-8 JSON. Events are retained for 90 days.
4731
+ */
4732
+ static create(parameters, options) {
4733
+ const params = buildClientParams([parameters], [{ args: [
4734
+ {
4735
+ in: "body",
4736
+ key: "contact"
4737
+ },
4738
+ {
4739
+ in: "body",
4740
+ key: "name"
4741
+ },
4742
+ {
4743
+ in: "body",
4744
+ key: "properties"
4745
+ },
4746
+ {
4747
+ in: "body",
4748
+ key: "occurredAt"
4749
+ },
4750
+ {
4751
+ in: "body",
4752
+ key: "idempotencyKey"
4753
+ }
4754
+ ] }]);
4755
+ return (options?.client ?? client).post({
4756
+ security: [{
4757
+ name: "x-api-key",
4758
+ type: "apiKey"
4759
+ }],
4760
+ url: "/v1/events",
4761
+ ...options,
4762
+ ...params,
4763
+ headers: {
4764
+ "Content-Type": "application/json",
4765
+ ...options?.headers,
4766
+ ...params.headers
4767
+ }
4768
+ });
4769
+ }
4770
+ /**
4771
+ * Record contact events in a batch
4772
+ *
4773
+ * Validates the full request shape, contact references, and event names before processing. A schema failure rejects the entire batch without writes. Between 1 and 100 valid entries are then processed in input order, with independent indexed results for properties limits, contact resolution, and idempotency.
4774
+ */
4775
+ static batch(parameters, options) {
4776
+ const params = buildClientParams([parameters], [{ args: [{
4777
+ in: "body",
4778
+ key: "events"
4779
+ }] }]);
4780
+ return (options?.client ?? client).post({
4781
+ security: [{
4782
+ name: "x-api-key",
4783
+ type: "apiKey"
4784
+ }],
4785
+ url: "/v1/events/batch",
4786
+ ...options,
4787
+ ...params,
4788
+ headers: {
4789
+ "Content-Type": "application/json",
4790
+ ...options?.headers,
4791
+ ...params.headers
4792
+ }
4793
+ });
4794
+ }
4795
+ };
4796
+ var ContactEvents = class {
4797
+ /**
4798
+ * List contact events
4799
+ *
4800
+ * Returns custom and Samva lifecycle events, newest occurrence first, within the 90-day retention window. Pass nextCursor back as cursor for the next page.
4801
+ */
4802
+ static listEvents(parameters, options) {
4803
+ const params = buildClientParams([parameters], [{ args: [
4804
+ {
4805
+ in: "path",
4806
+ key: "id"
4807
+ },
4808
+ {
4809
+ in: "query",
4810
+ key: "limit"
4811
+ },
4812
+ {
4813
+ in: "query",
4814
+ key: "cursor"
4815
+ }
4816
+ ] }]);
4817
+ return (options?.client ?? client).get({
4818
+ security: [{
4819
+ name: "x-api-key",
4820
+ type: "apiKey"
4821
+ }],
4822
+ url: "/v1/contacts/{id}/events",
4823
+ ...options,
4824
+ ...params
4825
+ });
4826
+ }
4827
+ };
4828
+ var Journeys = class {
4829
+ /**
4830
+ * List journeys
4831
+ *
4832
+ * Returns the organization's journeys, newest first, optionally filtered by status. Pass nextCursor back as cursor for the next page.
4833
+ */
4834
+ static list(parameters, options) {
4835
+ const params = buildClientParams([parameters], [{ args: [
4836
+ {
4837
+ in: "query",
4838
+ key: "status"
4839
+ },
4840
+ {
4841
+ in: "query",
4842
+ key: "limit"
4843
+ },
4844
+ {
4845
+ in: "query",
4846
+ key: "cursor"
4847
+ }
4848
+ ] }]);
4849
+ return (options?.client ?? client).get({
4850
+ security: [{
4851
+ name: "x-api-key",
4852
+ type: "apiKey"
4853
+ }],
4854
+ url: "/v1/journeys",
4855
+ ...options,
4856
+ ...params
4857
+ });
4858
+ }
4859
+ /**
4860
+ * Create a journey
4861
+ *
4862
+ * Creates a draft journey from a definition: a trigger, a root node, and a graph of at most 200 nodes that is acyclic and fully reachable. Templates, senders, and groups the definition names must belong to the organization. Requires a plan that includes journeys.
4863
+ */
4864
+ static create(parameters, options) {
4865
+ const params = buildClientParams([parameters], [{ args: [{
4866
+ in: "body",
4867
+ key: "name"
4868
+ }, {
4869
+ in: "body",
4870
+ key: "definition"
4871
+ }] }]);
4872
+ return (options?.client ?? client).post({
4873
+ security: [{
4874
+ name: "x-api-key",
4875
+ type: "apiKey"
4876
+ }],
4877
+ url: "/v1/journeys",
4878
+ ...options,
4879
+ ...params,
4880
+ headers: {
4881
+ "Content-Type": "application/json",
4882
+ ...options?.headers,
4883
+ ...params.headers
4884
+ }
4885
+ });
4886
+ }
4887
+ /**
4888
+ * Delete a journey
4889
+ *
4890
+ * Deletes a journey that was never published or is archived, with its versions and runs. An active or paused journey returns 409; archive it first.
4891
+ */
4892
+ static remove(parameters, options) {
4893
+ const params = buildClientParams([parameters], [{ args: [{
4894
+ in: "path",
4895
+ key: "id"
4896
+ }] }]);
4897
+ return (options?.client ?? client).delete({
4898
+ security: [{
4899
+ name: "x-api-key",
4900
+ type: "apiKey"
4901
+ }],
4902
+ url: "/v1/journeys/{id}",
4903
+ ...options,
4904
+ ...params
4905
+ });
4906
+ }
4907
+ /**
4908
+ * Get a journey
4909
+ *
4910
+ * Returns a journey with its draft definition, its current revision, and its newest published version number.
4911
+ */
4912
+ static get(parameters, options) {
4913
+ const params = buildClientParams([parameters], [{ args: [{
4914
+ in: "path",
4915
+ key: "id"
4916
+ }] }]);
4917
+ return (options?.client ?? client).get({
4918
+ security: [{
4919
+ name: "x-api-key",
4920
+ type: "apiKey"
4921
+ }],
4922
+ url: "/v1/journeys/{id}",
4923
+ ...options,
4924
+ ...params
4925
+ });
4926
+ }
4927
+ /**
4928
+ * Rename a journey
4929
+ *
4930
+ * Renames a journey.
4931
+ */
4932
+ static update(parameters, options) {
4933
+ const params = buildClientParams([parameters], [{ args: [{
4934
+ in: "path",
4935
+ key: "id"
4936
+ }, {
4937
+ in: "body",
4938
+ key: "name"
4939
+ }] }]);
4940
+ return (options?.client ?? client).patch({
4941
+ security: [{
4942
+ name: "x-api-key",
4943
+ type: "apiKey"
4944
+ }],
4945
+ url: "/v1/journeys/{id}",
4946
+ ...options,
4947
+ ...params,
4948
+ headers: {
4949
+ "Content-Type": "application/json",
4950
+ ...options?.headers,
4951
+ ...params.headers
4952
+ }
4953
+ });
4954
+ }
4955
+ /**
4956
+ * Replace a journey draft
4957
+ *
4958
+ * Replaces the draft definition and returns the journey with a new revision. The request names the revision it read; a stale revision returns 409. Published versions and the runs on them do not change.
4959
+ */
4960
+ static replaceDraft(parameters, options) {
4961
+ const params = buildClientParams([parameters], [{ args: [
4962
+ {
4963
+ in: "path",
4964
+ key: "id"
4965
+ },
4966
+ {
4967
+ in: "body",
4968
+ key: "revision"
4969
+ },
4970
+ {
4971
+ in: "body",
4972
+ key: "definition"
4973
+ }
4974
+ ] }]);
4975
+ return (options?.client ?? client).put({
4976
+ security: [{
4977
+ name: "x-api-key",
4978
+ type: "apiKey"
4979
+ }],
4980
+ url: "/v1/journeys/{id}/draft",
4981
+ ...options,
4982
+ ...params,
4983
+ headers: {
4984
+ "Content-Type": "application/json",
4985
+ ...options?.headers,
4986
+ ...params.headers
4987
+ }
4988
+ });
4989
+ }
4990
+ /**
4991
+ * Publish a journey
4992
+ *
4993
+ * Publishes the draft as the next immutable version; new runs start on it and existing runs stay on the version they entered. The request names the revision it read; a stale revision returns 409. Publishing a draft identical to the newest version changes nothing. A draft journey becomes active; a paused journey stays paused. A published version sends and updates tags as its publisher, so a draft with a send_email node requires a key that can send email and one with an update_tags node requires contacts:update; without them the request returns 403.
4994
+ */
4995
+ static publish(parameters, options) {
4996
+ const params = buildClientParams([parameters], [{ args: [{
4997
+ in: "path",
4998
+ key: "id"
4999
+ }, {
5000
+ in: "body",
5001
+ key: "revision"
5002
+ }] }]);
5003
+ return (options?.client ?? client).post({
5004
+ security: [{
5005
+ name: "x-api-key",
5006
+ type: "apiKey"
5007
+ }],
5008
+ url: "/v1/journeys/{id}/publish",
4542
5009
  ...options,
4543
5010
  ...params,
4544
5011
  headers: {
@@ -4549,138 +5016,117 @@ var Contacts = class {
4549
5016
  });
4550
5017
  }
4551
5018
  /**
4552
- * Bulk delete contacts
5019
+ * Pause a journey
4553
5020
  *
4554
- * Permanently deletes multiple contacts by ID, returning counts of deleted and failed records.
5021
+ * Stops new enrollment and holds every live run before its next node, including a run whose wait ends while the journey is paused. Held runs report status paused.
4555
5022
  */
4556
- static bulkDelete(parameters, options) {
5023
+ static pause(parameters, options) {
4557
5024
  const params = buildClientParams([parameters], [{ args: [{
4558
- in: "body",
4559
- key: "ids"
5025
+ in: "path",
5026
+ key: "id"
4560
5027
  }] }]);
4561
5028
  return (options?.client ?? client).post({
4562
5029
  security: [{
4563
5030
  name: "x-api-key",
4564
5031
  type: "apiKey"
4565
5032
  }],
4566
- url: "/v1/contacts/bulk-delete",
5033
+ url: "/v1/journeys/{id}/pause",
4567
5034
  ...options,
4568
- ...params,
4569
- headers: {
4570
- "Content-Type": "application/json",
4571
- ...options?.headers,
4572
- ...params.headers
4573
- }
5035
+ ...params
4574
5036
  });
4575
5037
  }
4576
5038
  /**
4577
- * Bulk update contact tags
5039
+ * Resume a journey
4578
5040
  *
4579
- * Adds, removes, or replaces tags on multiple contacts in one request, returning counts of updated and failed records.
5041
+ * Resumes enrollment and continues the runs the pause held. Requires a plan that includes journeys.
4580
5042
  */
4581
- static bulkUpdateTags(parameters, options) {
4582
- const params = buildClientParams([parameters], [{ args: [
4583
- {
4584
- in: "body",
4585
- key: "ids"
4586
- },
4587
- {
4588
- in: "body",
4589
- key: "operation"
4590
- },
4591
- {
4592
- in: "body",
4593
- key: "tags"
4594
- }
4595
- ] }]);
5043
+ static resume(parameters, options) {
5044
+ const params = buildClientParams([parameters], [{ args: [{
5045
+ in: "path",
5046
+ key: "id"
5047
+ }] }]);
4596
5048
  return (options?.client ?? client).post({
4597
5049
  security: [{
4598
5050
  name: "x-api-key",
4599
5051
  type: "apiKey"
4600
5052
  }],
4601
- url: "/v1/contacts/bulk-update-tags",
5053
+ url: "/v1/journeys/{id}/resume",
4602
5054
  ...options,
4603
- ...params,
4604
- headers: {
4605
- "Content-Type": "application/json",
4606
- ...options?.headers,
4607
- ...params.headers
4608
- }
5055
+ ...params
4609
5056
  });
4610
5057
  }
4611
5058
  /**
4612
- * Bulk update contact status
5059
+ * Archive a journey
4613
5060
  *
4614
- * Sets the status on multiple contacts in one request, returning counts of updated and failed records.
5061
+ * Stops new enrollment for good and exits every live run with exit reason archived. An archived journey cannot be edited, published, or resumed.
4615
5062
  */
4616
- static bulkUpdateStatus(parameters, options) {
5063
+ static archive(parameters, options) {
4617
5064
  const params = buildClientParams([parameters], [{ args: [{
4618
- in: "body",
4619
- key: "ids"
4620
- }, {
4621
- in: "body",
4622
- key: "status"
5065
+ in: "path",
5066
+ key: "id"
4623
5067
  }] }]);
4624
5068
  return (options?.client ?? client).post({
4625
5069
  security: [{
4626
5070
  name: "x-api-key",
4627
5071
  type: "apiKey"
4628
5072
  }],
4629
- url: "/v1/contacts/bulk-update-status",
5073
+ url: "/v1/journeys/{id}/archive",
4630
5074
  ...options,
4631
- ...params,
4632
- headers: {
4633
- "Content-Type": "application/json",
4634
- ...options?.headers,
4635
- ...params.headers
4636
- }
5075
+ ...params
4637
5076
  });
4638
5077
  }
4639
5078
  /**
4640
- * Export contacts
5079
+ * Get a published journey version
4641
5080
  *
4642
- * Exports contacts as JSON or CSV, returning the serialized data and a count of exported records.
5081
+ * Returns the immutable definition of one published version.
4643
5082
  */
4644
- static export(parameters, options) {
4645
- const params = buildClientParams([parameters], [{ args: [
4646
- {
4647
- in: "body",
4648
- key: "ids"
4649
- },
4650
- {
4651
- in: "body",
4652
- key: "format"
4653
- },
4654
- {
4655
- in: "body",
4656
- key: "filters"
4657
- },
4658
- {
4659
- in: "body",
4660
- key: "fields"
4661
- }
4662
- ] }]);
4663
- return (options?.client ?? client).post({
5083
+ static getVersion(parameters, options) {
5084
+ const params = buildClientParams([parameters], [{ args: [{
5085
+ in: "path",
5086
+ key: "id"
5087
+ }, {
5088
+ in: "path",
5089
+ key: "version"
5090
+ }] }]);
5091
+ return (options?.client ?? client).get({
4664
5092
  security: [{
4665
5093
  name: "x-api-key",
4666
5094
  type: "apiKey"
4667
5095
  }],
4668
- url: "/v1/contacts/export",
5096
+ url: "/v1/journeys/{id}/versions/{version}",
4669
5097
  ...options,
4670
- ...params,
4671
- headers: {
4672
- "Content-Type": "application/json",
4673
- ...options?.headers,
4674
- ...params.headers
4675
- }
5098
+ ...params
4676
5099
  });
4677
5100
  }
4678
5101
  /**
4679
- * Get contact activity timeline
5102
+ * Get journey run counts
4680
5103
  *
4681
- * Returns a contact's message activity, newest first, optionally filtered by channel. Pass `nextCursor` back as `cursor` for the next page; it is null on the last page.
5104
+ * Counts one published version's runs by status, and per node the live runs there now and the runs that have entered it. Defaults to the newest published version.
4682
5105
  */
4683
- static getActivityTimeline(parameters, options) {
5106
+ static stats(parameters, options) {
5107
+ const params = buildClientParams([parameters], [{ args: [{
5108
+ in: "path",
5109
+ key: "id"
5110
+ }, {
5111
+ in: "query",
5112
+ key: "version"
5113
+ }] }]);
5114
+ return (options?.client ?? client).get({
5115
+ security: [{
5116
+ name: "x-api-key",
5117
+ type: "apiKey"
5118
+ }],
5119
+ url: "/v1/journeys/{id}/stats",
5120
+ ...options,
5121
+ ...params
5122
+ });
5123
+ }
5124
+ /**
5125
+ * List journey runs
5126
+ *
5127
+ * Returns a journey's runs, newest first, optionally filtered by status or contact. Pass nextCursor back as cursor for the next page.
5128
+ */
5129
+ static listRuns(parameters, options) {
4684
5130
  const params = buildClientParams([parameters], [{ args: [
4685
5131
  {
4686
5132
  in: "path",
@@ -4688,15 +5134,19 @@ var Contacts = class {
4688
5134
  },
4689
5135
  {
4690
5136
  in: "query",
4691
- key: "limit"
5137
+ key: "status"
4692
5138
  },
4693
5139
  {
4694
5140
  in: "query",
4695
- key: "cursor"
5141
+ key: "contactId"
4696
5142
  },
4697
5143
  {
4698
5144
  in: "query",
4699
- key: "channel"
5145
+ key: "limit"
5146
+ },
5147
+ {
5148
+ in: "query",
5149
+ key: "cursor"
4700
5150
  }
4701
5151
  ] }]);
4702
5152
  return (options?.client ?? client).get({
@@ -4704,37 +5154,30 @@ var Contacts = class {
4704
5154
  name: "x-api-key",
4705
5155
  type: "apiKey"
4706
5156
  }],
4707
- url: "/v1/contacts/{id}/activity",
5157
+ url: "/v1/journeys/{id}/runs",
4708
5158
  ...options,
4709
5159
  ...params
4710
5160
  });
4711
5161
  }
4712
5162
  /**
4713
- * List a contact's group memberships
5163
+ * Get a journey run
4714
5164
  *
4715
- * Returns the contact groups a contact belongs to, most recently joined first. Pass `nextCursor` back as `cursor` for the next page; it is null on the last page.
5165
+ * Returns one run with every node it entered, in order: when it entered and left, how it left, and the message a send node created.
4716
5166
  */
4717
- static getGroupMemberships(parameters, options) {
4718
- const params = buildClientParams([parameters], [{ args: [
4719
- {
4720
- in: "path",
4721
- key: "id"
4722
- },
4723
- {
4724
- in: "query",
4725
- key: "limit"
4726
- },
4727
- {
4728
- in: "query",
4729
- key: "cursor"
4730
- }
4731
- ] }]);
5167
+ static getRun(parameters, options) {
5168
+ const params = buildClientParams([parameters], [{ args: [{
5169
+ in: "path",
5170
+ key: "id"
5171
+ }, {
5172
+ in: "path",
5173
+ key: "runId"
5174
+ }] }]);
4732
5175
  return (options?.client ?? client).get({
4733
5176
  security: [{
4734
5177
  name: "x-api-key",
4735
5178
  type: "apiKey"
4736
5179
  }],
4737
- url: "/v1/contacts/{id}/groups",
5180
+ url: "/v1/journeys/{id}/runs/{runId}",
4738
5181
  ...options,
4739
5182
  ...params
4740
5183
  });
@@ -7667,11 +8110,28 @@ var Feedback = class {
7667
8110
  });
7668
8111
  }
7669
8112
  };
8113
+ var Whoami = class {
8114
+ /**
8115
+ * Get the calling credential
8116
+ *
8117
+ * Returns the organization the request acts in and the credential it presents: an API key with its name, prefix, and access, or a signed-in user with their role. Any valid credential may call it, whatever its grants.
8118
+ */
8119
+ static get(options) {
8120
+ return (options?.client ?? client).get({
8121
+ security: [{
8122
+ name: "x-api-key",
8123
+ type: "apiKey"
8124
+ }],
8125
+ url: "/v1/whoami",
8126
+ ...options
8127
+ });
8128
+ }
8129
+ };
7670
8130
  var Mailboxes = class {
7671
8131
  /**
7672
8132
  * List mailboxes
7673
8133
  *
7674
- * Returns summaries of the mailboxes the caller can read, newest first, filterable by creation time (`after`, `before`). Pass `nextCursor` back as `cursor` for the next page; it is null on the last page. Read a mailbox's addresses and metadata with `GET /v1/mailboxes/{id}`.
8134
+ * Returns summaries of the mailboxes the caller can read, newest first, filterable by creation time (`after`, `before`). Pass `nextCursor` back as `cursor` for the next page; it is null on the last page. Read a mailbox's endpoints and metadata with `GET /v1/mailboxes/{id}`.
7675
8135
  */
7676
8136
  static list(parameters, options) {
7677
8137
  const params = buildClientParams([parameters], [{ args: [
@@ -7705,7 +8165,7 @@ var Mailboxes = class {
7705
8165
  /**
7706
8166
  * Create a mailbox
7707
8167
  *
7708
- * Creates a mailbox with one address and returns it with status 201; the caller gets an admin grant on it. The address must be under the organization's Samva-hosted mail domain or a verified domain with receiving enabled, and the mailbox sends from it. The slug defaults to the address's local part. Pass `slug` when that is taken or not a valid slug. The mailbox receives mail from now on; mail that arrived earlier is not added to it. Conflicts if the address or slug is already in use. Returns 402 when the organization is at its plan's mailbox allowance or at its mailbox storage allowance; incoming mail is still received past the storage allowance.
8168
+ * Creates a mailbox with one endpoint and returns it with status 201; the caller gets an admin grant on it. Email is the channel a mailbox endpoint uses today; another channel is refused (422). An email endpoint's address must be under the organization's Samva-hosted mail domain or a verified domain with receiving enabled, and the mailbox sends from it. The slug defaults to the address's local part. Pass `slug` when that is taken or not a valid slug. The mailbox receives mail from now on; mail that arrived earlier is not added to it. Conflicts if the address or slug is already in use. Returns 402 when the organization is at its plan's mailbox allowance or at its mailbox storage allowance; incoming mail is still received past the storage allowance.
7709
8169
  */
7710
8170
  static create(parameters, options) {
7711
8171
  const params = buildClientParams([parameters], [{ args: [
@@ -7715,7 +8175,7 @@ var Mailboxes = class {
7715
8175
  },
7716
8176
  {
7717
8177
  in: "body",
7718
- key: "address"
8178
+ key: "endpoint"
7719
8179
  },
7720
8180
  {
7721
8181
  in: "body",
@@ -7748,7 +8208,7 @@ var Mailboxes = class {
7748
8208
  /**
7749
8209
  * Delete a mailbox
7750
8210
  *
7751
- * Deletes a mailbox with its addresses, threads, drafts, and history. The messages it received stay with the organization. The mailbox leaves every API key scope and webhook endpoint filter that named it; a key or endpoint left with no mailbox is disabled.
8211
+ * Deletes a mailbox with its endpoints, threads, drafts, and history. The messages it received stay with the organization. The mailbox leaves every API key scope and webhook endpoint filter that named it; a key or endpoint left with no mailbox is disabled.
7752
8212
  */
7753
8213
  static remove(parameters, options) {
7754
8214
  const params = buildClientParams([parameters], [{ args: [{
@@ -7768,7 +8228,7 @@ var Mailboxes = class {
7768
8228
  /**
7769
8229
  * Get a mailbox
7770
8230
  *
7771
- * Returns a mailbox with its addresses, metadata, and the identity it sends from. Its grants are `GET /v1/mailboxes/{id}/grants` and its send policies `GET /v1/mailboxes/{id}/policies`.
8231
+ * Returns a mailbox with its endpoints and metadata; each endpoint says whether it is the mailbox's default on its channel. Its grants are `GET /v1/mailboxes/{id}/grants` and its send policies `GET /v1/mailboxes/{id}/policies`.
7772
8232
  */
7773
8233
  static get(parameters, options) {
7774
8234
  const params = buildClientParams([parameters], [{ args: [{
@@ -7788,7 +8248,7 @@ var Mailboxes = class {
7788
8248
  /**
7789
8249
  * Update a mailbox
7790
8250
  *
7791
- * Updates the fields you name and keeps the rest. `metadata` merges into the stored metadata by key, and a `null` value deletes that key. `defaultFrom` must be one of the mailbox's addresses.
8251
+ * Updates the fields you name and keeps the rest. `metadata` merges into the stored metadata by key, and a `null` value deletes that key. Change an endpoint's sender name or default with `PATCH /v1/mailboxes/{id}/endpoints/{endpointId}`.
7792
8252
  */
7793
8253
  static update(parameters, options) {
7794
8254
  const params = buildClientParams([parameters], [{ args: [
@@ -7803,10 +8263,6 @@ var Mailboxes = class {
7803
8263
  {
7804
8264
  in: "body",
7805
8265
  key: "metadata"
7806
- },
7807
- {
7808
- in: "body",
7809
- key: "defaultFrom"
7810
8266
  }
7811
8267
  ] }]);
7812
8268
  return (options?.client ?? client).patch({
@@ -7825,16 +8281,20 @@ var Mailboxes = class {
7825
8281
  });
7826
8282
  }
7827
8283
  /**
7828
- * Add an address to a mailbox
8284
+ * Add an endpoint to a mailbox
7829
8285
  *
7830
- * Adds an address to a mailbox and returns the mailbox with status 201. The address follows the same rules as the address of a new mailbox: it must be under the organization's Samva-hosted mail domain or a verified domain with receiving enabled, and no mailbox may already hold it (409). Mail sent to it reaches the mailbox from now on; the mailbox keeps sending from its current default address until you change `defaultFrom`.
8286
+ * Adds an endpoint to a mailbox and returns the mailbox with status 201. It follows the same rules as the endpoint of a new mailbox: email is the channel a mailbox endpoint uses today (422 otherwise), the address must be under the organization's Samva-hosted mail domain or a verified domain with receiving enabled, and no mailbox may already hold it (409). Messages sent to it reach the mailbox from now on. It becomes the default on its channel only when the mailbox has no endpoint there yet.
7831
8287
  */
7832
- static createAddress(parameters, options) {
8288
+ static createEndpoint(parameters, options) {
7833
8289
  const params = buildClientParams([parameters], [{ args: [
7834
8290
  {
7835
8291
  in: "path",
7836
8292
  key: "id"
7837
8293
  },
8294
+ {
8295
+ in: "body",
8296
+ key: "channel"
8297
+ },
7838
8298
  {
7839
8299
  in: "body",
7840
8300
  key: "address"
@@ -7849,7 +8309,7 @@ var Mailboxes = class {
7849
8309
  name: "x-api-key",
7850
8310
  type: "apiKey"
7851
8311
  }],
7852
- url: "/v1/mailboxes/{id}/addresses",
8312
+ url: "/v1/mailboxes/{id}/endpoints",
7853
8313
  ...options,
7854
8314
  ...params,
7855
8315
  headers: {
@@ -7860,29 +8320,68 @@ var Mailboxes = class {
7860
8320
  });
7861
8321
  }
7862
8322
  /**
7863
- * Remove an address from a mailbox
8323
+ * Remove an endpoint from a mailbox
7864
8324
  *
7865
- * Removes an address from a mailbox and returns the mailbox. Mail sent to the address stops reaching the mailbox; its existing threads and messages stay. A mailbox keeps at least one address, so removing the last one is refused (422). When the removed address was the default `From`, the mailbox sends from its oldest remaining address, without a sender name of its own.
8325
+ * Removes an endpoint from a mailbox and returns the mailbox. Messages sent to it stop reaching the mailbox; its existing threads and messages stay, and replies in them leave from the mailbox's default endpoint on their channel. A mailbox keeps at least one endpoint, so removing the last one is refused (422). When the removed endpoint was the default on its channel, the oldest remaining endpoint there becomes the default.
7866
8326
  */
7867
- static removeAddress(parameters, options) {
8327
+ static removeEndpoint(parameters, options) {
7868
8328
  const params = buildClientParams([parameters], [{ args: [{
7869
8329
  in: "path",
7870
8330
  key: "id"
7871
8331
  }, {
7872
8332
  in: "path",
7873
- key: "addressId"
8333
+ key: "endpointId"
7874
8334
  }] }]);
7875
8335
  return (options?.client ?? client).delete({
7876
8336
  security: [{
7877
8337
  name: "x-api-key",
7878
8338
  type: "apiKey"
7879
8339
  }],
7880
- url: "/v1/mailboxes/{id}/addresses/{addressId}",
8340
+ url: "/v1/mailboxes/{id}/endpoints/{endpointId}",
7881
8341
  ...options,
7882
8342
  ...params
7883
8343
  });
7884
8344
  }
7885
8345
  /**
8346
+ * Update a mailbox endpoint
8347
+ *
8348
+ * Updates the fields you name and keeps the rest, and returns the mailbox. `displayName` is the name messages sent from the endpoint carry; null falls back to the mailbox's name. `default: true` makes the endpoint the one the mailbox starts new conversations from on its channel; replies always leave from the endpoint of their thread.
8349
+ */
8350
+ static updateEndpoint(parameters, options) {
8351
+ const params = buildClientParams([parameters], [{ args: [
8352
+ {
8353
+ in: "path",
8354
+ key: "id"
8355
+ },
8356
+ {
8357
+ in: "path",
8358
+ key: "endpointId"
8359
+ },
8360
+ {
8361
+ in: "body",
8362
+ key: "displayName"
8363
+ },
8364
+ {
8365
+ in: "body",
8366
+ key: "default"
8367
+ }
8368
+ ] }]);
8369
+ return (options?.client ?? client).patch({
8370
+ security: [{
8371
+ name: "x-api-key",
8372
+ type: "apiKey"
8373
+ }],
8374
+ url: "/v1/mailboxes/{id}/endpoints/{endpointId}",
8375
+ ...options,
8376
+ ...params,
8377
+ headers: {
8378
+ "Content-Type": "application/json",
8379
+ ...options?.headers,
8380
+ ...params.headers
8381
+ }
8382
+ });
8383
+ }
8384
+ /**
7886
8385
  * Pause a mailbox
7887
8386
  *
7888
8387
  * Stops the mailbox sending and stops new inbound mail reaching it. Mail that arrives while it is paused is not added when it resumes. Resume it with `POST /v1/mailboxes/{id}/resume`.
@@ -8811,7 +9310,7 @@ var Mailboxes = class {
8811
9310
  /**
8812
9311
  * Send a new message
8813
9312
  *
8814
- * Records a send action and returns 202 with its current receipt and a Location for action status. An installation, grant, or policy may require approval; otherwise the send is queued. Observe the same action through acceptance and mailbox completion. A policy refusal returns 403 with the recorded receipt.
9313
+ * Starts a new conversation from the mailbox's default endpoint on the channel the body names (email when omitted); a channel the mailbox cannot send on yet is refused (422). Records a send action and returns 202 with its current receipt and a Location for action status. An installation, grant, or policy may require approval; otherwise the send is queued. Observe the same action through acceptance and mailbox completion. A policy refusal returns 403 with the recorded receipt.
8815
9314
  */
8816
9315
  static sendMessage(parameters, options) {
8817
9316
  const params = buildClientParams([parameters], [{ args: [
@@ -8823,6 +9322,10 @@ var Mailboxes = class {
8823
9322
  in: "path",
8824
9323
  key: "id"
8825
9324
  },
9325
+ {
9326
+ in: "body",
9327
+ key: "channel"
9328
+ },
8826
9329
  {
8827
9330
  in: "body",
8828
9331
  key: "to"
@@ -8874,7 +9377,7 @@ var Mailboxes = class {
8874
9377
  /**
8875
9378
  * Get a mailbox message
8876
9379
  *
8877
- * Returns a message in the mailbox with its text, sanitized HTML, `replyText` (what the sender wrote, without quoted history), authentication verdicts, and attachments.
9380
+ * Returns a message in the mailbox, discriminated by `channel`. An email has its text, sanitized HTML, `replyText` (what the sender wrote, without quoted history), authentication verdicts, and attachments.
8878
9381
  */
8879
9382
  static getMessage(parameters, options) {
8880
9383
  const params = buildClientParams([parameters], [{ args: [{
@@ -8980,7 +9483,7 @@ var Mailboxes = class {
8980
9483
  /**
8981
9484
  * Reply to a message
8982
9485
  *
8983
- * Replies to the message's Reply-To address, or its sender, in the same thread. The server sets the recipients, subject, and threading headers.
9486
+ * Replies to the message's Reply-To address, or its sender, in the same thread and from the thread's endpoint. The server sets the recipients, subject, and threading headers. The body's `channel` must match the thread's.
8984
9487
  */
8985
9488
  static reply(parameters, options) {
8986
9489
  const params = buildClientParams([parameters], [{ args: [
@@ -8996,6 +9499,10 @@ var Mailboxes = class {
8996
9499
  in: "path",
8997
9500
  key: "messageId"
8998
9501
  },
9502
+ {
9503
+ in: "body",
9504
+ key: "channel"
9505
+ },
8999
9506
  {
9000
9507
  in: "body",
9001
9508
  key: "cc"
@@ -9035,7 +9542,7 @@ var Mailboxes = class {
9035
9542
  /**
9036
9543
  * Reply to all recipients of a message
9037
9544
  *
9038
- * Replies to the sender and every other recipient of the message except the mailbox itself, in the same thread.
9545
+ * Replies to the sender and every other recipient of the message except the mailbox itself, in the same thread and from the thread's endpoint.
9039
9546
  */
9040
9547
  static replyAll(parameters, options) {
9041
9548
  const params = buildClientParams([parameters], [{ args: [
@@ -9051,6 +9558,10 @@ var Mailboxes = class {
9051
9558
  in: "path",
9052
9559
  key: "messageId"
9053
9560
  },
9561
+ {
9562
+ in: "body",
9563
+ key: "channel"
9564
+ },
9054
9565
  {
9055
9566
  in: "body",
9056
9567
  key: "cc"
@@ -9090,7 +9601,7 @@ var Mailboxes = class {
9090
9601
  /**
9091
9602
  * Forward a message
9092
9603
  *
9093
- * Forwards the message to new recipients as a new conversation, with the original quoted below the caller's text and its attachments attached ahead of any the caller adds. The combined attachments must fit the email attachment limits.
9604
+ * Forwards an email to new recipients as a new conversation from the thread's endpoint, with the original quoted below the caller's text and its attachments attached ahead of any the caller adds. The combined attachments must fit the email attachment limits.
9094
9605
  */
9095
9606
  static forward(parameters, options) {
9096
9607
  const params = buildClientParams([parameters], [{ args: [
@@ -9267,7 +9778,7 @@ var Mailboxes = class {
9267
9778
  /**
9268
9779
  * Create a draft
9269
9780
  *
9270
- * Saves a draft of a new message, or of a reply when `inReplyToMessageId` names a message in the mailbox, and returns it with status 201. Send it with `POST /v1/mailboxes/{id}/drafts/{draftId}/send`.
9781
+ * Saves a draft of a new message, or of a reply when `inReplyToMessageId` names a message in the mailbox, and returns it with status 201. Email drafts are the kind a mailbox saves today; another channel is refused (422). Send it with `POST /v1/mailboxes/{id}/drafts/{draftId}/send`.
9271
9782
  */
9272
9783
  static createDraft(parameters, options) {
9273
9784
  const params = buildClientParams([parameters], [{ args: [
@@ -9275,6 +9786,14 @@ var Mailboxes = class {
9275
9786
  in: "path",
9276
9787
  key: "id"
9277
9788
  },
9789
+ {
9790
+ in: "body",
9791
+ key: "channel"
9792
+ },
9793
+ {
9794
+ in: "body",
9795
+ key: "endpointId"
9796
+ },
9278
9797
  {
9279
9798
  in: "body",
9280
9799
  key: "to"
@@ -9642,7 +10161,7 @@ var Mailboxes = class {
9642
10161
  /**
9643
10162
  * List mailbox events
9644
10163
  *
9645
- * Returns mailbox audit records, newest first, filterable by when they happened (`after`, `before`). Audit event types: `mailbox.created`, `address.attached`, `address.detached`, `email.received`, `email.released`, `email.sent`, `thread.created`, `action.proposed`, `action.policy_decided`, `action.approval_requested`, `action.approval_resolved`, `action.accepted`, `action.executed`, `action.failed`. Thread and draft changes have no dedicated audit event types. Pass `nextCursor` back as `cursor` for the next page; it is null on the last page.
10164
+ * Returns mailbox audit records, newest first, filterable by when they happened (`after`, `before`). Audit event types: `mailbox.created`, `endpoint.attached`, `endpoint.detached`, `message.received`, `message.released`, `message.sent`, `thread.created`, `action.proposed`, `action.policy_decided`, `action.approval_requested`, `action.approval_resolved`, `action.accepted`, `action.executed`, `action.failed`. Thread and draft changes have no dedicated audit event types. Pass `nextCursor` back as `cursor` for the next page; it is null on the last page.
9646
10165
  */
9647
10166
  static listEvents(parameters, options) {
9648
10167
  const params = buildClientParams([parameters], [{ args: [
@@ -10323,6 +10842,13 @@ var InternalError = class extends SamvaApiError {
10323
10842
  Object.assign(this, payload);
10324
10843
  }
10325
10844
  };
10845
+ var MailboxChannelUnsupportedError = class extends SamvaApiError {
10846
+ _tag = "MailboxChannelUnsupportedError";
10847
+ constructor(payload, context = {}) {
10848
+ super(messageOf("MailboxChannelUnsupportedError", payload), context);
10849
+ Object.assign(this, payload);
10850
+ }
10851
+ };
10326
10852
  var MailboxSendConflictError = class extends SamvaApiError {
10327
10853
  _tag = "MailboxSendConflictError";
10328
10854
  constructor(payload, context = {}) {
@@ -10399,6 +10925,7 @@ const constructors = {
10399
10925
  ForbiddenError,
10400
10926
  GatewayTimeoutError,
10401
10927
  InternalError,
10928
+ MailboxChannelUnsupportedError,
10402
10929
  MailboxSendConflictError,
10403
10930
  MailboxSendRefusedError,
10404
10931
  OnboardingReviewRequiredError,
@@ -10609,6 +11136,23 @@ const payloadSchemas = {
10609
11136
  "x-category": ["transient"],
10610
11137
  "x-retryable": true
10611
11138
  },
11139
+ MailboxChannelUnsupportedError: {
11140
+ type: "object",
11141
+ properties: {
11142
+ _tag: {
11143
+ type: "string",
11144
+ enum: ["MailboxChannelUnsupportedError"]
11145
+ },
11146
+ message: { type: "string" },
11147
+ channel: { type: "string" }
11148
+ },
11149
+ required: [
11150
+ "_tag",
11151
+ "message",
11152
+ "channel"
11153
+ ],
11154
+ additionalProperties: false
11155
+ },
10612
11156
  MailboxSendConflictError: {
10613
11157
  type: "object",
10614
11158
  properties: {
@@ -11625,7 +12169,7 @@ function createPromiseMessagesTransport(clientInstance) {
11625
12169
  const { idempotencyKey, requestOptions } = resolveIdempotencyKey(options);
11626
12170
  return sendWithUploads(clientInstance, buildMessagesSendPayload(input), requestOptions, (payload) => Messages.send({
11627
12171
  "idempotency-key": idempotencyKey,
11628
- emailSendMessagePayload: payload
12172
+ ...payload
11629
12173
  }, {
11630
12174
  ...requestOptions,
11631
12175
  client: clientInstance
@@ -11652,7 +12196,7 @@ function createPromiseEmailTransport(clientInstance) {
11652
12196
  const { idempotencyKey, requestOptions } = resolveIdempotencyKey(options);
11653
12197
  return sendWithUploads(clientInstance, buildEmailSendPayload(input), requestOptions, (payload) => Messages.send({
11654
12198
  "idempotency-key": idempotencyKey,
11655
- emailSendMessagePayload: payload
12199
+ ...payload
11656
12200
  }, {
11657
12201
  ...requestOptions,
11658
12202
  client: clientInstance
@@ -11734,7 +12278,8 @@ function createClient(config) {
11734
12278
  email: createBoundService(Email, clientInstance),
11735
12279
  media: createBoundService(Media, clientInstance),
11736
12280
  templates: createPromiseTemplatesTransport(clientInstance),
11737
- contacts: createBoundService(Contacts, clientInstance),
12281
+ contacts: Object.assign(createBoundService(Contacts, clientInstance), createBoundService(ContactEvents, clientInstance)),
12282
+ events: createBoundService(Events, clientInstance),
11738
12283
  conversations: createBoundService(Conversations, clientInstance),
11739
12284
  webhooks: createBoundService(Webhooks, clientInstance),
11740
12285
  operations: createBoundService(Operations, clientInstance),
@@ -11747,6 +12292,8 @@ function createClient(config) {
11747
12292
  unsubscribeGroups: createBoundService(Unsubscribe, clientInstance),
11748
12293
  analytics: createBoundService(Analytics, clientInstance),
11749
12294
  feedback: createBoundService(Feedback, clientInstance),
12295
+ whoami: createBoundService(Whoami, clientInstance),
12296
+ journeys: createBoundService(Journeys, clientInstance),
11750
12297
  mailboxes: createBoundService(Mailboxes, clientInstance),
11751
12298
  namespaces: createBoundService(Namespaces, clientInstance),
11752
12299
  extensions: createBoundService(Extensions, clientInstance),
@@ -11769,6 +12316,7 @@ function createClient(config) {
11769
12316
  media: createDirectService(raw.media),
11770
12317
  templates: createDirectService(raw.templates),
11771
12318
  contacts: createDirectService(raw.contacts),
12319
+ events: createDirectService(raw.events),
11772
12320
  conversations: createDirectService(raw.conversations),
11773
12321
  webhooks: createDirectService(raw.webhooks),
11774
12322
  operations: createDirectService(raw.operations),
@@ -11781,6 +12329,8 @@ function createClient(config) {
11781
12329
  unsubscribeGroups: createDirectService(raw.unsubscribeGroups),
11782
12330
  analytics: createDirectService(raw.analytics),
11783
12331
  feedback: createDirectService(raw.feedback),
12332
+ whoami: createDirectService(raw.whoami),
12333
+ journeys: createDirectService(raw.journeys),
11784
12334
  mailboxes: Object.assign(createDirectService(raw.mailboxes), { events: (options) => new MailboxEventStream(streamConnection, options) }),
11785
12335
  namespaces: createDirectService(raw.namespaces),
11786
12336
  extensions: createDirectService(raw.extensions),
@@ -11788,6 +12338,6 @@ function createClient(config) {
11788
12338
  };
11789
12339
  }
11790
12340
  //#endregion
11791
- export { UnauthorizedError as C, SenderNotReadyError as S, fromApiError as T, PaymentRequiredError as _, CampaignFooterRequiredError as a, SamvaApiError as b, EmailChannelError as c, ForbiddenError as d, GatewayTimeoutError as f, OnboardingReviewRequiredError as g, MailboxSendRefusedError as h, BrandAddressRequiredError as i, ExternalServiceError as l, MailboxSendConflictError as m, AnalyticsQueryError as n, ConflictError as o, InternalError as p, BillingProviderError as r, DeliveryUnavailableError as s, createClient as t, FlagDisabledError as u, RateLimitedError as v, ValidationError as w, SamvaTransportError as x, ResourceNotFoundError as y };
12341
+ export { SenderNotReadyError as C, fromApiError as E, SamvaTransportError as S, ValidationError as T, OnboardingReviewRequiredError as _, CampaignFooterRequiredError as a, ResourceNotFoundError as b, EmailChannelError as c, ForbiddenError as d, GatewayTimeoutError as f, MailboxSendRefusedError as g, MailboxSendConflictError as h, BrandAddressRequiredError as i, ExternalServiceError as l, MailboxChannelUnsupportedError as m, AnalyticsQueryError as n, ConflictError as o, InternalError as p, BillingProviderError as r, DeliveryUnavailableError as s, createClient as t, FlagDisabledError as u, PaymentRequiredError as v, UnauthorizedError as w, SamvaApiError as x, RateLimitedError as y };
11792
12342
 
11793
- //# sourceMappingURL=promises-Cd6Jamqk.js.map
12343
+ //# sourceMappingURL=promises---Kbh-7z.js.map