@trycourier/courier 7.22.0 → 7.24.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 (79) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/client.d.mts +6 -3
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +6 -3
  5. package/client.d.ts.map +1 -1
  6. package/client.js +6 -3
  7. package/client.js.map +1 -1
  8. package/client.mjs +6 -3
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/broadcasts.d.mts +384 -0
  12. package/resources/broadcasts.d.mts.map +1 -0
  13. package/resources/broadcasts.d.ts +384 -0
  14. package/resources/broadcasts.d.ts.map +1 -0
  15. package/resources/broadcasts.js +184 -0
  16. package/resources/broadcasts.js.map +1 -0
  17. package/resources/broadcasts.mjs +180 -0
  18. package/resources/broadcasts.mjs.map +1 -0
  19. package/resources/index.d.mts +1 -1
  20. package/resources/index.d.mts.map +1 -1
  21. package/resources/index.d.ts +1 -1
  22. package/resources/index.d.ts.map +1 -1
  23. package/resources/index.js +3 -3
  24. package/resources/index.js.map +1 -1
  25. package/resources/index.mjs +1 -1
  26. package/resources/index.mjs.map +1 -1
  27. package/resources/journeys/journeys.d.mts +36 -4
  28. package/resources/journeys/journeys.d.mts.map +1 -1
  29. package/resources/journeys/journeys.d.ts +36 -4
  30. package/resources/journeys/journeys.d.ts.map +1 -1
  31. package/resources/journeys/journeys.js +9 -2
  32. package/resources/journeys/journeys.js.map +1 -1
  33. package/resources/journeys/journeys.mjs +9 -2
  34. package/resources/journeys/journeys.mjs.map +1 -1
  35. package/src/client.ts +40 -5
  36. package/src/resources/broadcasts.ts +492 -0
  37. package/src/resources/index.ts +17 -1
  38. package/src/resources/journeys/journeys.ts +38 -4
  39. package/src/version.ts +1 -1
  40. package/version.d.mts +1 -1
  41. package/version.d.ts +1 -1
  42. package/version.js +1 -1
  43. package/version.mjs +1 -1
  44. package/resources/inbox/inbox.d.mts +0 -10
  45. package/resources/inbox/inbox.d.mts.map +0 -1
  46. package/resources/inbox/inbox.d.ts +0 -10
  47. package/resources/inbox/inbox.d.ts.map +0 -1
  48. package/resources/inbox/inbox.js +0 -17
  49. package/resources/inbox/inbox.js.map +0 -1
  50. package/resources/inbox/inbox.mjs +0 -12
  51. package/resources/inbox/inbox.mjs.map +0 -1
  52. package/resources/inbox/index.d.mts +0 -3
  53. package/resources/inbox/index.d.mts.map +0 -1
  54. package/resources/inbox/index.d.ts +0 -3
  55. package/resources/inbox/index.d.ts.map +0 -1
  56. package/resources/inbox/index.js +0 -9
  57. package/resources/inbox/index.js.map +0 -1
  58. package/resources/inbox/index.mjs +0 -4
  59. package/resources/inbox/index.mjs.map +0 -1
  60. package/resources/inbox/messages.d.mts +0 -23
  61. package/resources/inbox/messages.d.mts.map +0 -1
  62. package/resources/inbox/messages.d.ts +0 -23
  63. package/resources/inbox/messages.d.ts.map +0 -1
  64. package/resources/inbox/messages.js +0 -34
  65. package/resources/inbox/messages.js.map +0 -1
  66. package/resources/inbox/messages.mjs +0 -30
  67. package/resources/inbox/messages.mjs.map +0 -1
  68. package/resources/inbox.d.mts +0 -2
  69. package/resources/inbox.d.mts.map +0 -1
  70. package/resources/inbox.d.ts +0 -2
  71. package/resources/inbox.d.ts.map +0 -1
  72. package/resources/inbox.js +0 -6
  73. package/resources/inbox.js.map +0 -1
  74. package/resources/inbox.mjs +0 -3
  75. package/resources/inbox.mjs.map +0 -1
  76. package/src/resources/inbox/inbox.ts +0 -15
  77. package/src/resources/inbox/index.ts +0 -4
  78. package/src/resources/inbox/messages.ts +0 -40
  79. package/src/resources/inbox.ts +0 -3
@@ -0,0 +1,384 @@
1
+ import { APIResource } from "../core/resource.js";
2
+ import * as Shared from "./shared.js";
3
+ import * as NotificationsAPI from "./notifications/notifications.js";
4
+ import { APIPromise } from "../core/api-promise.js";
5
+ import { RequestOptions } from "../internal/request-options.js";
6
+ /**
7
+ * Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
8
+ */
9
+ export declare class Broadcasts extends APIResource {
10
+ /**
11
+ * Create a broadcast. Provisions a private notification template for the broadcast
12
+ * and returns the new broadcast in the draft state. Exactly one channel is
13
+ * required.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const broadcast = await client.broadcasts.create({
18
+ * channel: 'email',
19
+ * name: 'Spring Sale Announcement',
20
+ * });
21
+ * ```
22
+ */
23
+ create(body: BroadcastCreateParams, options?: RequestOptions): APIPromise<Broadcast>;
24
+ /**
25
+ * Retrieve a broadcast by ID. Archived broadcasts return 404.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const broadcast = await client.broadcasts.retrieve(
30
+ * 'broadcastId',
31
+ * );
32
+ * ```
33
+ */
34
+ retrieve(broadcastID: string, options?: RequestOptions): APIPromise<Broadcast>;
35
+ /**
36
+ * Update a broadcast's name. Content is edited via the broadcast's notification
37
+ * template, not this endpoint.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const broadcast = await client.broadcasts.update(
42
+ * 'broadcastId',
43
+ * { name: 'Spring Sale Announcement (v2)' },
44
+ * );
45
+ * ```
46
+ */
47
+ update(broadcastID: string, body: BroadcastUpdateParams, options?: RequestOptions): APIPromise<Broadcast>;
48
+ /**
49
+ * List broadcasts in your workspace. Cursor-paginated; returns broadcasts
50
+ * newest-first.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * const broadcastListResponse =
55
+ * await client.broadcasts.list();
56
+ * ```
57
+ */
58
+ list(query?: BroadcastListParams | null | undefined, options?: RequestOptions): APIPromise<BroadcastListResponse>;
59
+ /**
60
+ * Archive a broadcast. This is a soft delete — the archived broadcast is returned
61
+ * and no longer appears in list results.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const broadcast = await client.broadcasts.archive(
66
+ * 'broadcastId',
67
+ * );
68
+ * ```
69
+ */
70
+ archive(broadcastID: string, options?: RequestOptions): APIPromise<Broadcast>;
71
+ /**
72
+ * Cancel a broadcast's pending schedule, returning it to the draft state. Only
73
+ * valid for a scheduled broadcast.
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const broadcast = await client.broadcasts.cancel(
78
+ * 'broadcastId',
79
+ * );
80
+ * ```
81
+ */
82
+ cancel(broadcastID: string, options?: RequestOptions): APIPromise<Broadcast>;
83
+ /**
84
+ * Duplicate a broadcast (and its template) into a new draft named "{source name}
85
+ * (copy)".
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const broadcast = await client.broadcasts.duplicate(
90
+ * 'broadcastId',
91
+ * );
92
+ * ```
93
+ */
94
+ duplicate(broadcastID: string, options?: RequestOptions): APIPromise<Broadcast>;
95
+ /**
96
+ * Author the broadcast's content by replacing the draft elemental content of its
97
+ * private notification template. The draft is published automatically when the
98
+ * broadcast is sent or scheduled.
99
+ *
100
+ * @example
101
+ * ```ts
102
+ * const notificationContentMutationResponse =
103
+ * await client.broadcasts.putContent('broadcastId', {
104
+ * content: {
105
+ * version: '2022-01-01',
106
+ * elements: [{ type: 'meta' }, { type: 'text' }],
107
+ * },
108
+ * });
109
+ * ```
110
+ */
111
+ putContent(broadcastID: string, body: BroadcastPutContentParams, options?: RequestOptions): APIPromise<NotificationsAPI.NotificationContentMutationResponse>;
112
+ /**
113
+ * Retrieve the broadcast's content — the elemental content of its private
114
+ * notification template. Defaults to the working draft, since broadcast content is
115
+ * authored as a draft until the broadcast is sent.
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * const notificationContentGetResponse =
120
+ * await client.broadcasts.retrieveContent('broadcastId');
121
+ * ```
122
+ */
123
+ retrieveContent(broadcastID: string, query?: BroadcastRetrieveContentParams | null | undefined, options?: RequestOptions): APIPromise<NotificationsAPI.NotificationContentGetResponse>;
124
+ /**
125
+ * Schedule a broadcast for a future send to a list or audience. Publishes the
126
+ * broadcast template first. Not allowed once the broadcast is sending or sent. For
127
+ * an immediate send use POST /broadcasts/{broadcastId}/send.
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * const broadcast = await client.broadcasts.schedule(
132
+ * 'broadcastId',
133
+ * {
134
+ * recipient_id: 'aud_01kx4h2jdafq8bk9amzvy6hbv0',
135
+ * recipient_type: 'audience',
136
+ * scheduled_to: '2026-08-01T15:00:00',
137
+ * timezone: 'America/New_York',
138
+ * },
139
+ * );
140
+ * ```
141
+ */
142
+ schedule(broadcastID: string, body: BroadcastScheduleParams, options?: RequestOptions): APIPromise<Broadcast>;
143
+ /**
144
+ * Send a broadcast immediately to a list or audience. Publishes the broadcast
145
+ * template first. Not allowed once the broadcast is sending or sent.
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * const broadcast = await client.broadcasts.send(
150
+ * 'broadcastId',
151
+ * {
152
+ * recipient_id: 'cool-customers',
153
+ * recipient_type: 'list',
154
+ * },
155
+ * );
156
+ * ```
157
+ */
158
+ send(broadcastID: string, body: BroadcastSendParams, options?: RequestOptions): APIPromise<Broadcast>;
159
+ }
160
+ /**
161
+ * A broadcast — a single-channel message delivered to a known set of recipients (a
162
+ * list or audience).
163
+ */
164
+ export interface Broadcast {
165
+ /**
166
+ * The broadcast ID (bst\_ prefix).
167
+ */
168
+ id: string;
169
+ /**
170
+ * The broadcast's delivery channel.
171
+ */
172
+ channel: 'email' | 'sms' | 'push' | 'inbox' | 'slack' | 'msteams';
173
+ /**
174
+ * ISO 8601 timestamp when the broadcast was created.
175
+ */
176
+ created_at: string;
177
+ /**
178
+ * Actor that created the broadcast.
179
+ */
180
+ created_by: string;
181
+ /**
182
+ * Human-readable name.
183
+ */
184
+ name: string;
185
+ /**
186
+ * Lifecycle status of the broadcast.
187
+ */
188
+ status: 'draft' | 'scheduled' | 'sending' | 'sent';
189
+ /**
190
+ * ISO 8601 timestamp of the last update.
191
+ */
192
+ updated_at: string;
193
+ /**
194
+ * Actor that last updated the broadcast.
195
+ */
196
+ updated_by: string;
197
+ /**
198
+ * ISO 8601 timestamp when the broadcast was archived, if archived.
199
+ */
200
+ archived_at?: string | null;
201
+ /**
202
+ * Actor that archived the broadcast, if archived.
203
+ */
204
+ archived_by?: string | null;
205
+ /**
206
+ * The delivery schedule and recipient targeting for a broadcast.
207
+ */
208
+ schedule?: BroadcastSchedule | null;
209
+ }
210
+ /**
211
+ * Paginated list of broadcasts.
212
+ */
213
+ export interface BroadcastListResponse {
214
+ paging: Shared.Paging;
215
+ results: Array<Broadcast>;
216
+ }
217
+ /**
218
+ * The delivery schedule and recipient targeting for a broadcast.
219
+ */
220
+ export interface BroadcastSchedule {
221
+ /**
222
+ * ID of the target list or audience.
223
+ */
224
+ recipient_id: string;
225
+ /**
226
+ * Whether the broadcast targets a list or an audience.
227
+ */
228
+ recipient_type: 'list' | 'audience';
229
+ /**
230
+ * Wall-clock timestamp of the scheduled send, no timezone offset (e.g.
231
+ * "2026-07-21T20:00:00").
232
+ */
233
+ scheduled_to?: string | null;
234
+ /**
235
+ * IANA timezone for the scheduled send (e.g. America/New_York).
236
+ */
237
+ timezone?: string | null;
238
+ }
239
+ /**
240
+ * Request body for creating a broadcast.
241
+ */
242
+ export interface CreateBroadcastRequest {
243
+ /**
244
+ * The single delivery channel for this broadcast.
245
+ */
246
+ channel: 'email' | 'sms' | 'push' | 'inbox' | 'slack' | 'msteams';
247
+ /**
248
+ * Human-readable name.
249
+ */
250
+ name: string;
251
+ }
252
+ /**
253
+ * Request body for scheduling a broadcast for a future send.
254
+ */
255
+ export interface ScheduleBroadcastRequest {
256
+ /**
257
+ * ID of the target list or audience.
258
+ */
259
+ recipient_id: string;
260
+ /**
261
+ * Whether the broadcast targets a list or an audience.
262
+ */
263
+ recipient_type: 'list' | 'audience';
264
+ /**
265
+ * Wall-clock timestamp of the future send, no timezone offset (e.g.
266
+ * "2026-07-21T20:00:00"). The zone is given by `timezone`.
267
+ */
268
+ scheduled_to: string;
269
+ /**
270
+ * IANA timezone for the scheduled send (e.g. America/New_York).
271
+ */
272
+ timezone?: string;
273
+ }
274
+ /**
275
+ * Request body for sending a broadcast immediately.
276
+ */
277
+ export interface SendBroadcastRequest {
278
+ /**
279
+ * ID of the target list or audience.
280
+ */
281
+ recipient_id: string;
282
+ /**
283
+ * Whether the broadcast targets a list or an audience.
284
+ */
285
+ recipient_type: 'list' | 'audience';
286
+ }
287
+ /**
288
+ * Request body for updating a broadcast. Only the name is mutable.
289
+ */
290
+ export interface UpdateBroadcastRequest {
291
+ /**
292
+ * New human-readable name.
293
+ */
294
+ name: string;
295
+ }
296
+ export interface BroadcastCreateParams {
297
+ /**
298
+ * The single delivery channel for this broadcast.
299
+ */
300
+ channel: 'email' | 'sms' | 'push' | 'inbox' | 'slack' | 'msteams';
301
+ /**
302
+ * Human-readable name.
303
+ */
304
+ name: string;
305
+ }
306
+ export interface BroadcastUpdateParams {
307
+ /**
308
+ * New human-readable name.
309
+ */
310
+ name: string;
311
+ }
312
+ export interface BroadcastListParams {
313
+ /**
314
+ * Opaque pagination cursor from a previous response. Omit for the first page.
315
+ */
316
+ cursor?: string | null;
317
+ /**
318
+ * Maximum number of results per page.
319
+ */
320
+ limit?: number;
321
+ }
322
+ export interface BroadcastPutContentParams {
323
+ /**
324
+ * Elemental content payload. The server defaults `version` when omitted.
325
+ */
326
+ content: BroadcastPutContentParams.Content;
327
+ /**
328
+ * Template state. Defaults to `DRAFT`.
329
+ */
330
+ state?: NotificationsAPI.NotificationTemplateState;
331
+ }
332
+ export declare namespace BroadcastPutContentParams {
333
+ /**
334
+ * Elemental content payload. The server defaults `version` when omitted.
335
+ */
336
+ interface Content {
337
+ elements: Array<Shared.ElementalNode>;
338
+ /**
339
+ * Content version identifier (e.g., `2022-01-01`). Optional; server defaults when
340
+ * omitted.
341
+ */
342
+ version?: string;
343
+ }
344
+ }
345
+ export interface BroadcastRetrieveContentParams {
346
+ /**
347
+ * Accepts `draft`, `published`, or a version string (e.g. `v001`). Defaults to
348
+ * `draft`.
349
+ */
350
+ version?: string;
351
+ }
352
+ export interface BroadcastScheduleParams {
353
+ /**
354
+ * ID of the target list or audience.
355
+ */
356
+ recipient_id: string;
357
+ /**
358
+ * Whether the broadcast targets a list or an audience.
359
+ */
360
+ recipient_type: 'list' | 'audience';
361
+ /**
362
+ * Wall-clock timestamp of the future send, no timezone offset (e.g.
363
+ * "2026-07-21T20:00:00"). The zone is given by `timezone`.
364
+ */
365
+ scheduled_to: string;
366
+ /**
367
+ * IANA timezone for the scheduled send (e.g. America/New_York).
368
+ */
369
+ timezone?: string;
370
+ }
371
+ export interface BroadcastSendParams {
372
+ /**
373
+ * ID of the target list or audience.
374
+ */
375
+ recipient_id: string;
376
+ /**
377
+ * Whether the broadcast targets a list or an audience.
378
+ */
379
+ recipient_type: 'list' | 'audience';
380
+ }
381
+ export declare namespace Broadcasts {
382
+ export { type Broadcast as Broadcast, type BroadcastListResponse as BroadcastListResponse, type BroadcastSchedule as BroadcastSchedule, type CreateBroadcastRequest as CreateBroadcastRequest, type ScheduleBroadcastRequest as ScheduleBroadcastRequest, type SendBroadcastRequest as SendBroadcastRequest, type UpdateBroadcastRequest as UpdateBroadcastRequest, type BroadcastCreateParams as BroadcastCreateParams, type BroadcastUpdateParams as BroadcastUpdateParams, type BroadcastListParams as BroadcastListParams, type BroadcastPutContentParams as BroadcastPutContentParams, type BroadcastRetrieveContentParams as BroadcastRetrieveContentParams, type BroadcastScheduleParams as BroadcastScheduleParams, type BroadcastSendParams as BroadcastSendParams, };
383
+ }
384
+ //# sourceMappingURL=broadcasts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcasts.d.ts","sourceRoot":"","sources":["../src/resources/broadcasts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,4BAAyB;AAC/C,OAAO,KAAK,MAAM,oBAAiB;AACnC,OAAO,KAAK,gBAAgB,yCAAsC;AAClE,OAAO,EAAE,UAAU,EAAE,+BAA4B;AACjD,OAAO,EAAE,cAAc,EAAE,uCAAoC;AAG7D;;GAEG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC;IAIpF;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC;IAI9E;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC;IAIzG;;;;;;;;;OASG;IACH,IAAI,CACF,KAAK,GAAE,mBAAmB,GAAG,IAAI,GAAG,SAAc,EAClD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,qBAAqB,CAAC;IAIpC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC;IAI7E;;;;;;;;;;OAUG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC;IAI5E;;;;;;;;;;OAUG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC;IAI/E;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CACR,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,gBAAgB,CAAC,mCAAmC,CAAC;IAInE;;;;;;;;;;OAUG;IACH,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,8BAA8B,GAAG,IAAI,GAAG,SAAc,EAC7D,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,gBAAgB,CAAC,8BAA8B,CAAC;IAI9D;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,uBAAuB,EAC7B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,SAAS,CAAC;IAIxB;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC;CAGtG;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAElE;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;IAEnD;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAEtB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,UAAU,CAAC;IAEpC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAElE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,UAAU,CAAC;IAEpC;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,UAAU,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAElE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC;IAE3C;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC,yBAAyB,CAAC;CACpD;AAED,yBAAiB,yBAAyB,CAAC;IACzC;;OAEG;IACH,UAAiB,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEtC;;;WAGG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;CACF;AAED,MAAM,WAAW,8BAA8B;IAC7C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,UAAU,CAAC;IAEpC;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,UAAU,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC,OAAO,EACL,KAAK,SAAS,IAAI,SAAS,EAC3B,KAAK,qBAAqB,IAAI,qBAAqB,EACnD,KAAK,iBAAiB,IAAI,iBAAiB,EAC3C,KAAK,sBAAsB,IAAI,sBAAsB,EACrD,KAAK,wBAAwB,IAAI,wBAAwB,EACzD,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,sBAAsB,IAAI,sBAAsB,EACrD,KAAK,qBAAqB,IAAI,qBAAqB,EACnD,KAAK,qBAAqB,IAAI,qBAAqB,EACnD,KAAK,mBAAmB,IAAI,mBAAmB,EAC/C,KAAK,yBAAyB,IAAI,yBAAyB,EAC3D,KAAK,8BAA8B,IAAI,8BAA8B,EACrE,KAAK,uBAAuB,IAAI,uBAAuB,EACvD,KAAK,mBAAmB,IAAI,mBAAmB,GAChD,CAAC;CACH"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Broadcasts = void 0;
5
+ const resource_1 = require("../core/resource.js");
6
+ const path_1 = require("../internal/utils/path.js");
7
+ /**
8
+ * Create a one-off send to a list or audience, author its content, then send it immediately or schedule it for later.
9
+ */
10
+ class Broadcasts extends resource_1.APIResource {
11
+ /**
12
+ * Create a broadcast. Provisions a private notification template for the broadcast
13
+ * and returns the new broadcast in the draft state. Exactly one channel is
14
+ * required.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const broadcast = await client.broadcasts.create({
19
+ * channel: 'email',
20
+ * name: 'Spring Sale Announcement',
21
+ * });
22
+ * ```
23
+ */
24
+ create(body, options) {
25
+ return this._client.post('/broadcasts', { body, ...options });
26
+ }
27
+ /**
28
+ * Retrieve a broadcast by ID. Archived broadcasts return 404.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const broadcast = await client.broadcasts.retrieve(
33
+ * 'broadcastId',
34
+ * );
35
+ * ```
36
+ */
37
+ retrieve(broadcastID, options) {
38
+ return this._client.get((0, path_1.path) `/broadcasts/${broadcastID}`, options);
39
+ }
40
+ /**
41
+ * Update a broadcast's name. Content is edited via the broadcast's notification
42
+ * template, not this endpoint.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * const broadcast = await client.broadcasts.update(
47
+ * 'broadcastId',
48
+ * { name: 'Spring Sale Announcement (v2)' },
49
+ * );
50
+ * ```
51
+ */
52
+ update(broadcastID, body, options) {
53
+ return this._client.put((0, path_1.path) `/broadcasts/${broadcastID}`, { body, ...options });
54
+ }
55
+ /**
56
+ * List broadcasts in your workspace. Cursor-paginated; returns broadcasts
57
+ * newest-first.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * const broadcastListResponse =
62
+ * await client.broadcasts.list();
63
+ * ```
64
+ */
65
+ list(query = {}, options) {
66
+ return this._client.get('/broadcasts', { query, ...options });
67
+ }
68
+ /**
69
+ * Archive a broadcast. This is a soft delete — the archived broadcast is returned
70
+ * and no longer appears in list results.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * const broadcast = await client.broadcasts.archive(
75
+ * 'broadcastId',
76
+ * );
77
+ * ```
78
+ */
79
+ archive(broadcastID, options) {
80
+ return this._client.delete((0, path_1.path) `/broadcasts/${broadcastID}`, options);
81
+ }
82
+ /**
83
+ * Cancel a broadcast's pending schedule, returning it to the draft state. Only
84
+ * valid for a scheduled broadcast.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const broadcast = await client.broadcasts.cancel(
89
+ * 'broadcastId',
90
+ * );
91
+ * ```
92
+ */
93
+ cancel(broadcastID, options) {
94
+ return this._client.post((0, path_1.path) `/broadcasts/${broadcastID}/cancel`, options);
95
+ }
96
+ /**
97
+ * Duplicate a broadcast (and its template) into a new draft named "{source name}
98
+ * (copy)".
99
+ *
100
+ * @example
101
+ * ```ts
102
+ * const broadcast = await client.broadcasts.duplicate(
103
+ * 'broadcastId',
104
+ * );
105
+ * ```
106
+ */
107
+ duplicate(broadcastID, options) {
108
+ return this._client.post((0, path_1.path) `/broadcasts/${broadcastID}/duplicate`, options);
109
+ }
110
+ /**
111
+ * Author the broadcast's content by replacing the draft elemental content of its
112
+ * private notification template. The draft is published automatically when the
113
+ * broadcast is sent or scheduled.
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * const notificationContentMutationResponse =
118
+ * await client.broadcasts.putContent('broadcastId', {
119
+ * content: {
120
+ * version: '2022-01-01',
121
+ * elements: [{ type: 'meta' }, { type: 'text' }],
122
+ * },
123
+ * });
124
+ * ```
125
+ */
126
+ putContent(broadcastID, body, options) {
127
+ return this._client.put((0, path_1.path) `/broadcasts/${broadcastID}/content`, { body, ...options });
128
+ }
129
+ /**
130
+ * Retrieve the broadcast's content — the elemental content of its private
131
+ * notification template. Defaults to the working draft, since broadcast content is
132
+ * authored as a draft until the broadcast is sent.
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * const notificationContentGetResponse =
137
+ * await client.broadcasts.retrieveContent('broadcastId');
138
+ * ```
139
+ */
140
+ retrieveContent(broadcastID, query = {}, options) {
141
+ return this._client.get((0, path_1.path) `/broadcasts/${broadcastID}/content`, { query, ...options });
142
+ }
143
+ /**
144
+ * Schedule a broadcast for a future send to a list or audience. Publishes the
145
+ * broadcast template first. Not allowed once the broadcast is sending or sent. For
146
+ * an immediate send use POST /broadcasts/{broadcastId}/send.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * const broadcast = await client.broadcasts.schedule(
151
+ * 'broadcastId',
152
+ * {
153
+ * recipient_id: 'aud_01kx4h2jdafq8bk9amzvy6hbv0',
154
+ * recipient_type: 'audience',
155
+ * scheduled_to: '2026-08-01T15:00:00',
156
+ * timezone: 'America/New_York',
157
+ * },
158
+ * );
159
+ * ```
160
+ */
161
+ schedule(broadcastID, body, options) {
162
+ return this._client.post((0, path_1.path) `/broadcasts/${broadcastID}/schedule`, { body, ...options });
163
+ }
164
+ /**
165
+ * Send a broadcast immediately to a list or audience. Publishes the broadcast
166
+ * template first. Not allowed once the broadcast is sending or sent.
167
+ *
168
+ * @example
169
+ * ```ts
170
+ * const broadcast = await client.broadcasts.send(
171
+ * 'broadcastId',
172
+ * {
173
+ * recipient_id: 'cool-customers',
174
+ * recipient_type: 'list',
175
+ * },
176
+ * );
177
+ * ```
178
+ */
179
+ send(broadcastID, body, options) {
180
+ return this._client.post((0, path_1.path) `/broadcasts/${broadcastID}/send`, { body, ...options });
181
+ }
182
+ }
183
+ exports.Broadcasts = Broadcasts;
184
+ //# sourceMappingURL=broadcasts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcasts.js","sourceRoot":"","sources":["../src/resources/broadcasts.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAK/C,oDAA8C;AAE9C;;GAEG;AACH,MAAa,UAAW,SAAQ,sBAAW;IACzC;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAA2B,EAAE,OAAwB;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAmB,EAAE,OAAwB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,eAAe,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,WAAmB,EAAE,IAA2B,EAAE,OAAwB;QAC/E,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,eAAe,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,CACF,QAAgD,EAAE,EAClD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,WAAmB,EAAE,OAAwB;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,eAAe,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,WAAmB,EAAE,OAAwB;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,eAAe,WAAW,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;OAUG;IACH,SAAS,CAAC,WAAmB,EAAE,OAAwB;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,eAAe,WAAW,YAAY,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CACR,WAAmB,EACnB,IAA+B,EAC/B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,eAAe,WAAW,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED;;;;;;;;;;OAUG;IACH,eAAe,CACb,WAAmB,EACnB,QAA2D,EAAE,EAC7D,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,eAAe,WAAW,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CACN,WAAmB,EACnB,IAA6B,EAC7B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,eAAe,WAAW,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,WAAmB,EAAE,IAAyB,EAAE,OAAwB;QAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,eAAe,WAAW,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC;CACF;AArMD,gCAqMC"}