@talqing/sdk 0.3.0 → 0.4.1

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.
@@ -1126,7 +1126,7 @@ export type CallBatchResponse = {
1126
1126
  */
1127
1127
  agent_name: string | null;
1128
1128
  agent_plan?: StoredAgentPlan | null;
1129
- calling_window: CallingWindow | null;
1129
+ calling_window: TimeWindow | null;
1130
1130
  counts: CallBatchCounts;
1131
1131
  /**
1132
1132
  * Created At
@@ -1511,20 +1511,10 @@ export type CallTeamMemberResponse = {
1511
1511
  };
1512
1512
  /**
1513
1513
  * CallTokenResponse
1514
+ *
1515
+ * How to join this call, and which call it is.
1514
1516
  */
1515
1517
  export type CallTokenResponse = {
1516
- /**
1517
- * Agent Version
1518
- */
1519
- agent_version?: number | null;
1520
- /**
1521
- * Contact Key
1522
- */
1523
- contact_key: string;
1524
- /**
1525
- * Conversation Id
1526
- */
1527
- conversation_id: string;
1528
1518
  /**
1529
1519
  * Participant Token
1530
1520
  */
@@ -1540,7 +1530,7 @@ export type CallTokenResponse = {
1540
1530
  /**
1541
1531
  * Warnings
1542
1532
  */
1543
- warnings?: Array<string>;
1533
+ warnings: Array<string>;
1544
1534
  };
1545
1535
  /**
1546
1536
  * CallToolResponse
@@ -1583,32 +1573,6 @@ export type CallToolResponse = {
1583
1573
  */
1584
1574
  silent?: boolean;
1585
1575
  };
1586
- /**
1587
- * CallingWindow
1588
- *
1589
- * The hours a batch may dial in, on the batch's own clock.
1590
- *
1591
- * A window that crosses midnight (``21:00``–``06:00``) is valid and means
1592
- * exactly what an evening consumer-calling window means: the day check applies
1593
- * to the *start* side, so ``21:00``–``06:00`` on ``days: [5]`` runs Friday
1594
- * 21:00 through Saturday 06:00.
1595
- */
1596
- export type CallingWindow = {
1597
- /**
1598
- * Days
1599
- *
1600
- * ISO weekdays the window opens on, 1 = Monday.
1601
- */
1602
- days?: Array<number>;
1603
- /**
1604
- * End
1605
- */
1606
- end: string;
1607
- /**
1608
- * Start
1609
- */
1610
- start: string;
1611
- };
1612
1576
  /**
1613
1577
  * CatalogResponse
1614
1578
  */
@@ -1685,6 +1649,11 @@ export type CodeConfig = {
1685
1649
  };
1686
1650
  /**
1687
1651
  * CodeOperation
1652
+ *
1653
+ * Run TypeScript to transform or shape data an `http` operation cannot.
1654
+ *
1655
+ * Its sandbox has `fetch`, but reaching an API with it instead of an `http`
1656
+ * operation costs a V8 isolate per call and hides the request from the editor.
1688
1657
  */
1689
1658
  export type CodeOperation = {
1690
1659
  /**
@@ -2422,7 +2391,7 @@ export type CreateCallBatchRequest = {
2422
2391
  * 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.
2423
2392
  */
2424
2393
  agent_version?: number | 'draft' | null;
2425
- calling_window?: CallingWindow | null;
2394
+ calling_window?: TimeWindow | null;
2426
2395
  /**
2427
2396
  * From Phone Number Id
2428
2397
  */
@@ -2472,12 +2441,27 @@ export type CreateEmailBatchRequest = {
2472
2441
  * Body Format
2473
2442
  */
2474
2443
  body_format?: 'text' | 'html';
2475
- calling_window?: CallingWindow | null;
2444
+ /**
2445
+ * Draft Attempts
2446
+ */
2447
+ draft_attempts?: number;
2448
+ /**
2449
+ * Draft Concurrency
2450
+ */
2451
+ draft_concurrency?: number;
2452
+ /**
2453
+ * Draft Gap Seconds
2454
+ */
2455
+ draft_gap_seconds?: number;
2456
+ /**
2457
+ * Draft Retry After Minutes
2458
+ */
2459
+ draft_retry_after_minutes?: number;
2476
2460
  field_map: FieldMap;
2477
2461
  /**
2478
2462
  * From Email
2479
2463
  *
2480
- * The default sending address. Its domain must be verified on that Resend account; a single send may override this for that press alone.
2464
+ * The default sending address. Its domain must be verified on that Resend account; a send may override this for its own rows alone.
2481
2465
  */
2482
2466
  from_email: string;
2483
2467
  /**
@@ -2490,14 +2474,6 @@ export type CreateEmailBatchRequest = {
2490
2474
  * A connected Resend account.
2491
2475
  */
2492
2476
  integration_id: string;
2493
- /**
2494
- * Max Attempts
2495
- */
2496
- max_attempts?: number;
2497
- /**
2498
- * Max Concurrency
2499
- */
2500
- max_concurrency?: number;
2501
2477
  /**
2502
2478
  * Name
2503
2479
  */
@@ -2511,15 +2487,25 @@ export type CreateEmailBatchRequest = {
2511
2487
  */
2512
2488
  reply_to?: string | null;
2513
2489
  /**
2514
- * Retry After Minutes
2490
+ * Send Attempts
2515
2491
  */
2516
- retry_after_minutes?: number;
2492
+ send_attempts?: number;
2517
2493
  /**
2518
- * Send Sleep Seconds
2494
+ * Send Daily Cap
2519
2495
  *
2520
- * Seconds slept after each email within one send. One press of 50 rows takes about `50 x this` seconds.
2496
+ * Emails this batch may send per local day, across all of its sends. Null is uncapped.
2521
2497
  */
2522
- send_sleep_seconds?: number;
2498
+ send_daily_cap?: number | null;
2499
+ /**
2500
+ * Send Gap Seconds
2501
+ *
2502
+ * Minimum seconds between STARTING two emails. 60 means one a minute.
2503
+ */
2504
+ send_gap_seconds?: number;
2505
+ /**
2506
+ * Send Retry After Minutes
2507
+ */
2508
+ send_retry_after_minutes?: number;
2523
2509
  /**
2524
2510
  * Start At
2525
2511
  */
@@ -2534,6 +2520,86 @@ export type CreateEmailBatchRequest = {
2534
2520
  * Timezone
2535
2521
  */
2536
2522
  timezone: string;
2523
+ /**
2524
+ * When email may LEAVE. Inherited by every send this batch creates.
2525
+ */
2526
+ window?: TimeWindow | null;
2527
+ };
2528
+ /**
2529
+ * CreateEmailSendRequest
2530
+ *
2531
+ * Send these rows. **This is the call that mails real people.**
2532
+ *
2533
+ * Name ``recipient_ids`` or pass ``selection: "all_drafts"``. Everything else
2534
+ * defaults to the batch's own setting; ``window`` and ``send_daily_cap`` accept
2535
+ * an explicit ``null`` to mean "no window" and "uncapped" rather than
2536
+ * "inherit", so the service reads ``model_fields_set``.
2537
+ *
2538
+ * The sender applies to THIS send alone and never writes back to the batch.
2539
+ */
2540
+ export type CreateEmailSendRequest = {
2541
+ /**
2542
+ * From Email
2543
+ */
2544
+ from_email?: string | null;
2545
+ /**
2546
+ * From Name
2547
+ */
2548
+ from_name?: string | null;
2549
+ /**
2550
+ * Recipient Ids
2551
+ */
2552
+ recipient_ids?: Array<string> | null;
2553
+ /**
2554
+ * Reply To
2555
+ */
2556
+ reply_to?: string | null;
2557
+ /**
2558
+ * Selection
2559
+ */
2560
+ selection?: 'all_drafts' | null;
2561
+ /**
2562
+ * Send Attempts
2563
+ */
2564
+ send_attempts?: number | null;
2565
+ /**
2566
+ * Send Daily Cap
2567
+ */
2568
+ send_daily_cap?: number | null;
2569
+ /**
2570
+ * Send Gap Seconds
2571
+ */
2572
+ send_gap_seconds?: number | null;
2573
+ /**
2574
+ * Send Retry After Minutes
2575
+ */
2576
+ send_retry_after_minutes?: number | null;
2577
+ /**
2578
+ * Start At
2579
+ */
2580
+ start_at?: string | null;
2581
+ /**
2582
+ * Timezone
2583
+ */
2584
+ timezone?: string | null;
2585
+ window?: TimeWindow | null;
2586
+ };
2587
+ /**
2588
+ * CreateEmailSendResponse
2589
+ *
2590
+ * The send that was created, and every row that did not go into it.
2591
+ *
2592
+ * Two halves rather than one, because they answer different questions and a
2593
+ * caller needs both: what is now scheduled to go out, and which rows it
2594
+ * refused and why. If NOTHING in the selection could be sent there is no send
2595
+ * to describe, so that case is a 400 naming the reasons instead.
2596
+ */
2597
+ export type CreateEmailSendResponse = {
2598
+ /**
2599
+ * Rejected
2600
+ */
2601
+ rejected: Array<RejectedRecipient>;
2602
+ send: EmailSendResponse;
2537
2603
  };
2538
2604
  /**
2539
2605
  * CreateIntegrationRequest
@@ -2981,6 +3047,25 @@ export type DeliveryResultResponse = {
2981
3047
  */
2982
3048
  webhook_id: string;
2983
3049
  };
3050
+ /**
3051
+ * DraftedVersion
3052
+ *
3053
+ * How many of this batch's rows were written by one version of its task.
3054
+ *
3055
+ * The batch page's whole answer to "did my edit change anything": a list that
3056
+ * reads "1 204 rows on v2, 96 on v3" names both the improvement and exactly
3057
+ * which rows are still on the old prompt.
3058
+ */
3059
+ export type DraftedVersion = {
3060
+ /**
3061
+ * Count
3062
+ */
3063
+ count: number;
3064
+ /**
3065
+ * Version
3066
+ */
3067
+ version: number;
3068
+ };
2984
3069
  /**
2985
3070
  * EmailBatchCounts
2986
3071
  */
@@ -3038,16 +3123,35 @@ export type EmailBatchResponse = {
3038
3123
  * Body Format
3039
3124
  */
3040
3125
  body_format: 'text' | 'html';
3041
- calling_window: CallingWindow | null;
3042
3126
  counts: EmailBatchCounts;
3043
3127
  /**
3044
3128
  * Created At
3045
3129
  */
3046
3130
  created_at: string;
3131
+ /**
3132
+ * Draft Attempts
3133
+ */
3134
+ draft_attempts: number;
3135
+ /**
3136
+ * Draft Concurrency
3137
+ */
3138
+ draft_concurrency: number;
3139
+ /**
3140
+ * Draft Gap Seconds
3141
+ */
3142
+ draft_gap_seconds: number;
3143
+ /**
3144
+ * Draft Retry After Minutes
3145
+ */
3146
+ draft_retry_after_minutes: number;
3047
3147
  /**
3048
3148
  * Drafted At
3049
3149
  */
3050
3150
  drafted_at: string | null;
3151
+ /**
3152
+ * Drafted Versions
3153
+ */
3154
+ drafted_versions: Array<DraftedVersion>;
3051
3155
  /**
3052
3156
  * Failure Reason
3053
3157
  */
@@ -3077,14 +3181,6 @@ export type EmailBatchResponse = {
3077
3181
  * Integration Name
3078
3182
  */
3079
3183
  integration_name: string | null;
3080
- /**
3081
- * Max Attempts
3082
- */
3083
- max_attempts: number;
3084
- /**
3085
- * Max Concurrency
3086
- */
3087
- max_concurrency: number;
3088
3184
  /**
3089
3185
  * Name
3090
3186
  */
@@ -3101,18 +3197,34 @@ export type EmailBatchResponse = {
3101
3197
  * Provider Cost
3102
3198
  */
3103
3199
  provider_cost: number | null;
3200
+ /**
3201
+ * Published Task Version
3202
+ */
3203
+ published_task_version: number | null;
3104
3204
  /**
3105
3205
  * Reply To
3106
3206
  */
3107
3207
  reply_to: string | null;
3108
3208
  /**
3109
- * Retry After Minutes
3209
+ * Send Attempts
3110
3210
  */
3111
- retry_after_minutes: number;
3211
+ send_attempts: number;
3212
+ /**
3213
+ * Send Daily Cap
3214
+ */
3215
+ send_daily_cap: number | null;
3216
+ /**
3217
+ * Send Gap Seconds
3218
+ */
3219
+ send_gap_seconds: number;
3220
+ /**
3221
+ * Send Retry After Minutes
3222
+ */
3223
+ send_retry_after_minutes: number;
3112
3224
  /**
3113
- * Send Sleep Seconds
3225
+ * Sent Today
3114
3226
  */
3115
- send_sleep_seconds: number;
3227
+ sent_today: number;
3116
3228
  /**
3117
3229
  * Start At
3118
3230
  */
@@ -3137,6 +3249,7 @@ export type EmailBatchResponse = {
3137
3249
  * Timezone
3138
3250
  */
3139
3251
  timezone: string;
3252
+ window: TimeWindow | null;
3140
3253
  };
3141
3254
  /**
3142
3255
  * EmailRecipientInput
@@ -3215,9 +3328,9 @@ export type EmailRecipientResponse = {
3215
3328
  */
3216
3329
  send_attempts: number;
3217
3330
  /**
3218
- * Send Job Id
3331
+ * Send Run Id
3219
3332
  */
3220
- send_job_id: string | null;
3333
+ send_run_id: string | null;
3221
3334
  /**
3222
3335
  * Sent At
3223
3336
  */
@@ -3238,6 +3351,10 @@ export type EmailRecipientResponse = {
3238
3351
  * Task Run Id
3239
3352
  */
3240
3353
  task_run_id: string | null;
3354
+ /**
3355
+ * Task Version
3356
+ */
3357
+ task_version: number | null;
3241
3358
  /**
3242
3359
  * To Email
3243
3360
  */
@@ -3247,6 +3364,120 @@ export type EmailRecipientResponse = {
3247
3364
  */
3248
3365
  updated_at: string;
3249
3366
  };
3367
+ /**
3368
+ * EmailSendCounts
3369
+ *
3370
+ * Where this send's rows are.
3371
+ *
3372
+ * ``total`` is what the send was created with and never changes — a send's row
3373
+ * set is immutable — so ``returned`` is what is left once every other bucket is
3374
+ * accounted for: the rows a cancel or a failure handed back as drafts.
3375
+ */
3376
+ export type EmailSendCounts = {
3377
+ /**
3378
+ * Queued
3379
+ */
3380
+ queued: number;
3381
+ /**
3382
+ * Returned
3383
+ */
3384
+ returned: number;
3385
+ /**
3386
+ * Send Failed
3387
+ */
3388
+ send_failed: number;
3389
+ /**
3390
+ * Sending
3391
+ */
3392
+ sending: number;
3393
+ /**
3394
+ * Sent
3395
+ */
3396
+ sent: number;
3397
+ /**
3398
+ * Skipped
3399
+ */
3400
+ skipped: number;
3401
+ /**
3402
+ * Total
3403
+ */
3404
+ total: number;
3405
+ };
3406
+ /**
3407
+ * EmailSendResponse
3408
+ */
3409
+ export type EmailSendResponse = {
3410
+ /**
3411
+ * Batch Id
3412
+ */
3413
+ batch_id: string;
3414
+ counts: EmailSendCounts;
3415
+ /**
3416
+ * Created At
3417
+ */
3418
+ created_at: string;
3419
+ /**
3420
+ * Failure Reason
3421
+ */
3422
+ failure_reason: string | null;
3423
+ /**
3424
+ * Finished At
3425
+ */
3426
+ finished_at: string | null;
3427
+ /**
3428
+ * From Email
3429
+ */
3430
+ from_email: string;
3431
+ /**
3432
+ * From Name
3433
+ */
3434
+ from_name: string | null;
3435
+ /**
3436
+ * Id
3437
+ */
3438
+ id: string;
3439
+ /**
3440
+ * Next Send At
3441
+ */
3442
+ next_send_at: string | null;
3443
+ /**
3444
+ * Reply To
3445
+ */
3446
+ reply_to: string | null;
3447
+ /**
3448
+ * Send Attempts
3449
+ */
3450
+ send_attempts: number;
3451
+ /**
3452
+ * Send Daily Cap
3453
+ */
3454
+ send_daily_cap: number | null;
3455
+ /**
3456
+ * Send Gap Seconds
3457
+ */
3458
+ send_gap_seconds: number;
3459
+ /**
3460
+ * Send Retry After Minutes
3461
+ */
3462
+ send_retry_after_minutes: number;
3463
+ /**
3464
+ * Start At
3465
+ */
3466
+ start_at: string | null;
3467
+ /**
3468
+ * Started At
3469
+ */
3470
+ started_at: string | null;
3471
+ /**
3472
+ * Status
3473
+ */
3474
+ status: 'scheduled' | 'sending' | 'paused' | 'sent' | 'canceled' | 'failed';
3475
+ /**
3476
+ * Timezone
3477
+ */
3478
+ timezone: string;
3479
+ window: TimeWindow | null;
3480
+ };
3250
3481
  /**
3251
3482
  * EndCallConfig
3252
3483
  *
@@ -3445,15 +3676,34 @@ export type FrontendRpcOperation = {
3445
3676
  silent?: boolean;
3446
3677
  };
3447
3678
  /**
3448
- * GenerateReplyConfig
3679
+ * FunctionArgumentsResponse
3449
3680
  */
3450
- export type GenerateReplyConfig = {
3681
+ export type FunctionArgumentsResponse = {
3451
3682
  /**
3452
- * Instructions
3683
+ * Description
3453
3684
  */
3454
- instructions: string;
3685
+ description: string;
3455
3686
  /**
3456
- * Wait For Playback
3687
+ * Json Schema
3688
+ */
3689
+ json_schema: {
3690
+ [key: string]: unknown;
3691
+ };
3692
+ /**
3693
+ * Name
3694
+ */
3695
+ name: string;
3696
+ };
3697
+ /**
3698
+ * GenerateReplyConfig
3699
+ */
3700
+ export type GenerateReplyConfig = {
3701
+ /**
3702
+ * Instructions
3703
+ */
3704
+ instructions: string;
3705
+ /**
3706
+ * Wait For Playback
3457
3707
  */
3458
3708
  wait_for_playback?: boolean;
3459
3709
  };
@@ -3768,6 +4018,8 @@ export type HttpConfig = {
3768
4018
  };
3769
4019
  /**
3770
4020
  * HttpOperation
4021
+ *
4022
+ * Call a REST API. The right operation for any plain request/response call.
3771
4023
  */
3772
4024
  export type HttpOperation = {
3773
4025
  /**
@@ -5883,28 +6135,18 @@ export type OutboundCallRequest = {
5883
6135
  };
5884
6136
  /**
5885
6137
  * OutboundCallResponse
6138
+ *
6139
+ * Which call this is, and what resolving it complained about.
5886
6140
  */
5887
6141
  export type OutboundCallResponse = {
5888
- /**
5889
- * Agent Version
5890
- */
5891
- agent_version?: number | null;
5892
- /**
5893
- * Conversation Id
5894
- */
5895
- conversation_id: string;
5896
6142
  /**
5897
6143
  * Session Id
5898
6144
  */
5899
6145
  session_id: string;
5900
- /**
5901
- * Status
5902
- */
5903
- status: string;
5904
6146
  /**
5905
6147
  * Warnings
5906
6148
  */
5907
- warnings?: Array<string>;
6149
+ warnings: Array<string>;
5908
6150
  };
5909
6151
  /**
5910
6152
  * OutcomeSpec
@@ -6188,6 +6430,27 @@ export type PageEmailRecipientResponse = {
6188
6430
  */
6189
6431
  offset: number;
6190
6432
  };
6433
+ /**
6434
+ * Page[EmailSendResponse]
6435
+ */
6436
+ export type PageEmailSendResponse = {
6437
+ /**
6438
+ * Has More
6439
+ */
6440
+ has_more: boolean;
6441
+ /**
6442
+ * Items
6443
+ */
6444
+ items: Array<EmailSendResponse>;
6445
+ /**
6446
+ * Limit
6447
+ */
6448
+ limit: number;
6449
+ /**
6450
+ * Offset
6451
+ */
6452
+ offset: number;
6453
+ };
6191
6454
  /**
6192
6455
  * Page[IntegrationCatalogItem]
6193
6456
  */
@@ -6498,7 +6761,7 @@ export type PatchCallBatchRequest = {
6498
6761
  * Agent Id
6499
6762
  */
6500
6763
  agent_id?: string | null;
6501
- calling_window?: CallingWindow | null;
6764
+ calling_window?: TimeWindow | null;
6502
6765
  /**
6503
6766
  * From Phone Number Id
6504
6767
  */
@@ -6554,21 +6817,37 @@ export type PatchConversationRequest = {
6554
6817
  *
6555
6818
  * Policy edits.
6556
6819
  *
6557
- * ``calling_window`` and ``start_at`` accept an explicit ``null`` to *clear*
6558
- * them — "draft at any hour", "start on the next pass" which is why the
6559
- * service reads ``model_fields_set`` rather than treating absent and null the
6560
- * same way. Every other field keeps the usual PATCH rule: absent means
6561
- * unchanged.
6820
+ * ``window``, ``start_at`` and ``send_daily_cap`` accept an explicit ``null``
6821
+ * to *clear* them — "send at any hour", "start on the next pass", "no daily
6822
+ * ceiling" — which is why the service reads ``model_fields_set`` rather than
6823
+ * treating absent and null the same way. Every other field keeps the usual
6824
+ * PATCH rule: absent means unchanged.
6562
6825
  *
6563
6826
  * Pacing stays editable at any time; identity does not once anything has been
6564
- * sent (see ``service.patch_batch``).
6827
+ * sent (see ``service.patch_batch``). The sending group here is the DEFAULT for
6828
+ * the next send — a run already created carries its own copy.
6565
6829
  */
6566
6830
  export type PatchEmailBatchRequest = {
6567
6831
  /**
6568
6832
  * Body Format
6569
6833
  */
6570
6834
  body_format?: 'text' | 'html' | null;
6571
- calling_window?: CallingWindow | null;
6835
+ /**
6836
+ * Draft Attempts
6837
+ */
6838
+ draft_attempts?: number | null;
6839
+ /**
6840
+ * Draft Concurrency
6841
+ */
6842
+ draft_concurrency?: number | null;
6843
+ /**
6844
+ * Draft Gap Seconds
6845
+ */
6846
+ draft_gap_seconds?: number | null;
6847
+ /**
6848
+ * Draft Retry After Minutes
6849
+ */
6850
+ draft_retry_after_minutes?: number | null;
6572
6851
  field_map?: FieldMap | null;
6573
6852
  /**
6574
6853
  * From Email
@@ -6578,14 +6857,6 @@ export type PatchEmailBatchRequest = {
6578
6857
  * From Name
6579
6858
  */
6580
6859
  from_name?: string | null;
6581
- /**
6582
- * Max Attempts
6583
- */
6584
- max_attempts?: number | null;
6585
- /**
6586
- * Max Concurrency
6587
- */
6588
- max_concurrency?: number | null;
6589
6860
  /**
6590
6861
  * Name
6591
6862
  */
@@ -6595,13 +6866,21 @@ export type PatchEmailBatchRequest = {
6595
6866
  */
6596
6867
  reply_to?: string | null;
6597
6868
  /**
6598
- * Retry After Minutes
6869
+ * Send Attempts
6599
6870
  */
6600
- retry_after_minutes?: number | null;
6871
+ send_attempts?: number | null;
6872
+ /**
6873
+ * Send Daily Cap
6874
+ */
6875
+ send_daily_cap?: number | null;
6876
+ /**
6877
+ * Send Gap Seconds
6878
+ */
6879
+ send_gap_seconds?: number | null;
6601
6880
  /**
6602
- * Send Sleep Seconds
6881
+ * Send Retry After Minutes
6603
6882
  */
6604
- send_sleep_seconds?: number | null;
6883
+ send_retry_after_minutes?: number | null;
6605
6884
  /**
6606
6885
  * Start At
6607
6886
  */
@@ -6610,6 +6889,7 @@ export type PatchEmailBatchRequest = {
6610
6889
  * Timezone
6611
6890
  */
6612
6891
  timezone?: string | null;
6892
+ window?: TimeWindow | null;
6613
6893
  };
6614
6894
  /**
6615
6895
  * PatchEmailRecipientRequest
@@ -6629,6 +6909,44 @@ export type PatchEmailRecipientRequest = {
6629
6909
  [key: string]: string;
6630
6910
  };
6631
6911
  };
6912
+ /**
6913
+ * PatchEmailSendRequest
6914
+ *
6915
+ * Re-steer one send: its pacing, its hours, its ceiling, its start time.
6916
+ *
6917
+ * It never edits the sender, and it never edits the row set in either
6918
+ * direction. To change what a scheduled send contains, cancel it — every unsent
6919
+ * row comes back as a draft — and create another. A second way to move a row
6920
+ * out of a send would be a second state machine to keep correct for something
6921
+ * cancel already covers.
6922
+ */
6923
+ export type PatchEmailSendRequest = {
6924
+ /**
6925
+ * Send Attempts
6926
+ */
6927
+ send_attempts?: number | null;
6928
+ /**
6929
+ * Send Daily Cap
6930
+ */
6931
+ send_daily_cap?: number | null;
6932
+ /**
6933
+ * Send Gap Seconds
6934
+ */
6935
+ send_gap_seconds?: number | null;
6936
+ /**
6937
+ * Send Retry After Minutes
6938
+ */
6939
+ send_retry_after_minutes?: number | null;
6940
+ /**
6941
+ * Start At
6942
+ */
6943
+ start_at?: string | null;
6944
+ /**
6945
+ * Timezone
6946
+ */
6947
+ timezone?: string | null;
6948
+ window?: TimeWindow | null;
6949
+ };
6632
6950
  /**
6633
6951
  * PatchIntegrationRequest
6634
6952
  */
@@ -7287,6 +7605,27 @@ export type PublishResponse = {
7287
7605
  */
7288
7606
  warnings?: Array<string>;
7289
7607
  };
7608
+ /**
7609
+ * PublishTaskResponse
7610
+ */
7611
+ export type PublishTaskResponse = {
7612
+ /**
7613
+ * Published At
7614
+ */
7615
+ published_at: string;
7616
+ /**
7617
+ * Task Id
7618
+ */
7619
+ task_id: string;
7620
+ /**
7621
+ * Version
7622
+ */
7623
+ version: number;
7624
+ /**
7625
+ * Warnings
7626
+ */
7627
+ warnings?: Array<string>;
7628
+ };
7290
7629
  /**
7291
7630
  * PublishToolRequest
7292
7631
  */
@@ -7621,20 +7960,12 @@ export type RealtimeUsageResponse = {
7621
7960
  * RecipientActionResponse
7622
7961
  *
7623
7962
  * Skip-and-report, never a partial silent accept.
7624
- *
7625
- * ``job_id`` is set by `send` alone, so a client can tie a batch of rows that
7626
- * are visibly stuck to the `scheduled_jobs` row the scheduler is complaining
7627
- * about.
7628
7963
  */
7629
7964
  export type RecipientActionResponse = {
7630
7965
  /**
7631
7966
  * Affected
7632
7967
  */
7633
7968
  affected: number;
7634
- /**
7635
- * Job Id
7636
- */
7637
- job_id: string | null;
7638
7969
  /**
7639
7970
  * Rejected
7640
7971
  */
@@ -7746,6 +8077,41 @@ export type RecordingSpecOverride = {
7746
8077
  * What a reader should do about it. `available` is the only playable one.
7747
8078
  */
7748
8079
  export type RecordingState = 'none' | 'available' | 'pending' | 'expired' | 'failed' | 'not_shared' | 'consent_withdrawn' | 'deleted';
8080
+ /**
8081
+ * RedraftRequest
8082
+ *
8083
+ * Draft these rows again, from scratch.
8084
+ *
8085
+ * One verb for "write this row again", whatever put it in the state it is in —
8086
+ * a failed attempt, a prompt that has since improved, a draft nobody liked.
8087
+ * Four selections, and they differ in what they REFUSE as much as in what they
8088
+ * move, because a redraft discards a draft the tenant has already paid for:
8089
+ *
8090
+ * - ``all`` — every row in the batch. Rows already sent or queued come back in
8091
+ * ``rejected``, by name, so a bulk press cannot quietly do less than it said.
8092
+ * - ``failed`` — rows whose drafting failed.
8093
+ * - ``not_sent`` — every row that has not left and is not about to, with
8094
+ * nothing rejected.
8095
+ * - ``stale_version`` — rows drafted by a task version older than the one
8096
+ * published now. The selection that makes "watch the output, improve the
8097
+ * task, publish, redraft the rest" a workflow rather than a wish.
8098
+ */
8099
+ export type RedraftRequest = {
8100
+ /**
8101
+ * Clear Overrides
8102
+ *
8103
+ * Also discard the cells a person edited by hand. Off by default.
8104
+ */
8105
+ clear_overrides?: boolean;
8106
+ /**
8107
+ * Recipient Ids
8108
+ */
8109
+ recipient_ids?: Array<string> | null;
8110
+ /**
8111
+ * Selection
8112
+ */
8113
+ selection?: 'all' | 'failed' | 'not_sent' | 'stale_version' | null;
8114
+ };
7749
8115
  /**
7750
8116
  * RejectedRecipient
7751
8117
  */
@@ -7837,6 +8203,12 @@ export type RunTaskRequest = {
7837
8203
  vars?: {
7838
8204
  [key: string]: string;
7839
8205
  };
8206
+ /**
8207
+ * Version
8208
+ *
8209
+ * 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.
8210
+ */
8211
+ version?: number | 'draft' | null;
7840
8212
  };
7841
8213
  /**
7842
8214
  * RunToolRequest
@@ -8201,11 +8573,11 @@ export type SecretResponse = {
8201
8573
  /**
8202
8574
  * SelectRecipientsRequest
8203
8575
  *
8204
- * What `skip`, `restore` and `retry` accept — either shape.
8576
+ * What `skip` and `restore` accept — either shape.
8205
8577
  *
8206
- * These keep their bulk shorthand because the rule is about irreversibility,
8207
- * not about bulk: skipping four thousand rows is undone by restoring them,
8208
- * and making curation tedious pushes an operator toward not curating.
8578
+ * Both are reversible, which is why both take a bulk shorthand: skipping four
8579
+ * thousand rows is undone by restoring them, and making curation tedious pushes
8580
+ * an operator toward not curating.
8209
8581
  */
8210
8582
  export type SelectRecipientsRequest = {
8211
8583
  /**
@@ -8215,37 +8587,10 @@ export type SelectRecipientsRequest = {
8215
8587
  /**
8216
8588
  * Selection
8217
8589
  *
8218
- * Every row this verb can act on: `draft` for skip, `skipped` for restore, `draft_failed` for retry.
8590
+ * Every row this verb can act on: `draft` for skip, `skipped` for restore.
8219
8591
  */
8220
8592
  selection?: 'all_eligible' | null;
8221
8593
  };
8222
- /**
8223
- * SendEmailBatchRequest
8224
- *
8225
- * The ONLY shape `send` accepts. 1..50 ids, named.
8226
- *
8227
- * There is deliberately no `selection` shorthand here — see
8228
- * ``MAX_SEND_PER_PRESS``. The three sender fields apply to THIS press alone;
8229
- * each omitted one falls back to the batch's, and none of them writes back.
8230
- */
8231
- export type SendEmailBatchRequest = {
8232
- /**
8233
- * From Email
8234
- */
8235
- from_email?: string | null;
8236
- /**
8237
- * From Name
8238
- */
8239
- from_name?: string | null;
8240
- /**
8241
- * Recipient Ids
8242
- */
8243
- recipient_ids: Array<string>;
8244
- /**
8245
- * Reply To
8246
- */
8247
- reply_to?: string | null;
8248
- };
8249
8594
  /**
8250
8595
  * SendMessageRequest
8251
8596
  */
@@ -8870,7 +9215,7 @@ export type TTSUsageResponse = {
8870
9215
  /**
8871
9216
  * TaskConfig
8872
9217
  *
8873
- * The task definition. One saved config no versions, no publish step.
9218
+ * The task definition the draft you edit, and what publishing freezes.
8874
9219
  */
8875
9220
  export type TaskConfig = {
8876
9221
  llm?: LLMSpec;
@@ -8895,9 +9240,9 @@ export type TaskConfig = {
8895
9240
  /**
8896
9241
  * Output
8897
9242
  *
8898
- * 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.
9243
+ * 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.
8899
9244
  */
8900
- output: Array<TaskOutputField>;
9245
+ output?: Array<TaskOutputField>;
8901
9246
  /**
8902
9247
  * Prompt
8903
9248
  *
@@ -8919,7 +9264,7 @@ export type TaskConfig = {
8919
9264
  /**
8920
9265
  * Tools
8921
9266
  *
8922
- * 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.
9267
+ * Tools the model may call during the run. Publishing pins each one to the tool version live at that moment, so republishing a tool does not change this task until the task is published again.
8923
9268
  */
8924
9269
  tools?: Array<ToolSelection>;
8925
9270
  /**
@@ -8974,10 +9319,22 @@ export type TaskResponse = {
8974
9319
  */
8975
9320
  id: string;
8976
9321
  last_run: TaskRunSummary | null;
9322
+ /**
9323
+ * Published At
9324
+ */
9325
+ published_at: string | null;
9326
+ /**
9327
+ * Published Version
9328
+ */
9329
+ published_version: number | null;
8977
9330
  /**
8978
9331
  * Updated At
8979
9332
  */
8980
9333
  updated_at: string;
9334
+ /**
9335
+ * Versions
9336
+ */
9337
+ versions: Array<TaskVersionResponse> | null;
8981
9338
  };
8982
9339
  /**
8983
9340
  * TaskRunError
@@ -8990,7 +9347,7 @@ export type TaskRunError = {
8990
9347
  /**
8991
9348
  * Type
8992
9349
  */
8993
- type: 'missing_vars' | 'no_output' | 'step_limit' | 'timeout' | 'provider_error' | 'configuration' | 'platform';
9350
+ type: 'missing_vars' | 'no_output' | 'step_limit' | 'timeout' | 'provider_error' | 'configuration' | 'platform' | 'canceled';
8994
9351
  };
8995
9352
  /**
8996
9353
  * TaskRunResponse
@@ -9051,6 +9408,10 @@ export type TaskRunResponse = {
9051
9408
  * Task Name
9052
9409
  */
9053
9410
  task_name: string | null;
9411
+ /**
9412
+ * Task Version
9413
+ */
9414
+ task_version: number | null;
9054
9415
  /**
9055
9416
  * Trace
9056
9417
  */
@@ -9099,22 +9460,48 @@ export type TaskRunSummary = {
9099
9460
  status: 'running' | 'completed' | 'failed';
9100
9461
  };
9101
9462
  /**
9102
- * TaskWriteResponse
9463
+ * TaskVersionDetailResponse
9103
9464
  *
9104
- * What `create` and `update` return.
9465
+ * One frozen version, unpacked: the definition that ran, beside its metadata.
9105
9466
  *
9106
- * `warnings` is the half of validation that must not become a 400 — a prompt
9107
- * that never mentions `submit_result`, a credential built out of `{{args.…}}`.
9108
- * There is no publish screen to show them on, so they come back beside the
9109
- * saved task; dropping them would lose the one signal that catches a task which
9110
- * saves cleanly and then fails every run.
9467
+ * `config` comes back through `TaskConfig` rather than as raw JSONB, so a
9468
+ * version and the draft are normalized by the same validator and a diff of the
9469
+ * two cannot report a difference a default invented.
9470
+ *
9471
+ * It is the whole definition: the tool versions this publish pinned live in
9472
+ * `config.tools`, and their definitions in `tool_versions`.
9111
9473
  */
9112
- export type TaskWriteResponse = {
9113
- task: TaskResponse;
9474
+ export type TaskVersionDetailResponse = {
9475
+ config: TaskConfig;
9114
9476
  /**
9115
- * Warnings
9477
+ * Published At
9116
9478
  */
9117
- warnings: Array<string>;
9479
+ published_at: string;
9480
+ /**
9481
+ * Published By
9482
+ */
9483
+ published_by?: string | null;
9484
+ /**
9485
+ * Version
9486
+ */
9487
+ version: number;
9488
+ };
9489
+ /**
9490
+ * TaskVersionResponse
9491
+ */
9492
+ export type TaskVersionResponse = {
9493
+ /**
9494
+ * Published At
9495
+ */
9496
+ published_at: string;
9497
+ /**
9498
+ * Published By
9499
+ */
9500
+ published_by?: string | null;
9501
+ /**
9502
+ * Version
9503
+ */
9504
+ version: number;
9118
9505
  };
9119
9506
  /**
9120
9507
  * TelephonyAccountResponse
@@ -9387,6 +9774,38 @@ export type TextMessageResponse = {
9387
9774
  conversation_id: string;
9388
9775
  item: ConversationItemResponse;
9389
9776
  };
9777
+ /**
9778
+ * TimeWindow
9779
+ *
9780
+ * The hours a list may run in, on the list's own clock.
9781
+ *
9782
+ * Shared rather than duplicated, for the same reason ``window_state`` is: a
9783
+ * call batch and an email send run store the same three values under the same
9784
+ * names and must not each get their own copy of the rules. The field that
9785
+ * carries one is named for what it gates — ``calling_window`` on a campaign,
9786
+ * ``window`` on an email batch and its runs.
9787
+ *
9788
+ * A window that crosses midnight (``21:00``-``06:00``) is valid and means
9789
+ * exactly what an evening consumer-calling window means: the day check applies
9790
+ * to the *start* side, so ``21:00``-``06:00`` on ``days: [5]`` runs Friday
9791
+ * 21:00 through Saturday 06:00.
9792
+ */
9793
+ export type TimeWindow = {
9794
+ /**
9795
+ * Days
9796
+ *
9797
+ * ISO weekdays the window opens on, 1 = Monday.
9798
+ */
9799
+ days?: Array<number>;
9800
+ /**
9801
+ * End
9802
+ */
9803
+ end: string;
9804
+ /**
9805
+ * Start
9806
+ */
9807
+ start: string;
9808
+ };
9390
9809
  /**
9391
9810
  * TocResultResponse
9392
9811
  */
@@ -13187,50 +13606,333 @@ export type EmailBatchesRecipientsListErrors = {
13187
13606
  */
13188
13607
  default: ErrorResponse;
13189
13608
  };
13190
- export type EmailBatchesRecipientsListError = EmailBatchesRecipientsListErrors[keyof EmailBatchesRecipientsListErrors];
13191
- export type EmailBatchesRecipientsListResults = {
13609
+ export type EmailBatchesRecipientsListError = EmailBatchesRecipientsListErrors[keyof EmailBatchesRecipientsListErrors];
13610
+ export type EmailBatchesRecipientsListResults = {
13611
+ /**
13612
+ * Successful Response
13613
+ */
13614
+ 200: PageEmailRecipientResponse;
13615
+ };
13616
+ export type EmailBatchesRecipientsListResult = EmailBatchesRecipientsListResults[keyof EmailBatchesRecipientsListResults];
13617
+ export type EmailBatchesRecipientsUpdateData = {
13618
+ body: PatchEmailRecipientRequest;
13619
+ path: {
13620
+ /**
13621
+ * Batch Id
13622
+ */
13623
+ batch_id: string;
13624
+ /**
13625
+ * Recipient Id
13626
+ */
13627
+ recipient_id: string;
13628
+ };
13629
+ query?: never;
13630
+ url: '/v1/email/batches/{batch_id}/recipients/{recipient_id}';
13631
+ };
13632
+ export type EmailBatchesRecipientsUpdateErrors = {
13633
+ /**
13634
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13635
+ */
13636
+ 400: ErrorResponse;
13637
+ /**
13638
+ * Missing credential, or one that is revoked or no longer a member of this organization.
13639
+ */
13640
+ 401: ErrorResponse;
13641
+ /**
13642
+ * Authenticated, but this organization role may not perform the operation.
13643
+ */
13644
+ 403: ErrorResponse;
13645
+ /**
13646
+ * No such resource in this organization.
13647
+ */
13648
+ 404: ErrorResponse;
13649
+ /**
13650
+ * The resource's current state forbids this — a name already taken, a job already running.
13651
+ */
13652
+ 409: ErrorResponse;
13653
+ /**
13654
+ * The request did not match this operation's schema; `detail.errors` lists each field.
13655
+ */
13656
+ 422: ErrorResponse;
13657
+ /**
13658
+ * Unexpected error. Every error this API returns carries this body.
13659
+ */
13660
+ default: ErrorResponse;
13661
+ };
13662
+ export type EmailBatchesRecipientsUpdateError = EmailBatchesRecipientsUpdateErrors[keyof EmailBatchesRecipientsUpdateErrors];
13663
+ export type EmailBatchesRecipientsUpdateResults = {
13664
+ /**
13665
+ * Successful Response
13666
+ */
13667
+ 200: EmailRecipientResponse;
13668
+ };
13669
+ export type EmailBatchesRecipientsUpdateResult = EmailBatchesRecipientsUpdateResults[keyof EmailBatchesRecipientsUpdateResults];
13670
+ export type EmailBatchesRecipientsRedraftData = {
13671
+ body: RedraftRequest;
13672
+ path: {
13673
+ /**
13674
+ * Batch Id
13675
+ */
13676
+ batch_id: string;
13677
+ };
13678
+ query?: never;
13679
+ url: '/v1/email/batches/{batch_id}/redraft';
13680
+ };
13681
+ export type EmailBatchesRecipientsRedraftErrors = {
13682
+ /**
13683
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13684
+ */
13685
+ 400: ErrorResponse;
13686
+ /**
13687
+ * Missing credential, or one that is revoked or no longer a member of this organization.
13688
+ */
13689
+ 401: ErrorResponse;
13690
+ /**
13691
+ * Authenticated, but this organization role may not perform the operation.
13692
+ */
13693
+ 403: ErrorResponse;
13694
+ /**
13695
+ * No such resource in this organization.
13696
+ */
13697
+ 404: ErrorResponse;
13698
+ /**
13699
+ * The resource's current state forbids this — a name already taken, a job already running.
13700
+ */
13701
+ 409: ErrorResponse;
13702
+ /**
13703
+ * The request did not match this operation's schema; `detail.errors` lists each field.
13704
+ */
13705
+ 422: ErrorResponse;
13706
+ /**
13707
+ * Unexpected error. Every error this API returns carries this body.
13708
+ */
13709
+ default: ErrorResponse;
13710
+ };
13711
+ export type EmailBatchesRecipientsRedraftError = EmailBatchesRecipientsRedraftErrors[keyof EmailBatchesRecipientsRedraftErrors];
13712
+ export type EmailBatchesRecipientsRedraftResults = {
13713
+ /**
13714
+ * Successful Response
13715
+ */
13716
+ 200: RecipientActionResponse;
13717
+ };
13718
+ export type EmailBatchesRecipientsRedraftResult = EmailBatchesRecipientsRedraftResults[keyof EmailBatchesRecipientsRedraftResults];
13719
+ export type EmailBatchesRecipientsRestoreData = {
13720
+ body: SelectRecipientsRequest;
13721
+ path: {
13722
+ /**
13723
+ * Batch Id
13724
+ */
13725
+ batch_id: string;
13726
+ };
13727
+ query?: never;
13728
+ url: '/v1/email/batches/{batch_id}/restore';
13729
+ };
13730
+ export type EmailBatchesRecipientsRestoreErrors = {
13731
+ /**
13732
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13733
+ */
13734
+ 400: ErrorResponse;
13735
+ /**
13736
+ * Missing credential, or one that is revoked or no longer a member of this organization.
13737
+ */
13738
+ 401: ErrorResponse;
13739
+ /**
13740
+ * Authenticated, but this organization role may not perform the operation.
13741
+ */
13742
+ 403: ErrorResponse;
13743
+ /**
13744
+ * No such resource in this organization.
13745
+ */
13746
+ 404: ErrorResponse;
13747
+ /**
13748
+ * The resource's current state forbids this — a name already taken, a job already running.
13749
+ */
13750
+ 409: ErrorResponse;
13751
+ /**
13752
+ * The request did not match this operation's schema; `detail.errors` lists each field.
13753
+ */
13754
+ 422: ErrorResponse;
13755
+ /**
13756
+ * Unexpected error. Every error this API returns carries this body.
13757
+ */
13758
+ default: ErrorResponse;
13759
+ };
13760
+ export type EmailBatchesRecipientsRestoreError = EmailBatchesRecipientsRestoreErrors[keyof EmailBatchesRecipientsRestoreErrors];
13761
+ export type EmailBatchesRecipientsRestoreResults = {
13762
+ /**
13763
+ * Successful Response
13764
+ */
13765
+ 200: RecipientActionResponse;
13766
+ };
13767
+ export type EmailBatchesRecipientsRestoreResult = EmailBatchesRecipientsRestoreResults[keyof EmailBatchesRecipientsRestoreResults];
13768
+ export type EmailBatchesResumeData = {
13769
+ body?: never;
13770
+ path: {
13771
+ /**
13772
+ * Batch Id
13773
+ */
13774
+ batch_id: string;
13775
+ };
13776
+ query?: never;
13777
+ url: '/v1/email/batches/{batch_id}/resume';
13778
+ };
13779
+ export type EmailBatchesResumeErrors = {
13780
+ /**
13781
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13782
+ */
13783
+ 400: ErrorResponse;
13784
+ /**
13785
+ * Missing credential, or one that is revoked or no longer a member of this organization.
13786
+ */
13787
+ 401: ErrorResponse;
13788
+ /**
13789
+ * Authenticated, but this organization role may not perform the operation.
13790
+ */
13791
+ 403: ErrorResponse;
13792
+ /**
13793
+ * No such resource in this organization.
13794
+ */
13795
+ 404: ErrorResponse;
13796
+ /**
13797
+ * The resource's current state forbids this — a name already taken, a job already running.
13798
+ */
13799
+ 409: ErrorResponse;
13800
+ /**
13801
+ * The request did not match this operation's schema; `detail.errors` lists each field.
13802
+ */
13803
+ 422: ErrorResponse;
13804
+ /**
13805
+ * Unexpected error. Every error this API returns carries this body.
13806
+ */
13807
+ default: ErrorResponse;
13808
+ };
13809
+ export type EmailBatchesResumeError = EmailBatchesResumeErrors[keyof EmailBatchesResumeErrors];
13810
+ export type EmailBatchesResumeResults = {
13811
+ /**
13812
+ * Successful Response
13813
+ */
13814
+ 200: EmailBatchResponse;
13815
+ };
13816
+ export type EmailBatchesResumeResult = EmailBatchesResumeResults[keyof EmailBatchesResumeResults];
13817
+ export type EmailBatchesSendsListData = {
13818
+ body?: never;
13819
+ path: {
13820
+ /**
13821
+ * Batch Id
13822
+ */
13823
+ batch_id: string;
13824
+ };
13825
+ query?: {
13826
+ /**
13827
+ * Limit
13828
+ */
13829
+ limit?: number;
13830
+ /**
13831
+ * Offset
13832
+ */
13833
+ offset?: number;
13834
+ };
13835
+ url: '/v1/email/batches/{batch_id}/sends';
13836
+ };
13837
+ export type EmailBatchesSendsListErrors = {
13838
+ /**
13839
+ * Missing credential, or one that is revoked or no longer a member of this organization.
13840
+ */
13841
+ 401: ErrorResponse;
13842
+ /**
13843
+ * No such resource in this organization.
13844
+ */
13845
+ 404: ErrorResponse;
13846
+ /**
13847
+ * The request did not match this operation's schema; `detail.errors` lists each field.
13848
+ */
13849
+ 422: ErrorResponse;
13850
+ /**
13851
+ * Unexpected error. Every error this API returns carries this body.
13852
+ */
13853
+ default: ErrorResponse;
13854
+ };
13855
+ export type EmailBatchesSendsListError = EmailBatchesSendsListErrors[keyof EmailBatchesSendsListErrors];
13856
+ export type EmailBatchesSendsListResults = {
13857
+ /**
13858
+ * Successful Response
13859
+ */
13860
+ 200: PageEmailSendResponse;
13861
+ };
13862
+ export type EmailBatchesSendsListResult = EmailBatchesSendsListResults[keyof EmailBatchesSendsListResults];
13863
+ export type EmailBatchesSendsCreateData = {
13864
+ body: CreateEmailSendRequest;
13865
+ path: {
13866
+ /**
13867
+ * Batch Id
13868
+ */
13869
+ batch_id: string;
13870
+ };
13871
+ query?: never;
13872
+ url: '/v1/email/batches/{batch_id}/sends';
13873
+ };
13874
+ export type EmailBatchesSendsCreateErrors = {
13875
+ /**
13876
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13877
+ */
13878
+ 400: ErrorResponse;
13879
+ /**
13880
+ * Missing credential, or one that is revoked or no longer a member of this organization.
13881
+ */
13882
+ 401: ErrorResponse;
13883
+ /**
13884
+ * Authenticated, but this organization role may not perform the operation.
13885
+ */
13886
+ 403: ErrorResponse;
13887
+ /**
13888
+ * No such resource in this organization.
13889
+ */
13890
+ 404: ErrorResponse;
13891
+ /**
13892
+ * The resource's current state forbids this — a name already taken, a job already running.
13893
+ */
13894
+ 409: ErrorResponse;
13895
+ /**
13896
+ * The request did not match this operation's schema; `detail.errors` lists each field.
13897
+ */
13898
+ 422: ErrorResponse;
13899
+ /**
13900
+ * Unexpected error. Every error this API returns carries this body.
13901
+ */
13902
+ default: ErrorResponse;
13903
+ };
13904
+ export type EmailBatchesSendsCreateError = EmailBatchesSendsCreateErrors[keyof EmailBatchesSendsCreateErrors];
13905
+ export type EmailBatchesSendsCreateResults = {
13192
13906
  /**
13193
13907
  * Successful Response
13194
13908
  */
13195
- 200: PageEmailRecipientResponse;
13909
+ 201: CreateEmailSendResponse;
13196
13910
  };
13197
- export type EmailBatchesRecipientsListResult = EmailBatchesRecipientsListResults[keyof EmailBatchesRecipientsListResults];
13198
- export type EmailBatchesRecipientsUpdateData = {
13199
- body: PatchEmailRecipientRequest;
13911
+ export type EmailBatchesSendsCreateResult = EmailBatchesSendsCreateResults[keyof EmailBatchesSendsCreateResults];
13912
+ export type EmailBatchesSendsGetData = {
13913
+ body?: never;
13200
13914
  path: {
13201
13915
  /**
13202
13916
  * Batch Id
13203
13917
  */
13204
13918
  batch_id: string;
13205
13919
  /**
13206
- * Recipient Id
13920
+ * Send Id
13207
13921
  */
13208
- recipient_id: string;
13922
+ send_id: string;
13209
13923
  };
13210
13924
  query?: never;
13211
- url: '/v1/email/batches/{batch_id}/recipients/{recipient_id}';
13925
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}';
13212
13926
  };
13213
- export type EmailBatchesRecipientsUpdateErrors = {
13214
- /**
13215
- * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13216
- */
13217
- 400: ErrorResponse;
13927
+ export type EmailBatchesSendsGetErrors = {
13218
13928
  /**
13219
13929
  * Missing credential, or one that is revoked or no longer a member of this organization.
13220
13930
  */
13221
13931
  401: ErrorResponse;
13222
- /**
13223
- * Authenticated, but this organization role may not perform the operation.
13224
- */
13225
- 403: ErrorResponse;
13226
13932
  /**
13227
13933
  * No such resource in this organization.
13228
13934
  */
13229
13935
  404: ErrorResponse;
13230
- /**
13231
- * The resource's current state forbids this — a name already taken, a job already running.
13232
- */
13233
- 409: ErrorResponse;
13234
13936
  /**
13235
13937
  * The request did not match this operation's schema; `detail.errors` lists each field.
13236
13938
  */
@@ -13240,26 +13942,30 @@ export type EmailBatchesRecipientsUpdateErrors = {
13240
13942
  */
13241
13943
  default: ErrorResponse;
13242
13944
  };
13243
- export type EmailBatchesRecipientsUpdateError = EmailBatchesRecipientsUpdateErrors[keyof EmailBatchesRecipientsUpdateErrors];
13244
- export type EmailBatchesRecipientsUpdateResults = {
13945
+ export type EmailBatchesSendsGetError = EmailBatchesSendsGetErrors[keyof EmailBatchesSendsGetErrors];
13946
+ export type EmailBatchesSendsGetResults = {
13245
13947
  /**
13246
13948
  * Successful Response
13247
13949
  */
13248
- 200: EmailRecipientResponse;
13950
+ 200: EmailSendResponse;
13249
13951
  };
13250
- export type EmailBatchesRecipientsUpdateResult = EmailBatchesRecipientsUpdateResults[keyof EmailBatchesRecipientsUpdateResults];
13251
- export type EmailBatchesRecipientsRestoreData = {
13252
- body: SelectRecipientsRequest;
13952
+ export type EmailBatchesSendsGetResult = EmailBatchesSendsGetResults[keyof EmailBatchesSendsGetResults];
13953
+ export type EmailBatchesSendsUpdateData = {
13954
+ body: PatchEmailSendRequest;
13253
13955
  path: {
13254
13956
  /**
13255
13957
  * Batch Id
13256
13958
  */
13257
13959
  batch_id: string;
13960
+ /**
13961
+ * Send Id
13962
+ */
13963
+ send_id: string;
13258
13964
  };
13259
13965
  query?: never;
13260
- url: '/v1/email/batches/{batch_id}/restore';
13966
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}';
13261
13967
  };
13262
- export type EmailBatchesRecipientsRestoreErrors = {
13968
+ export type EmailBatchesSendsUpdateErrors = {
13263
13969
  /**
13264
13970
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13265
13971
  */
@@ -13289,26 +13995,30 @@ export type EmailBatchesRecipientsRestoreErrors = {
13289
13995
  */
13290
13996
  default: ErrorResponse;
13291
13997
  };
13292
- export type EmailBatchesRecipientsRestoreError = EmailBatchesRecipientsRestoreErrors[keyof EmailBatchesRecipientsRestoreErrors];
13293
- export type EmailBatchesRecipientsRestoreResults = {
13998
+ export type EmailBatchesSendsUpdateError = EmailBatchesSendsUpdateErrors[keyof EmailBatchesSendsUpdateErrors];
13999
+ export type EmailBatchesSendsUpdateResults = {
13294
14000
  /**
13295
14001
  * Successful Response
13296
14002
  */
13297
- 200: RecipientActionResponse;
14003
+ 200: EmailSendResponse;
13298
14004
  };
13299
- export type EmailBatchesRecipientsRestoreResult = EmailBatchesRecipientsRestoreResults[keyof EmailBatchesRecipientsRestoreResults];
13300
- export type EmailBatchesResumeData = {
14005
+ export type EmailBatchesSendsUpdateResult = EmailBatchesSendsUpdateResults[keyof EmailBatchesSendsUpdateResults];
14006
+ export type EmailBatchesSendsCancelData = {
13301
14007
  body?: never;
13302
14008
  path: {
13303
14009
  /**
13304
14010
  * Batch Id
13305
14011
  */
13306
14012
  batch_id: string;
14013
+ /**
14014
+ * Send Id
14015
+ */
14016
+ send_id: string;
13307
14017
  };
13308
14018
  query?: never;
13309
- url: '/v1/email/batches/{batch_id}/resume';
14019
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}/cancel';
13310
14020
  };
13311
- export type EmailBatchesResumeErrors = {
14021
+ export type EmailBatchesSendsCancelErrors = {
13312
14022
  /**
13313
14023
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13314
14024
  */
@@ -13338,26 +14048,30 @@ export type EmailBatchesResumeErrors = {
13338
14048
  */
13339
14049
  default: ErrorResponse;
13340
14050
  };
13341
- export type EmailBatchesResumeError = EmailBatchesResumeErrors[keyof EmailBatchesResumeErrors];
13342
- export type EmailBatchesResumeResults = {
14051
+ export type EmailBatchesSendsCancelError = EmailBatchesSendsCancelErrors[keyof EmailBatchesSendsCancelErrors];
14052
+ export type EmailBatchesSendsCancelResults = {
13343
14053
  /**
13344
14054
  * Successful Response
13345
14055
  */
13346
- 200: EmailBatchResponse;
14056
+ 200: EmailSendResponse;
13347
14057
  };
13348
- export type EmailBatchesResumeResult = EmailBatchesResumeResults[keyof EmailBatchesResumeResults];
13349
- export type EmailBatchesRecipientsRetryData = {
13350
- body: SelectRecipientsRequest;
14058
+ export type EmailBatchesSendsCancelResult = EmailBatchesSendsCancelResults[keyof EmailBatchesSendsCancelResults];
14059
+ export type EmailBatchesSendsPauseData = {
14060
+ body?: never;
13351
14061
  path: {
13352
14062
  /**
13353
14063
  * Batch Id
13354
14064
  */
13355
14065
  batch_id: string;
14066
+ /**
14067
+ * Send Id
14068
+ */
14069
+ send_id: string;
13356
14070
  };
13357
14071
  query?: never;
13358
- url: '/v1/email/batches/{batch_id}/retry';
14072
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}/pause';
13359
14073
  };
13360
- export type EmailBatchesRecipientsRetryErrors = {
14074
+ export type EmailBatchesSendsPauseErrors = {
13361
14075
  /**
13362
14076
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13363
14077
  */
@@ -13387,26 +14101,30 @@ export type EmailBatchesRecipientsRetryErrors = {
13387
14101
  */
13388
14102
  default: ErrorResponse;
13389
14103
  };
13390
- export type EmailBatchesRecipientsRetryError = EmailBatchesRecipientsRetryErrors[keyof EmailBatchesRecipientsRetryErrors];
13391
- export type EmailBatchesRecipientsRetryResults = {
14104
+ export type EmailBatchesSendsPauseError = EmailBatchesSendsPauseErrors[keyof EmailBatchesSendsPauseErrors];
14105
+ export type EmailBatchesSendsPauseResults = {
13392
14106
  /**
13393
14107
  * Successful Response
13394
14108
  */
13395
- 200: RecipientActionResponse;
14109
+ 200: EmailSendResponse;
13396
14110
  };
13397
- export type EmailBatchesRecipientsRetryResult = EmailBatchesRecipientsRetryResults[keyof EmailBatchesRecipientsRetryResults];
13398
- export type EmailBatchesRecipientsSendData = {
13399
- body: SendEmailBatchRequest;
14111
+ export type EmailBatchesSendsPauseResult = EmailBatchesSendsPauseResults[keyof EmailBatchesSendsPauseResults];
14112
+ export type EmailBatchesSendsResumeData = {
14113
+ body?: never;
13400
14114
  path: {
13401
14115
  /**
13402
14116
  * Batch Id
13403
14117
  */
13404
14118
  batch_id: string;
14119
+ /**
14120
+ * Send Id
14121
+ */
14122
+ send_id: string;
13405
14123
  };
13406
14124
  query?: never;
13407
- url: '/v1/email/batches/{batch_id}/send';
14125
+ url: '/v1/email/batches/{batch_id}/sends/{send_id}/resume';
13408
14126
  };
13409
- export type EmailBatchesRecipientsSendErrors = {
14127
+ export type EmailBatchesSendsResumeErrors = {
13410
14128
  /**
13411
14129
  * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
13412
14130
  */
@@ -13436,14 +14154,14 @@ export type EmailBatchesRecipientsSendErrors = {
13436
14154
  */
13437
14155
  default: ErrorResponse;
13438
14156
  };
13439
- export type EmailBatchesRecipientsSendError = EmailBatchesRecipientsSendErrors[keyof EmailBatchesRecipientsSendErrors];
13440
- export type EmailBatchesRecipientsSendResults = {
14157
+ export type EmailBatchesSendsResumeError = EmailBatchesSendsResumeErrors[keyof EmailBatchesSendsResumeErrors];
14158
+ export type EmailBatchesSendsResumeResults = {
13441
14159
  /**
13442
14160
  * Successful Response
13443
14161
  */
13444
- 200: RecipientActionResponse;
14162
+ 200: EmailSendResponse;
13445
14163
  };
13446
- export type EmailBatchesRecipientsSendResult = EmailBatchesRecipientsSendResults[keyof EmailBatchesRecipientsSendResults];
14164
+ export type EmailBatchesSendsResumeResult = EmailBatchesSendsResumeResults[keyof EmailBatchesSendsResumeResults];
13447
14165
  export type EmailBatchesRecipientsSkipData = {
13448
14166
  body: SelectRecipientsRequest;
13449
14167
  path: {
@@ -14600,6 +15318,43 @@ export type ObservabilityGetResults = {
14600
15318
  200: ObservabilityResponse;
14601
15319
  };
14602
15320
  export type ObservabilityGetResult = ObservabilityGetResults[keyof ObservabilityGetResults];
15321
+ export type SchemasFunctionsGetData = {
15322
+ body?: never;
15323
+ path: {
15324
+ /**
15325
+ * Name
15326
+ */
15327
+ name: string;
15328
+ };
15329
+ query?: never;
15330
+ url: '/v1/schemas/functions/{name}';
15331
+ };
15332
+ export type SchemasFunctionsGetErrors = {
15333
+ /**
15334
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15335
+ */
15336
+ 401: ErrorResponse;
15337
+ /**
15338
+ * No such resource in this organization.
15339
+ */
15340
+ 404: ErrorResponse;
15341
+ /**
15342
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15343
+ */
15344
+ 422: ErrorResponse;
15345
+ /**
15346
+ * Unexpected error. Every error this API returns carries this body.
15347
+ */
15348
+ default: ErrorResponse;
15349
+ };
15350
+ export type SchemasFunctionsGetError = SchemasFunctionsGetErrors[keyof SchemasFunctionsGetErrors];
15351
+ export type SchemasFunctionsGetResults = {
15352
+ /**
15353
+ * Successful Response
15354
+ */
15355
+ 200: FunctionArgumentsResponse;
15356
+ };
15357
+ export type SchemasFunctionsGetResult = SchemasFunctionsGetResults[keyof SchemasFunctionsGetResults];
14603
15358
  export type SchemasGetData = {
14604
15359
  body?: never;
14605
15360
  path: {
@@ -14837,7 +15592,7 @@ export type TasksCreateResults = {
14837
15592
  /**
14838
15593
  * Successful Response
14839
15594
  */
14840
- 201: TaskWriteResponse;
15595
+ 201: TaskResponse;
14841
15596
  };
14842
15597
  export type TasksCreateResult = TasksCreateResults[keyof TasksCreateResults];
14843
15598
  export type TasksDeleteData = {
@@ -14972,9 +15727,58 @@ export type TasksUpdateResults = {
14972
15727
  /**
14973
15728
  * Successful Response
14974
15729
  */
14975
- 200: TaskWriteResponse;
15730
+ 200: TaskResponse;
14976
15731
  };
14977
15732
  export type TasksUpdateResult = TasksUpdateResults[keyof TasksUpdateResults];
15733
+ export type TasksPublishData = {
15734
+ body?: never;
15735
+ path: {
15736
+ /**
15737
+ * Task Id
15738
+ */
15739
+ task_id: string;
15740
+ };
15741
+ query?: never;
15742
+ url: '/v1/tasks/{task_id}/publish';
15743
+ };
15744
+ export type TasksPublishErrors = {
15745
+ /**
15746
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
15747
+ */
15748
+ 400: ErrorResponse;
15749
+ /**
15750
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15751
+ */
15752
+ 401: ErrorResponse;
15753
+ /**
15754
+ * Authenticated, but this organization role may not perform the operation.
15755
+ */
15756
+ 403: ErrorResponse;
15757
+ /**
15758
+ * No such resource in this organization.
15759
+ */
15760
+ 404: ErrorResponse;
15761
+ /**
15762
+ * The resource's current state forbids this — a name already taken, a job already running.
15763
+ */
15764
+ 409: ErrorResponse;
15765
+ /**
15766
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15767
+ */
15768
+ 422: ErrorResponse;
15769
+ /**
15770
+ * Unexpected error. Every error this API returns carries this body.
15771
+ */
15772
+ default: ErrorResponse;
15773
+ };
15774
+ export type TasksPublishError = TasksPublishErrors[keyof TasksPublishErrors];
15775
+ export type TasksPublishResults = {
15776
+ /**
15777
+ * Successful Response
15778
+ */
15779
+ 200: PublishTaskResponse;
15780
+ };
15781
+ export type TasksPublishResult = TasksPublishResults[keyof TasksPublishResults];
14978
15782
  export type TasksRunsListData = {
14979
15783
  body?: never;
14980
15784
  path: {
@@ -15111,6 +15915,149 @@ export type TasksRunsGetResults = {
15111
15915
  200: TaskRunResponse;
15112
15916
  };
15113
15917
  export type TasksRunsGetResult = TasksRunsGetResults[keyof TasksRunsGetResults];
15918
+ export type TasksValidateData = {
15919
+ body?: never;
15920
+ path: {
15921
+ /**
15922
+ * Task Id
15923
+ */
15924
+ task_id: string;
15925
+ };
15926
+ query?: never;
15927
+ url: '/v1/tasks/{task_id}/validate';
15928
+ };
15929
+ export type TasksValidateErrors = {
15930
+ /**
15931
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
15932
+ */
15933
+ 400: ErrorResponse;
15934
+ /**
15935
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15936
+ */
15937
+ 401: ErrorResponse;
15938
+ /**
15939
+ * Authenticated, but this organization role may not perform the operation.
15940
+ */
15941
+ 403: ErrorResponse;
15942
+ /**
15943
+ * No such resource in this organization.
15944
+ */
15945
+ 404: ErrorResponse;
15946
+ /**
15947
+ * The resource's current state forbids this — a name already taken, a job already running.
15948
+ */
15949
+ 409: ErrorResponse;
15950
+ /**
15951
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15952
+ */
15953
+ 422: ErrorResponse;
15954
+ /**
15955
+ * Unexpected error. Every error this API returns carries this body.
15956
+ */
15957
+ default: ErrorResponse;
15958
+ };
15959
+ export type TasksValidateError = TasksValidateErrors[keyof TasksValidateErrors];
15960
+ export type TasksValidateResults = {
15961
+ /**
15962
+ * Successful Response
15963
+ */
15964
+ 200: ValidateResponse;
15965
+ };
15966
+ export type TasksValidateResult = TasksValidateResults[keyof TasksValidateResults];
15967
+ export type TasksVersionsGetData = {
15968
+ body?: never;
15969
+ path: {
15970
+ /**
15971
+ * Task Id
15972
+ */
15973
+ task_id: string;
15974
+ /**
15975
+ * Version
15976
+ */
15977
+ version: number;
15978
+ };
15979
+ query?: never;
15980
+ url: '/v1/tasks/{task_id}/versions/{version}';
15981
+ };
15982
+ export type TasksVersionsGetErrors = {
15983
+ /**
15984
+ * Missing credential, or one that is revoked or no longer a member of this organization.
15985
+ */
15986
+ 401: ErrorResponse;
15987
+ /**
15988
+ * No such resource in this organization.
15989
+ */
15990
+ 404: ErrorResponse;
15991
+ /**
15992
+ * The request did not match this operation's schema; `detail.errors` lists each field.
15993
+ */
15994
+ 422: ErrorResponse;
15995
+ /**
15996
+ * Unexpected error. Every error this API returns carries this body.
15997
+ */
15998
+ default: ErrorResponse;
15999
+ };
16000
+ export type TasksVersionsGetError = TasksVersionsGetErrors[keyof TasksVersionsGetErrors];
16001
+ export type TasksVersionsGetResults = {
16002
+ /**
16003
+ * Successful Response
16004
+ */
16005
+ 200: TaskVersionDetailResponse;
16006
+ };
16007
+ export type TasksVersionsGetResult = TasksVersionsGetResults[keyof TasksVersionsGetResults];
16008
+ export type TasksVersionsRollbackData = {
16009
+ body?: never;
16010
+ path: {
16011
+ /**
16012
+ * Task Id
16013
+ */
16014
+ task_id: string;
16015
+ /**
16016
+ * Version
16017
+ */
16018
+ version: number;
16019
+ };
16020
+ query?: never;
16021
+ url: '/v1/tasks/{task_id}/versions/{version}/rollback';
16022
+ };
16023
+ export type TasksVersionsRollbackErrors = {
16024
+ /**
16025
+ * Well-formed, but rejected by a rule; `detail.errors` lists each problem.
16026
+ */
16027
+ 400: ErrorResponse;
16028
+ /**
16029
+ * Missing credential, or one that is revoked or no longer a member of this organization.
16030
+ */
16031
+ 401: ErrorResponse;
16032
+ /**
16033
+ * Authenticated, but this organization role may not perform the operation.
16034
+ */
16035
+ 403: ErrorResponse;
16036
+ /**
16037
+ * No such resource in this organization.
16038
+ */
16039
+ 404: ErrorResponse;
16040
+ /**
16041
+ * The resource's current state forbids this — a name already taken, a job already running.
16042
+ */
16043
+ 409: ErrorResponse;
16044
+ /**
16045
+ * The request did not match this operation's schema; `detail.errors` lists each field.
16046
+ */
16047
+ 422: ErrorResponse;
16048
+ /**
16049
+ * Unexpected error. Every error this API returns carries this body.
16050
+ */
16051
+ default: ErrorResponse;
16052
+ };
16053
+ export type TasksVersionsRollbackError = TasksVersionsRollbackErrors[keyof TasksVersionsRollbackErrors];
16054
+ export type TasksVersionsRollbackResults = {
16055
+ /**
16056
+ * Successful Response
16057
+ */
16058
+ 200: TaskResponse;
16059
+ };
16060
+ export type TasksVersionsRollbackResult = TasksVersionsRollbackResults[keyof TasksVersionsRollbackResults];
15114
16061
  export type TelephonyAccountsListData = {
15115
16062
  body?: never;
15116
16063
  path?: never;