@scaffold-llc/sdk 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1742 @@
1
+ import type { List, WriteOptions } from "../client.js";
2
+ import type { operations } from "./openapi.js";
3
+ /** Every `code` a failed call can answer with. */
4
+ export type ErrorCode = "invalid_request" | "unauthorized" | "credits_exhausted" | "cap_reached" | "forbidden" | "plan_required" | "locked" | "challenge_ended" | "project_suspended" | "wrong_password" | "sign_in_again" | "terms_not_accepted" | "provider_unfinished" | "not_found" | "conflict" | "stale_version" | "restorable_project" | "terms_changed" | "secret_shown" | "storage_full" | "validation_failed" | "idempotency_key_reused" | "rate_limited" | "too_many_streams" | "internal" | "not_implemented" | "not_configured" | "upstream" | "unavailable";
5
+ /** Each public command's route, by resource and action. */
6
+ export declare const COMMANDS: {
7
+ readonly account: {
8
+ readonly get: {
9
+ readonly method: "GET";
10
+ readonly path: "/v1/account";
11
+ };
12
+ readonly avatar_set: {
13
+ readonly method: "POST";
14
+ readonly path: "/v1/account/avatar";
15
+ readonly idempotent: true;
16
+ };
17
+ };
18
+ readonly image: {
19
+ readonly get: {
20
+ readonly method: "GET";
21
+ readonly path: "/v1/images/{image_id}";
22
+ };
23
+ };
24
+ readonly workspace: {
25
+ readonly create: {
26
+ readonly method: "POST";
27
+ readonly path: "/v1/workspaces";
28
+ readonly idempotent: true;
29
+ };
30
+ readonly rename: {
31
+ readonly method: "POST";
32
+ readonly path: "/v1/workspaces/{workspace_id}/rename";
33
+ readonly idempotent: true;
34
+ };
35
+ readonly logo_set: {
36
+ readonly method: "POST";
37
+ readonly path: "/v1/workspaces/{workspace_id}/logo";
38
+ readonly idempotent: true;
39
+ };
40
+ readonly delete: {
41
+ readonly method: "DELETE";
42
+ readonly path: "/v1/workspaces/{workspace_id}";
43
+ readonly idempotent: true;
44
+ };
45
+ readonly restore: {
46
+ readonly method: "POST";
47
+ readonly path: "/v1/workspaces/{workspace_id}/restore";
48
+ readonly idempotent: true;
49
+ };
50
+ readonly export_start: {
51
+ readonly method: "POST";
52
+ readonly path: "/v1/workspaces/{workspace_id}/exports";
53
+ readonly idempotent: true;
54
+ };
55
+ readonly export_get: {
56
+ readonly method: "GET";
57
+ readonly path: "/v1/workspaces/{workspace_id}/export";
58
+ };
59
+ readonly export_download: {
60
+ readonly method: "GET";
61
+ readonly path: "/v1/workspaces/{workspace_id}/exports/{export_id}/download";
62
+ };
63
+ readonly list: {
64
+ readonly method: "GET";
65
+ readonly path: "/v1/workspaces";
66
+ };
67
+ readonly member_invite: {
68
+ readonly method: "POST";
69
+ readonly path: "/v1/workspaces/{workspace_id}/invites";
70
+ readonly idempotent: true;
71
+ };
72
+ readonly invite_revoke: {
73
+ readonly method: "DELETE";
74
+ readonly path: "/v1/invites/{invite_id}";
75
+ readonly idempotent: true;
76
+ };
77
+ readonly invite_restore: {
78
+ readonly method: "POST";
79
+ readonly path: "/v1/invites/{invite_id}/restore";
80
+ readonly idempotent: true;
81
+ };
82
+ readonly invite_dismiss: {
83
+ readonly method: "POST";
84
+ readonly path: "/v1/invites/{invite_id}/dismiss";
85
+ readonly idempotent: true;
86
+ };
87
+ readonly invite_list_mine: {
88
+ readonly method: "GET";
89
+ readonly path: "/v1/invites/mine";
90
+ };
91
+ readonly invite_accept: {
92
+ readonly method: "POST";
93
+ readonly path: "/v1/invites/accept";
94
+ readonly idempotent: true;
95
+ };
96
+ readonly invite_join: {
97
+ readonly method: "POST";
98
+ readonly path: "/v1/invites/{invite_id}/join";
99
+ readonly idempotent: true;
100
+ };
101
+ readonly invite_decline: {
102
+ readonly method: "POST";
103
+ readonly path: "/v1/invites/decline";
104
+ readonly idempotent: true;
105
+ };
106
+ readonly invite_get: {
107
+ readonly method: "POST";
108
+ readonly path: "/v1/invites/preview";
109
+ };
110
+ readonly member_list: {
111
+ readonly method: "GET";
112
+ readonly path: "/v1/workspaces/{workspace_id}/members";
113
+ };
114
+ readonly ownership_transfer: {
115
+ readonly method: "POST";
116
+ readonly path: "/v1/workspaces/{workspace_id}/transfer-ownership";
117
+ readonly idempotent: true;
118
+ };
119
+ readonly member_remove: {
120
+ readonly method: "DELETE";
121
+ readonly path: "/v1/workspaces/{workspace_id}/members/{person_id}";
122
+ readonly idempotent: true;
123
+ };
124
+ };
125
+ readonly project: {
126
+ readonly create: {
127
+ readonly method: "POST";
128
+ readonly path: "/v1/projects";
129
+ readonly idempotent: true;
130
+ };
131
+ readonly list: {
132
+ readonly method: "GET";
133
+ readonly path: "/v1/projects";
134
+ readonly list: true;
135
+ };
136
+ readonly get: {
137
+ readonly method: "GET";
138
+ readonly path: "/v1/projects/{project_id}";
139
+ };
140
+ readonly metrics_get: {
141
+ readonly method: "GET";
142
+ readonly path: "/v1/projects/{project_id}/metrics";
143
+ };
144
+ readonly address_check: {
145
+ readonly method: "GET";
146
+ readonly path: "/v1/projects/address-check";
147
+ };
148
+ readonly delete: {
149
+ readonly method: "DELETE";
150
+ readonly path: "/v1/projects/{project_id}";
151
+ readonly idempotent: true;
152
+ };
153
+ readonly restore: {
154
+ readonly method: "POST";
155
+ readonly path: "/v1/projects/{project_id}/restore";
156
+ readonly idempotent: true;
157
+ };
158
+ readonly erase: {
159
+ readonly method: "POST";
160
+ readonly path: "/v1/projects/{project_id}/erase";
161
+ readonly idempotent: true;
162
+ };
163
+ readonly health_get: {
164
+ readonly method: "GET";
165
+ readonly path: "/v1/projects/{project_id}/health";
166
+ };
167
+ readonly status_get: {
168
+ readonly method: "GET";
169
+ readonly path: "/v1/projects/{project_id}/status";
170
+ };
171
+ readonly limits_get: {
172
+ readonly method: "GET";
173
+ readonly path: "/v1/projects/{project_id}/limits";
174
+ };
175
+ readonly alert_get: {
176
+ readonly method: "GET";
177
+ readonly path: "/v1/projects/{project_id}/alerts";
178
+ };
179
+ readonly alert_set: {
180
+ readonly method: "PUT";
181
+ readonly path: "/v1/projects/{project_id}/alerts";
182
+ readonly idempotent: true;
183
+ };
184
+ readonly maintenance_set: {
185
+ readonly method: "PUT";
186
+ readonly path: "/v1/projects/{project_id}/maintenance";
187
+ readonly idempotent: true;
188
+ };
189
+ readonly move: {
190
+ readonly method: "POST";
191
+ readonly path: "/v1/projects/{project_id}/move";
192
+ readonly idempotent: true;
193
+ };
194
+ readonly claim_link_create: {
195
+ readonly method: "POST";
196
+ readonly path: "/v1/projects/{project_id}/claim-link";
197
+ };
198
+ readonly claim_link_cancel: {
199
+ readonly method: "DELETE";
200
+ readonly path: "/v1/projects/{project_id}/claim-link";
201
+ readonly idempotent: true;
202
+ };
203
+ };
204
+ readonly env: {
205
+ readonly set: {
206
+ readonly method: "POST";
207
+ readonly path: "/v1/projects/{project_id}/env";
208
+ };
209
+ readonly list: {
210
+ readonly method: "GET";
211
+ readonly path: "/v1/projects/{project_id}/env";
212
+ };
213
+ readonly delete: {
214
+ readonly method: "DELETE";
215
+ readonly path: "/v1/projects/{project_id}/env/{name}";
216
+ readonly idempotent: true;
217
+ };
218
+ readonly restore: {
219
+ readonly method: "POST";
220
+ readonly path: "/v1/projects/{project_id}/env/{name}/restore";
221
+ readonly idempotent: true;
222
+ };
223
+ };
224
+ readonly source: {
225
+ readonly upload: {
226
+ readonly method: "PUT";
227
+ readonly path: "/v1/projects/{project_id}/sources";
228
+ readonly zip: "archive";
229
+ readonly idempotent: true;
230
+ };
231
+ readonly delete: {
232
+ readonly method: "DELETE";
233
+ readonly path: "/v1/projects/{project_id}/sources/{sha256}";
234
+ readonly idempotent: true;
235
+ };
236
+ readonly list: {
237
+ readonly method: "GET";
238
+ readonly path: "/v1/projects/{project_id}/sources";
239
+ };
240
+ readonly file_list: {
241
+ readonly method: "GET";
242
+ readonly path: "/v1/projects/{project_id}/sources/{sha256}/files";
243
+ };
244
+ readonly file_get: {
245
+ readonly method: "GET";
246
+ readonly path: "/v1/projects/{project_id}/sources/{sha256}/file";
247
+ };
248
+ };
249
+ readonly github: {
250
+ readonly repository_list: {
251
+ readonly method: "GET";
252
+ readonly path: "/v1/workspaces/{workspace_id}/github/repositories";
253
+ };
254
+ readonly connect: {
255
+ readonly method: "POST";
256
+ readonly path: "/v1/projects/{project_id}/github";
257
+ readonly idempotent: true;
258
+ };
259
+ readonly get: {
260
+ readonly method: "GET";
261
+ readonly path: "/v1/projects/{project_id}/github";
262
+ };
263
+ readonly branch_set: {
264
+ readonly method: "PATCH";
265
+ readonly path: "/v1/projects/{project_id}/github";
266
+ readonly idempotent: true;
267
+ };
268
+ readonly release_command_set: {
269
+ readonly method: "PUT";
270
+ readonly path: "/v1/projects/{project_id}/github/release_command";
271
+ readonly idempotent: true;
272
+ };
273
+ readonly disconnect: {
274
+ readonly method: "DELETE";
275
+ readonly path: "/v1/projects/{project_id}/github";
276
+ readonly idempotent: true;
277
+ };
278
+ readonly deploy: {
279
+ readonly method: "POST";
280
+ readonly path: "/v1/projects/{project_id}/github/deploy";
281
+ readonly idempotent: true;
282
+ };
283
+ };
284
+ readonly app_db: {
285
+ readonly get: {
286
+ readonly method: "GET";
287
+ readonly path: "/v1/projects/{project_id}/database";
288
+ };
289
+ readonly backup_list: {
290
+ readonly method: "GET";
291
+ readonly path: "/v1/projects/{project_id}/database/backups";
292
+ };
293
+ readonly backup_restore: {
294
+ readonly method: "POST";
295
+ readonly path: "/v1/projects/{project_id}/database/backups/{backup_id}/restore";
296
+ readonly idempotent: true;
297
+ };
298
+ readonly dump_create: {
299
+ readonly method: "POST";
300
+ readonly path: "/v1/projects/{project_id}/database/dumps";
301
+ readonly idempotent: true;
302
+ };
303
+ readonly dump_download: {
304
+ readonly method: "GET";
305
+ readonly path: "/v1/projects/{project_id}/database/dumps/{dump_id}";
306
+ };
307
+ };
308
+ readonly cron: {
309
+ readonly create: {
310
+ readonly method: "POST";
311
+ readonly path: "/v1/projects/{project_id}/cron-jobs";
312
+ readonly idempotent: true;
313
+ };
314
+ readonly list: {
315
+ readonly method: "GET";
316
+ readonly path: "/v1/projects/{project_id}/cron-jobs";
317
+ };
318
+ readonly update: {
319
+ readonly method: "PATCH";
320
+ readonly path: "/v1/cron-jobs/{cron_job_id}";
321
+ readonly idempotent: true;
322
+ };
323
+ readonly delete: {
324
+ readonly method: "DELETE";
325
+ readonly path: "/v1/cron-jobs/{cron_job_id}";
326
+ readonly idempotent: true;
327
+ };
328
+ };
329
+ readonly test_run: {
330
+ readonly start: {
331
+ readonly method: "POST";
332
+ readonly path: "/v1/projects/{project_id}/test-runs";
333
+ readonly idempotent: true;
334
+ };
335
+ readonly report: {
336
+ readonly method: "POST";
337
+ readonly path: "/v1/test-runs/{test_run_id}/results";
338
+ readonly idempotent: true;
339
+ };
340
+ readonly fix: {
341
+ readonly method: "PUT";
342
+ readonly path: "/v1/test-runs/{test_run_id}/fix";
343
+ readonly idempotent: true;
344
+ };
345
+ readonly rerun: {
346
+ readonly method: "POST";
347
+ readonly path: "/v1/test-runs/{test_run_id}/reruns";
348
+ readonly idempotent: true;
349
+ };
350
+ readonly list: {
351
+ readonly method: "GET";
352
+ readonly path: "/v1/projects/{project_id}/test-runs";
353
+ };
354
+ readonly get: {
355
+ readonly method: "GET";
356
+ readonly path: "/v1/test-runs/{test_run_id}";
357
+ };
358
+ readonly delete: {
359
+ readonly method: "DELETE";
360
+ readonly path: "/v1/test-runs/{test_run_id}";
361
+ readonly idempotent: true;
362
+ };
363
+ };
364
+ readonly storage: {
365
+ readonly list: {
366
+ readonly method: "GET";
367
+ readonly path: "/v1/projects/{project_id}/storage";
368
+ readonly list: true;
369
+ };
370
+ readonly usage_get: {
371
+ readonly method: "GET";
372
+ readonly path: "/v1/workspaces/{workspace_id}/storage";
373
+ };
374
+ readonly upload_sign: {
375
+ readonly method: "POST";
376
+ readonly path: "/v1/projects/{project_id}/storage/upload-url";
377
+ readonly idempotent: true;
378
+ };
379
+ readonly download_sign: {
380
+ readonly method: "GET";
381
+ readonly path: "/v1/projects/{project_id}/storage/download-url";
382
+ };
383
+ readonly delete: {
384
+ readonly method: "DELETE";
385
+ readonly path: "/v1/projects/{project_id}/storage";
386
+ readonly idempotent: true;
387
+ };
388
+ };
389
+ readonly token: {
390
+ readonly create: {
391
+ readonly method: "POST";
392
+ readonly path: "/v1/tokens";
393
+ readonly idempotent: true;
394
+ };
395
+ readonly list: {
396
+ readonly method: "GET";
397
+ readonly path: "/v1/tokens";
398
+ };
399
+ readonly revoke: {
400
+ readonly method: "DELETE";
401
+ readonly path: "/v1/tokens/{token_id}";
402
+ readonly idempotent: true;
403
+ };
404
+ };
405
+ readonly oauth: {
406
+ readonly grant_list: {
407
+ readonly method: "GET";
408
+ readonly path: "/v1/oauth/grants";
409
+ };
410
+ readonly grant_revoke: {
411
+ readonly method: "DELETE";
412
+ readonly path: "/v1/oauth/grants/{grant_id}";
413
+ readonly idempotent: true;
414
+ };
415
+ };
416
+ readonly credit: {
417
+ readonly balance_get: {
418
+ readonly method: "GET";
419
+ readonly path: "/v1/workspaces/{workspace_id}/credits";
420
+ };
421
+ readonly ledger_list: {
422
+ readonly method: "GET";
423
+ readonly path: "/v1/workspaces/{workspace_id}/credits/ledger";
424
+ };
425
+ readonly cap_set: {
426
+ readonly method: "POST";
427
+ readonly path: "/v1/workspaces/{workspace_id}/credits/cap";
428
+ readonly idempotent: true;
429
+ };
430
+ readonly pack_list: {
431
+ readonly method: "GET";
432
+ readonly path: "/v1/credits/packs";
433
+ };
434
+ readonly top_up_start: {
435
+ readonly method: "POST";
436
+ readonly path: "/v1/workspaces/{workspace_id}/credits/top-ups";
437
+ readonly idempotent: true;
438
+ };
439
+ readonly top_up_get: {
440
+ readonly method: "GET";
441
+ readonly path: "/v1/workspaces/{workspace_id}/credits/top-ups/{top_up_id}";
442
+ };
443
+ readonly top_up_request: {
444
+ readonly method: "POST";
445
+ readonly path: "/v1/workspaces/{workspace_id}/credits/top-up-requests";
446
+ readonly idempotent: true;
447
+ };
448
+ readonly top_up_withdraw: {
449
+ readonly method: "POST";
450
+ readonly path: "/v1/workspaces/{workspace_id}/credits/top-ups/{top_up_id}/withdraw";
451
+ readonly idempotent: true;
452
+ };
453
+ };
454
+ readonly billing: {
455
+ readonly get: {
456
+ readonly method: "GET";
457
+ readonly path: "/v1/workspaces/{workspace_id}/billing";
458
+ };
459
+ readonly prices_get: {
460
+ readonly method: "GET";
461
+ readonly path: "/v1/billing/prices";
462
+ };
463
+ readonly subscribe_start: {
464
+ readonly method: "POST";
465
+ readonly path: "/v1/workspaces/{workspace_id}/billing/subscribe";
466
+ readonly idempotent: true;
467
+ };
468
+ readonly subscribe_cancel: {
469
+ readonly method: "POST";
470
+ readonly path: "/v1/workspaces/{workspace_id}/billing/subscribe/cancel";
471
+ readonly idempotent: true;
472
+ };
473
+ readonly cancel: {
474
+ readonly method: "POST";
475
+ readonly path: "/v1/workspaces/{workspace_id}/billing/cancel";
476
+ readonly idempotent: true;
477
+ };
478
+ readonly resume: {
479
+ readonly method: "POST";
480
+ readonly path: "/v1/workspaces/{workspace_id}/billing/resume";
481
+ readonly idempotent: true;
482
+ };
483
+ readonly portal_open: {
484
+ readonly method: "POST";
485
+ readonly path: "/v1/workspaces/{workspace_id}/billing/portal";
486
+ };
487
+ readonly withdraw: {
488
+ readonly method: "POST";
489
+ readonly path: "/v1/workspaces/{workspace_id}/billing/withdraw";
490
+ readonly idempotent: true;
491
+ };
492
+ };
493
+ readonly change: {
494
+ readonly list: {
495
+ readonly method: "GET";
496
+ readonly path: "/v1/workspaces/{workspace_id}/changes";
497
+ };
498
+ readonly command_get: {
499
+ readonly method: "GET";
500
+ readonly path: "/v1/commands/{command_id}/changes";
501
+ };
502
+ readonly export: {
503
+ readonly method: "GET";
504
+ readonly path: "/v1/workspaces/{workspace_id}/changes/export";
505
+ };
506
+ };
507
+ readonly trash: {
508
+ readonly list: {
509
+ readonly method: "GET";
510
+ readonly path: "/v1/workspaces/{workspace_id}/trash";
511
+ };
512
+ };
513
+ readonly database: {
514
+ readonly create: {
515
+ readonly method: "POST";
516
+ readonly path: "/v1/workspaces/{workspace_id}/databases";
517
+ readonly idempotent: true;
518
+ };
519
+ readonly list: {
520
+ readonly method: "GET";
521
+ readonly path: "/v1/workspaces/{workspace_id}/databases";
522
+ };
523
+ readonly rename: {
524
+ readonly method: "POST";
525
+ readonly path: "/v1/databases/{database_id}/rename";
526
+ readonly idempotent: true;
527
+ };
528
+ readonly archive: {
529
+ readonly method: "POST";
530
+ readonly path: "/v1/databases/{database_id}/archive";
531
+ readonly idempotent: true;
532
+ };
533
+ readonly restore: {
534
+ readonly method: "POST";
535
+ readonly path: "/v1/databases/{database_id}/restore";
536
+ readonly idempotent: true;
537
+ };
538
+ };
539
+ readonly field: {
540
+ readonly create: {
541
+ readonly method: "POST";
542
+ readonly path: "/v1/databases/{database_id}/fields";
543
+ readonly idempotent: true;
544
+ };
545
+ readonly rename: {
546
+ readonly method: "POST";
547
+ readonly path: "/v1/fields/{field_id}/rename";
548
+ readonly idempotent: true;
549
+ };
550
+ readonly options_set: {
551
+ readonly method: "POST";
552
+ readonly path: "/v1/fields/{field_id}/options";
553
+ readonly idempotent: true;
554
+ };
555
+ readonly relation_set: {
556
+ readonly method: "POST";
557
+ readonly path: "/v1/fields/{field_id}/relation";
558
+ readonly idempotent: true;
559
+ };
560
+ readonly archive: {
561
+ readonly method: "POST";
562
+ readonly path: "/v1/fields/{field_id}/archive";
563
+ readonly idempotent: true;
564
+ };
565
+ readonly restore: {
566
+ readonly method: "POST";
567
+ readonly path: "/v1/fields/{field_id}/restore";
568
+ readonly idempotent: true;
569
+ };
570
+ };
571
+ readonly record: {
572
+ readonly create: {
573
+ readonly method: "POST";
574
+ readonly path: "/v1/databases/{database_id}/records";
575
+ readonly idempotent: true;
576
+ };
577
+ readonly query: {
578
+ readonly method: "POST";
579
+ readonly path: "/v1/databases/{database_id}/query";
580
+ readonly list: true;
581
+ };
582
+ readonly get: {
583
+ readonly method: "GET";
584
+ readonly path: "/v1/records/{record_id}";
585
+ };
586
+ readonly update: {
587
+ readonly method: "POST";
588
+ readonly path: "/v1/records/{record_id}";
589
+ readonly idempotent: true;
590
+ };
591
+ readonly subtasks_set: {
592
+ readonly method: "POST";
593
+ readonly path: "/v1/records/{record_id}/subtasks";
594
+ readonly idempotent: true;
595
+ };
596
+ readonly archive: {
597
+ readonly method: "POST";
598
+ readonly path: "/v1/records/{record_id}/archive";
599
+ readonly idempotent: true;
600
+ };
601
+ readonly restore: {
602
+ readonly method: "POST";
603
+ readonly path: "/v1/records/{record_id}/restore";
604
+ readonly idempotent: true;
605
+ };
606
+ readonly bulk_update: {
607
+ readonly method: "POST";
608
+ readonly path: "/v1/databases/{database_id}/records/bulk-update";
609
+ readonly idempotent: true;
610
+ };
611
+ readonly bulk_create: {
612
+ readonly method: "POST";
613
+ readonly path: "/v1/databases/{database_id}/records/bulk-create";
614
+ readonly idempotent: true;
615
+ };
616
+ readonly bulk_archive: {
617
+ readonly method: "POST";
618
+ readonly path: "/v1/databases/{database_id}/records/bulk-archive";
619
+ readonly idempotent: true;
620
+ };
621
+ readonly bulk_restore: {
622
+ readonly method: "POST";
623
+ readonly path: "/v1/databases/{database_id}/records/bulk-restore";
624
+ readonly idempotent: true;
625
+ };
626
+ readonly history: {
627
+ readonly method: "GET";
628
+ readonly path: "/v1/records/{record_id}/history";
629
+ };
630
+ readonly undo: {
631
+ readonly method: "POST";
632
+ readonly path: "/v1/record-commands/{command_id}/undo";
633
+ readonly idempotent: true;
634
+ };
635
+ };
636
+ readonly card: {
637
+ readonly move: {
638
+ readonly method: "POST";
639
+ readonly path: "/v1/records/{record_id}/move";
640
+ readonly idempotent: true;
641
+ };
642
+ readonly assigned_list: {
643
+ readonly method: "GET";
644
+ readonly path: "/v1/workspaces/{workspace_id}/records/assigned";
645
+ readonly list: true;
646
+ };
647
+ };
648
+ readonly task: {
649
+ readonly list: {
650
+ readonly method: "GET";
651
+ readonly path: "/v1/tasks";
652
+ readonly list: true;
653
+ };
654
+ readonly create: {
655
+ readonly method: "POST";
656
+ readonly path: "/v1/tasks";
657
+ readonly idempotent: true;
658
+ };
659
+ readonly update: {
660
+ readonly method: "PATCH";
661
+ readonly path: "/v1/tasks/{task_id}";
662
+ readonly idempotent: true;
663
+ };
664
+ readonly move: {
665
+ readonly method: "POST";
666
+ readonly path: "/v1/tasks/{task_id}/move";
667
+ readonly idempotent: true;
668
+ };
669
+ };
670
+ readonly view: {
671
+ readonly create: {
672
+ readonly method: "POST";
673
+ readonly path: "/v1/databases/{database_id}/views";
674
+ readonly idempotent: true;
675
+ };
676
+ readonly list: {
677
+ readonly method: "GET";
678
+ readonly path: "/v1/databases/{database_id}/views";
679
+ };
680
+ readonly update: {
681
+ readonly method: "POST";
682
+ readonly path: "/v1/views/{view_id}";
683
+ readonly idempotent: true;
684
+ };
685
+ readonly rename: {
686
+ readonly method: "POST";
687
+ readonly path: "/v1/views/{view_id}/rename";
688
+ readonly idempotent: true;
689
+ };
690
+ readonly archive: {
691
+ readonly method: "POST";
692
+ readonly path: "/v1/views/{view_id}/archive";
693
+ readonly idempotent: true;
694
+ };
695
+ readonly restore: {
696
+ readonly method: "POST";
697
+ readonly path: "/v1/views/{view_id}/restore";
698
+ readonly idempotent: true;
699
+ };
700
+ readonly record_list: {
701
+ readonly method: "GET";
702
+ readonly path: "/v1/views/{view_id}/records";
703
+ readonly list: true;
704
+ };
705
+ };
706
+ readonly page: {
707
+ readonly create: {
708
+ readonly method: "POST";
709
+ readonly path: "/v1/workspaces/{workspace_id}/pages";
710
+ readonly idempotent: true;
711
+ };
712
+ readonly list: {
713
+ readonly method: "GET";
714
+ readonly path: "/v1/workspaces/{workspace_id}/pages";
715
+ };
716
+ readonly get: {
717
+ readonly method: "GET";
718
+ readonly path: "/v1/pages/{page_id}";
719
+ };
720
+ readonly rename: {
721
+ readonly method: "POST";
722
+ readonly path: "/v1/pages/{page_id}/rename";
723
+ readonly idempotent: true;
724
+ };
725
+ readonly archive: {
726
+ readonly method: "POST";
727
+ readonly path: "/v1/pages/{page_id}/archive";
728
+ readonly idempotent: true;
729
+ };
730
+ readonly restore: {
731
+ readonly method: "POST";
732
+ readonly path: "/v1/pages/{page_id}/restore";
733
+ readonly idempotent: true;
734
+ };
735
+ readonly edit: {
736
+ readonly method: "POST";
737
+ readonly path: "/v1/pages/{page_id}/edit";
738
+ readonly idempotent: true;
739
+ };
740
+ readonly append: {
741
+ readonly method: "POST";
742
+ readonly path: "/v1/pages/{page_id}/blocks";
743
+ readonly idempotent: true;
744
+ };
745
+ readonly propose: {
746
+ readonly method: "POST";
747
+ readonly path: "/v1/pages/{page_id}/proposals";
748
+ readonly idempotent: true;
749
+ };
750
+ readonly proposal_get: {
751
+ readonly method: "GET";
752
+ readonly path: "/v1/pages/{page_id}/proposals/{proposal_id}";
753
+ };
754
+ readonly proposal_list: {
755
+ readonly method: "GET";
756
+ readonly path: "/v1/pages/{page_id}/proposals";
757
+ };
758
+ readonly proposal_discard: {
759
+ readonly method: "POST";
760
+ readonly path: "/v1/pages/{page_id}/proposals/{proposal_id}/discard";
761
+ readonly idempotent: true;
762
+ };
763
+ };
764
+ readonly model: {
765
+ readonly list: {
766
+ readonly method: "GET";
767
+ readonly path: "/v1/models";
768
+ };
769
+ };
770
+ readonly command: {
771
+ readonly describe: {
772
+ readonly method: "GET";
773
+ readonly path: "/v1/commands/{name}";
774
+ };
775
+ };
776
+ readonly app_auth: {
777
+ readonly user_list: {
778
+ readonly method: "GET";
779
+ readonly path: "/v1/projects/{project_id}/auth/users";
780
+ readonly list: true;
781
+ };
782
+ readonly user_show: {
783
+ readonly method: "GET";
784
+ readonly path: "/v1/projects/{project_id}/auth/users/{user_id}";
785
+ };
786
+ readonly user_unlock: {
787
+ readonly method: "POST";
788
+ readonly path: "/v1/projects/{project_id}/auth/users/{user_id}/unlock";
789
+ readonly idempotent: true;
790
+ };
791
+ readonly user_email_send: {
792
+ readonly method: "POST";
793
+ readonly path: "/v1/projects/{project_id}/auth/users/{user_id}/email";
794
+ readonly idempotent: true;
795
+ };
796
+ readonly user_session_list: {
797
+ readonly method: "GET";
798
+ readonly path: "/v1/projects/{project_id}/auth/users/{user_id}/sessions";
799
+ };
800
+ readonly user_session_revoke: {
801
+ readonly method: "DELETE";
802
+ readonly path: "/v1/projects/{project_id}/auth/users/{user_id}/sessions/{session_id}";
803
+ readonly idempotent: true;
804
+ };
805
+ readonly user_sign_out_everywhere: {
806
+ readonly method: "POST";
807
+ readonly path: "/v1/projects/{project_id}/auth/users/{user_id}/sign-out";
808
+ readonly idempotent: true;
809
+ };
810
+ readonly sign_in_event_list: {
811
+ readonly method: "GET";
812
+ readonly path: "/v1/projects/{project_id}/auth/sign-ins";
813
+ };
814
+ readonly user_delete: {
815
+ readonly method: "DELETE";
816
+ readonly path: "/v1/projects/{project_id}/auth/users/{user_id}";
817
+ readonly idempotent: true;
818
+ };
819
+ readonly settings_get: {
820
+ readonly method: "GET";
821
+ readonly path: "/v1/projects/{project_id}/auth/settings";
822
+ };
823
+ readonly settings_update: {
824
+ readonly method: "POST";
825
+ readonly path: "/v1/projects/{project_id}/auth/settings";
826
+ readonly idempotent: true;
827
+ };
828
+ readonly email_usage_get: {
829
+ readonly method: "GET";
830
+ readonly path: "/v1/projects/{project_id}/auth/email-usage";
831
+ };
832
+ readonly email_suppression_list: {
833
+ readonly method: "GET";
834
+ readonly path: "/v1/projects/{project_id}/auth/email-suppressions";
835
+ };
836
+ readonly email_suppression_add: {
837
+ readonly method: "POST";
838
+ readonly path: "/v1/projects/{project_id}/auth/email-suppressions";
839
+ readonly idempotent: true;
840
+ };
841
+ readonly email_suppression_remove: {
842
+ readonly method: "POST";
843
+ readonly path: "/v1/projects/{project_id}/auth/email-suppressions/remove";
844
+ readonly idempotent: true;
845
+ };
846
+ readonly sender_get: {
847
+ readonly method: "GET";
848
+ readonly path: "/v1/projects/{project_id}/auth/sender";
849
+ };
850
+ };
851
+ readonly email: {
852
+ readonly send: {
853
+ readonly method: "POST";
854
+ readonly path: "/v1/projects/{project_id}/email";
855
+ readonly idempotent: true;
856
+ };
857
+ };
858
+ readonly app_payments: {
859
+ readonly connect_start: {
860
+ readonly method: "POST";
861
+ readonly path: "/v1/projects/{project_id}/payments/connect";
862
+ };
863
+ readonly account_get: {
864
+ readonly method: "GET";
865
+ readonly path: "/v1/projects/{project_id}/payments/account";
866
+ };
867
+ readonly revenue_get: {
868
+ readonly method: "GET";
869
+ readonly path: "/v1/projects/{project_id}/payments/revenue";
870
+ };
871
+ readonly disconnect: {
872
+ readonly method: "DELETE";
873
+ readonly path: "/v1/projects/{project_id}/payments/account";
874
+ readonly idempotent: true;
875
+ };
876
+ readonly dashboard_link: {
877
+ readonly method: "GET";
878
+ readonly path: "/v1/projects/{project_id}/payments/dashboard";
879
+ };
880
+ readonly webhook_delivery_list: {
881
+ readonly method: "GET";
882
+ readonly path: "/v1/projects/{project_id}/payments/deliveries";
883
+ };
884
+ readonly webhook_delivery_resend: {
885
+ readonly method: "POST";
886
+ readonly path: "/v1/projects/{project_id}/payments/deliveries/{event_id}/resend";
887
+ readonly idempotent: true;
888
+ };
889
+ };
890
+ readonly realtime: {
891
+ readonly publish: {
892
+ readonly method: "POST";
893
+ readonly path: "/v1/projects/{project_id}/realtime/channels/{channel}/messages";
894
+ };
895
+ readonly channel_list: {
896
+ readonly method: "GET";
897
+ readonly path: "/v1/projects/{project_id}/realtime/channels";
898
+ };
899
+ };
900
+ readonly run: {
901
+ readonly create: {
902
+ readonly method: "POST";
903
+ readonly path: "/v1/runs";
904
+ readonly idempotent: true;
905
+ };
906
+ readonly quote: {
907
+ readonly method: "POST";
908
+ readonly path: "/v1/runs/quote";
909
+ };
910
+ readonly list: {
911
+ readonly method: "GET";
912
+ readonly path: "/v1/runs";
913
+ readonly list: true;
914
+ };
915
+ readonly get: {
916
+ readonly method: "GET";
917
+ readonly path: "/v1/runs/{run_id}";
918
+ };
919
+ readonly stop: {
920
+ readonly method: "POST";
921
+ readonly path: "/v1/runs/{run_id}/stop";
922
+ readonly idempotent: true;
923
+ };
924
+ readonly approval_list: {
925
+ readonly method: "GET";
926
+ readonly path: "/v1/workspaces/{workspace_id}/approvals";
927
+ };
928
+ readonly approve: {
929
+ readonly method: "POST";
930
+ readonly path: "/v1/runs/{run_id}/approve";
931
+ readonly idempotent: true;
932
+ };
933
+ readonly deny: {
934
+ readonly method: "POST";
935
+ readonly path: "/v1/runs/{run_id}/deny";
936
+ readonly idempotent: true;
937
+ };
938
+ readonly resume: {
939
+ readonly method: "POST";
940
+ readonly path: "/v1/runs/{run_id}/resume";
941
+ readonly idempotent: true;
942
+ };
943
+ readonly follow_up: {
944
+ readonly method: "POST";
945
+ readonly path: "/v1/runs/{run_id}/follow-up";
946
+ readonly idempotent: true;
947
+ };
948
+ readonly undo: {
949
+ readonly method: "POST";
950
+ readonly path: "/v1/runs/{run_id}/undo";
951
+ readonly idempotent: true;
952
+ };
953
+ };
954
+ readonly agent: {
955
+ readonly list: {
956
+ readonly method: "GET";
957
+ readonly path: "/v1/workspaces/{workspace_id}/agents";
958
+ };
959
+ readonly get: {
960
+ readonly method: "GET";
961
+ readonly path: "/v1/agents/{agent_id}";
962
+ };
963
+ readonly update: {
964
+ readonly method: "PATCH";
965
+ readonly path: "/v1/agents/{agent_id}";
966
+ readonly idempotent: true;
967
+ };
968
+ readonly pause: {
969
+ readonly method: "POST";
970
+ readonly path: "/v1/agents/{agent_id}/pause";
971
+ readonly idempotent: true;
972
+ };
973
+ readonly resume: {
974
+ readonly method: "POST";
975
+ readonly path: "/v1/agents/{agent_id}/resume";
976
+ readonly idempotent: true;
977
+ };
978
+ };
979
+ readonly schedule: {
980
+ readonly list: {
981
+ readonly method: "GET";
982
+ readonly path: "/v1/workspaces/{workspace_id}/schedules";
983
+ };
984
+ readonly create: {
985
+ readonly method: "POST";
986
+ readonly path: "/v1/workspaces/{workspace_id}/schedules";
987
+ readonly idempotent: true;
988
+ };
989
+ readonly update: {
990
+ readonly method: "PATCH";
991
+ readonly path: "/v1/schedules/{schedule_id}";
992
+ readonly idempotent: true;
993
+ };
994
+ readonly delete: {
995
+ readonly method: "DELETE";
996
+ readonly path: "/v1/schedules/{schedule_id}";
997
+ readonly idempotent: true;
998
+ };
999
+ readonly restore: {
1000
+ readonly method: "POST";
1001
+ readonly path: "/v1/schedules/{schedule_id}/restore";
1002
+ readonly idempotent: true;
1003
+ };
1004
+ readonly run_now: {
1005
+ readonly method: "POST";
1006
+ readonly path: "/v1/schedules/{schedule_id}/run";
1007
+ readonly idempotent: true;
1008
+ };
1009
+ };
1010
+ readonly onboarding: {
1011
+ readonly get: {
1012
+ readonly method: "GET";
1013
+ readonly path: "/v1/workspaces/{workspace_id}/onboarding";
1014
+ };
1015
+ readonly step_skip: {
1016
+ readonly method: "POST";
1017
+ readonly path: "/v1/workspaces/{workspace_id}/onboarding/{step}/skip";
1018
+ readonly idempotent: true;
1019
+ };
1020
+ readonly step_resume: {
1021
+ readonly method: "POST";
1022
+ readonly path: "/v1/workspaces/{workspace_id}/onboarding/{step}/resume";
1023
+ readonly idempotent: true;
1024
+ };
1025
+ };
1026
+ readonly notification: {
1027
+ readonly list: {
1028
+ readonly method: "GET";
1029
+ readonly path: "/v1/workspaces/{workspace_id}/notifications";
1030
+ readonly list: true;
1031
+ };
1032
+ readonly read: {
1033
+ readonly method: "POST";
1034
+ readonly path: "/v1/workspaces/{workspace_id}/notifications/read";
1035
+ readonly idempotent: true;
1036
+ };
1037
+ readonly unread: {
1038
+ readonly method: "POST";
1039
+ readonly path: "/v1/workspaces/{workspace_id}/notifications/unread";
1040
+ readonly idempotent: true;
1041
+ };
1042
+ readonly read_all: {
1043
+ readonly method: "POST";
1044
+ readonly path: "/v1/workspaces/{workspace_id}/notifications/read-all";
1045
+ readonly idempotent: true;
1046
+ };
1047
+ readonly unread_count: {
1048
+ readonly method: "GET";
1049
+ readonly path: "/v1/workspaces/{workspace_id}/notifications/unread-count";
1050
+ };
1051
+ readonly preferences_get: {
1052
+ readonly method: "GET";
1053
+ readonly path: "/v1/workspaces/{workspace_id}/notifications/preferences";
1054
+ };
1055
+ readonly preferences_set: {
1056
+ readonly method: "POST";
1057
+ readonly path: "/v1/workspaces/{workspace_id}/notifications/preferences";
1058
+ readonly idempotent: true;
1059
+ };
1060
+ };
1061
+ readonly search: {
1062
+ readonly query: {
1063
+ readonly method: "GET";
1064
+ readonly path: "/v1/workspaces/{workspace_id}/search";
1065
+ };
1066
+ };
1067
+ readonly comment: {
1068
+ readonly create: {
1069
+ readonly method: "POST";
1070
+ readonly path: "/v1/records/{record_id}/comments";
1071
+ readonly idempotent: true;
1072
+ };
1073
+ readonly list: {
1074
+ readonly method: "GET";
1075
+ readonly path: "/v1/records/{record_id}/comments";
1076
+ readonly list: true;
1077
+ };
1078
+ readonly delete: {
1079
+ readonly method: "DELETE";
1080
+ readonly path: "/v1/comments/{comment_id}";
1081
+ readonly idempotent: true;
1082
+ };
1083
+ readonly restore: {
1084
+ readonly method: "POST";
1085
+ readonly path: "/v1/comments/{comment_id}/restore";
1086
+ readonly idempotent: true;
1087
+ };
1088
+ };
1089
+ readonly status: {
1090
+ readonly get: {
1091
+ readonly method: "GET";
1092
+ readonly path: "/v1/status";
1093
+ };
1094
+ readonly incident_list: {
1095
+ readonly method: "GET";
1096
+ readonly path: "/v1/status/incidents";
1097
+ };
1098
+ readonly incident_get: {
1099
+ readonly method: "GET";
1100
+ readonly path: "/v1/status/incidents/{incident_id}";
1101
+ };
1102
+ };
1103
+ readonly deploy: {
1104
+ readonly create: {
1105
+ readonly method: "POST";
1106
+ readonly path: "/v1/projects/{project_id}/deploys";
1107
+ readonly idempotent: true;
1108
+ };
1109
+ readonly list: {
1110
+ readonly method: "GET";
1111
+ readonly path: "/v1/projects/{project_id}/deploys";
1112
+ };
1113
+ readonly recent_list: {
1114
+ readonly method: "GET";
1115
+ readonly path: "/v1/workspaces/{workspace_id}/deploys";
1116
+ };
1117
+ readonly get: {
1118
+ readonly method: "GET";
1119
+ readonly path: "/v1/deploys/{deploy_id}";
1120
+ };
1121
+ readonly rollback: {
1122
+ readonly method: "POST";
1123
+ readonly path: "/v1/deploys/{deploy_id}/rollback";
1124
+ readonly idempotent: true;
1125
+ };
1126
+ readonly logs: {
1127
+ readonly method: "GET";
1128
+ readonly path: "/v1/deploys/{deploy_id}/logs";
1129
+ };
1130
+ };
1131
+ readonly domain: {
1132
+ readonly add: {
1133
+ readonly method: "POST";
1134
+ readonly path: "/v1/projects/{project_id}/domains";
1135
+ readonly idempotent: true;
1136
+ };
1137
+ readonly list: {
1138
+ readonly method: "GET";
1139
+ readonly path: "/v1/projects/{project_id}/domains";
1140
+ };
1141
+ readonly check: {
1142
+ readonly method: "POST";
1143
+ readonly path: "/v1/domains/{domain_id}/check";
1144
+ readonly idempotent: true;
1145
+ };
1146
+ readonly remove: {
1147
+ readonly method: "DELETE";
1148
+ readonly path: "/v1/domains/{domain_id}";
1149
+ readonly idempotent: true;
1150
+ };
1151
+ };
1152
+ readonly webhook: {
1153
+ readonly endpoint_create: {
1154
+ readonly method: "POST";
1155
+ readonly path: "/v1/projects/{project_id}/webhooks";
1156
+ readonly idempotent: true;
1157
+ };
1158
+ readonly endpoint_list: {
1159
+ readonly method: "GET";
1160
+ readonly path: "/v1/projects/{project_id}/webhooks";
1161
+ };
1162
+ readonly endpoint_update: {
1163
+ readonly method: "PATCH";
1164
+ readonly path: "/v1/webhooks/{endpoint_id}";
1165
+ readonly idempotent: true;
1166
+ };
1167
+ readonly endpoint_delete: {
1168
+ readonly method: "DELETE";
1169
+ readonly path: "/v1/webhooks/{endpoint_id}";
1170
+ readonly idempotent: true;
1171
+ };
1172
+ readonly delivery_list: {
1173
+ readonly method: "GET";
1174
+ readonly path: "/v1/projects/{project_id}/webhook-deliveries";
1175
+ readonly list: true;
1176
+ };
1177
+ readonly delivery_resend: {
1178
+ readonly method: "POST";
1179
+ readonly path: "/v1/webhook-deliveries/{delivery_id}/resend";
1180
+ readonly idempotent: true;
1181
+ };
1182
+ };
1183
+ };
1184
+ /** The client's methods: `scaffold.<resource>.<action>()` for each public command. */
1185
+ export interface Methods {
1186
+ account: {
1187
+ /** Show the person you act for: name, email, signup time, how they sign in, the request's console session and any pending deletion. An ended console session answers 401 with why in the error's details. `GET /v1/account` */
1188
+ get(input?: Record<string, never>): Promise<operations["account.get"]["responses"][200]["content"]["application/json"]>;
1189
+ /** Set or clear your avatar. `POST /v1/account/avatar` */
1190
+ avatar_set(input?: NonNullable<operations["account.avatar_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["account.avatar_set"]["responses"][200]["content"]["application/json"]>;
1191
+ };
1192
+ image: {
1193
+ /** Read a logo or avatar by the image id ending its URL. `GET /v1/images/{image_id}` */
1194
+ get(input: operations["image.get"]["parameters"]["path"]): Promise<Blob>;
1195
+ };
1196
+ workspace: {
1197
+ /** Create a workspace with you as its owner, named 1 to 80 characters and unlike your other workspaces. `POST /v1/workspaces` */
1198
+ create(input: NonNullable<operations["workspace.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["workspace.create"]["responses"][200]["content"]["application/json"]>;
1199
+ /** Rename a workspace you own. Its slug stays the same. `POST /v1/workspaces/{workspace_id}/rename` */
1200
+ rename(input: operations["workspace.rename"]["parameters"]["path"] & NonNullable<operations["workspace.rename"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["workspace.rename"]["responses"][200]["content"]["application/json"]>;
1201
+ /** Set or clear the logo of a workspace you own. `POST /v1/workspaces/{workspace_id}/logo` */
1202
+ logo_set(input: operations["workspace.logo_set"]["parameters"]["path"] & NonNullable<operations["workspace.logo_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["workspace.logo_set"]["responses"][200]["content"]["application/json"]>;
1203
+ /** Delete a workspace you own, unless a paid plan renews. `DELETE /v1/workspaces/{workspace_id}` */
1204
+ delete(input: operations["workspace.delete"]["parameters"]["path"], options?: WriteOptions): Promise<operations["workspace.delete"]["responses"][200]["content"]["application/json"]>;
1205
+ /** Undo workspace.delete within 24 hours. `POST /v1/workspaces/{workspace_id}/restore` */
1206
+ restore(input: operations["workspace.restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["workspace.restore"]["responses"][200]["content"]["application/json"]>;
1207
+ /** Zip a workspace you own. workspace.export_get shows its progress and workspace.export_download returns the zip once it is ready. `POST /v1/workspaces/{workspace_id}/exports` */
1208
+ export_start(input: operations["workspace.export_start"]["parameters"]["path"], options?: WriteOptions): Promise<operations["workspace.export_start"]["responses"][200]["content"]["application/json"]>;
1209
+ /** An export's progress; the latest by default. `GET /v1/workspaces/{workspace_id}/export` */
1210
+ export_get(input: operations["workspace.export_get"]["parameters"]["path"] & NonNullable<operations["workspace.export_get"]["parameters"]["query"]>): Promise<operations["workspace.export_get"]["responses"][200]["content"]["application/json"]>;
1211
+ /** A ready export's zip, as base64. Needs write access, since it holds every project's database. `GET /v1/workspaces/{workspace_id}/exports/{export_id}/download` */
1212
+ export_download(input: operations["workspace.export_download"]["parameters"]["path"]): Promise<Blob>;
1213
+ /** List your workspaces and your role in each. `GET /v1/workspaces` */
1214
+ list(input?: NonNullable<operations["workspace.list"]["parameters"]["query"]>): Promise<operations["workspace.list"]["responses"][200]["content"]["application/json"]>;
1215
+ /** Invite an email to a workspace you own. Pass on the invite link secret it answers, shown only once. `POST /v1/workspaces/{workspace_id}/invites` */
1216
+ member_invite(input: operations["workspace.member_invite"]["parameters"]["path"] & NonNullable<operations["workspace.member_invite"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["workspace.member_invite"]["responses"][200]["content"]["application/json"]>;
1217
+ /** Revoke an open invite to a workspace you own, by its id from workspace.member_list. `DELETE /v1/invites/{invite_id}` */
1218
+ invite_revoke(input: operations["workspace.invite_revoke"]["parameters"]["path"], options?: WriteOptions): Promise<operations["workspace.invite_revoke"]["responses"][200]["content"]["application/json"]>;
1219
+ /** Undo a revoke before the invite expires. `POST /v1/invites/{invite_id}/restore` */
1220
+ invite_restore(input: operations["workspace.invite_restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["workspace.invite_restore"]["responses"][200]["content"]["application/json"]>;
1221
+ /** Hide a declined invite that workspace.member_list shows. `POST /v1/invites/{invite_id}/dismiss` */
1222
+ invite_dismiss(input: operations["workspace.invite_dismiss"]["parameters"]["path"], options?: WriteOptions): Promise<operations["workspace.invite_dismiss"]["responses"][200]["content"]["application/json"]>;
1223
+ /** Open invites to your proven email. `GET /v1/invites/mine` */
1224
+ invite_list_mine(input?: Record<string, never>): Promise<operations["workspace.invite_list_mine"]["responses"][200]["content"]["application/json"]>;
1225
+ /** Join a workspace by an invite sent to your account's email. `POST /v1/invites/accept` */
1226
+ invite_accept(input: NonNullable<operations["workspace.invite_accept"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["workspace.invite_accept"]["responses"][200]["content"]["application/json"]>;
1227
+ /** Join by an invite_id from workspace.invite_list_mine. `POST /v1/invites/{invite_id}/join` */
1228
+ invite_join(input: operations["workspace.invite_join"]["parameters"]["path"], options?: WriteOptions): Promise<operations["workspace.invite_join"]["responses"][200]["content"]["application/json"]>;
1229
+ /** Turn down an invite sent to your account's email, by its secret. `POST /v1/invites/decline` */
1230
+ invite_decline(input: NonNullable<operations["workspace.invite_decline"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["workspace.invite_decline"]["responses"][200]["content"]["application/json"]>;
1231
+ /** Show an invite from its link secret, signed in or not, and whether it is still open. `POST /v1/invites/preview` */
1232
+ invite_get(input: NonNullable<operations["workspace.invite_get"]["requestBody"]>["content"]["application/json"]): Promise<operations["workspace.invite_get"]["responses"][200]["content"]["application/json"]>;
1233
+ /** List a workspace's members with roles, avatars and last activity, and its open invites. `GET /v1/workspaces/{workspace_id}/members` */
1234
+ member_list(input: operations["workspace.member_list"]["parameters"]["path"]): Promise<operations["workspace.member_list"]["responses"][200]["content"]["application/json"]>;
1235
+ /** Make a member the owner of a workspace you own. `POST /v1/workspaces/{workspace_id}/transfer-ownership` */
1236
+ ownership_transfer(input: operations["workspace.ownership_transfer"]["parameters"]["path"] & NonNullable<operations["workspace.ownership_transfer"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["workspace.ownership_transfer"]["responses"][200]["content"]["application/json"]>;
1237
+ /** Remove a member from a workspace you own, or leave one with your own person_id. Revokes their tokens there. `DELETE /v1/workspaces/{workspace_id}/members/{person_id}` */
1238
+ member_remove(input: operations["workspace.member_remove"]["parameters"]["path"], options?: WriteOptions): Promise<operations["workspace.member_remove"]["responses"][200]["content"]["application/json"]>;
1239
+ };
1240
+ project: {
1241
+ /** Create a project in a workspace. Refused while a deleted one with the slug can be restored, unless ignore_restorable. `POST /v1/projects` */
1242
+ create(input: NonNullable<operations["project.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["project.create"]["responses"][200]["content"]["application/json"]>;
1243
+ /** List a workspace's projects, leaving out deleted ones. `GET /v1/projects` */
1244
+ list(input: NonNullable<operations["project.list"]["parameters"]["query"]>): List<operations["project.list"]["responses"][200]["content"]["application/json"], operations["project.list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1245
+ /** Show a live project with its runtime, its newest deploy and, while Scaffold has it suspended, why and the statement of reasons to appeal. `GET /v1/projects/{project_id}` */
1246
+ get(input: operations["project.get"]["parameters"]["path"]): Promise<operations["project.get"]["responses"][200]["content"]["application/json"]>;
1247
+ /** Show a project's app users over 30 days and its costs this month: the credits of runs started for it, the hours its apps ran and what it stores. `GET /v1/projects/{project_id}/metrics` */
1248
+ metrics_get(input: operations["project.metrics_get"]["parameters"]["path"]): Promise<operations["project.metrics_get"]["responses"][200]["content"]["application/json"]>;
1249
+ /** Show the address a new project with this name would get and whether it is free. If not, project.create adds 4 random characters. `GET /v1/projects/address-check` */
1250
+ address_check(input: NonNullable<operations["project.address_check"]["parameters"]["query"]>): Promise<operations["project.address_check"]["responses"][200]["content"]["application/json"]>;
1251
+ /** Owner only: delete a project after a 24 hour grace period. `DELETE /v1/projects/{project_id}` */
1252
+ delete(input: operations["project.delete"]["parameters"]["path"], options?: WriteOptions): Promise<operations["project.delete"]["responses"][200]["content"]["application/json"]>;
1253
+ /** Owner only: restore a deleted project within 24 hours of deleting it. `POST /v1/projects/{project_id}/restore` */
1254
+ restore(input: operations["project.restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["project.restore"]["responses"][200]["content"]["application/json"]>;
1255
+ /** Owner only: erase a deleted project now instead of when its 24 hours run out, with its deploys, env, domains and database. `POST /v1/projects/{project_id}/erase` */
1256
+ erase(input: operations["project.erase"]["parameters"]["path"], options?: WriteOptions): Promise<operations["project.erase"]["responses"][200]["content"]["application/json"]>;
1257
+ /** Show a project's requests, errors, p95 latency, unavailable requests and downtime per hour over the last 24 hours, all its deploys together. `GET /v1/projects/{project_id}/health` */
1258
+ health_get(input: operations["project.health_get"]["parameters"]["path"]): Promise<operations["project.health_get"]["responses"][200]["content"]["application/json"]>;
1259
+ /** Show whether each deploy a project's host keeps is awake, asleep or exited, with its wakes, sleeps, OOM kills and CPU. `GET /v1/projects/{project_id}/status` */
1260
+ status_get(input: operations["project.status_get"]["parameters"]["path"]): Promise<operations["project.status_get"]["responses"][200]["content"]["application/json"]>;
1261
+ /** Show the CPU, memory, disk, processes and sleep window a project's app runs under on its plan, and what its live deploy uses now. `GET /v1/projects/{project_id}/limits` */
1262
+ limits_get(input: operations["project.limits_get"]["parameters"]["path"]): Promise<operations["project.limits_get"]["responses"][200]["content"]["application/json"]>;
1263
+ /** Show the error share that alerts a project's owners, 1, 2 or 5%, and the alert firing now with its errors since it started. `GET /v1/projects/{project_id}/alerts` */
1264
+ alert_get(input: operations["project.alert_get"]["parameters"]["path"]): Promise<operations["project.alert_get"]["responses"][200]["content"]["application/json"]>;
1265
+ /** Set the error share over 5 minutes, 1, 2 or 5%, above which a project's owners get an email and an inbox item. Owners only, on the Paid plan. `PUT /v1/projects/{project_id}/alerts` */
1266
+ alert_set(input: operations["project.alert_set"]["parameters"]["path"] & NonNullable<operations["project.alert_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["project.alert_set"]["responses"][200]["content"]["application/json"]>;
1267
+ /** Turn a project's maintenance mode on or off, as its owner. While on, its address and domains show a maintenance page and its deploys keep running on their own addresses. `PUT /v1/projects/{project_id}/maintenance` */
1268
+ maintenance_set(input: operations["project.maintenance_set"]["parameters"]["path"] & NonNullable<operations["project.maintenance_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["project.maintenance_set"]["responses"][200]["content"]["application/json"]>;
1269
+ /** Move a project to another workspace, owning both. Its deploys, domains, env, database, files, cron jobs, webhooks and app users go with it and nothing goes offline. For someone else's workspace, make a claim link. `POST /v1/projects/{project_id}/move` */
1270
+ move(input: operations["project.move"]["parameters"]["path"] & NonNullable<operations["project.move"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["project.move"]["responses"][200]["content"]["application/json"]>;
1271
+ /** Make a claim link for a project you own, in place of any open one. The owner of another workspace who opens it moves the project there, once, within 7 days. Its secret is answered only once. `POST /v1/projects/{project_id}/claim-link` */
1272
+ claim_link_create(input: operations["project.claim_link_create"]["parameters"]["path"]): Promise<operations["project.claim_link_create"]["responses"][200]["content"]["application/json"]>;
1273
+ /** Cancel a project's open claim link, so it no longer moves the project. `DELETE /v1/projects/{project_id}/claim-link` */
1274
+ claim_link_cancel(input: operations["project.claim_link_cancel"]["parameters"]["path"], options?: WriteOptions): Promise<operations["project.claim_link_cancel"]["responses"][200]["content"]["application/json"]>;
1275
+ };
1276
+ env: {
1277
+ /** Set a project's env var, encrypted at rest. A live server app is redeployed with it at once, without a rebuild, unless deploy is false. `POST /v1/projects/{project_id}/env` */
1278
+ set(input: operations["env.set"]["parameters"]["path"] & NonNullable<operations["env.set"]["requestBody"]>["content"]["application/json"]): Promise<operations["env.set"]["responses"][200]["content"]["application/json"]>;
1279
+ /** List a project's env vars. Secrets show their name, never their value. `GET /v1/projects/{project_id}/env` */
1280
+ list(input: operations["env.list"]["parameters"]["path"]): Promise<operations["env.list"]["responses"][200]["content"]["application/json"]>;
1281
+ /** Delete a project's env var by name. A live server app is redeployed without it, unless deploy is false; deploys made before keep their value for a rollback until the project is erased. `DELETE /v1/projects/{project_id}/env/{name}` */
1282
+ delete(input: operations["env.delete"]["parameters"]["path"] & NonNullable<operations["env.delete"]["parameters"]["query"]>, options?: WriteOptions): Promise<operations["env.delete"]["responses"][200]["content"]["application/json"]>;
1283
+ /** Undo a var's latest env.set: put back the value it replaced, or delete the var it created. A live server app is redeployed with that, unless deploy is false. `POST /v1/projects/{project_id}/env/{name}/restore` */
1284
+ restore(input: operations["env.restore"]["parameters"]["path"] & NonNullable<operations["env.restore"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["env.restore"]["responses"][200]["content"]["application/json"]>;
1285
+ };
1286
+ source: {
1287
+ /** Upload a project's code as one zip, stored once by its hash. Only the newest 5 uploads are kept, and uploading one again makes it the newest. `PUT /v1/projects/{project_id}/sources` */
1288
+ upload(input: operations["source.upload"]["parameters"]["path"] & {
1289
+ archive: Blob | ArrayBuffer | Uint8Array;
1290
+ }, options?: WriteOptions): Promise<operations["source.upload"]["responses"][200]["content"]["application/json"]>;
1291
+ /** Delete a project's upload and its file. source.list gives each upload's sha256. `DELETE /v1/projects/{project_id}/sources/{sha256}` */
1292
+ delete(input: operations["source.delete"]["parameters"]["path"], options?: WriteOptions): Promise<operations["source.delete"]["responses"][200]["content"]["application/json"]>;
1293
+ /** List a project's uploads of its code, newest first. An upload's sha256 is all deploy.create needs to build it. `GET /v1/projects/{project_id}/sources` */
1294
+ list(input: operations["source.list"]["parameters"]["path"]): Promise<operations["source.list"]["responses"][200]["content"]["application/json"]>;
1295
+ /** List the files in one of a project's uploads, by path. source.list or a deploy's source_sha256 gives the hash. `GET /v1/projects/{project_id}/sources/{sha256}/files` */
1296
+ file_list(input: operations["source.file_list"]["parameters"]["path"]): Promise<operations["source.file_list"]["responses"][200]["content"]["application/json"]>;
1297
+ /** Read one file of a project's upload. Text of at most 256 KB comes back whole; a binary or longer file comes back as its kind and size only. `GET /v1/projects/{project_id}/sources/{sha256}/file` */
1298
+ file_get(input: operations["source.file_get"]["parameters"]["path"] & NonNullable<operations["source.file_get"]["parameters"]["query"]>): Promise<operations["source.file_get"]["responses"][200]["content"]["application/json"]>;
1299
+ };
1300
+ github: {
1301
+ /** List the GitHub repositories a workspace linked, which its members reach and gave Scaffold's GitHub App, for github.connect. `GET /v1/workspaces/{workspace_id}/github/repositories` */
1302
+ repository_list(input: operations["github.repository_list"]["parameters"]["path"]): Promise<operations["github.repository_list"]["responses"][200]["content"]["application/json"]>;
1303
+ /** Connect a project to a GitHub repository, so each push to its branch deploys. Replaces the repository it followed. `POST /v1/projects/{project_id}/github` */
1304
+ connect(input: operations["github.connect"]["parameters"]["path"] & NonNullable<operations["github.connect"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["github.connect"]["responses"][200]["content"]["application/json"]>;
1305
+ /** Show a project's GitHub repository and branch, and its latest pushes with the deploy each started. `GET /v1/projects/{project_id}/github` */
1306
+ get(input: operations["github.get"]["parameters"]["path"]): Promise<operations["github.get"]["responses"][200]["content"]["application/json"]>;
1307
+ /** Change the branch whose pushes deploy a project connected to GitHub. `PATCH /v1/projects/{project_id}/github` */
1308
+ branch_set(input: operations["github.branch_set"]["parameters"]["path"] & NonNullable<operations["github.branch_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["github.branch_set"]["responses"][200]["content"]["application/json"]>;
1309
+ /** Set the command, like a migration, that each pushed deploy of a project connected to GitHub runs before it goes live, after a dump of its database. Null for none. `PUT /v1/projects/{project_id}/github/release_command` */
1310
+ release_command_set(input: operations["github.release_command_set"]["parameters"]["path"] & NonNullable<operations["github.release_command_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["github.release_command_set"]["responses"][200]["content"]["application/json"]>;
1311
+ /** Stop deploying a project from GitHub. Its uploads and deploys stay. `DELETE /v1/projects/{project_id}/github` */
1312
+ disconnect(input: operations["github.disconnect"]["parameters"]["path"], options?: WriteOptions): Promise<operations["github.disconnect"]["responses"][200]["content"]["application/json"]>;
1313
+ /** Deploy the head of a connected project's branch now, as a push would. github.get shows the deploy it starts. `POST /v1/projects/{project_id}/github/deploy` */
1314
+ deploy(input: operations["github.deploy"]["parameters"]["path"], options?: WriteOptions): Promise<operations["github.deploy"]["responses"][200]["content"]["application/json"]>;
1315
+ };
1316
+ app_db: {
1317
+ /** Show a project's Postgres database: its state, version, stored size, and DATABASE_URL with the password masked. `GET /v1/projects/{project_id}/database` */
1318
+ get(input: operations["app_db.get"]["parameters"]["path"]): Promise<operations["app_db.get"]["responses"][200]["content"]["application/json"]>;
1319
+ /** Paid plan: list a project database's backups, newest first: daily at 03:00 UTC, before each restore and before each deploy's migrations, each kept 6 days. Also its latest restore and dump. `GET /v1/projects/{project_id}/database/backups` */
1320
+ backup_list(input: operations["app_db.backup_list"]["parameters"]["path"]): Promise<operations["app_db.backup_list"]["responses"][200]["content"]["application/json"]>;
1321
+ /** Paid plan, owners only: put a backup in place of everything in a project's database, which is read-only from when the restore starts until it ends. Rows written since are lost, so the current data is backed up first as undo_backup_id; restoring that backup undoes this. A restore that fails leaves the database as it was. `POST /v1/projects/{project_id}/database/backups/{backup_id}/restore` */
1322
+ backup_restore(input: operations["app_db.backup_restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["app_db.backup_restore"]["responses"][200]["content"]["application/json"]>;
1323
+ /** Paid plan: dump a project's database as gzipped SQL that psql reads. app_db.backup_list shows when it is ready, and app_db.dump_download answers it for an hour after. `POST /v1/projects/{project_id}/database/dumps` */
1324
+ dump_create(input: operations["app_db.dump_create"]["parameters"]["path"], options?: WriteOptions): Promise<operations["app_db.dump_create"]["responses"][200]["content"]["application/json"]>;
1325
+ /** A ready dump's gzipped SQL, as base64, within the hour after it is ready. Needs write access, as DATABASE_URL does. `GET /v1/projects/{project_id}/database/dumps/{dump_id}` */
1326
+ dump_download(input: operations["app_db.dump_download"]["parameters"]["path"]): Promise<Blob>;
1327
+ };
1328
+ cron: {
1329
+ /** Paid plan: POST to a path of the project's live app on a cron schedule, waking it if asleep. Each fire runs once, signed by a Scaffold-Signature JWT the project's JWKS verifies. A project sends 2 fires at once; times that pass while it waits show as one missed fire, and the newest runs. `POST /v1/projects/{project_id}/cron-jobs` */
1330
+ create(input: operations["cron.create"]["parameters"]["path"] & NonNullable<operations["cron.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["cron.create"]["responses"][200]["content"]["application/json"]>;
1331
+ /** List a project's cron jobs with their next time and newest fires. `GET /v1/projects/{project_id}/cron-jobs` */
1332
+ list(input: operations["cron.list"]["parameters"]["path"]): Promise<operations["cron.list"]["responses"][200]["content"]["application/json"]>;
1333
+ /** Change a cron job's schedule, timezone or path, or pause and resume it. `PATCH /v1/cron-jobs/{cron_job_id}` */
1334
+ update(input: operations["cron.update"]["parameters"]["path"] & NonNullable<operations["cron.update"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["cron.update"]["responses"][200]["content"]["application/json"]>;
1335
+ /** Delete a cron job and its fires. It answers the job as it was. `DELETE /v1/cron-jobs/{cron_job_id}` */
1336
+ delete(input: operations["cron.delete"]["parameters"]["path"], options?: WriteOptions): Promise<operations["cron.delete"]["responses"][200]["content"]["application/json"]>;
1337
+ };
1338
+ test_run: {
1339
+ /** Start showing a test run of the project's code in the console, live: the command, who runs it and, when the runner knows, each test file and its test count. Report results with test_run.report as tests finish. `POST /v1/projects/{project_id}/test-runs` */
1340
+ start(input: operations["test_run.start"]["parameters"]["path"] & NonNullable<operations["test_run.start"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["test_run.start"]["responses"][200]["content"]["application/json"]>;
1341
+ /** Report tests that finished in a test run's latest attempt, up to 1,000 at once, each with its file, name, status and duration. done ends the attempt. A test reported again in the same attempt replaces its result. `POST /v1/test-runs/{test_run_id}/results` */
1342
+ report(input: operations["test_run.report"]["parameters"]["path"] & NonNullable<operations["test_run.report"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["test_run.report"]["responses"][200]["content"]["application/json"]>;
1343
+ /** Show what you are doing to fix a test run's failures, over its graph: the test file, a short note and the files you changed with lines added and removed. Each call replaces the last. `PUT /v1/test-runs/{test_run_id}/fix` */
1344
+ fix(input: operations["test_run.fix"]["parameters"]["path"] & NonNullable<operations["test_run.fix"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["test_run.fix"]["responses"][200]["content"]["application/json"]>;
1345
+ /** Start the next attempt of a test run once the last ended, of every file or the files named, then report it with test_run.report. A run reruns 19 times at most. `POST /v1/test-runs/{test_run_id}/reruns` */
1346
+ rerun(input: operations["test_run.rerun"]["parameters"]["path"] & NonNullable<operations["test_run.rerun"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["test_run.rerun"]["responses"][200]["content"]["application/json"]>;
1347
+ /** List a project's 20 newest test runs with their state and counts. `GET /v1/projects/{project_id}/test-runs` */
1348
+ list(input: operations["test_run.list"]["parameters"]["path"]): Promise<operations["test_run.list"]["responses"][200]["content"]["application/json"]>;
1349
+ /** Get a test run with every test's result in each attempt, the agent's fix and the files it changed. `GET /v1/test-runs/{test_run_id}` */
1350
+ get(input: operations["test_run.get"]["parameters"]["path"]): Promise<operations["test_run.get"]["responses"][200]["content"]["application/json"]>;
1351
+ /** Delete a test run and every result it holds. `DELETE /v1/test-runs/{test_run_id}` */
1352
+ delete(input: operations["test_run.delete"]["parameters"]["path"], options?: WriteOptions): Promise<operations["test_run.delete"]["responses"][200]["content"]["application/json"]>;
1353
+ };
1354
+ storage: {
1355
+ /** List the files a project's app stores, by name, or only those whose name starts with prefix, like avatars/. `GET /v1/projects/{project_id}/storage` */
1356
+ list(input: operations["storage.list"]["parameters"]["path"] & NonNullable<operations["storage.list"]["parameters"]["query"]>): List<operations["storage.list"]["responses"][200]["content"]["application/json"], operations["storage.list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1357
+ /** Show what the files of all a workspace's apps take together, and the cap its plan sets on them. `GET /v1/workspaces/{workspace_id}/storage` */
1358
+ usage_get(input: operations["storage.usage_get"]["parameters"]["path"]): Promise<operations["storage.usage_get"]["responses"][200]["content"]["application/json"]>;
1359
+ /** Sign a URL that uploads one file of up to 50 MB to a project, for 15 minutes or expires_in_seconds: PUT the bytes to it with their Content-Type, from the app's server or a user's browser. A name a file holds already is refused. `POST /v1/projects/{project_id}/storage/upload-url` */
1360
+ upload_sign(input: operations["storage.upload_sign"]["parameters"]["path"] & NonNullable<operations["storage.upload_sign"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["storage.upload_sign"]["responses"][200]["content"]["application/json"]>;
1361
+ /** Sign a URL that downloads one of a project's files, for 15 minutes or expires_in_seconds, up to a week: link to it or put it in an img tag. `GET /v1/projects/{project_id}/storage/download-url` */
1362
+ download_sign(input: operations["storage.download_sign"]["parameters"]["path"] & NonNullable<operations["storage.download_sign"]["parameters"]["query"]>): Promise<operations["storage.download_sign"]["responses"][200]["content"]["application/json"]>;
1363
+ /** Delete a project's stored file by name, so signed URLs answer not found and its bytes no longer count toward the workspace's cap. `DELETE /v1/projects/{project_id}/storage` */
1364
+ delete(input: operations["storage.delete"]["parameters"]["path"] & NonNullable<operations["storage.delete"]["parameters"]["query"]>, options?: WriteOptions): Promise<operations["storage.delete"]["responses"][200]["content"]["application/json"]>;
1365
+ };
1366
+ token: {
1367
+ /** Create a token for a workspace, or a test one for your sandbox. Its secret is shown once. `POST /v1/tokens` */
1368
+ create(input: NonNullable<operations["token.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["token.create"]["responses"][200]["content"]["application/json"]>;
1369
+ /** List the tokens of a workspace, revoked ones included, without secrets. `GET /v1/tokens` */
1370
+ list(input: NonNullable<operations["token.list"]["parameters"]["query"]>): Promise<operations["token.list"]["responses"][200]["content"]["application/json"]>;
1371
+ /** Revoke a token and every token it created, so their next request fails. A member may revoke only their own tokens, an owner any in the workspace. `DELETE /v1/tokens/{token_id}` */
1372
+ revoke(input: operations["token.revoke"]["parameters"]["path"], options?: WriteOptions): Promise<operations["token.revoke"]["responses"][200]["content"]["application/json"]>;
1373
+ };
1374
+ oauth: {
1375
+ /** List the OAuth apps you approved, and as an owner every app in your workspaces. `GET /v1/oauth/grants` */
1376
+ grant_list(input?: Record<string, never>): Promise<operations["oauth.grant_list"]["responses"][200]["content"]["application/json"]>;
1377
+ /** Revoke an OAuth app you approved, or as an owner any app in your workspace, so its next request fails. oauth.grant_list gives each grant_id. `DELETE /v1/oauth/grants/{grant_id}` */
1378
+ grant_revoke(input: operations["oauth.grant_revoke"]["parameters"]["path"], options?: WriteOptions): Promise<operations["oauth.grant_revoke"]["responses"][200]["content"]["application/json"]>;
1379
+ };
1380
+ credit: {
1381
+ /** Show a workspace's credits: balance, held, available and the monthly cap. `GET /v1/workspaces/{workspace_id}/credits` */
1382
+ balance_get(input: operations["credit.balance_get"]["parameters"]["path"]): Promise<operations["credit.balance_get"]["responses"][200]["content"]["application/json"]>;
1383
+ /** List a workspace's latest 200 credit entries, newest first. `GET /v1/workspaces/{workspace_id}/credits/ledger` */
1384
+ ledger_list(input: operations["credit.ledger_list"]["parameters"]["path"]): Promise<operations["credit.ledger_list"]["responses"][200]["content"]["application/json"]>;
1385
+ /** Set or remove a workspace's monthly spending cap. Owners only. `POST /v1/workspaces/{workspace_id}/credits/cap` */
1386
+ cap_set(input: operations["credit.cap_set"]["parameters"]["path"] & NonNullable<operations["credit.cap_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["credit.cap_set"]["responses"][200]["content"]["application/json"]>;
1387
+ /** List the credit packs a top-up can buy, with their prices. `GET /v1/credits/packs` */
1388
+ pack_list(input?: Record<string, never>): Promise<operations["credit.pack_list"]["responses"][200]["content"]["application/json"]>;
1389
+ /** Buy the credit pack of a Stripe price with the card the plan is paid with. Owners only. `POST /v1/workspaces/{workspace_id}/credits/top-ups` */
1390
+ top_up_start(input: operations["credit.top_up_start"]["parameters"]["path"] & NonNullable<operations["credit.top_up_start"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["credit.top_up_start"]["responses"][200]["content"]["application/json"]>;
1391
+ /** Show whether a top-up was added, failed or still waits for the bank. `GET /v1/workspaces/{workspace_id}/credits/top-ups/{top_up_id}` */
1392
+ top_up_get(input: operations["credit.top_up_get"]["parameters"]["path"]): Promise<operations["credit.top_up_get"]["responses"][200]["content"]["application/json"]>;
1393
+ /** Ask the workspace's owners to top up, in their inbox. Members only, once a day. `POST /v1/workspaces/{workspace_id}/credits/top-up-requests` */
1394
+ top_up_request(input: operations["credit.top_up_request"]["parameters"]["path"], options?: WriteOptions): Promise<operations["credit.top_up_request"]["responses"][200]["content"]["application/json"]>;
1395
+ /** Withdraw from a top-up within 14 days and refund its unused credits, once any dispute ends. Owners only. `POST /v1/workspaces/{workspace_id}/credits/top-ups/{top_up_id}/withdraw` */
1396
+ top_up_withdraw(input: operations["credit.top_up_withdraw"]["parameters"]["path"], options?: WriteOptions): Promise<operations["credit.top_up_withdraw"]["responses"][200]["content"]["application/json"]>;
1397
+ };
1398
+ billing: {
1399
+ /** Show a workspace's plan, Free or Paid: price, card, renewal or end, a failed renewal's fix-by date, withdrawal deadlines and any unpaid payment page. `GET /v1/workspaces/{workspace_id}/billing` */
1400
+ get(input: operations["billing.get"]["parameters"]["path"]): Promise<operations["billing.get"]["responses"][200]["content"]["application/json"]>;
1401
+ /** Show yearly and monthly Paid plan prices before tax, the credits each grants a month (null when it grants none), and the 14-day withdrawal charge per credit. `GET /v1/billing/prices` */
1402
+ prices_get(input?: Record<string, never>): Promise<operations["billing.prices_get"]["responses"][200]["content"]["application/json"]>;
1403
+ /** Open a Stripe payment page for the paid plan, yearly or monthly, which grants nothing before Stripe confirms. Owners only, on the free plan. `POST /v1/workspaces/{workspace_id}/billing/subscribe` */
1404
+ subscribe_start(input: operations["billing.subscribe_start"]["parameters"]["path"] & NonNullable<operations["billing.subscribe_start"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["billing.subscribe_start"]["responses"][200]["content"]["application/json"]>;
1405
+ /** Give up on the plan's unpaid Stripe payment page, so it can no longer be paid. Owners only. `POST /v1/workspaces/{workspace_id}/billing/subscribe/cancel` */
1406
+ subscribe_cancel(input: operations["billing.subscribe_cancel"]["parameters"]["path"], options?: WriteOptions): Promise<operations["billing.subscribe_cancel"]["responses"][200]["content"]["application/json"]>;
1407
+ /** End the Paid plan when its paid period ends. Owners only. `POST /v1/workspaces/{workspace_id}/billing/cancel` */
1408
+ cancel(input: operations["billing.cancel"]["parameters"]["path"], options?: WriteOptions): Promise<operations["billing.cancel"]["responses"][200]["content"]["application/json"]>;
1409
+ /** Keep a cancelled Paid plan, so it renews again. Owners only, before its period ends. `POST /v1/workspaces/{workspace_id}/billing/resume` */
1410
+ resume(input: operations["billing.resume"]["parameters"]["path"], options?: WriteOptions): Promise<operations["billing.resume"]["responses"][200]["content"]["application/json"]>;
1411
+ /** Open Stripe's billing portal to change or cancel the plan. Owners only, once the workspace subscribed. `POST /v1/workspaces/{workspace_id}/billing/portal` */
1412
+ portal_open(input: operations["billing.portal_open"]["parameters"]["path"]): Promise<operations["billing.portal_open"]["responses"][200]["content"]["application/json"]>;
1413
+ /** Withdraw from the paid plan within 14 days of subscribing: cancel it now and refund it, less the credits used if the owner asked to start at once, once any dispute ends. Owners only. `POST /v1/workspaces/{workspace_id}/billing/withdraw` */
1414
+ withdraw(input: operations["billing.withdraw"]["parameters"]["path"], options?: WriteOptions): Promise<operations["billing.withdraw"]["responses"][200]["content"]["application/json"]>;
1415
+ };
1416
+ change: {
1417
+ /** List what changed in a workspace, newest first, 100 at a time. Pass the last position you saw as after to catch up oldest first. `GET /v1/workspaces/{workspace_id}/changes` */
1418
+ list(input: operations["change.list"]["parameters"]["path"] & NonNullable<operations["change.list"]["parameters"]["query"]>): Promise<operations["change.list"]["responses"][200]["content"]["application/json"]>;
1419
+ /** List the record versions one command made, before and after. `GET /v1/commands/{command_id}/changes` */
1420
+ command_get(input: operations["change.command_get"]["parameters"]["path"]): Promise<operations["change.command_get"]["responses"][200]["content"]["application/json"]>;
1421
+ /** Export a workspace's changes as CSV. Owners only. `GET /v1/workspaces/{workspace_id}/changes/export` */
1422
+ export(input: operations["change.export"]["parameters"]["path"] & NonNullable<operations["change.export"]["parameters"]["query"]>): Promise<operations["change.export"]["responses"][200]["content"]["application/json"]>;
1423
+ };
1424
+ trash: {
1425
+ /** List what was deleted in a workspace and can still be restored. `GET /v1/workspaces/{workspace_id}/trash` */
1426
+ list(input: operations["trash.list"]["parameters"]["path"] & NonNullable<operations["trash.list"]["parameters"]["query"]>): Promise<operations["trash.list"]["responses"][200]["content"]["application/json"]>;
1427
+ };
1428
+ database: {
1429
+ /** Create a database, which keeps a Title field; add each field asked for with field.create. `POST /v1/workspaces/{workspace_id}/databases` */
1430
+ create(input: operations["database.create"]["parameters"]["path"] & NonNullable<operations["database.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["database.create"]["responses"][200]["content"]["application/json"]>;
1431
+ /** List a workspace's databases with their fields and option ids. `GET /v1/workspaces/{workspace_id}/databases` */
1432
+ list(input: operations["database.list"]["parameters"]["path"] & NonNullable<operations["database.list"]["parameters"]["query"]>): Promise<operations["database.list"]["responses"][200]["content"]["application/json"]>;
1433
+ /** Rename a database. `POST /v1/databases/{database_id}/rename` */
1434
+ rename(input: operations["database.rename"]["parameters"]["path"] & NonNullable<operations["database.rename"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["database.rename"]["responses"][200]["content"]["application/json"]>;
1435
+ /** Archive a database, hiding it from database.list unless include_archived. It is erased after 30 days, and relation fields lose their links to it. `POST /v1/databases/{database_id}/archive` */
1436
+ archive(input: operations["database.archive"]["parameters"]["path"], options?: WriteOptions): Promise<operations["database.archive"]["responses"][200]["content"]["application/json"]>;
1437
+ /** Restore an archived database. `POST /v1/databases/{database_id}/restore` */
1438
+ restore(input: operations["database.restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["database.restore"]["responses"][200]["content"]["application/json"]>;
1439
+ };
1440
+ field: {
1441
+ /** Add a typed field to a database; its kind cannot change later. A select or multi_select takes options, a relation its relation_database_id. `POST /v1/databases/{database_id}/fields` */
1442
+ create(input: operations["field.create"]["parameters"]["path"] & NonNullable<operations["field.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["field.create"]["responses"][200]["content"]["application/json"]>;
1443
+ /** Rename a field. Record values stay keyed by its id. `POST /v1/fields/{field_id}/rename` */
1444
+ rename(input: operations["field.rename"]["parameters"]["path"] & NonNullable<operations["field.rename"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["field.rename"]["responses"][200]["content"]["application/json"]>;
1445
+ /** Set a select or multi_select field's options in order: keep or rename one by id, add one without. One left out is removed, refused while any record holds it, archived ones too. `POST /v1/fields/{field_id}/options` */
1446
+ options_set(input: operations["field.options_set"]["parameters"]["path"] & NonNullable<operations["field.options_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["field.options_set"]["responses"][200]["content"]["application/json"]>;
1447
+ /** Set the database a relation field links to, refused while records link through it, and two_way: whether that database shows its links back. `POST /v1/fields/{field_id}/relation` */
1448
+ relation_set(input: operations["field.relation_set"]["parameters"]["path"] & NonNullable<operations["field.relation_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["field.relation_set"]["responses"][200]["content"]["application/json"]>;
1449
+ /** Archive a field, hiding its values. `POST /v1/fields/{field_id}/archive` */
1450
+ archive(input: operations["field.archive"]["parameters"]["path"], options?: WriteOptions): Promise<operations["field.archive"]["responses"][200]["content"]["application/json"]>;
1451
+ /** Restore an archived field and show its values again. `POST /v1/fields/{field_id}/restore` */
1452
+ restore(input: operations["field.restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["field.restore"]["responses"][200]["content"]["application/json"]>;
1453
+ };
1454
+ record: {
1455
+ /** Add a record to a database, with values keyed by field id. `POST /v1/databases/{database_id}/records` */
1456
+ create(input: operations["record.create"]["parameters"]["path"] & NonNullable<operations["record.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["record.create"]["responses"][200]["content"]["application/json"]>;
1457
+ /** Filter, sort and page a database's records. `POST /v1/databases/{database_id}/query` */
1458
+ query(input: operations["record.query"]["parameters"]["path"] & NonNullable<operations["record.query"]["requestBody"]>["content"]["application/json"]): List<operations["record.query"]["responses"][200]["content"]["application/json"], operations["record.query"]["responses"][200]["content"]["application/json"]["data"][number]>;
1459
+ /** Show a record with its version, live field values and subtasks. `GET /v1/records/{record_id}` */
1460
+ get(input: operations["record.get"]["parameters"]["path"]): Promise<operations["record.get"]["responses"][200]["content"]["application/json"]>;
1461
+ /** Change a record's values at the version you read. `POST /v1/records/{record_id}` */
1462
+ update(input: operations["record.update"]["parameters"]["path"] & NonNullable<operations["record.update"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["record.update"]["responses"][200]["content"]["application/json"]>;
1463
+ /** Replace a record's subtasks with this checklist. `POST /v1/records/{record_id}/subtasks` */
1464
+ subtasks_set(input: operations["record.subtasks_set"]["parameters"]["path"] & NonNullable<operations["record.subtasks_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["record.subtasks_set"]["responses"][200]["content"]["application/json"]>;
1465
+ /** Archive a record at the version you read. `POST /v1/records/{record_id}/archive` */
1466
+ archive(input: operations["record.archive"]["parameters"]["path"] & NonNullable<operations["record.archive"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["record.archive"]["responses"][200]["content"]["application/json"]>;
1467
+ /** Restore an archived record at the version you read. `POST /v1/records/{record_id}/restore` */
1468
+ restore(input: operations["record.restore"]["parameters"]["path"] & NonNullable<operations["record.restore"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["record.restore"]["responses"][200]["content"]["application/json"]>;
1469
+ /** Change records of one database in one command, each update shaped like record.update's input. `POST /v1/databases/{database_id}/records/bulk-update` */
1470
+ bulk_update(input: operations["record.bulk_update"]["parameters"]["path"] & NonNullable<operations["record.bulk_update"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["record.bulk_update"]["responses"][200]["content"]["application/json"]>;
1471
+ /** Add records to one database in one command. `POST /v1/databases/{database_id}/records/bulk-create` */
1472
+ bulk_create(input: operations["record.bulk_create"]["parameters"]["path"] & NonNullable<operations["record.bulk_create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["record.bulk_create"]["responses"][200]["content"]["application/json"]>;
1473
+ /** Archive records of one database in one command. `POST /v1/databases/{database_id}/records/bulk-archive` */
1474
+ bulk_archive(input: operations["record.bulk_archive"]["parameters"]["path"] & NonNullable<operations["record.bulk_archive"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["record.bulk_archive"]["responses"][200]["content"]["application/json"]>;
1475
+ /** Restore archived records of one database in one command. `POST /v1/databases/{database_id}/records/bulk-restore` */
1476
+ bulk_restore(input: operations["record.bulk_restore"]["parameters"]["path"] & NonNullable<operations["record.bulk_restore"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["record.bulk_restore"]["responses"][200]["content"]["application/json"]>;
1477
+ /** List a record's versions, newest first, 100 at a time, each with who made it, its command_id and each changed field before and after. `GET /v1/records/{record_id}/history` */
1478
+ history(input: operations["record.history"]["parameters"]["path"] & NonNullable<operations["record.history"]["parameters"]["query"]>): Promise<operations["record.history"]["responses"][200]["content"]["application/json"]>;
1479
+ /** Undo one command's record changes by its command_id. Refused as a conflict if any of its records changed since. Undoing an undo redoes it. `POST /v1/record-commands/{command_id}/undo` */
1480
+ undo(input: operations["record.undo"]["parameters"]["path"], options?: WriteOptions): Promise<operations["record.undo"]["responses"][200]["content"]["application/json"]>;
1481
+ };
1482
+ card: {
1483
+ /** Move a record at the version you read, like a board card, after or before another of its database, setting values in the same write. Without after or before it stays put. `POST /v1/records/{record_id}/move` */
1484
+ move(input: operations["card.move"]["parameters"]["path"] & NonNullable<operations["card.move"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["card.move"]["responses"][200]["content"]["application/json"]>;
1485
+ /** List a workspace's open or done records that name you in a person field, across its databases. `GET /v1/workspaces/{workspace_id}/records/assigned` */
1486
+ assigned_list(input: operations["card.assigned_list"]["parameters"]["path"] & NonNullable<operations["card.assigned_list"]["parameters"]["query"]>): List<operations["card.assigned_list"]["responses"][200]["content"]["application/json"], operations["card.assigned_list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1487
+ };
1488
+ task: {
1489
+ /** List a workspace's tasks, newest first. `GET /v1/tasks` */
1490
+ list(input: NonNullable<operations["task.list"]["parameters"]["query"]>): List<operations["task.list"]["responses"][200]["content"]["application/json"], operations["task.list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1491
+ /** Add a task. New labels stay after its undo. `POST /v1/tasks` */
1492
+ create(input: NonNullable<operations["task.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["task.create"]["responses"][200]["content"]["application/json"]>;
1493
+ /** Change a task's title, assignee or due date; null clears one. `PATCH /v1/tasks/{task_id}` */
1494
+ update(input: operations["task.update"]["parameters"]["path"] & NonNullable<operations["task.update"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["task.update"]["responses"][200]["content"]["application/json"]>;
1495
+ /** Move a task to a column, at a position in it. `POST /v1/tasks/{task_id}/move` */
1496
+ move(input: operations["task.move"]["parameters"]["path"] & NonNullable<operations["task.move"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["task.move"]["responses"][200]["content"]["application/json"]>;
1497
+ };
1498
+ view: {
1499
+ /** Save a view of a database. A board needs group_by, a timeline its dates, a sprint view its sprint source. `POST /v1/databases/{database_id}/views` */
1500
+ create(input: operations["view.create"]["parameters"]["path"] & NonNullable<operations["view.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["view.create"]["responses"][200]["content"]["application/json"]>;
1501
+ /** List a database's views with their settings, oldest first. `GET /v1/databases/{database_id}/views` */
1502
+ list(input: operations["view.list"]["parameters"]["path"] & NonNullable<operations["view.list"]["parameters"]["query"]>): Promise<operations["view.list"]["responses"][200]["content"]["application/json"]>;
1503
+ /** Replace a view's settings; its name stays. `POST /v1/views/{view_id}` */
1504
+ update(input: operations["view.update"]["parameters"]["path"] & NonNullable<operations["view.update"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["view.update"]["responses"][200]["content"]["application/json"]>;
1505
+ /** Rename a view. `POST /v1/views/{view_id}/rename` */
1506
+ rename(input: operations["view.rename"]["parameters"]["path"] & NonNullable<operations["view.rename"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["view.rename"]["responses"][200]["content"]["application/json"]>;
1507
+ /** Archive a view, hiding it from view.list unless include_archived. `POST /v1/views/{view_id}/archive` */
1508
+ archive(input: operations["view.archive"]["parameters"]["path"], options?: WriteOptions): Promise<operations["view.archive"]["responses"][200]["content"]["application/json"]>;
1509
+ /** Restore an archived view. `POST /v1/views/{view_id}/restore` */
1510
+ restore(input: operations["view.restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["view.restore"]["responses"][200]["content"]["application/json"]>;
1511
+ /** Page a view's records as its settings show them: a board column by group, a timeline from and to, my tasks for you, or the current sprint's records with that sprint. `GET /v1/views/{view_id}/records` */
1512
+ record_list(input: operations["view.record_list"]["parameters"]["path"] & NonNullable<operations["view.record_list"]["parameters"]["query"]>): List<operations["view.record_list"]["responses"][200]["content"]["application/json"], operations["view.record_list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1513
+ };
1514
+ page: {
1515
+ /** Create a page in a workspace, or a record's body with record_id. `POST /v1/workspaces/{workspace_id}/pages` */
1516
+ create(input: operations["page.create"]["parameters"]["path"] & NonNullable<operations["page.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["page.create"]["responses"][200]["content"]["application/json"]>;
1517
+ /** List a workspace's pages, oldest first, without blocks. `GET /v1/workspaces/{workspace_id}/pages` */
1518
+ list(input: operations["page.list"]["parameters"]["path"] & NonNullable<operations["page.list"]["parameters"]["query"]>): Promise<operations["page.list"]["responses"][200]["content"]["application/json"]>;
1519
+ /** Read a page as Markdown, or with format blocks as blocks with stable ids, types, props, styled text and children, which page.edit targets. `GET /v1/pages/{page_id}` */
1520
+ get(input: operations["page.get"]["parameters"]["path"] & NonNullable<operations["page.get"]["parameters"]["query"]>): Promise<operations["page.get"]["responses"][200]["content"]["application/json"]>;
1521
+ /** Set a standalone page's title. A record's body has no title, since the record names it. `POST /v1/pages/{page_id}/rename` */
1522
+ rename(input: operations["page.rename"]["parameters"]["path"] & NonNullable<operations["page.rename"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["page.rename"]["responses"][200]["content"]["application/json"]>;
1523
+ /** Archive a page: it leaves page.list, takes no edits and is erased after 30 days. A record's body goes with its record through record.archive instead. `POST /v1/pages/{page_id}/archive` */
1524
+ archive(input: operations["page.archive"]["parameters"]["path"], options?: WriteOptions): Promise<operations["page.archive"]["responses"][200]["content"]["application/json"]>;
1525
+ /** Restore an archived page with the content it had. `POST /v1/pages/{page_id}/restore` */
1526
+ restore(input: operations["page.restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["page.restore"]["responses"][200]["content"]["application/json"]>;
1527
+ /** Change a page's blocks by id with 1 to 100 ops that insert, update or delete blocks. An edit of over 10 blocks, or with preview true, changes nothing and answers each block before and after with a confirm token; send the same ops with it to apply them. It answers new block ids and the ops that undo it. An edit that could not be undone is refused, like deleting over about 256 KiB at once, so delete big sections in steps. `POST /v1/pages/{page_id}/edit` */
1528
+ edit(input: operations["page.edit"]["parameters"]["path"] & NonNullable<operations["page.edit"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["page.edit"]["responses"][200]["content"]["application/json"]>;
1529
+ /** Add Markdown at the end of a page or after a block. <@usr_...> mentions a member; an image alone in its paragraph adds an image block. `POST /v1/pages/{page_id}/blocks` */
1530
+ append(input: operations["page.append"]["parameters"]["path"] & NonNullable<operations["page.append"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["page.append"]["responses"][200]["content"]["application/json"]>;
1531
+ /** Propose a rewrite of a page with ops as page.edit takes them, for a person to accept or discard in the console. Nothing changes until they accept it, so propose rewrites a person should see first. `POST /v1/pages/{page_id}/proposals` */
1532
+ propose(input: operations["page.propose"]["parameters"]["path"] & NonNullable<operations["page.propose"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["page.propose"]["responses"][200]["content"]["application/json"]>;
1533
+ /** Read a proposed rewrite of a page. While it is open it answers the page's blocks now and as accepting it would leave them, or that it is stale since a block it rewrites changed. `GET /v1/pages/{page_id}/proposals/{proposal_id}` */
1534
+ proposal_get(input: operations["page.proposal_get"]["parameters"]["path"]): Promise<operations["page.proposal_get"]["responses"][200]["content"]["application/json"]>;
1535
+ /** List the proposed rewrites of a page that wait for a person, oldest first. `GET /v1/pages/{page_id}/proposals` */
1536
+ proposal_list(input: operations["page.proposal_list"]["parameters"]["path"]): Promise<operations["page.proposal_list"]["responses"][200]["content"]["application/json"]>;
1537
+ /** Discard a proposed rewrite of a page and leave the page as it is. It answers the proposal's ops, which page.propose takes to propose it again. `POST /v1/pages/{page_id}/proposals/{proposal_id}/discard` */
1538
+ proposal_discard(input: operations["page.proposal_discard"]["parameters"]["path"], options?: WriteOptions): Promise<operations["page.proposal_discard"]["responses"][200]["content"]["application/json"]>;
1539
+ };
1540
+ model: {
1541
+ /** List the models runs may use, their token prices now in millicredits per million, and the price version. `GET /v1/models` */
1542
+ list(input?: Record<string, never>): Promise<operations["model.list"]["responses"][200]["content"]["application/json"]>;
1543
+ };
1544
+ command: {
1545
+ /** Describe a command by its catalog or MCP name: its MCP tool and action, what it does, how to undo it and the JSON schema of its input. `GET /v1/commands/{name}` */
1546
+ describe(input: operations["command.describe"]["parameters"]["path"]): Promise<operations["command.describe"]["responses"][200]["content"]["application/json"]>;
1547
+ };
1548
+ app_auth: {
1549
+ /** List a project's app users in id order, a page at a time, with their status, last sign-in and live sessions, filtered by name or email and status. Counts the matches and all users. `GET /v1/projects/{project_id}/auth/users` */
1550
+ user_list(input: operations["app_auth.user_list"]["parameters"]["path"] & NonNullable<operations["app_auth.user_list"]["parameters"]["query"]>): List<operations["app_auth.user_list"]["responses"][200]["content"]["application/json"], operations["app_auth.user_list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1551
+ /** Show one app user: status, lock end, sign-up, last sign-in and sign-in methods. `GET /v1/projects/{project_id}/auth/users/{user_id}` */
1552
+ user_show(input: operations["app_auth.user_show"]["parameters"]["path"]): Promise<operations["app_auth.user_show"]["responses"][200]["content"]["application/json"]>;
1553
+ /** Owners only: end the 15-minute lock five wrong passwords put on an app user's email. `POST /v1/projects/{project_id}/auth/users/{user_id}/unlock` */
1554
+ user_unlock(input: operations["app_auth.user_unlock"]["parameters"]["path"], options?: WriteOptions): Promise<operations["app_auth.user_unlock"]["responses"][200]["content"]["application/json"]>;
1555
+ /** Email an app user a password reset, or their unconfirmed address's confirmation again. At most one of each a minute. `POST /v1/projects/{project_id}/auth/users/{user_id}/email` */
1556
+ user_email_send(input: operations["app_auth.user_email_send"]["parameters"]["path"] & NonNullable<operations["app_auth.user_email_send"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["app_auth.user_email_send"]["responses"][200]["content"]["application/json"]>;
1557
+ /** List an app user's live sessions with the device and place each signed in from. `GET /v1/projects/{project_id}/auth/users/{user_id}/sessions` */
1558
+ user_session_list(input: operations["app_auth.user_session_list"]["parameters"]["path"]): Promise<operations["app_auth.user_session_list"]["responses"][200]["content"]["application/json"]>;
1559
+ /** End one of an app user's sessions. `DELETE /v1/projects/{project_id}/auth/users/{user_id}/sessions/{session_id}` */
1560
+ user_session_revoke(input: operations["app_auth.user_session_revoke"]["parameters"]["path"], options?: WriteOptions): Promise<operations["app_auth.user_session_revoke"]["responses"][200]["content"]["application/json"]>;
1561
+ /** End every session of an app user. `POST /v1/projects/{project_id}/auth/users/{user_id}/sign-out` */
1562
+ user_sign_out_everywhere(input: operations["app_auth.user_sign_out_everywhere"]["parameters"]["path"], options?: WriteOptions): Promise<operations["app_auth.user_sign_out_everywhere"]["responses"][200]["content"]["application/json"]>;
1563
+ /** List a project's app sign-in events of the last 90 days, newest first, 100 at a time: sign-ups, sign-ins, wrong passwords, locks, emails and sign-outs, with place and IP. `GET /v1/projects/{project_id}/auth/sign-ins` */
1564
+ sign_in_event_list(input: operations["app_auth.sign_in_event_list"]["parameters"]["path"] & NonNullable<operations["app_auth.sign_in_event_list"]["parameters"]["query"]>): Promise<operations["app_auth.sign_in_event_list"]["responses"][200]["content"]["application/json"]>;
1565
+ /** Owners only: delete an app user. Their email, password and sign-in history are erased and every session ends. `DELETE /v1/projects/{project_id}/auth/users/{user_id}` */
1566
+ user_delete(input: operations["app_auth.user_delete"]["parameters"]["path"], options?: WriteOptions): Promise<operations["app_auth.user_delete"]["responses"][200]["content"]["application/json"]>;
1567
+ /** Show where a project's auth emails may link to. `GET /v1/projects/{project_id}/auth/settings` */
1568
+ settings_get(input: operations["app_auth.settings_get"]["parameters"]["path"]): Promise<operations["app_auth.settings_get"]["responses"][200]["content"]["application/json"]>;
1569
+ /** Replace the site URL a project's auth emails link to and the other URLs they may. `POST /v1/projects/{project_id}/auth/settings` */
1570
+ settings_update(input: operations["app_auth.settings_update"]["parameters"]["path"] & NonNullable<operations["app_auth.settings_update"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["app_auth.settings_update"]["responses"][200]["content"]["application/json"]>;
1571
+ /** Show the emails a project's app queued this month, its workspace's total against the plan's monthly quota, and its hourly email.send limit. `GET /v1/projects/{project_id}/auth/email-usage` */
1572
+ email_usage_get(input: operations["app_auth.email_usage_get"]["parameters"]["path"]): Promise<operations["app_auth.email_usage_get"]["responses"][200]["content"]["application/json"]>;
1573
+ /** List the addresses a project's app no longer emails, after a bounce, a spam complaint or by hand. `GET /v1/projects/{project_id}/auth/email-suppressions` */
1574
+ email_suppression_list(input: operations["app_auth.email_suppression_list"]["parameters"]["path"]): Promise<operations["app_auth.email_suppression_list"]["responses"][200]["content"]["application/json"]>;
1575
+ /** Stop a project's app emailing an address: auth emails and email.send skip it. `POST /v1/projects/{project_id}/auth/email-suppressions` */
1576
+ email_suppression_add(input: operations["app_auth.email_suppression_add"]["parameters"]["path"] & NonNullable<operations["app_auth.email_suppression_add"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["app_auth.email_suppression_add"]["responses"][200]["content"]["application/json"]>;
1577
+ /** Let a project's app email a suppressed address again. `POST /v1/projects/{project_id}/auth/email-suppressions/remove` */
1578
+ email_suppression_remove(input: operations["app_auth.email_suppression_remove"]["parameters"]["path"] & NonNullable<operations["app_auth.email_suppression_remove"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["app_auth.email_suppression_remove"]["responses"][200]["content"]["application/json"]>;
1579
+ /** Show who a project's emails come from: its name beside Scaffold's shared sending address. `GET /v1/projects/{project_id}/auth/sender` */
1580
+ sender_get(input: operations["app_auth.sender_get"]["parameters"]["path"]): Promise<operations["app_auth.sender_get"]["responses"][200]["content"]["application/json"]>;
1581
+ };
1582
+ email: {
1583
+ /** Email one person from a project's app, like a receipt or a reminder, with the project's name as the sender. It counts against the workspace's monthly quota and the project's 100 an hour. `POST /v1/projects/{project_id}/email` */
1584
+ send(input: operations["email.send"]["parameters"]["path"] & NonNullable<operations["email.send"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["email.send"]["responses"][200]["content"]["application/json"]>;
1585
+ };
1586
+ app_payments: {
1587
+ /** Link a project's app to a Stripe account its customer owns and answer its setup page. Rerun for a new page. `POST /v1/projects/{project_id}/payments/connect` */
1588
+ connect_start(input: operations["app_payments.connect_start"]["parameters"]["path"] & NonNullable<operations["app_payments.connect_start"]["requestBody"]>["content"]["application/json"]): Promise<operations["app_payments.connect_start"]["responses"][200]["content"]["application/json"]>;
1589
+ /** Show if a project's Stripe account can charge and pay out, and what Stripe needs. `GET /v1/projects/{project_id}/payments/account` */
1590
+ account_get(input: operations["app_payments.account_get"]["parameters"]["path"]): Promise<operations["app_payments.account_get"]["responses"][200]["content"]["application/json"]>;
1591
+ /** Show what a project's Stripe account took over 30 days, per currency. `GET /v1/projects/{project_id}/payments/revenue` */
1592
+ revenue_get(input: operations["app_payments.revenue_get"]["parameters"]["path"]): Promise<operations["app_payments.revenue_get"]["responses"][200]["content"]["application/json"]>;
1593
+ /** Unlink a project's app from its Stripe account; the customer keeps it. `DELETE /v1/projects/{project_id}/payments/account` */
1594
+ disconnect(input: operations["app_payments.disconnect"]["parameters"]["path"], options?: WriteOptions): Promise<operations["app_payments.disconnect"]["responses"][200]["content"]["application/json"]>;
1595
+ /** Link to the Stripe Dashboard of a project's Stripe account. `GET /v1/projects/{project_id}/payments/dashboard` */
1596
+ dashboard_link(input: operations["app_payments.dashboard_link"]["parameters"]["path"]): Promise<operations["app_payments.dashboard_link"]["responses"][200]["content"]["application/json"]>;
1597
+ /** List the Stripe events forwarded to a project's app, with each try. `GET /v1/projects/{project_id}/payments/deliveries` */
1598
+ webhook_delivery_list(input: operations["app_payments.webhook_delivery_list"]["parameters"]["path"]): Promise<operations["app_payments.webhook_delivery_list"]["responses"][200]["content"]["application/json"]>;
1599
+ /** Forward a Stripe event to a project's app again now. `POST /v1/projects/{project_id}/payments/deliveries/{event_id}/resend` */
1600
+ webhook_delivery_resend(input: operations["app_payments.webhook_delivery_resend"]["parameters"]["path"], options?: WriteOptions): Promise<operations["app_payments.webhook_delivery_resend"]["responses"][200]["content"]["application/json"]>;
1601
+ };
1602
+ realtime: {
1603
+ /** Send JSON to a channel of a project's app, reaching each of its signed-in users subscribed to the channel now. Nothing is stored, so a later subscriber never gets it. Any signed-in user of the app can subscribe to any of its channels, so never publish one user's private data to a guessable channel; per-user private channels are not built yet. `POST /v1/projects/{project_id}/realtime/channels/{channel}/messages` */
1604
+ publish(input: operations["realtime.publish"]["parameters"]["path"] & NonNullable<operations["realtime.publish"]["requestBody"]>["content"]["application/json"]): Promise<operations["realtime.publish"]["responses"][200]["content"]["application/json"]>;
1605
+ /** List the realtime channels of a project's app that its users subscribe to now, with each one's subscriptions and the project's cap. `GET /v1/projects/{project_id}/realtime/channels` */
1606
+ channel_list(input: operations["realtime.channel_list"]["parameters"]["path"]): Promise<operations["realtime.channel_list"]["responses"][200]["content"]["application/json"]>;
1607
+ };
1608
+ run: {
1609
+ /** Start a run of an agent. It holds the top of its estimate, or its first model call's cost if more, from the workspace's credits and gives back what it does not spend. `POST /v1/runs` */
1610
+ create(input: NonNullable<operations["run.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["run.create"]["responses"][202]["content"]["application/json"]>;
1611
+ /** Price a run: its estimate, what run.create would hold, the credits available and which cap, limit or shortfall would refuse it. `POST /v1/runs/quote` */
1612
+ quote(input: NonNullable<operations["run.quote"]["requestBody"]>["content"]["application/json"]): Promise<operations["run.quote"]["responses"][200]["content"]["application/json"]>;
1613
+ /** List agent runs, newest first. `GET /v1/runs` */
1614
+ list(input: NonNullable<operations["run.list"]["parameters"]["query"]>): List<operations["run.list"]["responses"][200]["content"]["application/json"], operations["run.list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1615
+ /** Read an agent run: status, steps with what each spent, credits, approvals and edits an undo keeps. `GET /v1/runs/{run_id}` */
1616
+ get(input: operations["run.get"]["parameters"]["path"]): Promise<operations["run.get"]["responses"][200]["content"]["application/json"]>;
1617
+ /** Stop a running or waiting run. Its edits stay until run.undo. `POST /v1/runs/{run_id}/stop` */
1618
+ stop(input: operations["run.stop"]["parameters"]["path"], options?: WriteOptions): Promise<operations["run.stop"]["responses"][200]["content"]["application/json"]>;
1619
+ /** List the changes waiting for your approval: your runs', and every member's for a workspace owner. `GET /v1/workspaces/{workspace_id}/approvals` */
1620
+ approval_list(input: operations["run.approval_list"]["parameters"]["path"]): Promise<operations["run.approval_list"]["responses"][200]["content"]["application/json"]>;
1621
+ /** Approve the change a run waits on; its agent makes it and goes on. Its starter or a workspace owner may approve. `POST /v1/runs/{run_id}/approve` */
1622
+ approve(input: operations["run.approve"]["parameters"]["path"] & NonNullable<operations["run.approve"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["run.approve"]["responses"][202]["content"]["application/json"]>;
1623
+ /** Deny the change a run waits on and stop the run. `POST /v1/runs/{run_id}/deny` */
1624
+ deny(input: operations["run.deny"]["parameters"]["path"] & NonNullable<operations["run.deny"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["run.deny"]["responses"][202]["content"]["application/json"]>;
1625
+ /** Resume a run stopped by a person, a limit or its credits. `POST /v1/runs/{run_id}/resume` */
1626
+ resume(input: operations["run.resume"]["parameters"]["path"] & NonNullable<operations["run.resume"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["run.resume"]["responses"][202]["content"]["application/json"]>;
1627
+ /** Ask a done or denied run more; its agent goes on in the same run. `POST /v1/runs/{run_id}/follow-up` */
1628
+ follow_up(input: operations["run.follow_up"]["parameters"]["path"] & NonNullable<operations["run.follow_up"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["run.follow_up"]["responses"][202]["content"]["application/json"]>;
1629
+ /** Take back every edit of an ended run as one change. Refused while run.get lists later edits, unless keep_changed. `POST /v1/runs/{run_id}/undo` */
1630
+ undo(input: operations["run.undo"]["parameters"]["path"] & NonNullable<operations["run.undo"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["run.undo"]["responses"][200]["content"]["application/json"]>;
1631
+ };
1632
+ agent: {
1633
+ /** List a workspace's agents, their settings and whether each is paused or working. Which models agents may use and what they cost is model.list's answer. `GET /v1/workspaces/{workspace_id}/agents` */
1634
+ list(input: operations["agent.list"]["parameters"]["path"]): Promise<operations["agent.list"]["responses"][200]["content"]["application/json"]>;
1635
+ /** Read an agent: what it does, may do and asks before doing, and its settings. `GET /v1/agents/{agent_id}` */
1636
+ get(input: operations["agent.get"]["parameters"]["path"]): Promise<operations["agent.get"]["responses"][200]["content"]["application/json"]>;
1637
+ /** Owners only: change what an agent asks before doing, its default model or its monthly limit in millicredits. `PATCH /v1/agents/{agent_id}` */
1638
+ update(input: operations["agent.update"]["parameters"]["path"] & NonNullable<operations["agent.update"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["agent.update"]["responses"][200]["content"]["application/json"]>;
1639
+ /** Owners only: pause an agent. It starts no runs and skips its schedules; runs going now finish. `POST /v1/agents/{agent_id}/pause` */
1640
+ pause(input: operations["agent.pause"]["parameters"]["path"], options?: WriteOptions): Promise<operations["agent.pause"]["responses"][200]["content"]["application/json"]>;
1641
+ /** Owners only: resume a paused agent. A stopped run resumes by run.resume. `POST /v1/agents/{agent_id}/resume` */
1642
+ resume(input: operations["agent.resume"]["parameters"]["path"], options?: WriteOptions): Promise<operations["agent.resume"]["responses"][200]["content"]["application/json"]>;
1643
+ };
1644
+ schedule: {
1645
+ /** List a workspace's schedules, oldest first, with when each runs next. `GET /v1/workspaces/{workspace_id}/schedules` */
1646
+ list(input: operations["schedule.list"]["parameters"]["path"]): Promise<operations["schedule.list"]["responses"][200]["content"]["application/json"]>;
1647
+ /** Paid plan: run an agent on a repeating time, as you. A run it cannot start, as while the agent is paused, is skipped. `POST /v1/workspaces/{workspace_id}/schedules` */
1648
+ create(input: operations["schedule.create"]["parameters"]["path"] & NonNullable<operations["schedule.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["schedule.create"]["responses"][200]["content"]["application/json"]>;
1649
+ /** Change a schedule. Only its maker and owners may. `PATCH /v1/schedules/{schedule_id}` */
1650
+ update(input: operations["schedule.update"]["parameters"]["path"] & NonNullable<operations["schedule.update"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["schedule.update"]["responses"][200]["content"]["application/json"]>;
1651
+ /** Delete a schedule. Only its maker and owners may. `DELETE /v1/schedules/{schedule_id}` */
1652
+ delete(input: operations["schedule.delete"]["parameters"]["path"], options?: WriteOptions): Promise<operations["schedule.delete"]["responses"][200]["content"]["application/json"]>;
1653
+ /** Bring back a deleted schedule. `POST /v1/schedules/{schedule_id}/restore` */
1654
+ restore(input: operations["schedule.restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["schedule.restore"]["responses"][200]["content"]["application/json"]>;
1655
+ /** Start a run of a schedule now, as you, without moving its next run. `POST /v1/schedules/{schedule_id}/run` */
1656
+ run_now(input: operations["schedule.run_now"]["parameters"]["path"], options?: WriteOptions): Promise<operations["schedule.run_now"]["responses"][202]["content"]["application/json"]>;
1657
+ };
1658
+ onboarding: {
1659
+ /** Show your setup checklist in a workspace and what ticked each step. `GET /v1/workspaces/{workspace_id}/onboarding` */
1660
+ get(input: operations["onboarding.get"]["parameters"]["path"]): Promise<operations["onboarding.get"]["responses"][200]["content"]["application/json"]>;
1661
+ /** Put off a setup step that is not done. It still ticks if it happens. `POST /v1/workspaces/{workspace_id}/onboarding/{step}/skip` */
1662
+ step_skip(input: operations["onboarding.step_skip"]["parameters"]["path"], options?: WriteOptions): Promise<operations["onboarding.step_skip"]["responses"][200]["content"]["application/json"]>;
1663
+ /** Bring back a skipped setup step. `POST /v1/workspaces/{workspace_id}/onboarding/{step}/resume` */
1664
+ step_resume(input: operations["onboarding.step_resume"]["parameters"]["path"], options?: WriteOptions): Promise<operations["onboarding.step_resume"]["responses"][200]["content"]["application/json"]>;
1665
+ };
1666
+ notification: {
1667
+ /** List your notifications in a workspace, newest first, by unread or source. `GET /v1/workspaces/{workspace_id}/notifications` */
1668
+ list(input: operations["notification.list"]["parameters"]["path"] & NonNullable<operations["notification.list"]["parameters"]["query"]>): List<operations["notification.list"]["responses"][200]["content"]["application/json"], operations["notification.list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1669
+ /** Mark your notifications read, answering those it changed. `POST /v1/workspaces/{workspace_id}/notifications/read` */
1670
+ read(input: operations["notification.read"]["parameters"]["path"] & NonNullable<operations["notification.read"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["notification.read"]["responses"][200]["content"]["application/json"]>;
1671
+ /** Mark your notifications unread, answering those it changed. `POST /v1/workspaces/{workspace_id}/notifications/unread` */
1672
+ unread(input: operations["notification.unread"]["parameters"]["path"] & NonNullable<operations["notification.unread"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["notification.unread"]["responses"][200]["content"]["application/json"]>;
1673
+ /** Mark up to 1000 unread notifications read, newest first, answering them. `POST /v1/workspaces/{workspace_id}/notifications/read-all` */
1674
+ read_all(input: operations["notification.read_all"]["parameters"]["path"], options?: WriteOptions): Promise<operations["notification.read_all"]["responses"][200]["content"]["application/json"]>;
1675
+ /** Count your unread notifications, in all and per source. `GET /v1/workspaces/{workspace_id}/notifications/unread-count` */
1676
+ unread_count(input: operations["notification.unread_count"]["parameters"]["path"]): Promise<operations["notification.unread_count"]["responses"][200]["content"]["application/json"]>;
1677
+ /** Show how each source reaches you: in app, and by email at 18:00 UTC. `GET /v1/workspaces/{workspace_id}/notifications/preferences` */
1678
+ preferences_get(input: operations["notification.preferences_get"]["parameters"]["path"]): Promise<operations["notification.preferences_get"]["responses"][200]["content"]["application/json"]>;
1679
+ /** Set whether a source reaches you in app and by email. `POST /v1/workspaces/{workspace_id}/notifications/preferences` */
1680
+ preferences_set(input: operations["notification.preferences_set"]["parameters"]["path"] & NonNullable<operations["notification.preferences_set"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["notification.preferences_set"]["responses"][200]["content"]["application/json"]>;
1681
+ };
1682
+ search: {
1683
+ /** Find tasks, records, pages and runs by words or a record key, with counts per kind. `GET /v1/workspaces/{workspace_id}/search` */
1684
+ query(input: operations["search.query"]["parameters"]["path"] & NonNullable<operations["search.query"]["parameters"]["query"]>): Promise<operations["search.query"]["responses"][200]["content"]["application/json"]>;
1685
+ };
1686
+ comment: {
1687
+ /** Comment on a record. `POST /v1/records/{record_id}/comments` */
1688
+ create(input: operations["comment.create"]["parameters"]["path"] & NonNullable<operations["comment.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["comment.create"]["responses"][200]["content"]["application/json"]>;
1689
+ /** List a record's comments, oldest first. `GET /v1/records/{record_id}/comments` */
1690
+ list(input: operations["comment.list"]["parameters"]["path"] & NonNullable<operations["comment.list"]["parameters"]["query"]>): List<operations["comment.list"]["responses"][200]["content"]["application/json"], operations["comment.list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1691
+ /** Delete your comment. `DELETE /v1/comments/{comment_id}` */
1692
+ delete(input: operations["comment.delete"]["parameters"]["path"], options?: WriteOptions): Promise<operations["comment.delete"]["responses"][200]["content"]["application/json"]>;
1693
+ /** Bring back your deleted comment. `POST /v1/comments/{comment_id}/restore` */
1694
+ restore(input: operations["comment.restore"]["parameters"]["path"], options?: WriteOptions): Promise<operations["comment.restore"]["responses"][200]["content"]["application/json"]>;
1695
+ };
1696
+ status: {
1697
+ /** Show Scaffold's status overall and per component, open incidents, planned maintenance and console notices. Needs no sign-in. `GET /v1/status` */
1698
+ get(input?: Record<string, never>): Promise<operations["status.get"]["responses"][200]["content"]["application/json"]>;
1699
+ /** List incidents and maintenance open in the last 90 days, newest first, with updates. Needs no sign-in. `GET /v1/status/incidents` */
1700
+ incident_list(input?: NonNullable<operations["status.incident_list"]["parameters"]["query"]>): Promise<operations["status.incident_list"]["responses"][200]["content"]["application/json"]>;
1701
+ /** Show one incident or maintenance window with every update and any write-up. Needs no sign-in. `GET /v1/status/incidents/{incident_id}` */
1702
+ incident_get(input: operations["status.incident_get"]["parameters"]["path"]): Promise<operations["status.incident_get"]["responses"][200]["content"]["application/json"]>;
1703
+ };
1704
+ deploy: {
1705
+ /** Build a project's upload in a sandbox, a Node app or a static site, and put it live once it serves. It needs only the upload's sha256 from source.list, or none for the newest, and answers the deploy with its status and URL. The live deploy stays ready for deploy.rollback. A Node app needs the Paid plan and takes the env as it is now, plus DATABASE_URL; an optional release command runs first, after a dump of the database. A deploy of the project not yet live fails in its favour. `POST /v1/projects/{project_id}/deploys` */
1706
+ create(input: operations["deploy.create"]["parameters"]["path"] & NonNullable<operations["deploy.create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["deploy.create"]["responses"][200]["content"]["application/json"]>;
1707
+ /** List a project's deploys, newest first. `GET /v1/projects/{project_id}/deploys` */
1708
+ list(input: operations["deploy.list"]["parameters"]["path"]): Promise<operations["deploy.list"]["responses"][200]["content"]["application/json"]>;
1709
+ /** List the newest deploy of each project in a workspace, newest first, with its status, so one read shows where every project stands. `GET /v1/workspaces/{workspace_id}/deploys` */
1710
+ recent_list(input: operations["deploy.recent_list"]["parameters"]["path"]): Promise<operations["deploy.recent_list"]["responses"][200]["content"]["application/json"]>;
1711
+ /** Show a deploy and its status: queued, building, starting, live, superseded, rolled_back or failed with its reason. `GET /v1/deploys/{deploy_id}` */
1712
+ get(input: operations["deploy.get"]["parameters"]["path"]): Promise<operations["deploy.get"]["responses"][200]["content"]["application/json"]>;
1713
+ /** Undo a deploy.create: put an earlier deploy of the project back live, without a rebuild, and its database too with restore_database, which only an owner on the Paid plan may ask. A static site goes back on any plan, a Node app needs the Paid plan. The deploy it replaces can be rolled back to in turn, and a deploy not yet live fails. While the database is put back, the project's address shows the maintenance page. `POST /v1/deploys/{deploy_id}/rollback` */
1714
+ rollback(input: operations["deploy.rollback"]["parameters"]["path"] & NonNullable<operations["deploy.rollback"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["deploy.rollback"]["responses"][200]["content"]["application/json"]>;
1715
+ /** Read a deploy's log a page at a time: its app's output, each line with its time and newest first read, or its build steps. range keeps the last 15m, 1h, 24h or 7d; pass next as after to read on. Over HTTP, follow it as a stream to get each new page as the log grows. `GET /v1/deploys/{deploy_id}/logs` */
1716
+ logs(input: operations["deploy.logs"]["parameters"]["path"] & NonNullable<operations["deploy.logs"]["parameters"]["query"]>): Promise<operations["deploy.logs"]["responses"][200]["content"]["application/json"]>;
1717
+ };
1718
+ domain: {
1719
+ /** Add a custom domain to a project's app. It waits for the DNS records it answers: a CNAME to Scaffold, or an A record at the apex, and a TXT record proving it is yours. Other projects' unverified claims never block it: the first project to verify the domain takes it from the rest, and a claim that never verifies expires after 7 days. `POST /v1/projects/{project_id}/domains` */
1720
+ add(input: operations["domain.add"]["parameters"]["path"] & NonNullable<operations["domain.add"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["domain.add"]["responses"][200]["content"]["application/json"]>;
1721
+ /** List a project's custom domains, oldest first, with where each stands and the DNS records it needs. `GET /v1/projects/{project_id}/domains` */
1722
+ list(input: operations["domain.list"]["parameters"]["path"]): Promise<operations["domain.list"]["responses"][200]["content"]["application/json"]>;
1723
+ /** Check a custom domain's DNS now. Once it points at Scaffold with its TXT record it is verified: it serves the project's live deploy and gets its certificate on its first visit, and other projects' unverified claims on it are removed. A wrong record is named with its fix. Scaffold rechecks verified domains daily: one whose records are gone 3 days goes back to waiting and stops serving. A verified domain whose records point away from Scaffold is marked so, with the problem found, and gets no new certificate until a check finds them pointing back. `POST /v1/domains/{domain_id}/check` */
1724
+ check(input: operations["domain.check"]["parameters"]["path"], options?: WriteOptions): Promise<operations["domain.check"]["responses"][200]["content"]["application/json"]>;
1725
+ /** Remove a custom domain from its project. The app stops answering there at once, no new certificate is issued for it, and any project can add it again with domain.add. `DELETE /v1/domains/{domain_id}` */
1726
+ remove(input: operations["domain.remove"]["parameters"]["path"], options?: WriteOptions): Promise<operations["domain.remove"]["responses"][200]["content"]["application/json"]>;
1727
+ };
1728
+ webhook: {
1729
+ /** Register an https endpoint for a project's deploy and app user events. Each is POSTed signed, under an event id to dedupe by. The signing secret is shown once. `POST /v1/projects/{project_id}/webhooks` */
1730
+ endpoint_create(input: operations["webhook.endpoint_create"]["parameters"]["path"] & NonNullable<operations["webhook.endpoint_create"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["webhook.endpoint_create"]["responses"][200]["content"]["application/json"]>;
1731
+ /** List a project's webhook endpoints, oldest first, without secrets. `GET /v1/projects/{project_id}/webhooks` */
1732
+ endpoint_list(input: operations["webhook.endpoint_list"]["parameters"]["path"]): Promise<operations["webhook.endpoint_list"]["responses"][200]["content"]["application/json"]>;
1733
+ /** Change a webhook endpoint's URL or event types, or turn it off or on again. It keeps its signing secret. `PATCH /v1/webhooks/{endpoint_id}` */
1734
+ endpoint_update(input: operations["webhook.endpoint_update"]["parameters"]["path"] & NonNullable<operations["webhook.endpoint_update"]["requestBody"]>["content"]["application/json"], options?: WriteOptions): Promise<operations["webhook.endpoint_update"]["responses"][200]["content"]["application/json"]>;
1735
+ /** Delete a webhook endpoint with its signing secret and delivery log. Nothing more is posted to it. `DELETE /v1/webhooks/{endpoint_id}` */
1736
+ endpoint_delete(input: operations["webhook.endpoint_delete"]["parameters"]["path"], options?: WriteOptions): Promise<operations["webhook.endpoint_delete"]["responses"][200]["content"]["application/json"]>;
1737
+ /** List a project's webhook deliveries of the last 30 days, newest first, with each try and what the endpoint answered. `GET /v1/projects/{project_id}/webhook-deliveries` */
1738
+ delivery_list(input: operations["webhook.delivery_list"]["parameters"]["path"] & NonNullable<operations["webhook.delivery_list"]["parameters"]["query"]>): List<operations["webhook.delivery_list"]["responses"][200]["content"]["application/json"], operations["webhook.delivery_list"]["responses"][200]["content"]["application/json"]["data"][number]>;
1739
+ /** Try a webhook delivery that has not succeeded again now, with the same event id and body. `POST /v1/webhook-deliveries/{delivery_id}/resend` */
1740
+ delivery_resend(input: operations["webhook.delivery_resend"]["parameters"]["path"], options?: WriteOptions): Promise<operations["webhook.delivery_resend"]["responses"][200]["content"]["application/json"]>;
1741
+ };
1742
+ }