@talqing/sdk 0.4.0 → 0.4.2

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.
@@ -96,6 +96,10 @@ export type AddVoiceResponse = {
96
96
  *
97
97
  * The whole agent: what it says, which models run it, and what it can do.
98
98
  *
99
+ * ``AgentBase`` plus the session this agent owns and the media stack that
100
+ * session runs — which is what a task, running inside someone else's session,
101
+ * has none of.
102
+ *
99
103
  * A complete definition, not a patch — whatever it omits takes that field's
100
104
  * default.
101
105
  */
@@ -122,8 +126,11 @@ export type AgentConfig = {
122
126
  handoffs?: Array<HandoffTarget>;
123
127
  /**
124
128
  * Kb Ids
129
+ *
130
+ * Knowledge bases to read from: their outline goes into the prompt and pages are fetched on demand.
125
131
  */
126
132
  kb_ids?: Array<string>;
133
+ keypad_input?: KeypadInputSpec;
127
134
  /**
128
135
  * Language
129
136
  *
@@ -134,11 +141,13 @@ export type AgentConfig = {
134
141
  /**
135
142
  * Mcps
136
143
  *
137
- * MCP servers whose tools this agent may call — each named by the integration that holds its credential, or defined inline. Which of a named server's tools may be called is the integration's own `allowed_tools`, not this list.
144
+ * MCP servers whose tools may be called — each named by the integration that holds its credential, or defined inline. Which of a named server's tools may be called is the integration's own `allowed_tools`, not this list.
138
145
  */
139
146
  mcps?: Array<McpSelection>;
140
147
  /**
141
148
  * Name
149
+ *
150
+ * Unique in the workspace.
142
151
  */
143
152
  name: string;
144
153
  noise_cancellation?: NoiseCancellationSpec;
@@ -154,14 +163,22 @@ export type AgentConfig = {
154
163
  realtime?: RealtimeSpec | null;
155
164
  recording?: RecordingSpec;
156
165
  stt?: STTSpec | null;
166
+ /**
167
+ * Tasks
168
+ *
169
+ * Jobs this agent can enter and come back from. Each becomes one tool the model can call; the task runs inside this call, on its voice and its ears, and returns its typed output as the tool's result.
170
+ */
171
+ tasks?: Array<TaskSelection>;
157
172
  /**
158
173
  * Timezone
159
174
  *
160
- * The IANA timezone this agent's clock runs on, e.g. 'Asia/Kolkata'. Set it and the prompt, greeting and tools can read {{system_vars.now}}, {{system_vars.date}} and {{system_vars.time}}. Required only if one of those is used.
175
+ * The IANA timezone this clock runs on, e.g. 'Asia/Kolkata'. Set it and the prompt and tools can read {{system_vars.now}}, {{system_vars.date}} and {{system_vars.time}}. Required only if one of those is used.
161
176
  */
162
177
  timezone?: string | null;
163
178
  /**
164
179
  * Tools
180
+ *
181
+ * Tools the model may call. Publishing pins each one to the tool version live at that moment, so republishing a tool does not change this until it is published again.
165
182
  */
166
183
  tools?: Array<ToolSelection>;
167
184
  tts?: TTSSpec | null;
@@ -169,7 +186,7 @@ export type AgentConfig = {
169
186
  /**
170
187
  * Vars
171
188
  *
172
- * The variables this agent reads as {{vars.name}} in its prompt, greeting and tools. Values from the request that starts a session override the defaults. They are visible to the model - keep credentials in a workspace secret.
189
+ * The variables read as {{vars.name}} in the prompt, the greeting and the tools. Values from the request that starts a session override the defaults. They are visible to the model - keep credentials in a workspace secret.
173
190
  */
174
191
  vars?: Array<VarDeclaration>;
175
192
  vision_input?: VisionInputSpec;
@@ -217,8 +234,11 @@ export type AgentOverride = {
217
234
  handoffs?: Array<HandoffTarget> | null;
218
235
  /**
219
236
  * Kb Ids
237
+ *
238
+ * Knowledge bases to read from: their outline goes into the prompt and pages are fetched on demand.
220
239
  */
221
240
  kb_ids?: Array<string> | null;
241
+ keypad_input?: KeypadInputSpecOverride | null;
222
242
  /**
223
243
  * Language
224
244
  *
@@ -229,11 +249,13 @@ export type AgentOverride = {
229
249
  /**
230
250
  * Mcps
231
251
  *
232
- * MCP servers whose tools this agent may call — each named by the integration that holds its credential, or defined inline. Which of a named server's tools may be called is the integration's own `allowed_tools`, not this list.
252
+ * MCP servers whose tools may be called — each named by the integration that holds its credential, or defined inline. Which of a named server's tools may be called is the integration's own `allowed_tools`, not this list.
233
253
  */
234
254
  mcps?: Array<McpSelection> | null;
235
255
  /**
236
256
  * Name
257
+ *
258
+ * Unique in the workspace.
237
259
  */
238
260
  name?: string | null;
239
261
  noise_cancellation?: NoiseCancellationSpecOverride | null;
@@ -249,14 +271,22 @@ export type AgentOverride = {
249
271
  realtime?: RealtimeSpecOverride | null;
250
272
  recording?: RecordingSpecOverride | null;
251
273
  stt?: STTSpecOverride | null;
274
+ /**
275
+ * Tasks
276
+ *
277
+ * Jobs this agent can enter and come back from. Each becomes one tool the model can call; the task runs inside this call, on its voice and its ears, and returns its typed output as the tool's result.
278
+ */
279
+ tasks?: Array<TaskSelection> | null;
252
280
  /**
253
281
  * Timezone
254
282
  *
255
- * The IANA timezone this agent's clock runs on, e.g. 'Asia/Kolkata'. Set it and the prompt, greeting and tools can read {{system_vars.now}}, {{system_vars.date}} and {{system_vars.time}}. Required only if one of those is used.
283
+ * The IANA timezone this clock runs on, e.g. 'Asia/Kolkata'. Set it and the prompt and tools can read {{system_vars.now}}, {{system_vars.date}} and {{system_vars.time}}. Required only if one of those is used.
256
284
  */
257
285
  timezone?: string | null;
258
286
  /**
259
287
  * Tools
288
+ *
289
+ * Tools the model may call. Publishing pins each one to the tool version live at that moment, so republishing a tool does not change this until it is published again.
260
290
  */
261
291
  tools?: Array<ToolSelection> | null;
262
292
  tts?: TTSSpecOverride | null;
@@ -264,7 +294,7 @@ export type AgentOverride = {
264
294
  /**
265
295
  * Vars
266
296
  *
267
- * The variables this agent reads as {{vars.name}} in its prompt, greeting and tools. Values from the request that starts a session override the defaults. They are visible to the model - keep credentials in a workspace secret.
297
+ * The variables read as {{vars.name}} in the prompt, the greeting and the tools. Values from the request that starts a session override the defaults. They are visible to the model - keep credentials in a workspace secret.
268
298
  */
269
299
  vars?: Array<VarDeclaration> | null;
270
300
  vision_input?: VisionInputSpecOverride | null;
@@ -1172,7 +1202,7 @@ export type CallBatchResponse = {
1172
1202
  */
1173
1203
  agent_name: string | null;
1174
1204
  agent_plan?: StoredAgentPlan | null;
1175
- calling_window: CallingWindow | null;
1205
+ calling_window: TimeWindow | null;
1176
1206
  counts: CallBatchCounts;
1177
1207
  /**
1178
1208
  * Created At
@@ -1395,6 +1425,7 @@ export type CallSessionResponse = {
1395
1425
  * Status
1396
1426
  */
1397
1427
  status: string;
1428
+ stream: StreamResponse | null;
1398
1429
  /**
1399
1430
  * Telephony Account Id
1400
1431
  */
@@ -1411,7 +1442,7 @@ export type CallSessionResponse = {
1411
1442
  /**
1412
1443
  * Type
1413
1444
  */
1414
- type: 'WEB' | 'SIP_INBOUND' | 'SIP_OUTBOUND';
1445
+ type: 'WEB' | 'SIP_INBOUND' | 'SIP_OUTBOUND' | 'STREAM';
1415
1446
  /**
1416
1447
  * Userdata
1417
1448
  */
@@ -1524,6 +1555,10 @@ export type CallSummaryResponse = {
1524
1555
  * Status
1525
1556
  */
1526
1557
  status: string;
1558
+ /**
1559
+ * Stream Connection Id
1560
+ */
1561
+ stream_connection_id?: string | null;
1527
1562
  /**
1528
1563
  * Summary
1529
1564
  */
@@ -1539,7 +1574,7 @@ export type CallSummaryResponse = {
1539
1574
  /**
1540
1575
  * Type
1541
1576
  */
1542
- type: 'WEB' | 'SIP_INBOUND' | 'SIP_OUTBOUND';
1577
+ type: 'WEB' | 'SIP_INBOUND' | 'SIP_OUTBOUND' | 'STREAM';
1543
1578
  };
1544
1579
 
1545
1580
  /**
@@ -1628,33 +1663,6 @@ export type CallToolResponse = {
1628
1663
  silent?: boolean;
1629
1664
  };
1630
1665
 
1631
- /**
1632
- * CallingWindow
1633
- *
1634
- * The hours a batch may dial in, on the batch's own clock.
1635
- *
1636
- * A window that crosses midnight (``21:00``–``06:00``) is valid and means
1637
- * exactly what an evening consumer-calling window means: the day check applies
1638
- * to the *start* side, so ``21:00``–``06:00`` on ``days: [5]`` runs Friday
1639
- * 21:00 through Saturday 06:00.
1640
- */
1641
- export type CallingWindow = {
1642
- /**
1643
- * Days
1644
- *
1645
- * ISO weekdays the window opens on, 1 = Monday.
1646
- */
1647
- days?: Array<number>;
1648
- /**
1649
- * End
1650
- */
1651
- end: string;
1652
- /**
1653
- * Start
1654
- */
1655
- start: string;
1656
- };
1657
-
1658
1666
  /**
1659
1667
  * CatalogResponse
1660
1668
  */
@@ -2495,7 +2503,7 @@ export type CreateCallBatchRequest = {
2495
2503
  * Which version of `agent_id` to run. Omit for the published one. `"draft"` runs the unpublished working copy — validated and tool-pinned at request time, and refused with the publish errors if it does not hold together.
2496
2504
  */
2497
2505
  agent_version?: number | 'draft' | null;
2498
- calling_window?: CallingWindow | null;
2506
+ calling_window?: TimeWindow | null;
2499
2507
  /**
2500
2508
  * From Phone Number Id
2501
2509
  */
@@ -2546,12 +2554,29 @@ export type CreateEmailBatchRequest = {
2546
2554
  * Body Format
2547
2555
  */
2548
2556
  body_format?: 'text' | 'html';
2549
- calling_window?: CallingWindow | null;
2557
+ /**
2558
+ * Draft Attempts
2559
+ */
2560
+ draft_attempts?: number;
2561
+ /**
2562
+ * Draft Concurrency
2563
+ */
2564
+ draft_concurrency?: number;
2565
+ /**
2566
+ * Draft Gap Seconds
2567
+ *
2568
+ * Minimum seconds between STARTING two rows. 0 starts each as a slot frees; raise it when the task calls something that rate-limits.
2569
+ */
2570
+ draft_gap_seconds?: number;
2571
+ /**
2572
+ * Draft Retry After Minutes
2573
+ */
2574
+ draft_retry_after_minutes?: number;
2550
2575
  field_map: FieldMap;
2551
2576
  /**
2552
2577
  * From Email
2553
2578
  *
2554
- * The default sending address. Its domain must be verified on that Resend account; a single send may override this for that press alone.
2579
+ * The default sending address. Its domain must be verified on that Resend account; a send may override this for its own rows alone.
2555
2580
  */
2556
2581
  from_email: string;
2557
2582
  /**
@@ -2564,14 +2589,6 @@ export type CreateEmailBatchRequest = {
2564
2589
  * A connected Resend account.
2565
2590
  */
2566
2591
  integration_id: string;
2567
- /**
2568
- * Max Attempts
2569
- */
2570
- max_attempts?: number;
2571
- /**
2572
- * Max Concurrency
2573
- */
2574
- max_concurrency?: number;
2575
2592
  /**
2576
2593
  * Name
2577
2594
  */
@@ -2585,15 +2602,25 @@ export type CreateEmailBatchRequest = {
2585
2602
  */
2586
2603
  reply_to?: string | null;
2587
2604
  /**
2588
- * Retry After Minutes
2605
+ * Send Attempts
2589
2606
  */
2590
- retry_after_minutes?: number;
2607
+ send_attempts?: number;
2608
+ /**
2609
+ * Send Daily Cap
2610
+ *
2611
+ * Emails this batch may send per local day, across all of its sends. Null is uncapped.
2612
+ */
2613
+ send_daily_cap?: number | null;
2591
2614
  /**
2592
- * Send Sleep Seconds
2615
+ * Send Gap Seconds
2593
2616
  *
2594
- * Seconds slept after each email within one send. One press of 50 rows takes about `50 x this` seconds.
2617
+ * Minimum seconds between STARTING two emails. 60 means one a minute.
2618
+ */
2619
+ send_gap_seconds?: number;
2620
+ /**
2621
+ * Send Retry After Minutes
2595
2622
  */
2596
- send_sleep_seconds?: number;
2623
+ send_retry_after_minutes?: number;
2597
2624
  /**
2598
2625
  * Start At
2599
2626
  */
@@ -2608,6 +2635,88 @@ export type CreateEmailBatchRequest = {
2608
2635
  * Timezone
2609
2636
  */
2610
2637
  timezone: string;
2638
+ /**
2639
+ * When email may LEAVE. Inherited by every send this batch creates.
2640
+ */
2641
+ window?: TimeWindow | null;
2642
+ };
2643
+
2644
+ /**
2645
+ * CreateEmailSendRequest
2646
+ *
2647
+ * Send these rows. **This is the call that mails real people.**
2648
+ *
2649
+ * Name ``recipient_ids`` or pass ``selection: "all_drafts"``. Everything else
2650
+ * defaults to the batch's own setting; ``window`` and ``send_daily_cap`` accept
2651
+ * an explicit ``null`` to mean "no window" and "uncapped" rather than
2652
+ * "inherit", so the service reads ``model_fields_set``.
2653
+ *
2654
+ * The sender applies to THIS send alone and never writes back to the batch.
2655
+ */
2656
+ export type CreateEmailSendRequest = {
2657
+ /**
2658
+ * From Email
2659
+ */
2660
+ from_email?: string | null;
2661
+ /**
2662
+ * From Name
2663
+ */
2664
+ from_name?: string | null;
2665
+ /**
2666
+ * Recipient Ids
2667
+ */
2668
+ recipient_ids?: Array<string> | null;
2669
+ /**
2670
+ * Reply To
2671
+ */
2672
+ reply_to?: string | null;
2673
+ /**
2674
+ * Selection
2675
+ */
2676
+ selection?: 'all_drafts' | null;
2677
+ /**
2678
+ * Send Attempts
2679
+ */
2680
+ send_attempts?: number | null;
2681
+ /**
2682
+ * Send Daily Cap
2683
+ */
2684
+ send_daily_cap?: number | null;
2685
+ /**
2686
+ * Send Gap Seconds
2687
+ */
2688
+ send_gap_seconds?: number | null;
2689
+ /**
2690
+ * Send Retry After Minutes
2691
+ */
2692
+ send_retry_after_minutes?: number | null;
2693
+ /**
2694
+ * Start At
2695
+ */
2696
+ start_at?: string | null;
2697
+ /**
2698
+ * Timezone
2699
+ */
2700
+ timezone?: string | null;
2701
+ window?: TimeWindow | null;
2702
+ };
2703
+
2704
+ /**
2705
+ * CreateEmailSendResponse
2706
+ *
2707
+ * The send that was created, and every row that did not go into it.
2708
+ *
2709
+ * Two halves rather than one, because they answer different questions and a
2710
+ * caller needs both: what is now scheduled to go out, and which rows it
2711
+ * refused and why. If NOTHING in the selection could be sent there is no send
2712
+ * to describe, so that case is a 400 naming the reasons instead.
2713
+ */
2714
+ export type CreateEmailSendResponse = {
2715
+ /**
2716
+ * Rejected
2717
+ */
2718
+ rejected: Array<RejectedRecipient>;
2719
+ send: EmailSendResponse;
2611
2720
  };
2612
2721
 
2613
2722
  /**
@@ -2728,6 +2837,30 @@ export type CreateSecretRequest = {
2728
2837
  value: string;
2729
2838
  };
2730
2839
 
2840
+ /**
2841
+ * CreateStreamConnectionRequest
2842
+ */
2843
+ export type CreateStreamConnectionRequest = {
2844
+ /**
2845
+ * Agent Id
2846
+ *
2847
+ * The published voice agent that answers on this connection.
2848
+ */
2849
+ agent_id: string;
2850
+ /**
2851
+ * Dialect
2852
+ *
2853
+ * Which platform's WebSocket protocol this partner speaks. One of sparktg, twilio, plivo, exotel, vonage.
2854
+ */
2855
+ dialect: 'twilio' | 'sparktg' | 'plivo' | 'exotel' | 'vonage';
2856
+ /**
2857
+ * Name
2858
+ *
2859
+ * What this partner integration is called in the dashboard.
2860
+ */
2861
+ name: string;
2862
+ };
2863
+
2731
2864
  /**
2732
2865
  * CreateTaskRequest
2733
2866
  */
@@ -2845,7 +2978,7 @@ export type CreateToolRequest = {
2845
2978
  /**
2846
2979
  * Operations
2847
2980
  */
2848
- operations?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation>;
2981
+ operations?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation | SendDtmfOperation>;
2849
2982
  /**
2850
2983
  * Silent
2851
2984
  */
@@ -3073,6 +3206,26 @@ export type DeliveryResultResponse = {
3073
3206
  webhook_id: string;
3074
3207
  };
3075
3208
 
3209
+ /**
3210
+ * DraftedVersion
3211
+ *
3212
+ * How many of this batch's rows were written by one version of its task.
3213
+ *
3214
+ * The batch page's whole answer to "did my edit change anything": a list that
3215
+ * reads "1 204 rows on v2, 96 on v3" names both the improvement and exactly
3216
+ * which rows are still on the old prompt.
3217
+ */
3218
+ export type DraftedVersion = {
3219
+ /**
3220
+ * Count
3221
+ */
3222
+ count: number;
3223
+ /**
3224
+ * Version
3225
+ */
3226
+ version: number;
3227
+ };
3228
+
3076
3229
  /**
3077
3230
  * EmailBatchCounts
3078
3231
  */
@@ -3131,16 +3284,35 @@ export type EmailBatchResponse = {
3131
3284
  * Body Format
3132
3285
  */
3133
3286
  body_format: 'text' | 'html';
3134
- calling_window: CallingWindow | null;
3135
3287
  counts: EmailBatchCounts;
3136
3288
  /**
3137
3289
  * Created At
3138
3290
  */
3139
3291
  created_at: string;
3292
+ /**
3293
+ * Draft Attempts
3294
+ */
3295
+ draft_attempts: number;
3296
+ /**
3297
+ * Draft Concurrency
3298
+ */
3299
+ draft_concurrency: number;
3300
+ /**
3301
+ * Draft Gap Seconds
3302
+ */
3303
+ draft_gap_seconds: number;
3304
+ /**
3305
+ * Draft Retry After Minutes
3306
+ */
3307
+ draft_retry_after_minutes: number;
3140
3308
  /**
3141
3309
  * Drafted At
3142
3310
  */
3143
3311
  drafted_at: string | null;
3312
+ /**
3313
+ * Drafted Versions
3314
+ */
3315
+ drafted_versions: Array<DraftedVersion>;
3144
3316
  /**
3145
3317
  * Failure Reason
3146
3318
  */
@@ -3170,14 +3342,6 @@ export type EmailBatchResponse = {
3170
3342
  * Integration Name
3171
3343
  */
3172
3344
  integration_name: string | null;
3173
- /**
3174
- * Max Attempts
3175
- */
3176
- max_attempts: number;
3177
- /**
3178
- * Max Concurrency
3179
- */
3180
- max_concurrency: number;
3181
3345
  /**
3182
3346
  * Name
3183
3347
  */
@@ -3186,6 +3350,10 @@ export type EmailBatchResponse = {
3186
3350
  * Next Draft At
3187
3351
  */
3188
3352
  next_draft_at: string | null;
3353
+ /**
3354
+ * Next Draft Reason
3355
+ */
3356
+ next_draft_reason: 'start' | 'retry' | null;
3189
3357
  /**
3190
3358
  * Output Columns
3191
3359
  */
@@ -3194,18 +3362,38 @@ export type EmailBatchResponse = {
3194
3362
  * Provider Cost
3195
3363
  */
3196
3364
  provider_cost: number | null;
3365
+ /**
3366
+ * Published Task Version
3367
+ */
3368
+ published_task_version: number | null;
3197
3369
  /**
3198
3370
  * Reply To
3199
3371
  */
3200
3372
  reply_to: string | null;
3201
3373
  /**
3202
- * Retry After Minutes
3374
+ * Send Attempts
3203
3375
  */
3204
- retry_after_minutes: number;
3376
+ send_attempts: number;
3205
3377
  /**
3206
- * Send Sleep Seconds
3378
+ * Send Daily Cap
3207
3379
  */
3208
- send_sleep_seconds: number;
3380
+ send_daily_cap: number | null;
3381
+ /**
3382
+ * Send Gap Seconds
3383
+ */
3384
+ send_gap_seconds: number;
3385
+ /**
3386
+ * Send Retry After Minutes
3387
+ */
3388
+ send_retry_after_minutes: number;
3389
+ /**
3390
+ * Sent Today
3391
+ */
3392
+ sent_today: number;
3393
+ /**
3394
+ * Stale Redraftable
3395
+ */
3396
+ stale_redraftable: number;
3209
3397
  /**
3210
3398
  * Start At
3211
3399
  */
@@ -3230,6 +3418,7 @@ export type EmailBatchResponse = {
3230
3418
  * Timezone
3231
3419
  */
3232
3420
  timezone: string;
3421
+ window: TimeWindow | null;
3233
3422
  };
3234
3423
 
3235
3424
  /**
@@ -3310,9 +3499,9 @@ export type EmailRecipientResponse = {
3310
3499
  */
3311
3500
  send_attempts: number;
3312
3501
  /**
3313
- * Send Job Id
3502
+ * Send Run Id
3314
3503
  */
3315
- send_job_id: string | null;
3504
+ send_run_id: string | null;
3316
3505
  /**
3317
3506
  * Sent At
3318
3507
  */
@@ -3333,6 +3522,10 @@ export type EmailRecipientResponse = {
3333
3522
  * Task Run Id
3334
3523
  */
3335
3524
  task_run_id: string | null;
3525
+ /**
3526
+ * Task Version
3527
+ */
3528
+ task_version: number | null;
3336
3529
  /**
3337
3530
  * To Email
3338
3531
  */
@@ -3344,79 +3537,199 @@ export type EmailRecipientResponse = {
3344
3537
  };
3345
3538
 
3346
3539
  /**
3347
- * EndCallConfig
3540
+ * EmailSendCounts
3348
3541
  *
3349
- * No settings: an `end_call` ends the call.
3350
- */
3351
- export type EndCallConfig = {
3352
- [key: string]: never;
3353
- };
3354
-
3355
- /**
3356
- * EndCallOperation
3542
+ * Where this send's rows are.
3543
+ *
3544
+ * ``total`` is what the send was created with and never changes — a send's row
3545
+ * set is immutable — so ``returned`` is what is left once every other bucket is
3546
+ * accounted for: the rows a cancel or a failure handed back as drafts.
3357
3547
  */
3358
- export type EndCallOperation = {
3359
- config?: EndCallConfig;
3548
+ export type EmailSendCounts = {
3360
3549
  /**
3361
- * Kind
3550
+ * Queued
3362
3551
  */
3363
- kind: 'end_call';
3552
+ queued: number;
3364
3553
  /**
3365
- * On Error
3554
+ * Returned
3366
3555
  */
3367
- on_error?: 'abort' | 'continue';
3368
- };
3369
-
3370
- /**
3371
- * EndpointingSpec
3372
- *
3373
- * How long a caller's silence must last before the agent takes the turn.
3374
- */
3375
- export type EndpointingSpec = {
3556
+ returned: number;
3376
3557
  /**
3377
- * Max Silence Duration
3378
- *
3379
- * How long to wait instead when the turn detector judges the caller is mid-thought. Only a batch speech-to-text model in one of the turn detector's 14 languages gets that judgement; every other pipeline ends turns on silence and ignores this.
3558
+ * Send Failed
3380
3559
  */
3381
- max_silence_duration?: number;
3560
+ send_failed: number;
3382
3561
  /**
3383
- * Min Silence Duration
3384
- *
3385
- * How long the caller must stay silent, in seconds, before the agent takes the turn. A streaming speech-to-text model may wait longer when it hears the caller is not finished.
3562
+ * Sending
3386
3563
  */
3387
- min_silence_duration?: number;
3388
- };
3389
-
3390
- /**
3391
- * EndpointingSpecOverride
3392
- *
3393
- * A partial EndpointingSpec: only the fields this call changes. Absent keeps the base value, an explicit null clears it, objects deep-merge and lists replace.
3394
- */
3395
- export type EndpointingSpecOverride = {
3564
+ sending: number;
3396
3565
  /**
3397
- * Max Silence Duration
3398
- *
3399
- * How long to wait instead when the turn detector judges the caller is mid-thought. Only a batch speech-to-text model in one of the turn detector's 14 languages gets that judgement; every other pipeline ends turns on silence and ignores this.
3566
+ * Sent
3400
3567
  */
3401
- max_silence_duration?: number | null;
3568
+ sent: number;
3402
3569
  /**
3403
- * Min Silence Duration
3404
- *
3405
- * How long the caller must stay silent, in seconds, before the agent takes the turn. A streaming speech-to-text model may wait longer when it hears the caller is not finished.
3570
+ * Skipped
3406
3571
  */
3407
- min_silence_duration?: number | null;
3572
+ skipped: number;
3573
+ /**
3574
+ * Total
3575
+ */
3576
+ total: number;
3408
3577
  };
3409
3578
 
3410
3579
  /**
3411
- * ErrorBody
3412
- *
3413
- * The structured half of our error contract: a human `message` plus a list
3414
- * of individual `errors` (used wherever we surface many problems at once,
3415
- * including tool publish, op-tree checks, and request validation). The global
3416
- * exception handlers normalize every API error to
3417
- * `{detail: {message, errors}}`, so SDKs can parse one shape consistently.
3580
+ * EmailSendResponse
3418
3581
  */
3419
- export type ErrorBody = {
3582
+ export type EmailSendResponse = {
3583
+ /**
3584
+ * Batch Id
3585
+ */
3586
+ batch_id: string;
3587
+ counts: EmailSendCounts;
3588
+ /**
3589
+ * Created At
3590
+ */
3591
+ created_at: string;
3592
+ /**
3593
+ * Failure Reason
3594
+ */
3595
+ failure_reason: string | null;
3596
+ /**
3597
+ * Finished At
3598
+ */
3599
+ finished_at: string | null;
3600
+ /**
3601
+ * From Email
3602
+ */
3603
+ from_email: string;
3604
+ /**
3605
+ * From Name
3606
+ */
3607
+ from_name: string | null;
3608
+ /**
3609
+ * Id
3610
+ */
3611
+ id: string;
3612
+ /**
3613
+ * Next Send At
3614
+ */
3615
+ next_send_at: string | null;
3616
+ /**
3617
+ * Next Send Reason
3618
+ */
3619
+ next_send_reason: 'start' | 'window' | 'daily_cap' | 'retry' | 'gap' | null;
3620
+ /**
3621
+ * Reply To
3622
+ */
3623
+ reply_to: string | null;
3624
+ /**
3625
+ * Send Attempts
3626
+ */
3627
+ send_attempts: number;
3628
+ /**
3629
+ * Send Daily Cap
3630
+ */
3631
+ send_daily_cap: number | null;
3632
+ /**
3633
+ * Send Gap Seconds
3634
+ */
3635
+ send_gap_seconds: number;
3636
+ /**
3637
+ * Send Retry After Minutes
3638
+ */
3639
+ send_retry_after_minutes: number;
3640
+ /**
3641
+ * Start At
3642
+ */
3643
+ start_at: string | null;
3644
+ /**
3645
+ * Started At
3646
+ */
3647
+ started_at: string | null;
3648
+ /**
3649
+ * Status
3650
+ */
3651
+ status: 'scheduled' | 'sending' | 'paused' | 'sent' | 'canceled' | 'failed';
3652
+ /**
3653
+ * Timezone
3654
+ */
3655
+ timezone: string;
3656
+ window: TimeWindow | null;
3657
+ };
3658
+
3659
+ /**
3660
+ * EndCallConfig
3661
+ *
3662
+ * No settings: an `end_call` ends the call.
3663
+ */
3664
+ export type EndCallConfig = {
3665
+ [key: string]: never;
3666
+ };
3667
+
3668
+ /**
3669
+ * EndCallOperation
3670
+ */
3671
+ export type EndCallOperation = {
3672
+ config?: EndCallConfig;
3673
+ /**
3674
+ * Kind
3675
+ */
3676
+ kind: 'end_call';
3677
+ /**
3678
+ * On Error
3679
+ */
3680
+ on_error?: 'abort' | 'continue';
3681
+ };
3682
+
3683
+ /**
3684
+ * EndpointingSpec
3685
+ *
3686
+ * How long a caller's silence must last before the agent takes the turn.
3687
+ */
3688
+ export type EndpointingSpec = {
3689
+ /**
3690
+ * Max Silence Duration
3691
+ *
3692
+ * How long to wait instead when the turn detector judges the caller is mid-thought. Only a batch speech-to-text model in one of the turn detector's 14 languages gets that judgement; every other pipeline ends turns on silence and ignores this.
3693
+ */
3694
+ max_silence_duration?: number;
3695
+ /**
3696
+ * Min Silence Duration
3697
+ *
3698
+ * How long the caller must stay silent, in seconds, before the agent takes the turn. A streaming speech-to-text model may wait longer when it hears the caller is not finished.
3699
+ */
3700
+ min_silence_duration?: number;
3701
+ };
3702
+
3703
+ /**
3704
+ * EndpointingSpecOverride
3705
+ *
3706
+ * A partial EndpointingSpec: only the fields this call changes. Absent keeps the base value, an explicit null clears it, objects deep-merge and lists replace.
3707
+ */
3708
+ export type EndpointingSpecOverride = {
3709
+ /**
3710
+ * Max Silence Duration
3711
+ *
3712
+ * How long to wait instead when the turn detector judges the caller is mid-thought. Only a batch speech-to-text model in one of the turn detector's 14 languages gets that judgement; every other pipeline ends turns on silence and ignores this.
3713
+ */
3714
+ max_silence_duration?: number | null;
3715
+ /**
3716
+ * Min Silence Duration
3717
+ *
3718
+ * How long the caller must stay silent, in seconds, before the agent takes the turn. A streaming speech-to-text model may wait longer when it hears the caller is not finished.
3719
+ */
3720
+ min_silence_duration?: number | null;
3721
+ };
3722
+
3723
+ /**
3724
+ * ErrorBody
3725
+ *
3726
+ * The structured half of our error contract: a human `message` plus a list
3727
+ * of individual `errors` (used wherever we surface many problems at once,
3728
+ * including tool publish, op-tree checks, and request validation). The global
3729
+ * exception handlers normalize every API error to
3730
+ * `{detail: {message, errors}}`, so SDKs can parse one shape consistently.
3731
+ */
3732
+ export type ErrorBody = {
3420
3733
  /**
3421
3734
  * Errors
3422
3735
  */
@@ -3700,6 +4013,7 @@ export type HandoffTarget = {
3700
4013
  * Liveness of the API process itself.
3701
4014
  */
3702
4015
  export type HealthResponse = {
4016
+ model_registry?: ModelRegistryHealth | null;
3703
4017
  /**
3704
4018
  * Status
3705
4019
  */
@@ -3961,7 +4275,7 @@ export type IfOperation = {
3961
4275
  /**
3962
4276
  * Else
3963
4277
  */
3964
- else?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation> | null;
4278
+ else?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation | SendDtmfOperation> | null;
3965
4279
  /**
3966
4280
  * Kind
3967
4281
  */
@@ -3973,7 +4287,7 @@ export type IfOperation = {
3973
4287
  /**
3974
4288
  * Then
3975
4289
  */
3976
- then?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation> | null;
4290
+ then?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation | SendDtmfOperation> | null;
3977
4291
  };
3978
4292
 
3979
4293
  /**
@@ -4117,7 +4431,7 @@ export type InlineTool = {
4117
4431
  /**
4118
4432
  * Operations
4119
4433
  */
4120
- operations?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation>;
4434
+ operations?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation | SendDtmfOperation>;
4121
4435
  /**
4122
4436
  * Silent
4123
4437
  */
@@ -4958,6 +5272,64 @@ export type KbTreeNode = {
4958
5272
  title?: string | null;
4959
5273
  };
4960
5274
 
5275
+ /**
5276
+ * KeypadInputSpec
5277
+ *
5278
+ * Digits the caller types, delivered as a turn the agent can answer.
5279
+ *
5280
+ * Phone and stream calls only, and only where the platform sends DTMF as an
5281
+ * event — tones inside the audio are not detected. Cleared on any other
5282
+ * channel: a browser has no keypad, so a `video` agent (which is a web call
5283
+ * wearing an avatar) and a `text` agent both have nothing to collect, and only
5284
+ * a `voice` agent can hold a phone number or answer a media stream.
5285
+ */
5286
+ export type KeypadInputSpec = {
5287
+ /**
5288
+ * Enabled
5289
+ *
5290
+ * Let the caller answer with the keypad. Each entry arrives as one labelled user turn, and the first keypress interrupts whatever the agent is saying.
5291
+ */
5292
+ enabled?: boolean;
5293
+ /**
5294
+ * Terminator
5295
+ *
5296
+ * The key that ends an entry. It is not part of the entry, and pressing it on nothing is ignored. Empty means only the quiet timer ends one.
5297
+ */
5298
+ terminator?: '#' | '*' | '';
5299
+ /**
5300
+ * Timeout
5301
+ *
5302
+ * Seconds of quiet before an entry is taken as finished. 0 waits for the terminator however long it takes.
5303
+ */
5304
+ timeout?: number;
5305
+ };
5306
+
5307
+ /**
5308
+ * KeypadInputSpecOverride
5309
+ *
5310
+ * A partial KeypadInputSpec: only the fields this call changes. Absent keeps the base value, an explicit null clears it, objects deep-merge and lists replace.
5311
+ */
5312
+ export type KeypadInputSpecOverride = {
5313
+ /**
5314
+ * Enabled
5315
+ *
5316
+ * Let the caller answer with the keypad. Each entry arrives as one labelled user turn, and the first keypress interrupts whatever the agent is saying.
5317
+ */
5318
+ enabled?: boolean | null;
5319
+ /**
5320
+ * Terminator
5321
+ *
5322
+ * The key that ends an entry. It is not part of the entry, and pressing it on nothing is ignored. Empty means only the quiet timer ends one.
5323
+ */
5324
+ terminator?: '#' | '*' | '' | null;
5325
+ /**
5326
+ * Timeout
5327
+ *
5328
+ * Seconds of quiet before an entry is taken as finished. 0 waits for the terminator however long it takes.
5329
+ */
5330
+ timeout?: number | null;
5331
+ };
5332
+
4961
5333
  /**
4962
5334
  * LLMCatalogEntryResponse
4963
5335
  */
@@ -4974,6 +5346,10 @@ export type LLMCatalogEntryResponse = {
4974
5346
  * Channel
4975
5347
  */
4976
5348
  channel: Array<string>;
5349
+ /**
5350
+ * Context Length
5351
+ */
5352
+ context_length: number | null;
4977
5353
  /**
4978
5354
  * Label
4979
5355
  */
@@ -5078,6 +5454,10 @@ export type LLMPriceLine = {
5078
5454
  * Cost
5079
5455
  */
5080
5456
  cost: number;
5457
+ /**
5458
+ * Input Cache Write Tokens
5459
+ */
5460
+ input_cache_write_tokens: number | null;
5081
5461
  /**
5082
5462
  * Input Cached Tokens
5083
5463
  */
@@ -5102,6 +5482,10 @@ export type LLMPriceLine = {
5102
5482
  * Provider
5103
5483
  */
5104
5484
  provider: string;
5485
+ /**
5486
+ * Provider Reported
5487
+ */
5488
+ provider_reported: boolean;
5105
5489
  /**
5106
5490
  * Purpose
5107
5491
  */
@@ -5117,6 +5501,10 @@ export type LLMPriceLine = {
5117
5501
  * LLMPricing
5118
5502
  */
5119
5503
  export type LLMPricing = {
5504
+ /**
5505
+ * Cache Write Per 1M
5506
+ */
5507
+ cache_write_per_1m?: number | null;
5120
5508
  /**
5121
5509
  * Cached Input Per 1M
5122
5510
  */
@@ -5205,6 +5593,10 @@ export type LLMSpecOverride = {
5205
5593
  * billed separately today and are not persisted.
5206
5594
  */
5207
5595
  export type LLMUsage = {
5596
+ /**
5597
+ * Input Cache Write Tokens
5598
+ */
5599
+ input_cache_write_tokens: number;
5208
5600
  /**
5209
5601
  * Input Cached Tokens
5210
5602
  */
@@ -5233,6 +5625,10 @@ export type LLMUsage = {
5233
5625
  * Purpose
5234
5626
  */
5235
5627
  purpose: string;
5628
+ /**
5629
+ * Reported Cost
5630
+ */
5631
+ reported_cost: number | null;
5236
5632
  };
5237
5633
 
5238
5634
  /**
@@ -5336,6 +5732,52 @@ export type ModelMetadata = {
5336
5732
  [key: string]: unknown;
5337
5733
  };
5338
5734
 
5735
+ /**
5736
+ * ModelRegistryHealth
5737
+ *
5738
+ * How fresh this process's searched-provider model list is.
5739
+ *
5740
+ * A silently stale registry is the one failure this design trades for
5741
+ * freshness — a refresh that keeps failing holds the last good snapshot
5742
+ * indefinitely, on purpose, because clearing it would take every model of that
5743
+ * provider out of the editor and out of publish validation at once. So its age
5744
+ * has to be readable without opening a log.
5745
+ */
5746
+ export type ModelRegistryHealth = {
5747
+ /**
5748
+ * Age Seconds
5749
+ */
5750
+ age_seconds: number | null;
5751
+ /**
5752
+ * Last Error
5753
+ */
5754
+ last_error: string | null;
5755
+ /**
5756
+ * Models
5757
+ */
5758
+ models: number;
5759
+ };
5760
+
5761
+ /**
5762
+ * ModelSearchResponse
5763
+ *
5764
+ * One page of a searched provider's models — never the whole registry.
5765
+ *
5766
+ * Ordered by real-world popularity when `q` is empty (OpenRouter ranks its own
5767
+ * list by tokens processed, so the first screen is the models people actually
5768
+ * run) and by match quality when it is not, popularity breaking the ties.
5769
+ */
5770
+ export type ModelSearchResponse = {
5771
+ /**
5772
+ * Models
5773
+ */
5774
+ models: Array<LLMCatalogEntryResponse>;
5775
+ /**
5776
+ * Next Cursor
5777
+ */
5778
+ next_cursor: string | null;
5779
+ };
5780
+
5339
5781
  /**
5340
5782
  * NodeContentResponse
5341
5783
  */
@@ -6397,6 +6839,28 @@ export type PageEmailRecipientResponse = {
6397
6839
  offset: number;
6398
6840
  };
6399
6841
 
6842
+ /**
6843
+ * Page[EmailSendResponse]
6844
+ */
6845
+ export type PageEmailSendResponse = {
6846
+ /**
6847
+ * Has More
6848
+ */
6849
+ has_more: boolean;
6850
+ /**
6851
+ * Items
6852
+ */
6853
+ items: Array<EmailSendResponse>;
6854
+ /**
6855
+ * Limit
6856
+ */
6857
+ limit: number;
6858
+ /**
6859
+ * Offset
6860
+ */
6861
+ offset: number;
6862
+ };
6863
+
6400
6864
  /**
6401
6865
  * Page[IntegrationCatalogItem]
6402
6866
  */
@@ -6573,6 +7037,28 @@ export type PageSecretResponse = {
6573
7037
  offset: number;
6574
7038
  };
6575
7039
 
7040
+ /**
7041
+ * Page[StreamConnectionResponse]
7042
+ */
7043
+ export type PageStreamConnectionResponse = {
7044
+ /**
7045
+ * Has More
7046
+ */
7047
+ has_more: boolean;
7048
+ /**
7049
+ * Items
7050
+ */
7051
+ items: Array<StreamConnectionResponse>;
7052
+ /**
7053
+ * Limit
7054
+ */
7055
+ limit: number;
7056
+ /**
7057
+ * Offset
7058
+ */
7059
+ offset: number;
7060
+ };
7061
+
6576
7062
  /**
6577
7063
  * Page[TaskResponse]
6578
7064
  */
@@ -6721,7 +7207,7 @@ export type PatchCallBatchRequest = {
6721
7207
  * Agent Id
6722
7208
  */
6723
7209
  agent_id?: string | null;
6724
- calling_window?: CallingWindow | null;
7210
+ calling_window?: TimeWindow | null;
6725
7211
  /**
6726
7212
  * From Phone Number Id
6727
7213
  */
@@ -6779,21 +7265,37 @@ export type PatchConversationRequest = {
6779
7265
  *
6780
7266
  * Policy edits.
6781
7267
  *
6782
- * ``calling_window`` and ``start_at`` accept an explicit ``null`` to *clear*
6783
- * them — "draft at any hour", "start on the next pass" which is why the
6784
- * service reads ``model_fields_set`` rather than treating absent and null the
6785
- * same way. Every other field keeps the usual PATCH rule: absent means
6786
- * unchanged.
7268
+ * ``window``, ``start_at`` and ``send_daily_cap`` accept an explicit ``null``
7269
+ * to *clear* them — "send at any hour", "start on the next pass", "no daily
7270
+ * ceiling" — which is why the service reads ``model_fields_set`` rather than
7271
+ * treating absent and null the same way. Every other field keeps the usual
7272
+ * PATCH rule: absent means unchanged.
6787
7273
  *
6788
7274
  * Pacing stays editable at any time; identity does not once anything has been
6789
- * sent (see ``service.patch_batch``).
7275
+ * sent (see ``service.patch_batch``). The sending group here is the DEFAULT for
7276
+ * the next send — a run already created carries its own copy.
6790
7277
  */
6791
7278
  export type PatchEmailBatchRequest = {
6792
7279
  /**
6793
7280
  * Body Format
6794
7281
  */
6795
7282
  body_format?: 'text' | 'html' | null;
6796
- calling_window?: CallingWindow | null;
7283
+ /**
7284
+ * Draft Attempts
7285
+ */
7286
+ draft_attempts?: number | null;
7287
+ /**
7288
+ * Draft Concurrency
7289
+ */
7290
+ draft_concurrency?: number | null;
7291
+ /**
7292
+ * Draft Gap Seconds
7293
+ */
7294
+ draft_gap_seconds?: number | null;
7295
+ /**
7296
+ * Draft Retry After Minutes
7297
+ */
7298
+ draft_retry_after_minutes?: number | null;
6797
7299
  field_map?: FieldMap | null;
6798
7300
  /**
6799
7301
  * From Email
@@ -6803,14 +7305,6 @@ export type PatchEmailBatchRequest = {
6803
7305
  * From Name
6804
7306
  */
6805
7307
  from_name?: string | null;
6806
- /**
6807
- * Max Attempts
6808
- */
6809
- max_attempts?: number | null;
6810
- /**
6811
- * Max Concurrency
6812
- */
6813
- max_concurrency?: number | null;
6814
7308
  /**
6815
7309
  * Name
6816
7310
  */
@@ -6820,13 +7314,21 @@ export type PatchEmailBatchRequest = {
6820
7314
  */
6821
7315
  reply_to?: string | null;
6822
7316
  /**
6823
- * Retry After Minutes
7317
+ * Send Attempts
6824
7318
  */
6825
- retry_after_minutes?: number | null;
7319
+ send_attempts?: number | null;
7320
+ /**
7321
+ * Send Daily Cap
7322
+ */
7323
+ send_daily_cap?: number | null;
6826
7324
  /**
6827
- * Send Sleep Seconds
7325
+ * Send Gap Seconds
6828
7326
  */
6829
- send_sleep_seconds?: number | null;
7327
+ send_gap_seconds?: number | null;
7328
+ /**
7329
+ * Send Retry After Minutes
7330
+ */
7331
+ send_retry_after_minutes?: number | null;
6830
7332
  /**
6831
7333
  * Start At
6832
7334
  */
@@ -6835,6 +7337,7 @@ export type PatchEmailBatchRequest = {
6835
7337
  * Timezone
6836
7338
  */
6837
7339
  timezone?: string | null;
7340
+ window?: TimeWindow | null;
6838
7341
  };
6839
7342
 
6840
7343
  /**
@@ -6856,6 +7359,45 @@ export type PatchEmailRecipientRequest = {
6856
7359
  };
6857
7360
  };
6858
7361
 
7362
+ /**
7363
+ * PatchEmailSendRequest
7364
+ *
7365
+ * Re-steer one send: its pacing, its hours, its ceiling, its start time.
7366
+ *
7367
+ * It never edits the sender, and it never edits the row set in either
7368
+ * direction. To change what a scheduled send contains, cancel it — every unsent
7369
+ * row comes back as a draft — and create another. A second way to move a row
7370
+ * out of a send would be a second state machine to keep correct for something
7371
+ * cancel already covers.
7372
+ */
7373
+ export type PatchEmailSendRequest = {
7374
+ /**
7375
+ * Send Attempts
7376
+ */
7377
+ send_attempts?: number | null;
7378
+ /**
7379
+ * Send Daily Cap
7380
+ */
7381
+ send_daily_cap?: number | null;
7382
+ /**
7383
+ * Send Gap Seconds
7384
+ */
7385
+ send_gap_seconds?: number | null;
7386
+ /**
7387
+ * Send Retry After Minutes
7388
+ */
7389
+ send_retry_after_minutes?: number | null;
7390
+ /**
7391
+ * Start At
7392
+ */
7393
+ start_at?: string | null;
7394
+ /**
7395
+ * Timezone
7396
+ */
7397
+ timezone?: string | null;
7398
+ window?: TimeWindow | null;
7399
+ };
7400
+
6859
7401
  /**
6860
7402
  * PatchIntegrationRequest
6861
7403
  */
@@ -6986,6 +7528,24 @@ export type PatchPhoneNumberRequest = {
6986
7528
  status?: 'disabled' | 'pending' | null;
6987
7529
  };
6988
7530
 
7531
+ /**
7532
+ * PatchStreamConnectionRequest
7533
+ */
7534
+ export type PatchStreamConnectionRequest = {
7535
+ /**
7536
+ * Agent Id
7537
+ */
7538
+ agent_id?: string | null;
7539
+ /**
7540
+ * Name
7541
+ */
7542
+ name?: string | null;
7543
+ /**
7544
+ * Status
7545
+ */
7546
+ status?: 'active' | 'disabled' | null;
7547
+ };
7548
+
6989
7549
  /**
6990
7550
  * PatchTaskRequest
6991
7551
  *
@@ -7055,7 +7615,7 @@ export type PatchToolRequest = {
7055
7615
  /**
7056
7616
  * Operations
7057
7617
  */
7058
- operations?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation> | null;
7618
+ operations?: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation | SendDtmfOperation> | null;
7059
7619
  /**
7060
7620
  * Silent
7061
7621
  */
@@ -7374,6 +7934,10 @@ export type PromptResponse = {
7374
7934
  * ProviderEntryResponse
7375
7935
  */
7376
7936
  export type ProviderEntryResponse = {
7937
+ /**
7938
+ * Browse
7939
+ */
7940
+ browse: 'list' | 'search';
7377
7941
  /**
7378
7942
  * Enabled
7379
7943
  */
@@ -7538,6 +8102,28 @@ export type PublishResponse = {
7538
8102
  warnings?: Array<string>;
7539
8103
  };
7540
8104
 
8105
+ /**
8106
+ * PublishTaskResponse
8107
+ */
8108
+ export type PublishTaskResponse = {
8109
+ /**
8110
+ * Published At
8111
+ */
8112
+ published_at: string;
8113
+ /**
8114
+ * Task Id
8115
+ */
8116
+ task_id: string;
8117
+ /**
8118
+ * Version
8119
+ */
8120
+ version: number;
8121
+ /**
8122
+ * Warnings
8123
+ */
8124
+ warnings?: Array<string>;
8125
+ };
8126
+
7541
8127
  /**
7542
8128
  * PublishToolRequest
7543
8129
  */
@@ -7881,20 +8467,12 @@ export type RealtimeUsageResponse = {
7881
8467
  * RecipientActionResponse
7882
8468
  *
7883
8469
  * Skip-and-report, never a partial silent accept.
7884
- *
7885
- * ``job_id`` is set by `send` alone, so a client can tie a batch of rows that
7886
- * are visibly stuck to the `scheduled_jobs` row the scheduler is complaining
7887
- * about.
7888
8470
  */
7889
8471
  export type RecipientActionResponse = {
7890
8472
  /**
7891
8473
  * Affected
7892
8474
  */
7893
8475
  affected: number;
7894
- /**
7895
- * Job Id
7896
- */
7897
- job_id: string | null;
7898
8476
  /**
7899
8477
  * Rejected
7900
8478
  */
@@ -8011,6 +8589,42 @@ export type RecordingSpecOverride = {
8011
8589
  */
8012
8590
  export type RecordingState = 'none' | 'available' | 'pending' | 'expired' | 'failed' | 'not_shared' | 'consent_withdrawn' | 'deleted';
8013
8591
 
8592
+ /**
8593
+ * RedraftRequest
8594
+ *
8595
+ * Draft these rows again, from scratch.
8596
+ *
8597
+ * One verb for "write this row again", whatever put it in the state it is in —
8598
+ * a failed attempt, a prompt that has since improved, a draft nobody liked.
8599
+ * Four selections, and they differ in what they REFUSE as much as in what they
8600
+ * move, because a redraft discards a draft the tenant has already paid for:
8601
+ *
8602
+ * - ``all`` — every row in the batch. Rows already sent or queued come back in
8603
+ * ``rejected``, by name, so a bulk press cannot quietly do less than it said.
8604
+ * - ``failed`` — rows whose drafting failed.
8605
+ * - ``not_sent`` — every row that has not left and is not about to, with
8606
+ * nothing rejected.
8607
+ * - ``stale_version`` — rows drafted by a task version older than the one
8608
+ * published now. The selection that makes "watch the output, improve the
8609
+ * task, publish, redraft the rest" a workflow rather than a wish.
8610
+ */
8611
+ export type RedraftRequest = {
8612
+ /**
8613
+ * Clear Overrides
8614
+ *
8615
+ * Also discard the cells a person edited by hand. Off by default.
8616
+ */
8617
+ clear_overrides?: boolean;
8618
+ /**
8619
+ * Recipient Ids
8620
+ */
8621
+ recipient_ids?: Array<string> | null;
8622
+ /**
8623
+ * Selection
8624
+ */
8625
+ selection?: 'all' | 'failed' | 'not_sent' | 'stale_version' | null;
8626
+ };
8627
+
8014
8628
  /**
8015
8629
  * RejectedRecipient
8016
8630
  */
@@ -8105,6 +8719,12 @@ export type RunTaskRequest = {
8105
8719
  vars?: {
8106
8720
  [key: string]: string;
8107
8721
  };
8722
+ /**
8723
+ * Version
8724
+ *
8725
+ * Which definition to run. Omitted runs the published version. A number runs that frozen version. 'draft' runs the unpublished config, validated and tool-pinned at request time and refused with the publish errors if it does not hold together.
8726
+ */
8727
+ version?: number | 'draft' | null;
8108
8728
  };
8109
8729
 
8110
8730
  /**
@@ -8485,11 +9105,11 @@ export type SecretResponse = {
8485
9105
  /**
8486
9106
  * SelectRecipientsRequest
8487
9107
  *
8488
- * What `skip`, `restore` and `retry` accept — either shape.
9108
+ * What `skip` and `restore` accept — either shape.
8489
9109
  *
8490
- * These keep their bulk shorthand because the rule is about irreversibility,
8491
- * not about bulk: skipping four thousand rows is undone by restoring them,
8492
- * and making curation tedious pushes an operator toward not curating.
9110
+ * Both are reversible, which is why both take a bulk shorthand: skipping four
9111
+ * thousand rows is undone by restoring them, and making curation tedious pushes
9112
+ * an operator toward not curating.
8493
9113
  */
8494
9114
  export type SelectRecipientsRequest = {
8495
9115
  /**
@@ -8499,37 +9119,41 @@ export type SelectRecipientsRequest = {
8499
9119
  /**
8500
9120
  * Selection
8501
9121
  *
8502
- * Every row this verb can act on: `draft` for skip, `skipped` for restore, `draft_failed` for retry.
9122
+ * Every row this verb can act on: `draft` for skip, `skipped` for restore.
8503
9123
  */
8504
9124
  selection?: 'all_eligible' | null;
8505
9125
  };
8506
9126
 
8507
9127
  /**
8508
- * SendEmailBatchRequest
8509
- *
8510
- * The ONLY shape `send` accepts. 1..50 ids, named.
8511
- *
8512
- * There is deliberately no `selection` shorthand here — see
8513
- * ``MAX_SEND_PER_PRESS``. The three sender fields apply to THIS press alone;
8514
- * each omitted one falls back to the batch's, and none of them writes back.
9128
+ * SendDtmfConfig
8515
9129
  */
8516
- export type SendEmailBatchRequest = {
8517
- /**
8518
- * From Email
8519
- */
8520
- from_email?: string | null;
9130
+ export type SendDtmfConfig = {
8521
9131
  /**
8522
- * From Name
9132
+ * Digits
9133
+ *
9134
+ * Keys to press: 0-9, *, #, A-D. 'w' waits half a second and 'W' one second, for menus that need a pause. Supports {{args.*}} and {{userdata.*}}.
8523
9135
  */
8524
- from_name?: string | null;
9136
+ digits: string;
9137
+ };
9138
+
9139
+ /**
9140
+ * SendDtmfOperation
9141
+ *
9142
+ * Press keys on the call's keypad, for an IVR on the other end.
9143
+ *
9144
+ * Not terminal, unlike `end_call` and `transfer`: sending digits and then
9145
+ * saying something is the normal case, so a chain carries on afterwards.
9146
+ */
9147
+ export type SendDtmfOperation = {
9148
+ config: SendDtmfConfig;
8525
9149
  /**
8526
- * Recipient Ids
9150
+ * Kind
8527
9151
  */
8528
- recipient_ids: Array<string>;
9152
+ kind: 'send_dtmf';
8529
9153
  /**
8530
- * Reply To
9154
+ * On Error
8531
9155
  */
8532
- reply_to?: string | null;
9156
+ on_error?: 'abort' | 'continue';
8533
9157
  };
8534
9158
 
8535
9159
  /**
@@ -8795,6 +9419,95 @@ export type StoredPlanMember = {
8795
9419
  version: number | null;
8796
9420
  };
8797
9421
 
9422
+ /**
9423
+ * StreamConnectionResponse
9424
+ *
9425
+ * One connection, as a caller sees it.
9426
+ *
9427
+ * `url` is the whole configuration a partner needs, in full, on every read: it
9428
+ * carries no credential, so there is nothing here to mask and nothing to show
9429
+ * once and never again.
9430
+ */
9431
+ export type StreamConnectionResponse = {
9432
+ /**
9433
+ * Agent Id
9434
+ */
9435
+ agent_id: string;
9436
+ /**
9437
+ * Agent Name
9438
+ */
9439
+ agent_name: string | null;
9440
+ /**
9441
+ * Created At
9442
+ */
9443
+ created_at: string;
9444
+ /**
9445
+ * Dialect
9446
+ */
9447
+ dialect: 'twilio' | 'sparktg' | 'plivo' | 'exotel' | 'vonage';
9448
+ /**
9449
+ * Id
9450
+ */
9451
+ id: string;
9452
+ /**
9453
+ * Name
9454
+ */
9455
+ name: string;
9456
+ /**
9457
+ * Readiness
9458
+ */
9459
+ readiness: 'live' | 'needs_agent' | 'disabled';
9460
+ /**
9461
+ * Status
9462
+ */
9463
+ status: 'active' | 'disabled';
9464
+ /**
9465
+ * Updated At
9466
+ */
9467
+ updated_at: string;
9468
+ /**
9469
+ * Url
9470
+ */
9471
+ url: string;
9472
+ };
9473
+
9474
+ /**
9475
+ * StreamResponse
9476
+ *
9477
+ * Which partner connection carried this call, and on what.
9478
+ *
9479
+ * Sits beside `transfer` for the same reason it does: it explains something
9480
+ * about the call that no other field can. A `STREAM` call has no phone number
9481
+ * and no carrier account, so without this the "Runtime identifiers" panel is a
9482
+ * row of nulls and there is nothing to say where the audio came from.
9483
+ */
9484
+ export type StreamResponse = {
9485
+ /**
9486
+ * Codec
9487
+ */
9488
+ codec?: string | null;
9489
+ /**
9490
+ * Connection Id
9491
+ */
9492
+ connection_id?: string | null;
9493
+ /**
9494
+ * Connection Name
9495
+ */
9496
+ connection_name?: string | null;
9497
+ /**
9498
+ * Dialect
9499
+ */
9500
+ dialect?: string | null;
9501
+ /**
9502
+ * Platform Call Id
9503
+ */
9504
+ platform_call_id?: string | null;
9505
+ /**
9506
+ * Sample Rate
9507
+ */
9508
+ sample_rate?: number | null;
9509
+ };
9510
+
8798
9511
  /**
8799
9512
  * SystemVarResponse
8800
9513
  *
@@ -9179,20 +9892,37 @@ export type TTSUsageResponse = {
9179
9892
  /**
9180
9893
  * TaskConfig
9181
9894
  *
9182
- * The task definition. One saved config no versions, no publish step.
9895
+ * LiveKit's `AgentTask`: an agent with a typed result, on someone else's stack.
9896
+ *
9897
+ * It declares no channel, no media and no greeting. Entered by an agent it
9898
+ * speaks with that call's voice and hears with its ears; run on its own from
9899
+ * `POST /tasks/{id}/run` it is an LLM with tools and nobody to talk to. Which
9900
+ * of the two happens is the caller's, never the task's.
9183
9901
  */
9184
9902
  export type TaskConfig = {
9903
+ /**
9904
+ * Finish Without Result Description
9905
+ *
9906
+ * Description of `finish_without_result`, the tool that abandons a task an agent entered. Narrow it if the task gives up too readily. Unused by a standalone run.
9907
+ */
9908
+ finish_without_result_description?: string;
9909
+ /**
9910
+ * Kb Ids
9911
+ *
9912
+ * Knowledge bases to read from: their outline goes into the prompt and pages are fetched on demand.
9913
+ */
9914
+ kb_ids?: Array<string>;
9185
9915
  llm?: LLMSpec;
9186
9916
  /**
9187
9917
  * Max Steps
9188
9918
  *
9189
- * How many LLM -> tools -> LLM rounds the run may take. A round, not a tool call: four tools in one reply cost one step. The runaway-loop guard, not the time budget - lower it and a research task fails with `step_limit`.
9919
+ * How many LLM -> tools -> LLM rounds a standalone run may take. A round, not a tool call: four tools in one reply cost one step. Entered by an agent, the calling call's own limit applies instead.
9190
9920
  */
9191
9921
  max_steps?: number;
9192
9922
  /**
9193
9923
  * Mcps
9194
9924
  *
9195
- * MCP servers whose tools this task may call - each named by the integration that holds its credential, or defined inline.
9925
+ * MCP servers whose tools may be called each named by the integration that holds its credential, or defined inline. Which of a named server's tools may be called is the integration's own `allowed_tools`, not this list.
9196
9926
  */
9197
9927
  mcps?: Array<McpSelection>;
9198
9928
  /**
@@ -9201,40 +9931,49 @@ export type TaskConfig = {
9201
9931
  * Unique in the workspace.
9202
9932
  */
9203
9933
  name: string;
9934
+ on_enter?: ToolSelection | null;
9935
+ on_exit?: ToolSelection | null;
9936
+ on_user_turn_completed?: ToolSelection | null;
9204
9937
  /**
9205
9938
  * Output
9206
9939
  *
9207
- * The typed value this task produces. The model is given a `submit_result` tool built from these fields and told that calling it is how the run finishes.
9940
+ * The typed value this task produces. The model is given a `submit_result` tool built from these fields and told that calling it is how the run finishes. Publishing needs at least one; a draft may be empty.
9208
9941
  */
9209
- output: Array<TaskOutputField>;
9942
+ output?: Array<TaskOutputField>;
9210
9943
  /**
9211
9944
  * Prompt
9212
9945
  *
9213
- * The system prompt. `{{vars.name}}` is substituted from the values the run was started with, so one definition reads differently for every input it is given.
9946
+ * The system prompt. `{{vars.name}}` is substituted from the values the run was started with — or, entered by an agent, from the call's own values and the arguments the model supplied.
9214
9947
  */
9215
9948
  prompt?: string;
9949
+ /**
9950
+ * Submit Result Description
9951
+ *
9952
+ * Description of the generated `submit_result` tool - what the call is, where the output fields describe the values.
9953
+ */
9954
+ submit_result_description?: string;
9216
9955
  /**
9217
9956
  * Timeout Seconds
9218
9957
  *
9219
- * How long the whole run may take before it is abandoned and fails.
9958
+ * How long this may take before it is abandoned. Entered by an agent it is the only bound on how long the caller is held, so keep it short on a voice agent.
9220
9959
  */
9221
9960
  timeout_seconds?: number;
9222
9961
  /**
9223
9962
  * Timezone
9224
9963
  *
9225
- * The IANA timezone this task's clock runs on, e.g. 'Asia/Kolkata'. Required only if the prompt or a tool reads {{system_vars.now}} / .date / .time.
9964
+ * The IANA timezone this clock runs on, e.g. 'Asia/Kolkata'. Set it and the prompt and tools can read {{system_vars.now}}, {{system_vars.date}} and {{system_vars.time}}. Required only if one of those is used.
9226
9965
  */
9227
9966
  timezone?: string | null;
9228
9967
  /**
9229
9968
  * Tools
9230
9969
  *
9231
- * Tools the model may call during the run. A task never pins a tool version - republishing a tool changes every task that uses it, immediately.
9970
+ * Tools the model may call. Publishing pins each one to the tool version live at that moment, so republishing a tool does not change this until it is published again.
9232
9971
  */
9233
9972
  tools?: Array<ToolSelection>;
9234
9973
  /**
9235
9974
  * Vars
9236
9975
  *
9237
- * The inputs this task takes, read as {{vars.name}} in the prompt and in its tools. Whoever starts a run supplies the values; a variable the run omits falls back to its declared default, and a `required` one with neither is refused before the run starts.
9976
+ * The inputs this task takes, read as {{vars.name}} in the prompt and in its tools. Declare only what the caller or the model must supply: anything the task can read for itself ({{userdata.*}}, {{system_vars.*}}) it should read in its prompt instead.
9238
9977
  */
9239
9978
  vars?: Array<VarDeclaration>;
9240
9979
  };
@@ -9285,10 +10024,22 @@ export type TaskResponse = {
9285
10024
  */
9286
10025
  id: string;
9287
10026
  last_run: TaskRunSummary | null;
10027
+ /**
10028
+ * Published At
10029
+ */
10030
+ published_at: string | null;
10031
+ /**
10032
+ * Published Version
10033
+ */
10034
+ published_version: number | null;
9288
10035
  /**
9289
10036
  * Updated At
9290
10037
  */
9291
10038
  updated_at: string;
10039
+ /**
10040
+ * Versions
10041
+ */
10042
+ versions: Array<TaskVersionResponse> | null;
9292
10043
  };
9293
10044
 
9294
10045
  /**
@@ -9302,7 +10053,7 @@ export type TaskRunError = {
9302
10053
  /**
9303
10054
  * Type
9304
10055
  */
9305
- type: 'missing_vars' | 'no_output' | 'step_limit' | 'timeout' | 'provider_error' | 'configuration' | 'platform';
10056
+ type: 'missing_vars' | 'no_output' | 'step_limit' | 'timeout' | 'provider_error' | 'configuration' | 'platform' | 'canceled';
9306
10057
  };
9307
10058
 
9308
10059
  /**
@@ -9364,6 +10115,10 @@ export type TaskRunResponse = {
9364
10115
  * Task Name
9365
10116
  */
9366
10117
  task_name: string | null;
10118
+ /**
10119
+ * Task Version
10120
+ */
10121
+ task_version: number | null;
9367
10122
  /**
9368
10123
  * Trace
9369
10124
  */
@@ -9414,61 +10169,118 @@ export type TaskRunSummary = {
9414
10169
  };
9415
10170
 
9416
10171
  /**
9417
- * TaskWriteResponse
10172
+ * TaskSelection
9418
10173
  *
9419
- * What `create` and `update` return.
9420
- *
9421
- * `warnings` is the half of validation that must not become a 400 — a prompt
9422
- * that never mentions `submit_result`, a credential built out of `{{args.…}}`.
9423
- * There is no publish screen to show them on, so they come back beside the
9424
- * saved task; dropping them would lose the one signal that catches a task which
9425
- * saves cleanly and then fails every run.
10174
+ * One job this agent can enter and come back from: name a stored task, or
10175
+ * define one inline.
9426
10176
  */
9427
- export type TaskWriteResponse = {
9428
- task: TaskResponse;
10177
+ export type TaskSelection = {
9429
10178
  /**
9430
- * Warnings
10179
+ * Description
9431
10180
  */
9432
- warnings: Array<string>;
9433
- };
9434
-
9435
- /**
9436
- * TelephonyAccountResponse
9437
- */
9438
- export type TelephonyAccountResponse = {
10181
+ description: string;
9439
10182
  /**
9440
- * Account Info
10183
+ * Message
9441
10184
  */
9442
- account_info: {
9443
- [key: string]: unknown;
9444
- };
10185
+ message?: string | null;
9445
10186
  /**
9446
- * Created At
10187
+ * Name
9447
10188
  */
9448
- created_at: string;
10189
+ name: string;
10190
+ task?: TaskConfig | null;
9449
10191
  /**
9450
- * Credentials
10192
+ * Task Id
9451
10193
  */
9452
- credentials: {
9453
- [key: string]: unknown;
9454
- };
10194
+ task_id?: string | null;
9455
10195
  /**
9456
- * Display Name
10196
+ * Task Version
9457
10197
  */
9458
- display_name: string;
10198
+ task_version?: number | null;
10199
+ };
10200
+
10201
+ /**
10202
+ * TaskVersionDetailResponse
10203
+ *
10204
+ * One frozen version, unpacked: the definition that ran, beside its metadata.
10205
+ *
10206
+ * `config` comes back through `TaskConfig` rather than as raw JSONB, so a
10207
+ * version and the draft are normalized by the same validator and a diff of the
10208
+ * two cannot report a difference a default invented.
10209
+ *
10210
+ * It is the whole definition: the tool versions this publish pinned live in
10211
+ * `config.tools`, and their definitions in `tool_versions`.
10212
+ */
10213
+ export type TaskVersionDetailResponse = {
10214
+ config: TaskConfig;
9459
10215
  /**
9460
- * Id
10216
+ * Published At
9461
10217
  */
9462
- id: string;
10218
+ published_at: string;
9463
10219
  /**
9464
- * Last Synced At
10220
+ * Published By
9465
10221
  */
9466
- last_synced_at: string | null;
10222
+ published_by?: string | null;
9467
10223
  /**
9468
- * Provider
10224
+ * Version
9469
10225
  */
9470
- provider: 'plivo' | 'exotel' | 'vobiz' | 'twilio';
9471
- /**
10226
+ version: number;
10227
+ };
10228
+
10229
+ /**
10230
+ * TaskVersionResponse
10231
+ */
10232
+ export type TaskVersionResponse = {
10233
+ /**
10234
+ * Published At
10235
+ */
10236
+ published_at: string;
10237
+ /**
10238
+ * Published By
10239
+ */
10240
+ published_by?: string | null;
10241
+ /**
10242
+ * Version
10243
+ */
10244
+ version: number;
10245
+ };
10246
+
10247
+ /**
10248
+ * TelephonyAccountResponse
10249
+ */
10250
+ export type TelephonyAccountResponse = {
10251
+ /**
10252
+ * Account Info
10253
+ */
10254
+ account_info: {
10255
+ [key: string]: unknown;
10256
+ };
10257
+ /**
10258
+ * Created At
10259
+ */
10260
+ created_at: string;
10261
+ /**
10262
+ * Credentials
10263
+ */
10264
+ credentials: {
10265
+ [key: string]: unknown;
10266
+ };
10267
+ /**
10268
+ * Display Name
10269
+ */
10270
+ display_name: string;
10271
+ /**
10272
+ * Id
10273
+ */
10274
+ id: string;
10275
+ /**
10276
+ * Last Synced At
10277
+ */
10278
+ last_synced_at: string | null;
10279
+ /**
10280
+ * Provider
10281
+ */
10282
+ provider: 'plivo' | 'exotel' | 'vobiz' | 'twilio';
10283
+ /**
9472
10284
  * Provider State
9473
10285
  */
9474
10286
  provider_state: {
@@ -9710,6 +10522,39 @@ export type TextMessageResponse = {
9710
10522
  item: ConversationItemResponse;
9711
10523
  };
9712
10524
 
10525
+ /**
10526
+ * TimeWindow
10527
+ *
10528
+ * The hours a list may run in, on the list's own clock.
10529
+ *
10530
+ * Shared rather than duplicated, for the same reason ``window_state`` is: a
10531
+ * call batch and an email send run store the same three values under the same
10532
+ * names and must not each get their own copy of the rules. The field that
10533
+ * carries one is named for what it gates — ``calling_window`` on a campaign,
10534
+ * ``window`` on an email batch and its runs.
10535
+ *
10536
+ * A window that crosses midnight (``21:00``-``06:00``) is valid and means
10537
+ * exactly what an evening consumer-calling window means: the day check applies
10538
+ * to the *start* side, so ``21:00``-``06:00`` on ``days: [5]`` runs Friday
10539
+ * 21:00 through Saturday 06:00.
10540
+ */
10541
+ export type TimeWindow = {
10542
+ /**
10543
+ * Days
10544
+ *
10545
+ * ISO weekdays the window opens on, 1 = Monday.
10546
+ */
10547
+ days?: Array<number>;
10548
+ /**
10549
+ * End
10550
+ */
10551
+ end: string;
10552
+ /**
10553
+ * Start
10554
+ */
10555
+ start: string;
10556
+ };
10557
+
9713
10558
  /**
9714
10559
  * TocResultResponse
9715
10560
  */
@@ -9817,7 +10662,7 @@ export type ToolResponse = {
9817
10662
  /**
9818
10663
  * Operations
9819
10664
  */
9820
- operations: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation>;
10665
+ operations: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation | SendDtmfOperation>;
9821
10666
  /**
9822
10667
  * Published At
9823
10668
  */
@@ -9895,7 +10740,7 @@ export type ToolVersionDetailResponse = {
9895
10740
  /**
9896
10741
  * Operations
9897
10742
  */
9898
- operations: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation>;
10743
+ operations: Array<HttpOperation | CodeOperation | FrontendRpcOperation | IfOperation | SetVariableOperation | SayOperation | GenerateReplyOperation | AddMessageOperation | EndCallOperation | HandoffOperation | TransferOperation | SendDtmfOperation>;
9899
10744
  /**
9900
10745
  * Published At
9901
10746
  */
@@ -11414,7 +12259,7 @@ export type CallsListData = {
11414
12259
  *
11415
12260
  * how the call reached the agent
11416
12261
  */
11417
- type?: 'WEB' | 'SIP_INBOUND' | 'SIP_OUTBOUND' | null;
12262
+ type?: 'WEB' | 'SIP_INBOUND' | 'SIP_OUTBOUND' | 'STREAM' | null;
11418
12263
  /**
11419
12264
  * Status
11420
12265
  *
@@ -12509,6 +13354,52 @@ export type CatalogAvatarsListResults = {
12509
13354
 
12510
13355
  export type CatalogAvatarsListResult = CatalogAvatarsListResults[keyof CatalogAvatarsListResults];
12511
13356
 
13357
+ export type CatalogModelsSearchData = {
13358
+ body?: never;
13359
+ path?: never;
13360
+ query?: {
13361
+ /**
13362
+ * Q
13363
+ */
13364
+ q?: string;
13365
+ /**
13366
+ * Limit
13367
+ */
13368
+ limit?: number;
13369
+ /**
13370
+ * Cursor
13371
+ */
13372
+ cursor?: string;
13373
+ };
13374
+ url: '/v1/catalog/models';
13375
+ };
13376
+
13377
+ export type CatalogModelsSearchErrors = {
13378
+ /**
13379
+ * Missing credential, or one that is revoked or no longer a member of this organization.
13380
+ */
13381
+ 401: ErrorResponse;
13382
+ /**
13383
+ * The request did not match this operation's schema; `detail.errors` lists each field.
13384
+ */
13385
+ 422: ErrorResponse;
13386
+ /**
13387
+ * Unexpected error. Every error this API returns carries this body.
13388
+ */
13389
+ default: ErrorResponse;
13390
+ };
13391
+
13392
+ export type CatalogModelsSearchError = CatalogModelsSearchErrors[keyof CatalogModelsSearchErrors];
13393
+
13394
+ export type CatalogModelsSearchResults = {
13395
+ /**
13396
+ * Successful Response
13397
+ */
13398
+ 200: ModelSearchResponse;
13399
+ };
13400
+
13401
+ export type CatalogModelsSearchResult = CatalogModelsSearchResults[keyof CatalogModelsSearchResults];
13402
+
12512
13403
  export type CatalogVoicesListData = {
12513
13404
  body?: never;
12514
13405
  path?: never;
@@ -13930,8 +14821,8 @@ export type EmailBatchesRecipientsUpdateResults = {
13930
14821
 
13931
14822
  export type EmailBatchesRecipientsUpdateResult = EmailBatchesRecipientsUpdateResults[keyof EmailBatchesRecipientsUpdateResults];
13932
14823
 
13933
- export type EmailBatchesRecipientsRestoreData = {
13934
- body: SelectRecipientsRequest;
14824
+ export type EmailBatchesRecipientsRedraftData = {
14825
+ body: RedraftRequest;
13935
14826
  path: {
13936
14827
  /**
13937
14828
  * Batch Id
@@ -13939,10 +14830,10 @@ export type EmailBatchesRecipientsRestoreData = {
13939
14830
  batch_id: string;
13940
14831
  };
13941
14832
  query?: never;
13942
- url: '/v1/email/batches/{batch_id}/restore';
14833
+ url: '/v1/email/batches/{batch_id}/redraft';
13943
14834
  };
13944
14835
 
13945
- export type EmailBatchesRecipientsRestoreErrors = {
14836
+ export type EmailBatchesRecipientsRedraftErrors = {
13946
14837
  /**
13947
14838
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13948
14839
  */
@@ -13973,19 +14864,19 @@ export type EmailBatchesRecipientsRestoreErrors = {
13973
14864
  default: ErrorResponse;
13974
14865
  };
13975
14866
 
13976
- export type EmailBatchesRecipientsRestoreError = EmailBatchesRecipientsRestoreErrors[keyof EmailBatchesRecipientsRestoreErrors];
14867
+ export type EmailBatchesRecipientsRedraftError = EmailBatchesRecipientsRedraftErrors[keyof EmailBatchesRecipientsRedraftErrors];
13977
14868
 
13978
- export type EmailBatchesRecipientsRestoreResults = {
14869
+ export type EmailBatchesRecipientsRedraftResults = {
13979
14870
  /**
13980
14871
  * Successful Response
13981
14872
  */
13982
14873
  200: RecipientActionResponse;
13983
14874
  };
13984
14875
 
13985
- export type EmailBatchesRecipientsRestoreResult = EmailBatchesRecipientsRestoreResults[keyof EmailBatchesRecipientsRestoreResults];
14876
+ export type EmailBatchesRecipientsRedraftResult = EmailBatchesRecipientsRedraftResults[keyof EmailBatchesRecipientsRedraftResults];
13986
14877
 
13987
- export type EmailBatchesResumeData = {
13988
- body?: never;
14878
+ export type EmailBatchesRecipientsRestoreData = {
14879
+ body: SelectRecipientsRequest;
13989
14880
  path: {
13990
14881
  /**
13991
14882
  * Batch Id
@@ -13993,10 +14884,10 @@ export type EmailBatchesResumeData = {
13993
14884
  batch_id: string;
13994
14885
  };
13995
14886
  query?: never;
13996
- url: '/v1/email/batches/{batch_id}/resume';
14887
+ url: '/v1/email/batches/{batch_id}/restore';
13997
14888
  };
13998
14889
 
13999
- export type EmailBatchesResumeErrors = {
14890
+ export type EmailBatchesRecipientsRestoreErrors = {
14000
14891
  /**
14001
14892
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
14002
14893
  */
@@ -14027,19 +14918,19 @@ export type EmailBatchesResumeErrors = {
14027
14918
  default: ErrorResponse;
14028
14919
  };
14029
14920
 
14030
- export type EmailBatchesResumeError = EmailBatchesResumeErrors[keyof EmailBatchesResumeErrors];
14921
+ export type EmailBatchesRecipientsRestoreError = EmailBatchesRecipientsRestoreErrors[keyof EmailBatchesRecipientsRestoreErrors];
14031
14922
 
14032
- export type EmailBatchesResumeResults = {
14923
+ export type EmailBatchesRecipientsRestoreResults = {
14033
14924
  /**
14034
14925
  * Successful Response
14035
14926
  */
14036
- 200: EmailBatchResponse;
14927
+ 200: RecipientActionResponse;
14037
14928
  };
14038
14929
 
14039
- export type EmailBatchesResumeResult = EmailBatchesResumeResults[keyof EmailBatchesResumeResults];
14930
+ export type EmailBatchesRecipientsRestoreResult = EmailBatchesRecipientsRestoreResults[keyof EmailBatchesRecipientsRestoreResults];
14040
14931
 
14041
- export type EmailBatchesRecipientsRetryData = {
14042
- body: SelectRecipientsRequest;
14932
+ export type EmailBatchesResumeData = {
14933
+ body?: never;
14043
14934
  path: {
14044
14935
  /**
14045
14936
  * Batch Id
@@ -14047,10 +14938,10 @@ export type EmailBatchesRecipientsRetryData = {
14047
14938
  batch_id: string;
14048
14939
  };
14049
14940
  query?: never;
14050
- url: '/v1/email/batches/{batch_id}/retry';
14941
+ url: '/v1/email/batches/{batch_id}/resume';
14051
14942
  };
14052
14943
 
14053
- export type EmailBatchesRecipientsRetryErrors = {
14944
+ export type EmailBatchesResumeErrors = {
14054
14945
  /**
14055
14946
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
14056
14947
  */
@@ -14081,50 +14972,47 @@ export type EmailBatchesRecipientsRetryErrors = {
14081
14972
  default: ErrorResponse;
14082
14973
  };
14083
14974
 
14084
- export type EmailBatchesRecipientsRetryError = EmailBatchesRecipientsRetryErrors[keyof EmailBatchesRecipientsRetryErrors];
14975
+ export type EmailBatchesResumeError = EmailBatchesResumeErrors[keyof EmailBatchesResumeErrors];
14085
14976
 
14086
- export type EmailBatchesRecipientsRetryResults = {
14977
+ export type EmailBatchesResumeResults = {
14087
14978
  /**
14088
14979
  * Successful Response
14089
14980
  */
14090
- 200: RecipientActionResponse;
14981
+ 200: EmailBatchResponse;
14091
14982
  };
14092
14983
 
14093
- export type EmailBatchesRecipientsRetryResult = EmailBatchesRecipientsRetryResults[keyof EmailBatchesRecipientsRetryResults];
14984
+ export type EmailBatchesResumeResult = EmailBatchesResumeResults[keyof EmailBatchesResumeResults];
14094
14985
 
14095
- export type EmailBatchesRecipientsSendData = {
14096
- body: SendEmailBatchRequest;
14986
+ export type EmailBatchesSendsListData = {
14987
+ body?: never;
14097
14988
  path: {
14098
14989
  /**
14099
14990
  * Batch Id
14100
14991
  */
14101
14992
  batch_id: string;
14102
14993
  };
14103
- query?: never;
14104
- url: '/v1/email/batches/{batch_id}/send';
14994
+ query?: {
14995
+ /**
14996
+ * Limit
14997
+ */
14998
+ limit?: number;
14999
+ /**
15000
+ * Offset
15001
+ */
15002
+ offset?: number;
15003
+ };
15004
+ url: '/v1/email/batches/{batch_id}/sends';
14105
15005
  };
14106
15006
 
14107
- export type EmailBatchesRecipientsSendErrors = {
14108
- /**
14109
- * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
14110
- */
14111
- 400: ErrorResponse;
15007
+ export type EmailBatchesSendsListErrors = {
14112
15008
  /**
14113
15009
  * Missing credential, or one that is revoked or no longer a member of this organization.
14114
15010
  */
14115
15011
  401: ErrorResponse;
14116
- /**
14117
- * Authenticated, but this organization role may not perform the operation.
14118
- */
14119
- 403: ErrorResponse;
14120
15012
  /**
14121
15013
  * No such resource in this organization.
14122
15014
  */
14123
15015
  404: ErrorResponse;
14124
- /**
14125
- * The resource's current state forbids this — a name already taken, a job already running.
14126
- */
14127
- 409: ErrorResponse;
14128
15016
  /**
14129
15017
  * The request did not match this operation's schema; `detail.errors` lists each field.
14130
15018
  */
@@ -14135,19 +15023,19 @@ export type EmailBatchesRecipientsSendErrors = {
14135
15023
  default: ErrorResponse;
14136
15024
  };
14137
15025
 
14138
- export type EmailBatchesRecipientsSendError = EmailBatchesRecipientsSendErrors[keyof EmailBatchesRecipientsSendErrors];
15026
+ export type EmailBatchesSendsListError = EmailBatchesSendsListErrors[keyof EmailBatchesSendsListErrors];
14139
15027
 
14140
- export type EmailBatchesRecipientsSendResults = {
15028
+ export type EmailBatchesSendsListResults = {
14141
15029
  /**
14142
15030
  * Successful Response
14143
15031
  */
14144
- 200: RecipientActionResponse;
15032
+ 200: PageEmailSendResponse;
14145
15033
  };
14146
15034
 
14147
- export type EmailBatchesRecipientsSendResult = EmailBatchesRecipientsSendResults[keyof EmailBatchesRecipientsSendResults];
15035
+ export type EmailBatchesSendsListResult = EmailBatchesSendsListResults[keyof EmailBatchesSendsListResults];
14148
15036
 
14149
- export type EmailBatchesRecipientsSkipData = {
14150
- body: SelectRecipientsRequest;
15037
+ export type EmailBatchesSendsCreateData = {
15038
+ body: CreateEmailSendRequest;
14151
15039
  path: {
14152
15040
  /**
14153
15041
  * Batch Id
@@ -14155,10 +15043,10 @@ export type EmailBatchesRecipientsSkipData = {
14155
15043
  batch_id: string;
14156
15044
  };
14157
15045
  query?: never;
14158
- url: '/v1/email/batches/{batch_id}/skip';
15046
+ url: '/v1/email/batches/{batch_id}/sends';
14159
15047
  };
14160
15048
 
14161
- export type EmailBatchesRecipientsSkipErrors = {
15049
+ export type EmailBatchesSendsCreateErrors = {
14162
15050
  /**
14163
15051
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
14164
15052
  */
@@ -14189,36 +15077,42 @@ export type EmailBatchesRecipientsSkipErrors = {
14189
15077
  default: ErrorResponse;
14190
15078
  };
14191
15079
 
14192
- export type EmailBatchesRecipientsSkipError = EmailBatchesRecipientsSkipErrors[keyof EmailBatchesRecipientsSkipErrors];
15080
+ export type EmailBatchesSendsCreateError = EmailBatchesSendsCreateErrors[keyof EmailBatchesSendsCreateErrors];
14193
15081
 
14194
- export type EmailBatchesRecipientsSkipResults = {
15082
+ export type EmailBatchesSendsCreateResults = {
14195
15083
  /**
14196
15084
  * Successful Response
14197
15085
  */
14198
- 200: RecipientActionResponse;
15086
+ 201: CreateEmailSendResponse;
14199
15087
  };
14200
15088
 
14201
- export type EmailBatchesRecipientsSkipResult = EmailBatchesRecipientsSkipResults[keyof EmailBatchesRecipientsSkipResults];
15089
+ export type EmailBatchesSendsCreateResult = EmailBatchesSendsCreateResults[keyof EmailBatchesSendsCreateResults];
14202
15090
 
14203
- export type EmailSendersListData = {
15091
+ export type EmailBatchesSendsGetData = {
14204
15092
  body?: never;
14205
- path?: never;
14206
- query: {
15093
+ path: {
14207
15094
  /**
14208
- * Integration Id
14209
- *
14210
- * A connected Resend account.
15095
+ * Batch Id
14211
15096
  */
14212
- integration_id: string;
15097
+ batch_id: string;
15098
+ /**
15099
+ * Send Id
15100
+ */
15101
+ send_id: string;
14213
15102
  };
14214
- url: '/v1/email/senders';
15103
+ query?: never;
15104
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}';
14215
15105
  };
14216
15106
 
14217
- export type EmailSendersListErrors = {
15107
+ export type EmailBatchesSendsGetErrors = {
14218
15108
  /**
14219
15109
  * Missing credential, or one that is revoked or no longer a member of this organization.
14220
15110
  */
14221
15111
  401: ErrorResponse;
15112
+ /**
15113
+ * No such resource in this organization.
15114
+ */
15115
+ 404: ErrorResponse;
14222
15116
  /**
14223
15117
  * The request did not match this operation's schema; `detail.errors` lists each field.
14224
15118
  */
@@ -14229,38 +15123,54 @@ export type EmailSendersListErrors = {
14229
15123
  default: ErrorResponse;
14230
15124
  };
14231
15125
 
14232
- export type EmailSendersListError = EmailSendersListErrors[keyof EmailSendersListErrors];
15126
+ export type EmailBatchesSendsGetError = EmailBatchesSendsGetErrors[keyof EmailBatchesSendsGetErrors];
14233
15127
 
14234
- export type EmailSendersListResults = {
15128
+ export type EmailBatchesSendsGetResults = {
14235
15129
  /**
14236
15130
  * Successful Response
14237
15131
  */
14238
- 200: VerifiedSendersResponse;
15132
+ 200: EmailSendResponse;
14239
15133
  };
14240
15134
 
14241
- export type EmailSendersListResult = EmailSendersListResults[keyof EmailSendersListResults];
15135
+ export type EmailBatchesSendsGetResult = EmailBatchesSendsGetResults[keyof EmailBatchesSendsGetResults];
14242
15136
 
14243
- export type IntegrationsListData = {
14244
- body?: never;
14245
- path?: never;
14246
- query?: {
15137
+ export type EmailBatchesSendsUpdateData = {
15138
+ body: PatchEmailSendRequest;
15139
+ path: {
14247
15140
  /**
14248
- * Limit
15141
+ * Batch Id
14249
15142
  */
14250
- limit?: number;
15143
+ batch_id: string;
14251
15144
  /**
14252
- * Offset
15145
+ * Send Id
14253
15146
  */
14254
- offset?: number;
15147
+ send_id: string;
14255
15148
  };
14256
- url: '/v1/integrations';
15149
+ query?: never;
15150
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}';
14257
15151
  };
14258
15152
 
14259
- export type IntegrationsListErrors = {
15153
+ export type EmailBatchesSendsUpdateErrors = {
15154
+ /**
15155
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
15156
+ */
15157
+ 400: ErrorResponse;
14260
15158
  /**
14261
15159
  * Missing credential, or one that is revoked or no longer a member of this organization.
14262
15160
  */
14263
15161
  401: ErrorResponse;
15162
+ /**
15163
+ * Authenticated, but this organization role may not perform the operation.
15164
+ */
15165
+ 403: ErrorResponse;
15166
+ /**
15167
+ * No such resource in this organization.
15168
+ */
15169
+ 404: ErrorResponse;
15170
+ /**
15171
+ * The resource's current state forbids this — a name already taken, a job already running.
15172
+ */
15173
+ 409: ErrorResponse;
14264
15174
  /**
14265
15175
  * The request did not match this operation's schema; `detail.errors` lists each field.
14266
15176
  */
@@ -14271,25 +15181,34 @@ export type IntegrationsListErrors = {
14271
15181
  default: ErrorResponse;
14272
15182
  };
14273
15183
 
14274
- export type IntegrationsListError = IntegrationsListErrors[keyof IntegrationsListErrors];
15184
+ export type EmailBatchesSendsUpdateError = EmailBatchesSendsUpdateErrors[keyof EmailBatchesSendsUpdateErrors];
14275
15185
 
14276
- export type IntegrationsListResults = {
15186
+ export type EmailBatchesSendsUpdateResults = {
14277
15187
  /**
14278
15188
  * Successful Response
14279
15189
  */
14280
- 200: PageIntegrationResponse;
15190
+ 200: EmailSendResponse;
14281
15191
  };
14282
15192
 
14283
- export type IntegrationsListResult = IntegrationsListResults[keyof IntegrationsListResults];
15193
+ export type EmailBatchesSendsUpdateResult = EmailBatchesSendsUpdateResults[keyof EmailBatchesSendsUpdateResults];
14284
15194
 
14285
- export type IntegrationsCreateData = {
14286
- body: CreateIntegrationRequest;
14287
- path?: never;
15195
+ export type EmailBatchesSendsCancelData = {
15196
+ body?: never;
15197
+ path: {
15198
+ /**
15199
+ * Batch Id
15200
+ */
15201
+ batch_id: string;
15202
+ /**
15203
+ * Send Id
15204
+ */
15205
+ send_id: string;
15206
+ };
14288
15207
  query?: never;
14289
- url: '/v1/integrations';
15208
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}/cancel';
14290
15209
  };
14291
15210
 
14292
- export type IntegrationsCreateErrors = {
15211
+ export type EmailBatchesSendsCancelErrors = {
14293
15212
  /**
14294
15213
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
14295
15214
  */
@@ -14302,6 +15221,10 @@ export type IntegrationsCreateErrors = {
14302
15221
  * Authenticated, but this organization role may not perform the operation.
14303
15222
  */
14304
15223
  403: ErrorResponse;
15224
+ /**
15225
+ * No such resource in this organization.
15226
+ */
15227
+ 404: ErrorResponse;
14305
15228
  /**
14306
15229
  * The resource's current state forbids this — a name already taken, a job already running.
14307
15230
  */
@@ -14316,7 +15239,304 @@ export type IntegrationsCreateErrors = {
14316
15239
  default: ErrorResponse;
14317
15240
  };
14318
15241
 
14319
- export type IntegrationsCreateError = IntegrationsCreateErrors[keyof IntegrationsCreateErrors];
15242
+ export type EmailBatchesSendsCancelError = EmailBatchesSendsCancelErrors[keyof EmailBatchesSendsCancelErrors];
15243
+
15244
+ export type EmailBatchesSendsCancelResults = {
15245
+ /**
15246
+ * Successful Response
15247
+ */
15248
+ 200: EmailSendResponse;
15249
+ };
15250
+
15251
+ export type EmailBatchesSendsCancelResult = EmailBatchesSendsCancelResults[keyof EmailBatchesSendsCancelResults];
15252
+
15253
+ export type EmailBatchesSendsPauseData = {
15254
+ body?: never;
15255
+ path: {
15256
+ /**
15257
+ * Batch Id
15258
+ */
15259
+ batch_id: string;
15260
+ /**
15261
+ * Send Id
15262
+ */
15263
+ send_id: string;
15264
+ };
15265
+ query?: never;
15266
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}/pause';
15267
+ };
15268
+
15269
+ export type EmailBatchesSendsPauseErrors = {
15270
+ /**
15271
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
15272
+ */
15273
+ 400: ErrorResponse;
15274
+ /**
15275
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15276
+ */
15277
+ 401: ErrorResponse;
15278
+ /**
15279
+ * Authenticated, but this organization role may not perform the operation.
15280
+ */
15281
+ 403: ErrorResponse;
15282
+ /**
15283
+ * No such resource in this organization.
15284
+ */
15285
+ 404: ErrorResponse;
15286
+ /**
15287
+ * The resource's current state forbids this — a name already taken, a job already running.
15288
+ */
15289
+ 409: ErrorResponse;
15290
+ /**
15291
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15292
+ */
15293
+ 422: ErrorResponse;
15294
+ /**
15295
+ * Unexpected error. Every error this API returns carries this body.
15296
+ */
15297
+ default: ErrorResponse;
15298
+ };
15299
+
15300
+ export type EmailBatchesSendsPauseError = EmailBatchesSendsPauseErrors[keyof EmailBatchesSendsPauseErrors];
15301
+
15302
+ export type EmailBatchesSendsPauseResults = {
15303
+ /**
15304
+ * Successful Response
15305
+ */
15306
+ 200: EmailSendResponse;
15307
+ };
15308
+
15309
+ export type EmailBatchesSendsPauseResult = EmailBatchesSendsPauseResults[keyof EmailBatchesSendsPauseResults];
15310
+
15311
+ export type EmailBatchesSendsResumeData = {
15312
+ body?: never;
15313
+ path: {
15314
+ /**
15315
+ * Batch Id
15316
+ */
15317
+ batch_id: string;
15318
+ /**
15319
+ * Send Id
15320
+ */
15321
+ send_id: string;
15322
+ };
15323
+ query?: never;
15324
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}/resume';
15325
+ };
15326
+
15327
+ export type EmailBatchesSendsResumeErrors = {
15328
+ /**
15329
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
15330
+ */
15331
+ 400: ErrorResponse;
15332
+ /**
15333
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15334
+ */
15335
+ 401: ErrorResponse;
15336
+ /**
15337
+ * Authenticated, but this organization role may not perform the operation.
15338
+ */
15339
+ 403: ErrorResponse;
15340
+ /**
15341
+ * No such resource in this organization.
15342
+ */
15343
+ 404: ErrorResponse;
15344
+ /**
15345
+ * The resource's current state forbids this — a name already taken, a job already running.
15346
+ */
15347
+ 409: ErrorResponse;
15348
+ /**
15349
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15350
+ */
15351
+ 422: ErrorResponse;
15352
+ /**
15353
+ * Unexpected error. Every error this API returns carries this body.
15354
+ */
15355
+ default: ErrorResponse;
15356
+ };
15357
+
15358
+ export type EmailBatchesSendsResumeError = EmailBatchesSendsResumeErrors[keyof EmailBatchesSendsResumeErrors];
15359
+
15360
+ export type EmailBatchesSendsResumeResults = {
15361
+ /**
15362
+ * Successful Response
15363
+ */
15364
+ 200: EmailSendResponse;
15365
+ };
15366
+
15367
+ export type EmailBatchesSendsResumeResult = EmailBatchesSendsResumeResults[keyof EmailBatchesSendsResumeResults];
15368
+
15369
+ export type EmailBatchesRecipientsSkipData = {
15370
+ body: SelectRecipientsRequest;
15371
+ path: {
15372
+ /**
15373
+ * Batch Id
15374
+ */
15375
+ batch_id: string;
15376
+ };
15377
+ query?: never;
15378
+ url: '/v1/email/batches/{batch_id}/skip';
15379
+ };
15380
+
15381
+ export type EmailBatchesRecipientsSkipErrors = {
15382
+ /**
15383
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
15384
+ */
15385
+ 400: ErrorResponse;
15386
+ /**
15387
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15388
+ */
15389
+ 401: ErrorResponse;
15390
+ /**
15391
+ * Authenticated, but this organization role may not perform the operation.
15392
+ */
15393
+ 403: ErrorResponse;
15394
+ /**
15395
+ * No such resource in this organization.
15396
+ */
15397
+ 404: ErrorResponse;
15398
+ /**
15399
+ * The resource's current state forbids this — a name already taken, a job already running.
15400
+ */
15401
+ 409: ErrorResponse;
15402
+ /**
15403
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15404
+ */
15405
+ 422: ErrorResponse;
15406
+ /**
15407
+ * Unexpected error. Every error this API returns carries this body.
15408
+ */
15409
+ default: ErrorResponse;
15410
+ };
15411
+
15412
+ export type EmailBatchesRecipientsSkipError = EmailBatchesRecipientsSkipErrors[keyof EmailBatchesRecipientsSkipErrors];
15413
+
15414
+ export type EmailBatchesRecipientsSkipResults = {
15415
+ /**
15416
+ * Successful Response
15417
+ */
15418
+ 200: RecipientActionResponse;
15419
+ };
15420
+
15421
+ export type EmailBatchesRecipientsSkipResult = EmailBatchesRecipientsSkipResults[keyof EmailBatchesRecipientsSkipResults];
15422
+
15423
+ export type EmailSendersListData = {
15424
+ body?: never;
15425
+ path?: never;
15426
+ query: {
15427
+ /**
15428
+ * Integration Id
15429
+ *
15430
+ * A connected Resend account.
15431
+ */
15432
+ integration_id: string;
15433
+ };
15434
+ url: '/v1/email/senders';
15435
+ };
15436
+
15437
+ export type EmailSendersListErrors = {
15438
+ /**
15439
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15440
+ */
15441
+ 401: ErrorResponse;
15442
+ /**
15443
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15444
+ */
15445
+ 422: ErrorResponse;
15446
+ /**
15447
+ * Unexpected error. Every error this API returns carries this body.
15448
+ */
15449
+ default: ErrorResponse;
15450
+ };
15451
+
15452
+ export type EmailSendersListError = EmailSendersListErrors[keyof EmailSendersListErrors];
15453
+
15454
+ export type EmailSendersListResults = {
15455
+ /**
15456
+ * Successful Response
15457
+ */
15458
+ 200: VerifiedSendersResponse;
15459
+ };
15460
+
15461
+ export type EmailSendersListResult = EmailSendersListResults[keyof EmailSendersListResults];
15462
+
15463
+ export type IntegrationsListData = {
15464
+ body?: never;
15465
+ path?: never;
15466
+ query?: {
15467
+ /**
15468
+ * Limit
15469
+ */
15470
+ limit?: number;
15471
+ /**
15472
+ * Offset
15473
+ */
15474
+ offset?: number;
15475
+ };
15476
+ url: '/v1/integrations';
15477
+ };
15478
+
15479
+ export type IntegrationsListErrors = {
15480
+ /**
15481
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15482
+ */
15483
+ 401: ErrorResponse;
15484
+ /**
15485
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15486
+ */
15487
+ 422: ErrorResponse;
15488
+ /**
15489
+ * Unexpected error. Every error this API returns carries this body.
15490
+ */
15491
+ default: ErrorResponse;
15492
+ };
15493
+
15494
+ export type IntegrationsListError = IntegrationsListErrors[keyof IntegrationsListErrors];
15495
+
15496
+ export type IntegrationsListResults = {
15497
+ /**
15498
+ * Successful Response
15499
+ */
15500
+ 200: PageIntegrationResponse;
15501
+ };
15502
+
15503
+ export type IntegrationsListResult = IntegrationsListResults[keyof IntegrationsListResults];
15504
+
15505
+ export type IntegrationsCreateData = {
15506
+ body: CreateIntegrationRequest;
15507
+ path?: never;
15508
+ query?: never;
15509
+ url: '/v1/integrations';
15510
+ };
15511
+
15512
+ export type IntegrationsCreateErrors = {
15513
+ /**
15514
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
15515
+ */
15516
+ 400: ErrorResponse;
15517
+ /**
15518
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15519
+ */
15520
+ 401: ErrorResponse;
15521
+ /**
15522
+ * Authenticated, but this organization role may not perform the operation.
15523
+ */
15524
+ 403: ErrorResponse;
15525
+ /**
15526
+ * The resource's current state forbids this — a name already taken, a job already running.
15527
+ */
15528
+ 409: ErrorResponse;
15529
+ /**
15530
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15531
+ */
15532
+ 422: ErrorResponse;
15533
+ /**
15534
+ * Unexpected error. Every error this API returns carries this body.
15535
+ */
15536
+ default: ErrorResponse;
15537
+ };
15538
+
15539
+ export type IntegrationsCreateError = IntegrationsCreateErrors[keyof IntegrationsCreateErrors];
14320
15540
 
14321
15541
  export type IntegrationsCreateResults = {
14322
15542
  /**
@@ -15534,9 +16754,195 @@ export type SecretsListData = {
15534
16754
 
15535
16755
  export type SecretsListErrors = {
15536
16756
  /**
15537
- * Missing credential, or one that is revoked or no longer a member of this organization.
16757
+ * Missing credential, or one that is revoked or no longer a member of this organization.
16758
+ */
16759
+ 401: ErrorResponse;
16760
+ /**
16761
+ * The request did not match this operation's schema; `detail.errors` lists each field.
16762
+ */
16763
+ 422: ErrorResponse;
16764
+ /**
16765
+ * Unexpected error. Every error this API returns carries this body.
16766
+ */
16767
+ default: ErrorResponse;
16768
+ };
16769
+
16770
+ export type SecretsListError = SecretsListErrors[keyof SecretsListErrors];
16771
+
16772
+ export type SecretsListResults = {
16773
+ /**
16774
+ * Successful Response
16775
+ */
16776
+ 200: PageSecretResponse;
16777
+ };
16778
+
16779
+ export type SecretsListResult = SecretsListResults[keyof SecretsListResults];
16780
+
16781
+ export type SecretsCreateData = {
16782
+ body: CreateSecretRequest;
16783
+ path?: never;
16784
+ query?: never;
16785
+ url: '/v1/secrets';
16786
+ };
16787
+
16788
+ export type SecretsCreateErrors = {
16789
+ /**
16790
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
16791
+ */
16792
+ 400: ErrorResponse;
16793
+ /**
16794
+ * Missing credential, or one that is revoked or no longer a member of this organization.
16795
+ */
16796
+ 401: ErrorResponse;
16797
+ /**
16798
+ * Authenticated, but this organization role may not perform the operation.
16799
+ */
16800
+ 403: ErrorResponse;
16801
+ /**
16802
+ * The resource's current state forbids this — a name already taken, a job already running.
16803
+ */
16804
+ 409: ErrorResponse;
16805
+ /**
16806
+ * The request did not match this operation's schema; `detail.errors` lists each field.
16807
+ */
16808
+ 422: ErrorResponse;
16809
+ /**
16810
+ * Unexpected error. Every error this API returns carries this body.
16811
+ */
16812
+ default: ErrorResponse;
16813
+ };
16814
+
16815
+ export type SecretsCreateError = SecretsCreateErrors[keyof SecretsCreateErrors];
16816
+
16817
+ export type SecretsCreateResults = {
16818
+ /**
16819
+ * Successful Response
16820
+ */
16821
+ 201: SecretResponse;
16822
+ };
16823
+
16824
+ export type SecretsCreateResult = SecretsCreateResults[keyof SecretsCreateResults];
16825
+
16826
+ export type SecretsDeleteData = {
16827
+ body?: never;
16828
+ path: {
16829
+ /**
16830
+ * Secret Id
16831
+ */
16832
+ secret_id: string;
16833
+ };
16834
+ query?: never;
16835
+ url: '/v1/secrets/{secret_id}';
16836
+ };
16837
+
16838
+ export type SecretsDeleteErrors = {
16839
+ /**
16840
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
16841
+ */
16842
+ 400: ErrorResponse;
16843
+ /**
16844
+ * Missing credential, or one that is revoked or no longer a member of this organization.
16845
+ */
16846
+ 401: ErrorResponse;
16847
+ /**
16848
+ * Authenticated, but this organization role may not perform the operation.
16849
+ */
16850
+ 403: ErrorResponse;
16851
+ /**
16852
+ * No such resource in this organization.
16853
+ */
16854
+ 404: ErrorResponse;
16855
+ /**
16856
+ * The resource's current state forbids this — a name already taken, a job already running.
16857
+ */
16858
+ 409: ErrorResponse;
16859
+ /**
16860
+ * The request did not match this operation's schema; `detail.errors` lists each field.
16861
+ */
16862
+ 422: ErrorResponse;
16863
+ /**
16864
+ * Unexpected error. Every error this API returns carries this body.
16865
+ */
16866
+ default: ErrorResponse;
16867
+ };
16868
+
16869
+ export type SecretsDeleteError = SecretsDeleteErrors[keyof SecretsDeleteErrors];
16870
+
16871
+ export type SecretsDeleteResults = {
16872
+ /**
16873
+ * Successful Response
16874
+ */
16875
+ 200: OkResponse;
16876
+ };
16877
+
16878
+ export type SecretsDeleteResult = SecretsDeleteResults[keyof SecretsDeleteResults];
16879
+
16880
+ export type TelephonyStreamsListData = {
16881
+ body?: never;
16882
+ path?: never;
16883
+ query?: {
16884
+ /**
16885
+ * Limit
16886
+ */
16887
+ limit?: number;
16888
+ /**
16889
+ * Offset
16890
+ */
16891
+ offset?: number;
16892
+ };
16893
+ url: '/v1/streams';
16894
+ };
16895
+
16896
+ export type TelephonyStreamsListErrors = {
16897
+ /**
16898
+ * Missing credential, or one that is revoked or no longer a member of this organization.
16899
+ */
16900
+ 401: ErrorResponse;
16901
+ /**
16902
+ * The request did not match this operation's schema; `detail.errors` lists each field.
16903
+ */
16904
+ 422: ErrorResponse;
16905
+ /**
16906
+ * Unexpected error. Every error this API returns carries this body.
16907
+ */
16908
+ default: ErrorResponse;
16909
+ };
16910
+
16911
+ export type TelephonyStreamsListError = TelephonyStreamsListErrors[keyof TelephonyStreamsListErrors];
16912
+
16913
+ export type TelephonyStreamsListResults = {
16914
+ /**
16915
+ * Successful Response
16916
+ */
16917
+ 200: PageStreamConnectionResponse;
16918
+ };
16919
+
16920
+ export type TelephonyStreamsListResult = TelephonyStreamsListResults[keyof TelephonyStreamsListResults];
16921
+
16922
+ export type TelephonyStreamsCreateData = {
16923
+ body: CreateStreamConnectionRequest;
16924
+ path?: never;
16925
+ query?: never;
16926
+ url: '/v1/streams';
16927
+ };
16928
+
16929
+ export type TelephonyStreamsCreateErrors = {
16930
+ /**
16931
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
16932
+ */
16933
+ 400: ErrorResponse;
16934
+ /**
16935
+ * Missing credential, or one that is revoked or no longer a member of this organization.
16936
+ */
16937
+ 401: ErrorResponse;
16938
+ /**
16939
+ * Authenticated, but this organization role may not perform the operation.
16940
+ */
16941
+ 403: ErrorResponse;
16942
+ /**
16943
+ * The resource's current state forbids this — a name already taken, a job already running.
15538
16944
  */
15539
- 401: ErrorResponse;
16945
+ 409: ErrorResponse;
15540
16946
  /**
15541
16947
  * The request did not match this operation's schema; `detail.errors` lists each field.
15542
16948
  */
@@ -15547,25 +16953,30 @@ export type SecretsListErrors = {
15547
16953
  default: ErrorResponse;
15548
16954
  };
15549
16955
 
15550
- export type SecretsListError = SecretsListErrors[keyof SecretsListErrors];
16956
+ export type TelephonyStreamsCreateError = TelephonyStreamsCreateErrors[keyof TelephonyStreamsCreateErrors];
15551
16957
 
15552
- export type SecretsListResults = {
16958
+ export type TelephonyStreamsCreateResults = {
15553
16959
  /**
15554
16960
  * Successful Response
15555
16961
  */
15556
- 200: PageSecretResponse;
16962
+ 201: StreamConnectionResponse;
15557
16963
  };
15558
16964
 
15559
- export type SecretsListResult = SecretsListResults[keyof SecretsListResults];
16965
+ export type TelephonyStreamsCreateResult = TelephonyStreamsCreateResults[keyof TelephonyStreamsCreateResults];
15560
16966
 
15561
- export type SecretsCreateData = {
15562
- body: CreateSecretRequest;
15563
- path?: never;
16967
+ export type TelephonyStreamsDeleteData = {
16968
+ body?: never;
16969
+ path: {
16970
+ /**
16971
+ * Connection Id
16972
+ */
16973
+ connection_id: string;
16974
+ };
15564
16975
  query?: never;
15565
- url: '/v1/secrets';
16976
+ url: '/v1/streams/{connection_id}';
15566
16977
  };
15567
16978
 
15568
- export type SecretsCreateErrors = {
16979
+ export type TelephonyStreamsDeleteErrors = {
15569
16980
  /**
15570
16981
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
15571
16982
  */
@@ -15578,6 +16989,10 @@ export type SecretsCreateErrors = {
15578
16989
  * Authenticated, but this organization role may not perform the operation.
15579
16990
  */
15580
16991
  403: ErrorResponse;
16992
+ /**
16993
+ * No such resource in this organization.
16994
+ */
16995
+ 404: ErrorResponse;
15581
16996
  /**
15582
16997
  * The resource's current state forbids this — a name already taken, a job already running.
15583
16998
  */
@@ -15592,30 +17007,72 @@ export type SecretsCreateErrors = {
15592
17007
  default: ErrorResponse;
15593
17008
  };
15594
17009
 
15595
- export type SecretsCreateError = SecretsCreateErrors[keyof SecretsCreateErrors];
17010
+ export type TelephonyStreamsDeleteError = TelephonyStreamsDeleteErrors[keyof TelephonyStreamsDeleteErrors];
15596
17011
 
15597
- export type SecretsCreateResults = {
17012
+ export type TelephonyStreamsDeleteResults = {
15598
17013
  /**
15599
17014
  * Successful Response
15600
17015
  */
15601
- 201: SecretResponse;
17016
+ 200: OkResponse;
15602
17017
  };
15603
17018
 
15604
- export type SecretsCreateResult = SecretsCreateResults[keyof SecretsCreateResults];
17019
+ export type TelephonyStreamsDeleteResult = TelephonyStreamsDeleteResults[keyof TelephonyStreamsDeleteResults];
15605
17020
 
15606
- export type SecretsDeleteData = {
17021
+ export type TelephonyStreamsGetData = {
15607
17022
  body?: never;
15608
17023
  path: {
15609
17024
  /**
15610
- * Secret Id
17025
+ * Connection Id
15611
17026
  */
15612
- secret_id: string;
17027
+ connection_id: string;
15613
17028
  };
15614
17029
  query?: never;
15615
- url: '/v1/secrets/{secret_id}';
17030
+ url: '/v1/streams/{connection_id}';
15616
17031
  };
15617
17032
 
15618
- export type SecretsDeleteErrors = {
17033
+ export type TelephonyStreamsGetErrors = {
17034
+ /**
17035
+ * Missing credential, or one that is revoked or no longer a member of this organization.
17036
+ */
17037
+ 401: ErrorResponse;
17038
+ /**
17039
+ * No such resource in this organization.
17040
+ */
17041
+ 404: ErrorResponse;
17042
+ /**
17043
+ * The request did not match this operation's schema; `detail.errors` lists each field.
17044
+ */
17045
+ 422: ErrorResponse;
17046
+ /**
17047
+ * Unexpected error. Every error this API returns carries this body.
17048
+ */
17049
+ default: ErrorResponse;
17050
+ };
17051
+
17052
+ export type TelephonyStreamsGetError = TelephonyStreamsGetErrors[keyof TelephonyStreamsGetErrors];
17053
+
17054
+ export type TelephonyStreamsGetResults = {
17055
+ /**
17056
+ * Successful Response
17057
+ */
17058
+ 200: StreamConnectionResponse;
17059
+ };
17060
+
17061
+ export type TelephonyStreamsGetResult = TelephonyStreamsGetResults[keyof TelephonyStreamsGetResults];
17062
+
17063
+ export type TelephonyStreamsUpdateData = {
17064
+ body: PatchStreamConnectionRequest;
17065
+ path: {
17066
+ /**
17067
+ * Connection Id
17068
+ */
17069
+ connection_id: string;
17070
+ };
17071
+ query?: never;
17072
+ url: '/v1/streams/{connection_id}';
17073
+ };
17074
+
17075
+ export type TelephonyStreamsUpdateErrors = {
15619
17076
  /**
15620
17077
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
15621
17078
  */
@@ -15646,16 +17103,16 @@ export type SecretsDeleteErrors = {
15646
17103
  default: ErrorResponse;
15647
17104
  };
15648
17105
 
15649
- export type SecretsDeleteError = SecretsDeleteErrors[keyof SecretsDeleteErrors];
17106
+ export type TelephonyStreamsUpdateError = TelephonyStreamsUpdateErrors[keyof TelephonyStreamsUpdateErrors];
15650
17107
 
15651
- export type SecretsDeleteResults = {
17108
+ export type TelephonyStreamsUpdateResults = {
15652
17109
  /**
15653
17110
  * Successful Response
15654
17111
  */
15655
- 200: OkResponse;
17112
+ 200: StreamConnectionResponse;
15656
17113
  };
15657
17114
 
15658
- export type SecretsDeleteResult = SecretsDeleteResults[keyof SecretsDeleteResults];
17115
+ export type TelephonyStreamsUpdateResult = TelephonyStreamsUpdateResults[keyof TelephonyStreamsUpdateResults];
15659
17116
 
15660
17117
  export type TasksListData = {
15661
17118
  body?: never;
@@ -15739,7 +17196,7 @@ export type TasksCreateResults = {
15739
17196
  /**
15740
17197
  * Successful Response
15741
17198
  */
15742
- 201: TaskWriteResponse;
17199
+ 201: TaskResponse;
15743
17200
  };
15744
17201
 
15745
17202
  export type TasksCreateResult = TasksCreateResults[keyof TasksCreateResults];
@@ -15889,11 +17346,65 @@ export type TasksUpdateResults = {
15889
17346
  /**
15890
17347
  * Successful Response
15891
17348
  */
15892
- 200: TaskWriteResponse;
17349
+ 200: TaskResponse;
15893
17350
  };
15894
17351
 
15895
17352
  export type TasksUpdateResult = TasksUpdateResults[keyof TasksUpdateResults];
15896
17353
 
17354
+ export type TasksPublishData = {
17355
+ body?: never;
17356
+ path: {
17357
+ /**
17358
+ * Task Id
17359
+ */
17360
+ task_id: string;
17361
+ };
17362
+ query?: never;
17363
+ url: '/v1/tasks/{task_id}/publish';
17364
+ };
17365
+
17366
+ export type TasksPublishErrors = {
17367
+ /**
17368
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
17369
+ */
17370
+ 400: ErrorResponse;
17371
+ /**
17372
+ * Missing credential, or one that is revoked or no longer a member of this organization.
17373
+ */
17374
+ 401: ErrorResponse;
17375
+ /**
17376
+ * Authenticated, but this organization role may not perform the operation.
17377
+ */
17378
+ 403: ErrorResponse;
17379
+ /**
17380
+ * No such resource in this organization.
17381
+ */
17382
+ 404: ErrorResponse;
17383
+ /**
17384
+ * The resource's current state forbids this — a name already taken, a job already running.
17385
+ */
17386
+ 409: ErrorResponse;
17387
+ /**
17388
+ * The request did not match this operation's schema; `detail.errors` lists each field.
17389
+ */
17390
+ 422: ErrorResponse;
17391
+ /**
17392
+ * Unexpected error. Every error this API returns carries this body.
17393
+ */
17394
+ default: ErrorResponse;
17395
+ };
17396
+
17397
+ export type TasksPublishError = TasksPublishErrors[keyof TasksPublishErrors];
17398
+
17399
+ export type TasksPublishResults = {
17400
+ /**
17401
+ * Successful Response
17402
+ */
17403
+ 200: PublishTaskResponse;
17404
+ };
17405
+
17406
+ export type TasksPublishResult = TasksPublishResults[keyof TasksPublishResults];
17407
+
15897
17408
  export type TasksRunsListData = {
15898
17409
  body?: never;
15899
17410
  path: {
@@ -16045,6 +17556,164 @@ export type TasksRunsGetResults = {
16045
17556
 
16046
17557
  export type TasksRunsGetResult = TasksRunsGetResults[keyof TasksRunsGetResults];
16047
17558
 
17559
+ export type TasksValidateData = {
17560
+ body?: never;
17561
+ path: {
17562
+ /**
17563
+ * Task Id
17564
+ */
17565
+ task_id: string;
17566
+ };
17567
+ query?: never;
17568
+ url: '/v1/tasks/{task_id}/validate';
17569
+ };
17570
+
17571
+ export type TasksValidateErrors = {
17572
+ /**
17573
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
17574
+ */
17575
+ 400: ErrorResponse;
17576
+ /**
17577
+ * Missing credential, or one that is revoked or no longer a member of this organization.
17578
+ */
17579
+ 401: ErrorResponse;
17580
+ /**
17581
+ * Authenticated, but this organization role may not perform the operation.
17582
+ */
17583
+ 403: ErrorResponse;
17584
+ /**
17585
+ * No such resource in this organization.
17586
+ */
17587
+ 404: ErrorResponse;
17588
+ /**
17589
+ * The resource's current state forbids this — a name already taken, a job already running.
17590
+ */
17591
+ 409: ErrorResponse;
17592
+ /**
17593
+ * The request did not match this operation's schema; `detail.errors` lists each field.
17594
+ */
17595
+ 422: ErrorResponse;
17596
+ /**
17597
+ * Unexpected error. Every error this API returns carries this body.
17598
+ */
17599
+ default: ErrorResponse;
17600
+ };
17601
+
17602
+ export type TasksValidateError = TasksValidateErrors[keyof TasksValidateErrors];
17603
+
17604
+ export type TasksValidateResults = {
17605
+ /**
17606
+ * Successful Response
17607
+ */
17608
+ 200: ValidateResponse;
17609
+ };
17610
+
17611
+ export type TasksValidateResult = TasksValidateResults[keyof TasksValidateResults];
17612
+
17613
+ export type TasksVersionsGetData = {
17614
+ body?: never;
17615
+ path: {
17616
+ /**
17617
+ * Task Id
17618
+ */
17619
+ task_id: string;
17620
+ /**
17621
+ * Version
17622
+ */
17623
+ version: number;
17624
+ };
17625
+ query?: never;
17626
+ url: '/v1/tasks/{task_id}/versions/{version}';
17627
+ };
17628
+
17629
+ export type TasksVersionsGetErrors = {
17630
+ /**
17631
+ * Missing credential, or one that is revoked or no longer a member of this organization.
17632
+ */
17633
+ 401: ErrorResponse;
17634
+ /**
17635
+ * No such resource in this organization.
17636
+ */
17637
+ 404: ErrorResponse;
17638
+ /**
17639
+ * The request did not match this operation's schema; `detail.errors` lists each field.
17640
+ */
17641
+ 422: ErrorResponse;
17642
+ /**
17643
+ * Unexpected error. Every error this API returns carries this body.
17644
+ */
17645
+ default: ErrorResponse;
17646
+ };
17647
+
17648
+ export type TasksVersionsGetError = TasksVersionsGetErrors[keyof TasksVersionsGetErrors];
17649
+
17650
+ export type TasksVersionsGetResults = {
17651
+ /**
17652
+ * Successful Response
17653
+ */
17654
+ 200: TaskVersionDetailResponse;
17655
+ };
17656
+
17657
+ export type TasksVersionsGetResult = TasksVersionsGetResults[keyof TasksVersionsGetResults];
17658
+
17659
+ export type TasksVersionsRollbackData = {
17660
+ body?: never;
17661
+ path: {
17662
+ /**
17663
+ * Task Id
17664
+ */
17665
+ task_id: string;
17666
+ /**
17667
+ * Version
17668
+ */
17669
+ version: number;
17670
+ };
17671
+ query?: never;
17672
+ url: '/v1/tasks/{task_id}/versions/{version}/rollback';
17673
+ };
17674
+
17675
+ export type TasksVersionsRollbackErrors = {
17676
+ /**
17677
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
17678
+ */
17679
+ 400: ErrorResponse;
17680
+ /**
17681
+ * Missing credential, or one that is revoked or no longer a member of this organization.
17682
+ */
17683
+ 401: ErrorResponse;
17684
+ /**
17685
+ * Authenticated, but this organization role may not perform the operation.
17686
+ */
17687
+ 403: ErrorResponse;
17688
+ /**
17689
+ * No such resource in this organization.
17690
+ */
17691
+ 404: ErrorResponse;
17692
+ /**
17693
+ * The resource's current state forbids this — a name already taken, a job already running.
17694
+ */
17695
+ 409: ErrorResponse;
17696
+ /**
17697
+ * The request did not match this operation's schema; `detail.errors` lists each field.
17698
+ */
17699
+ 422: ErrorResponse;
17700
+ /**
17701
+ * Unexpected error. Every error this API returns carries this body.
17702
+ */
17703
+ default: ErrorResponse;
17704
+ };
17705
+
17706
+ export type TasksVersionsRollbackError = TasksVersionsRollbackErrors[keyof TasksVersionsRollbackErrors];
17707
+
17708
+ export type TasksVersionsRollbackResults = {
17709
+ /**
17710
+ * Successful Response
17711
+ */
17712
+ 200: TaskResponse;
17713
+ };
17714
+
17715
+ export type TasksVersionsRollbackResult = TasksVersionsRollbackResults[keyof TasksVersionsRollbackResults];
17716
+
16048
17717
  export type TelephonyAccountsListData = {
16049
17718
  body?: never;
16050
17719
  path?: never;