@sentdm/sentdm 0.41.0 → 0.43.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 (120) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/client.d.mts +20 -3
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +20 -3
  5. package/client.d.ts.map +1 -1
  6. package/client.js +15 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +15 -0
  9. package/client.mjs.map +1 -1
  10. package/core/pagination.d.mts +25 -0
  11. package/core/pagination.d.mts.map +1 -1
  12. package/core/pagination.d.ts +25 -0
  13. package/core/pagination.d.ts.map +1 -1
  14. package/core/pagination.js +28 -1
  15. package/core/pagination.js.map +1 -1
  16. package/core/pagination.mjs +26 -0
  17. package/core/pagination.mjs.map +1 -1
  18. package/package.json +1 -1
  19. package/resources/calls/calls.d.mts +388 -0
  20. package/resources/calls/calls.d.mts.map +1 -0
  21. package/resources/calls/calls.d.ts +388 -0
  22. package/resources/calls/calls.d.ts.map +1 -0
  23. package/resources/calls/calls.js +159 -0
  24. package/resources/calls/calls.js.map +1 -0
  25. package/resources/calls/calls.mjs +154 -0
  26. package/resources/calls/calls.mjs.map +1 -0
  27. package/resources/calls/index.d.mts +3 -0
  28. package/resources/calls/index.d.mts.map +1 -0
  29. package/resources/calls/index.d.ts +3 -0
  30. package/resources/calls/index.d.ts.map +1 -0
  31. package/resources/calls/index.js +9 -0
  32. package/resources/calls/index.js.map +1 -0
  33. package/resources/calls/index.mjs +4 -0
  34. package/resources/calls/index.mjs.map +1 -0
  35. package/resources/calls/participants.d.mts +258 -0
  36. package/resources/calls/participants.d.mts.map +1 -0
  37. package/resources/calls/participants.d.ts +258 -0
  38. package/resources/calls/participants.d.ts.map +1 -0
  39. package/resources/calls/participants.js +158 -0
  40. package/resources/calls/participants.js.map +1 -0
  41. package/resources/calls/participants.mjs +154 -0
  42. package/resources/calls/participants.mjs.map +1 -0
  43. package/resources/calls.d.mts +2 -0
  44. package/resources/calls.d.mts.map +1 -0
  45. package/resources/calls.d.ts +2 -0
  46. package/resources/calls.d.ts.map +1 -0
  47. package/resources/calls.js +6 -0
  48. package/resources/calls.js.map +1 -0
  49. package/resources/calls.mjs +3 -0
  50. package/resources/calls.mjs.map +1 -0
  51. package/resources/channels/channels.d.mts +10 -0
  52. package/resources/channels/channels.d.mts.map +1 -0
  53. package/resources/channels/channels.d.ts +10 -0
  54. package/resources/channels/channels.d.ts.map +1 -0
  55. package/resources/channels/channels.js +17 -0
  56. package/resources/channels/channels.js.map +1 -0
  57. package/resources/channels/channels.mjs +12 -0
  58. package/resources/channels/channels.mjs.map +1 -0
  59. package/resources/channels/index.d.mts +3 -0
  60. package/resources/channels/index.d.mts.map +1 -0
  61. package/resources/channels/index.d.ts +3 -0
  62. package/resources/channels/index.d.ts.map +1 -0
  63. package/resources/channels/index.js +9 -0
  64. package/resources/channels/index.js.map +1 -0
  65. package/resources/channels/index.mjs +4 -0
  66. package/resources/channels/index.mjs.map +1 -0
  67. package/resources/channels/voice.d.mts +654 -0
  68. package/resources/channels/voice.d.mts.map +1 -0
  69. package/resources/channels/voice.d.ts +654 -0
  70. package/resources/channels/voice.d.ts.map +1 -0
  71. package/resources/channels/voice.js +285 -0
  72. package/resources/channels/voice.js.map +1 -0
  73. package/resources/channels/voice.mjs +281 -0
  74. package/resources/channels/voice.mjs.map +1 -0
  75. package/resources/channels.d.mts +2 -0
  76. package/resources/channels.d.mts.map +1 -0
  77. package/resources/channels.d.ts +2 -0
  78. package/resources/channels.d.ts.map +1 -0
  79. package/resources/channels.js +6 -0
  80. package/resources/channels.js.map +1 -0
  81. package/resources/channels.mjs +3 -0
  82. package/resources/channels.mjs.map +1 -0
  83. package/resources/index.d.mts +3 -1
  84. package/resources/index.d.mts.map +1 -1
  85. package/resources/index.d.ts +3 -1
  86. package/resources/index.d.ts.map +1 -1
  87. package/resources/index.js +5 -1
  88. package/resources/index.js.map +1 -1
  89. package/resources/index.mjs +2 -0
  90. package/resources/index.mjs.map +1 -1
  91. package/resources/messages.d.mts +13 -8
  92. package/resources/messages.d.mts.map +1 -1
  93. package/resources/messages.d.ts +13 -8
  94. package/resources/messages.d.ts.map +1 -1
  95. package/resources/messages.js +7 -4
  96. package/resources/messages.js.map +1 -1
  97. package/resources/messages.mjs +7 -4
  98. package/resources/messages.mjs.map +1 -1
  99. package/resources/webhooks.d.mts +112 -109
  100. package/resources/webhooks.d.mts.map +1 -1
  101. package/resources/webhooks.d.ts +112 -109
  102. package/resources/webhooks.d.ts.map +1 -1
  103. package/src/client.ts +62 -0
  104. package/src/core/pagination.ts +59 -0
  105. package/src/resources/calls/calls.ts +556 -0
  106. package/src/resources/calls/index.ts +31 -0
  107. package/src/resources/calls/participants.ts +367 -0
  108. package/src/resources/calls.ts +3 -0
  109. package/src/resources/channels/channels.ts +61 -0
  110. package/src/resources/channels/index.ts +27 -0
  111. package/src/resources/channels/voice.ts +864 -0
  112. package/src/resources/channels.ts +3 -0
  113. package/src/resources/index.ts +21 -0
  114. package/src/resources/messages.ts +13 -8
  115. package/src/resources/webhooks.ts +127 -122
  116. package/src/version.ts +1 -1
  117. package/version.d.mts +1 -1
  118. package/version.d.ts +1 -1
  119. package/version.js +1 -1
  120. package/version.mjs +1 -1
@@ -0,0 +1,556 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import * as WebhooksAPI from '../webhooks';
5
+ import * as ParticipantsAPI from './participants';
6
+ import {
7
+ APIResponseOfListOfCallParticipant,
8
+ CallParticipant,
9
+ CallParticipantTarget,
10
+ ParticipantAddParams,
11
+ ParticipantListParams,
12
+ ParticipantRemoveAllParams,
13
+ ParticipantRemoveParams,
14
+ ParticipantUpdateParams,
15
+ Participants,
16
+ } from './participants';
17
+ import { APIPromise } from '../../core/api-promise';
18
+ import { CallsPage, type CallsPageParams, PagePromise } from '../../core/pagination';
19
+ import { buildHeaders } from '../../internal/headers';
20
+ import { RequestOptions } from '../../internal/request-options';
21
+ import { path } from '../../internal/utils/path';
22
+
23
+ /**
24
+ * Phone calls from the numbers you hold, driven by your own callback URL.
25
+ *
26
+ * `POST /v3/channels/voice` enables a number for calls, with the callback URL Sent asks what to do with each call on it, and `POST /v3/channels/voice/tokens` mints a short-lived token that lets a user of your app place and receive calls as that number. When a call arrives or a caller presses a key, a signed question is POSTed to the callback URL and the answer decides the call; `POST /v3/channels/voice/{number}/test` checks the URL answers the way we need before a real call reaches it, and `POST /v3/channels/voice/{number}/rotate-secret` replaces the signing secret. The call events themselves (`call.completed` and the rest) arrive through your webhooks.
27
+ *
28
+ * Every call is a record under `/v3/calls`: read it, list its recordings once one is ready, hang it up, start or stop recording, and add, mute or remove conference participants while it is live. A leg to a phone number runs for at most what your balance affords at the destination's rate.
29
+ */
30
+ export class Calls extends APIResource {
31
+ participants: ParticipantsAPI.Participants = new ParticipantsAPI.Participants(this._client);
32
+
33
+ /**
34
+ * Retrieves one of your calls by id: the parties, the owning number, the current
35
+ * status with its failure reason, duration, price, recording availability, and a
36
+ * timeline of when the call entered each status.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const apiResponseOfCall = await client.calls.retrieve(
41
+ * 'call_9f2ab000-0000-4000-8000-000000000001',
42
+ * );
43
+ * ```
44
+ */
45
+ retrieve(
46
+ id: string,
47
+ params: CallRetrieveParams | null | undefined = {},
48
+ options?: RequestOptions,
49
+ ): APIPromise<APIResponseOfCall> {
50
+ const { 'x-profile-id': xProfileID } = params ?? {};
51
+ return this._client.get(path`/v3/calls/${id}`, {
52
+ ...options,
53
+ headers: buildHeaders([
54
+ { ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined) },
55
+ options?.headers,
56
+ ]),
57
+ });
58
+ }
59
+
60
+ /**
61
+ * Retrieves a paginated list of your calls, most recent first. Filter by
62
+ * direction, status, the owning number, and the time the call started (from and to
63
+ * are inclusive). Use the call webhooks for real-time updates; this list is for
64
+ * looking calls up afterwards.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * // Automatically fetches more pages as needed.
69
+ * for await (const call of client.calls.list()) {
70
+ * // ...
71
+ * }
72
+ * ```
73
+ */
74
+ list(
75
+ params: CallListParams | null | undefined = {},
76
+ options?: RequestOptions,
77
+ ): PagePromise<CallsCallsPage, Call> {
78
+ const { 'x-profile-id': xProfileID, ...query } = params ?? {};
79
+ return this._client.getAPIList('/v3/calls', CallsPage<Call>, {
80
+ query,
81
+ ...options,
82
+ headers: buildHeaders([
83
+ { ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined) },
84
+ options?.headers,
85
+ ]),
86
+ });
87
+ }
88
+
89
+ /**
90
+ * Ends one of your live calls. The call then ends the way any other call does once
91
+ * the disconnect is reported: an answered call as COMPLETED with call.completed, a
92
+ * call still ringing as NO_ANSWER, REJECTED or FAILED with call.failed. A call
93
+ * that has already ended answers 409, and so does a call with no phone leg, such
94
+ * as one between two app users.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * await client.calls.hangup(
99
+ * 'call_9f2ab000-0000-4000-8000-000000000001',
100
+ * );
101
+ * ```
102
+ */
103
+ hangup(id: string, params: CallHangupParams, options?: RequestOptions): APIPromise<void> {
104
+ const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
105
+ return this._client.post(path`/v3/calls/${id}/hangup`, {
106
+ body,
107
+ ...options,
108
+ headers: buildHeaders([
109
+ {
110
+ Accept: '*/*',
111
+ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),
112
+ ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined),
113
+ },
114
+ options?.headers,
115
+ ]),
116
+ });
117
+ }
118
+
119
+ /**
120
+ * Returns pre-signed links to the recordings of one of your calls, each valid
121
+ * until its url_expires_at. A recording appears once the call was recorded, by a
122
+ * connect answer with record set, a startRecording instruction or the recordings
123
+ * command, and the call.recording_ready webhook has been sent; until then, and for
124
+ * a call that was never recorded, the list is empty. A call recorded more than
125
+ * once lists every recording, oldest first, each under the recording_id its
126
+ * call.recording_ready webhook carried.
127
+ *
128
+ * @example
129
+ * ```ts
130
+ * const apiResponseOfCallRecordings =
131
+ * await client.calls.listRecordings(
132
+ * 'call_9f2ab000-0000-4000-8000-000000000001',
133
+ * );
134
+ * ```
135
+ */
136
+ listRecordings(
137
+ id: string,
138
+ params: CallListRecordingsParams | null | undefined = {},
139
+ options?: RequestOptions,
140
+ ): APIPromise<APIResponseOfCallRecordings> {
141
+ const { 'x-profile-id': xProfileID } = params ?? {};
142
+ return this._client.get(path`/v3/calls/${id}/recordings`, {
143
+ ...options,
144
+ headers: buildHeaders([
145
+ { ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined) },
146
+ options?.headers,
147
+ ]),
148
+ });
149
+ }
150
+
151
+ /**
152
+ * Starts or stops recording one of your live calls. Use start to begin recording
153
+ * mid-call, or stop to end a recording, whether it was started here or by a
154
+ * connect answer with record set. A call that has already ended answers 409, and
155
+ * so does a call with no phone leg, such as one between two app users, which can't
156
+ * be recorded.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * await client.calls.record(
161
+ * 'call_9f2ab000-0000-4000-8000-000000000001',
162
+ * );
163
+ * ```
164
+ */
165
+ record(id: string, params: CallRecordParams, options?: RequestOptions): APIPromise<void> {
166
+ const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
167
+ return this._client.post(path`/v3/calls/${id}/recordings`, {
168
+ body,
169
+ ...options,
170
+ headers: buildHeaders([
171
+ {
172
+ Accept: '*/*',
173
+ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined),
174
+ ...(xProfileID != null ? { 'x-profile-id': xProfileID } : undefined),
175
+ },
176
+ options?.headers,
177
+ ]),
178
+ });
179
+ }
180
+ }
181
+
182
+ export type CallsCallsPage = CallsPage<Call>;
183
+
184
+ /**
185
+ * Standard API response envelope for all v3 endpoints
186
+ */
187
+ export interface APIResponseOfCall {
188
+ /**
189
+ * A call record
190
+ */
191
+ data?: Call | null;
192
+
193
+ /**
194
+ * Error information
195
+ */
196
+ error?: WebhooksAPI.ErrorDetail | null;
197
+
198
+ /**
199
+ * Request and response metadata
200
+ */
201
+ meta?: WebhooksAPI.APIMeta;
202
+
203
+ /**
204
+ * Indicates whether the request was successful
205
+ */
206
+ success?: boolean;
207
+ }
208
+
209
+ /**
210
+ * Standard API response envelope for all v3 endpoints
211
+ */
212
+ export interface APIResponseOfCallRecordings {
213
+ /**
214
+ * The recordings of a call, each as a short-lived download link
215
+ */
216
+ data?: CallRecordings | null;
217
+
218
+ /**
219
+ * Error information
220
+ */
221
+ error?: WebhooksAPI.ErrorDetail | null;
222
+
223
+ /**
224
+ * Request and response metadata
225
+ */
226
+ meta?: WebhooksAPI.APIMeta;
227
+
228
+ /**
229
+ * Indicates whether the request was successful
230
+ */
231
+ success?: boolean;
232
+ }
233
+
234
+ /**
235
+ * Standard API response envelope for all v3 endpoints
236
+ */
237
+ export interface APIResponseOfCallsList {
238
+ /**
239
+ * Paginated list of calls
240
+ */
241
+ data?: CallsList | null;
242
+
243
+ /**
244
+ * Error information
245
+ */
246
+ error?: WebhooksAPI.ErrorDetail | null;
247
+
248
+ /**
249
+ * Request and response metadata
250
+ */
251
+ meta?: WebhooksAPI.APIMeta;
252
+
253
+ /**
254
+ * Indicates whether the request was successful
255
+ */
256
+ success?: boolean;
257
+ }
258
+
259
+ /**
260
+ * A call record
261
+ */
262
+ export interface Call {
263
+ /**
264
+ * The call id, the same one carried by the call.request question and every call
265
+ * webhook
266
+ */
267
+ id?: string;
268
+
269
+ /**
270
+ * When the call was answered (UTC). Null until then, and always null for a call
271
+ * between two of your app users
272
+ */
273
+ answered_at?: string | null;
274
+
275
+ /**
276
+ * outbound for a call placed from your app, inbound for a call to one of your
277
+ * numbers
278
+ */
279
+ direction?: string;
280
+
281
+ /**
282
+ * Billable duration in seconds. Null while the call is live
283
+ */
284
+ duration_seconds?: number | null;
285
+
286
+ /**
287
+ * When the call ended (UTC). Null while the call is live
288
+ */
289
+ ended_at?: string | null;
290
+
291
+ /**
292
+ * Why the call did not complete: callback_timeout, invalid_answer,
293
+ * insufficient_balance, destination_blocked, callback_not_configured, rejected or
294
+ * no_answer. Null while the call is live, when it completed, and when it failed
295
+ * without a recorded reason
296
+ */
297
+ failure_reason?: string | null;
298
+
299
+ /**
300
+ * One end of a call
301
+ */
302
+ from?: CallParty;
303
+
304
+ /**
305
+ * Your number that owns the call, in E.164 format: the dialed number for an
306
+ * inbound call, the caller's bound number for a call placed from your app
307
+ */
308
+ number?: string;
309
+
310
+ /**
311
+ * What the call cost. Null until it has been priced
312
+ */
313
+ price?: number | null;
314
+
315
+ /**
316
+ * True once a recording of the call is available
317
+ */
318
+ recording_available?: boolean;
319
+
320
+ /**
321
+ * When the call was placed (UTC)
322
+ */
323
+ started_at?: string;
324
+
325
+ /**
326
+ * INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
327
+ */
328
+ status?: string;
329
+
330
+ /**
331
+ * When the call entered each status, oldest first. Only returned when reading one
332
+ * call
333
+ */
334
+ timeline?: Array<CallTimelineEntry> | null;
335
+
336
+ /**
337
+ * One end of a call
338
+ */
339
+ to?: CallParty;
340
+ }
341
+
342
+ /**
343
+ * One end of a call
344
+ */
345
+ export interface CallParty {
346
+ /**
347
+ * user for one of your app users, number for a phone number, conference for a
348
+ * room, anonymous for a caller who withheld their number
349
+ */
350
+ kind?: string;
351
+
352
+ /**
353
+ * The app user's identity, the phone number in E.164 format, or the room name.
354
+ * Null when the kind is anonymous
355
+ */
356
+ value?: string | null;
357
+ }
358
+
359
+ /**
360
+ * A short-lived link to a call recording
361
+ */
362
+ export interface CallRecording {
363
+ /**
364
+ * A pre-signed link that downloads the recording as an MP3 file. Anyone holding it
365
+ * can download the recording until it expires
366
+ */
367
+ download_url?: string;
368
+
369
+ /**
370
+ * The recording's id, the one the call.recording_ready webhook announced it under
371
+ */
372
+ recording_id?: string;
373
+
374
+ /**
375
+ * When the link stops working (UTC). Request the recordings again for a fresh link
376
+ */
377
+ url_expires_at?: string;
378
+ }
379
+
380
+ /**
381
+ * The recordings of a call, each as a short-lived download link
382
+ */
383
+ export interface CallRecordings {
384
+ /**
385
+ * Every recording of the call, oldest first. Empty until the first
386
+ * call.recording_ready webhook has been sent, and for a call that was never
387
+ * recorded
388
+ */
389
+ recordings?: Array<CallRecording>;
390
+ }
391
+
392
+ /**
393
+ * When a call entered a status
394
+ */
395
+ export interface CallTimelineEntry {
396
+ /**
397
+ * INITIATED, RINGING, ANSWERED, COMPLETED, FAILED, NO_ANSWER or REJECTED
398
+ */
399
+ status?: string;
400
+
401
+ /**
402
+ * When the call entered this status (UTC)
403
+ */
404
+ timestamp?: string;
405
+ }
406
+
407
+ /**
408
+ * Paginated list of calls
409
+ */
410
+ export interface CallsList {
411
+ /**
412
+ * The calls on this page, most recent first
413
+ */
414
+ calls?: Array<Call>;
415
+
416
+ /**
417
+ * Pagination metadata for list responses
418
+ */
419
+ pagination?: WebhooksAPI.PaginationMeta;
420
+ }
421
+
422
+ export interface CallRetrieveParams {
423
+ /**
424
+ * Profile UUID to scope the request to a child profile. Only organization API keys
425
+ * can use this header. The profile must belong to the calling organization.
426
+ */
427
+ 'x-profile-id'?: string;
428
+ }
429
+
430
+ export interface CallListParams extends CallsPageParams {
431
+ /**
432
+ * Query param: Optional direction filter: outbound for calls placed from your app,
433
+ * inbound for calls to one of your numbers
434
+ */
435
+ direction?: string | null;
436
+
437
+ /**
438
+ * Query param: Only calls started at or after this time (ISO 8601)
439
+ */
440
+ from?: string | null;
441
+
442
+ /**
443
+ * Query param: Optional filter on the number that owns the call, one of your
444
+ * voice-enabled numbers in E.164 format
445
+ */
446
+ number?: string | null;
447
+
448
+ /**
449
+ * Query param: Optional status filter: initiated, ringing, answered, completed,
450
+ * failed, no_answer or rejected
451
+ */
452
+ status?: string | null;
453
+
454
+ /**
455
+ * Query param: Only calls started at or before this time (ISO 8601)
456
+ */
457
+ to?: string | null;
458
+
459
+ /**
460
+ * Header param: Profile UUID to scope the request to a child profile. Only
461
+ * organization API keys can use this header. The profile must belong to the
462
+ * calling organization.
463
+ */
464
+ 'x-profile-id'?: string;
465
+ }
466
+
467
+ export interface CallHangupParams {
468
+ /**
469
+ * Body param: Sandbox flag - when true, the operation is simulated without side
470
+ * effects Useful for testing integrations without actual execution
471
+ */
472
+ sandbox?: boolean;
473
+
474
+ /**
475
+ * Header param: Unique key to ensure idempotent request processing. Must be 1-255
476
+ * alphanumeric characters, hyphens, or underscores. Responses are cached for 24
477
+ * hours per key per customer.
478
+ */
479
+ 'Idempotency-Key'?: string;
480
+
481
+ /**
482
+ * Header param: Profile UUID to scope the request to a child profile. Only
483
+ * organization API keys can use this header. The profile must belong to the
484
+ * calling organization.
485
+ */
486
+ 'x-profile-id'?: string;
487
+ }
488
+
489
+ export interface CallListRecordingsParams {
490
+ /**
491
+ * Profile UUID to scope the request to a child profile. Only organization API keys
492
+ * can use this header. The profile must belong to the calling organization.
493
+ */
494
+ 'x-profile-id'?: string;
495
+ }
496
+
497
+ export interface CallRecordParams {
498
+ /**
499
+ * Body param: start to begin recording, stop to end it
500
+ */
501
+ action?: string;
502
+
503
+ /**
504
+ * Body param: Sandbox flag - when true, the operation is simulated without side
505
+ * effects Useful for testing integrations without actual execution
506
+ */
507
+ sandbox?: boolean;
508
+
509
+ /**
510
+ * Header param: Unique key to ensure idempotent request processing. Must be 1-255
511
+ * alphanumeric characters, hyphens, or underscores. Responses are cached for 24
512
+ * hours per key per customer.
513
+ */
514
+ 'Idempotency-Key'?: string;
515
+
516
+ /**
517
+ * Header param: Profile UUID to scope the request to a child profile. Only
518
+ * organization API keys can use this header. The profile must belong to the
519
+ * calling organization.
520
+ */
521
+ 'x-profile-id'?: string;
522
+ }
523
+
524
+ Calls.Participants = Participants;
525
+
526
+ export declare namespace Calls {
527
+ export {
528
+ type APIResponseOfCall as APIResponseOfCall,
529
+ type APIResponseOfCallRecordings as APIResponseOfCallRecordings,
530
+ type APIResponseOfCallsList as APIResponseOfCallsList,
531
+ type Call as Call,
532
+ type CallParty as CallParty,
533
+ type CallRecording as CallRecording,
534
+ type CallRecordings as CallRecordings,
535
+ type CallTimelineEntry as CallTimelineEntry,
536
+ type CallsList as CallsList,
537
+ type CallsCallsPage as CallsCallsPage,
538
+ type CallRetrieveParams as CallRetrieveParams,
539
+ type CallListParams as CallListParams,
540
+ type CallHangupParams as CallHangupParams,
541
+ type CallListRecordingsParams as CallListRecordingsParams,
542
+ type CallRecordParams as CallRecordParams,
543
+ };
544
+
545
+ export {
546
+ Participants as Participants,
547
+ type APIResponseOfListOfCallParticipant as APIResponseOfListOfCallParticipant,
548
+ type CallParticipant as CallParticipant,
549
+ type CallParticipantTarget as CallParticipantTarget,
550
+ type ParticipantUpdateParams as ParticipantUpdateParams,
551
+ type ParticipantListParams as ParticipantListParams,
552
+ type ParticipantAddParams as ParticipantAddParams,
553
+ type ParticipantRemoveParams as ParticipantRemoveParams,
554
+ type ParticipantRemoveAllParams as ParticipantRemoveAllParams,
555
+ };
556
+ }
@@ -0,0 +1,31 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export {
4
+ Calls,
5
+ type APIResponseOfCall,
6
+ type APIResponseOfCallRecordings,
7
+ type APIResponseOfCallsList,
8
+ type Call,
9
+ type CallParty,
10
+ type CallRecording,
11
+ type CallRecordings,
12
+ type CallTimelineEntry,
13
+ type CallsList,
14
+ type CallRetrieveParams,
15
+ type CallListParams,
16
+ type CallHangupParams,
17
+ type CallListRecordingsParams,
18
+ type CallRecordParams,
19
+ type CallsCallsPage,
20
+ } from './calls';
21
+ export {
22
+ Participants,
23
+ type APIResponseOfListOfCallParticipant,
24
+ type CallParticipant,
25
+ type CallParticipantTarget,
26
+ type ParticipantUpdateParams,
27
+ type ParticipantListParams,
28
+ type ParticipantAddParams,
29
+ type ParticipantRemoveParams,
30
+ type ParticipantRemoveAllParams,
31
+ } from './participants';