@scalix-world/sdk 1.3.4 → 1.4.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.
@@ -83,6 +83,50 @@ export type BandwidthStat = {
83
83
  export type BatchSqlRequest = {
84
84
  queries: Array<SqlRequest>;
85
85
  };
86
+ /**
87
+ * Connection endpoint of the branch's compute worker.
88
+ */
89
+ export type BranchTimelineEndpoint = {
90
+ host: string;
91
+ port: number;
92
+ };
93
+ /**
94
+ * Request to branch a timeline.
95
+ */
96
+ export type BranchTimelineRequest = {
97
+ /**
98
+ * Explicit id (UUID) for the new branch timeline; server-generated when
99
+ * omitted.
100
+ */
101
+ new_timeline_id?: string | null;
102
+ /**
103
+ * LSN to branch at; `0` (the default) branches at the latest recoverable
104
+ * point.
105
+ */
106
+ branch_lsn?: number;
107
+ };
108
+ /**
109
+ * A created branch, routed and ready.
110
+ */
111
+ export type BranchTimelineResponse = {
112
+ /**
113
+ * The new branch timeline id.
114
+ */
115
+ timeline_id: string;
116
+ /**
117
+ * The timeline the branch was taken from.
118
+ */
119
+ parent_timeline_id: string;
120
+ /**
121
+ * LSN the branch was taken at (`0` = latest).
122
+ */
123
+ branch_lsn: number;
124
+ endpoint: BranchTimelineEndpoint;
125
+ /**
126
+ * Always `ready` on success.
127
+ */
128
+ status: string;
129
+ };
86
130
  /**
87
131
  * Plan allowances.
88
132
  */
@@ -187,6 +231,146 @@ export type ComputeDeployRequest = {
187
231
  export type ComputeStat = {
188
232
  hours_used: number;
189
233
  };
234
+ /**
235
+ * Request body for creating a Computer.
236
+ */
237
+ export type ComputerCreateRequest = {
238
+ /**
239
+ * Lowercase DNS label, max 63 characters. Unique per account.
240
+ */
241
+ name: string;
242
+ /**
243
+ * Guest image. `ubuntu24` is the only image available today.
244
+ */
245
+ image?: string | null;
246
+ resources?: null | ComputerResources;
247
+ /**
248
+ * OpenSSH public keys authorised for `root`, one per array entry, max 32.
249
+ * Optional — `exec` and the browser terminal work without one. Send the
250
+ * public half only (the `.pub` file); a private key is rejected.
251
+ */
252
+ ssh_keys?: Array<string> | null;
253
+ };
254
+ /**
255
+ * Request body for running a command inside a Computer.
256
+ */
257
+ export type ComputerExecRequest = {
258
+ command: string;
259
+ args?: Array<string> | null;
260
+ /**
261
+ * Working directory inside the guest.
262
+ */
263
+ cwd?: string | null;
264
+ env?: {
265
+ [key: string]: unknown;
266
+ };
267
+ /**
268
+ * 1000..600000, default 60000.
269
+ */
270
+ timeout_ms?: number | null;
271
+ };
272
+ /**
273
+ * Result of a command executed inside a Computer.
274
+ */
275
+ export type ComputerExecResult = {
276
+ exitCode: number;
277
+ stdout: string;
278
+ stderr: string;
279
+ };
280
+ /**
281
+ * One file read out of a Computer.
282
+ */
283
+ export type ComputerFileRead = {
284
+ exists: boolean;
285
+ /**
286
+ * Base64-encoded contents. Empty when `exists` is false.
287
+ */
288
+ content_b64: string;
289
+ /**
290
+ * Size in bytes, as a string.
291
+ */
292
+ size: string;
293
+ };
294
+ /**
295
+ * One file to write into a Computer.
296
+ */
297
+ export type ComputerFileWrite = {
298
+ path: string;
299
+ /**
300
+ * Base64-encoded contents.
301
+ */
302
+ content_b64: string;
303
+ /**
304
+ * Unix mode, default 0644.
305
+ */
306
+ mode?: number | null;
307
+ };
308
+ /**
309
+ * A Computer as returned by create/get/list.
310
+ */
311
+ export type ComputerInfo = {
312
+ id: string;
313
+ name: string;
314
+ image: string;
315
+ /**
316
+ * CREATING | RUNNING | STOPPING | STOPPED | STARTING | DELETING | FAILED
317
+ */
318
+ status: string;
319
+ /**
320
+ * Human-readable reason for the current status (set on FAILED).
321
+ */
322
+ statusReason?: string | null;
323
+ /**
324
+ * Private address inside your network. Reserved for the Computer's
325
+ * lifetime — the same address comes back after a stop/start.
326
+ */
327
+ ipAddress?: string | null;
328
+ vcpus: number;
329
+ memoryMb: number;
330
+ diskGb: number;
331
+ /**
332
+ * The OpenSSH public keys currently authorised for `root`. Public halves
333
+ * only — there is nothing secret to withhold here, and being able to read
334
+ * back what is installed is how you confirm a revocation took.
335
+ */
336
+ sshKeys?: Array<string>;
337
+ createdAt: string;
338
+ updatedAt: string;
339
+ };
340
+ /**
341
+ * Resource shape for a Computer. Fixed at create in v1 — disks do not grow.
342
+ */
343
+ export type ComputerResources = {
344
+ /**
345
+ * 1..16
346
+ */
347
+ vcpus?: number | null;
348
+ /**
349
+ * 512..32768
350
+ */
351
+ memory_mb?: number | null;
352
+ /**
353
+ * 5..200. Billed per GB-month for as long as the Computer exists,
354
+ * running or stopped.
355
+ */
356
+ disk_gb?: number | null;
357
+ };
358
+ /**
359
+ * Request body for replacing a Computer's authorised ssh keys.
360
+ */
361
+ export type ComputerSshKeysRequest = {
362
+ /**
363
+ * The complete list, max 32. Not a patch: whatever you send becomes the
364
+ * whole of `authorized_keys`, and an empty array removes every key.
365
+ */
366
+ ssh_keys: Array<string>;
367
+ };
368
+ /**
369
+ * Request body for writing files into a Computer. Max 64 files per call.
370
+ */
371
+ export type ComputerWriteFilesRequest = {
372
+ files: Array<ComputerFileWrite>;
373
+ };
190
374
  /**
191
375
  * A recorded GDPR consent decision.
192
376
  */
@@ -202,6 +386,47 @@ export type CrawlerPolicy = {
202
386
  action: ShieldAction;
203
387
  rate_limit_per_min?: number | null;
204
388
  };
389
+ /**
390
+ * Request to create a ScalixNova database.
391
+ */
392
+ export type CreateDatabaseRequest = {
393
+ /**
394
+ * Display name, unique within the org.
395
+ */
396
+ name: string;
397
+ /**
398
+ * PostgreSQL major version: `"16"` (default), `"17"`, or `"18"`. Accepts a
399
+ * string or number. Fixed for the life of the database — branches and
400
+ * point-in-time restores keep this major. Unsupported values return 400
401
+ * listing the supported set.
402
+ */
403
+ pg_version?: string | null;
404
+ /**
405
+ * Isolation tier: `"shared"` (default) or `"dedicated"` (Firecracker
406
+ * microVM; PostgreSQL 16 only, returns 501 where the tier isn't
407
+ * provisioned).
408
+ */
409
+ isolation?: string | null;
410
+ };
411
+ /**
412
+ * Response from creating a database.
413
+ */
414
+ export type CreateDatabaseResponse = {
415
+ id: string;
416
+ name: string;
417
+ pg_database: string;
418
+ tenant_id: string;
419
+ /**
420
+ * Postgres connection string (replace `YOUR_API_KEY` with an API key).
421
+ */
422
+ connection_string: string;
423
+ status: string;
424
+ isolation: string;
425
+ /**
426
+ * PostgreSQL major version the database was created on.
427
+ */
428
+ pg_version: string;
429
+ };
205
430
  export type CreateGdprRequest = {
206
431
  subject_email: string;
207
432
  request_type: GdprRequestType;
@@ -298,6 +523,47 @@ export type DataSubjectRequest = {
298
523
  created_at: string;
299
524
  completed_at?: string | null;
300
525
  };
526
+ /**
527
+ * A ScalixNova database record.
528
+ */
529
+ export type DatabaseJson = {
530
+ /**
531
+ * Database id (UUID).
532
+ */
533
+ id: string;
534
+ /**
535
+ * Display name.
536
+ */
537
+ name: string;
538
+ /**
539
+ * Physical PostgreSQL database name (`db_<hex>`).
540
+ */
541
+ pg_database?: string | null;
542
+ /**
543
+ * Tenant id backing this database on the compute plane.
544
+ */
545
+ tenant_id?: string | null;
546
+ /**
547
+ * `active` or `deleting` (soft-deleted, inside the recovery grace window).
548
+ */
549
+ status: string;
550
+ /**
551
+ * RFC 3339 creation time.
552
+ */
553
+ created_at?: string | null;
554
+ /**
555
+ * Isolation tier: `shared` or `dedicated`.
556
+ */
557
+ isolation: string;
558
+ /**
559
+ * PostgreSQL major version this database runs (`16`, `17`, or `18`).
560
+ */
561
+ pg_version: string;
562
+ /**
563
+ * Soft-delete timestamp, when `status` is `deleting`.
564
+ */
565
+ deleted_at?: string | null;
566
+ };
301
567
  export type DdosStats = {
302
568
  global_rps: number;
303
569
  tracked_ips: number;
@@ -546,6 +812,16 @@ export type KvSetRequest = {
546
812
  */
547
813
  ttl?: number | null;
548
814
  };
815
+ /**
816
+ * Databases in the project.
817
+ */
818
+ export type ListDatabasesResponse = {
819
+ databases: Array<DatabaseJson>;
820
+ /**
821
+ * Days a soft-deleted database stays restorable.
822
+ */
823
+ delete_grace_days?: number | null;
824
+ };
549
825
  /**
550
826
  * Response for `GET /v1/domains` — all custom domains for the project.
551
827
  */
@@ -629,6 +905,111 @@ export type RecordConsentRequest = {
629
905
  granted: boolean;
630
906
  };
631
907
  export type RequestStatus = 'pending' | 'in_progress' | 'completed' | 'rejected';
908
+ /**
909
+ * Request body for running a command inside a sandbox.
910
+ */
911
+ export type SandboxCommandRequest = {
912
+ cmd: string;
913
+ args?: Array<string> | null;
914
+ /**
915
+ * Working directory inside the guest.
916
+ */
917
+ cwd?: string | null;
918
+ env?: {
919
+ [key: string]: unknown;
920
+ };
921
+ /**
922
+ * Run without waiting for completion.
923
+ */
924
+ detached?: boolean | null;
925
+ };
926
+ /**
927
+ * Result of a synchronous command execution.
928
+ */
929
+ export type SandboxCommandResult = {
930
+ exit_code: number;
931
+ stdout: string;
932
+ stderr: string;
933
+ duration_ms: number;
934
+ };
935
+ /**
936
+ * Request body for creating an ephemeral sandbox.
937
+ */
938
+ export type SandboxCreateRequest = {
939
+ /**
940
+ * Runtime image. `node22` is available today; other values are rolling
941
+ * out and fail placement until their images ship.
942
+ */
943
+ runtime?: string | null;
944
+ /**
945
+ * Resource shape. Defaults: 1 vCPU, 512 MB memory, 5 GB disk.
946
+ */
947
+ resources?: {
948
+ [key: string]: unknown;
949
+ };
950
+ /**
951
+ * Hard lifetime in milliseconds (60000..86400000, default 300000). The
952
+ * sandbox also stops earlier at its idle timeout.
953
+ */
954
+ timeout_ms?: number | null;
955
+ /**
956
+ * Guest ports to expose.
957
+ */
958
+ ports?: Array<number> | null;
959
+ /**
960
+ * `{type: "git", url, branch?}` clones a repository into the sandbox.
961
+ */
962
+ source?: {
963
+ [key: string]: unknown;
964
+ };
965
+ /**
966
+ * Environment variables for the guest.
967
+ */
968
+ env?: {
969
+ [key: string]: unknown;
970
+ };
971
+ };
972
+ /**
973
+ * Request body for extending a sandbox's hard deadline.
974
+ */
975
+ export type SandboxExtendRequest = {
976
+ /**
977
+ * Milliseconds to add to the current expiry.
978
+ */
979
+ duration_ms: number;
980
+ };
981
+ /**
982
+ * A sandbox as returned by create/get/list.
983
+ */
984
+ export type SandboxInfo = {
985
+ id: string;
986
+ runtime: string;
987
+ /**
988
+ * PROVISIONING | RUNNING | STOPPING | STOPPED | FAILED | EXPIRED
989
+ */
990
+ status: string;
991
+ /**
992
+ * Human-readable reason for the current status (set on FAILED and
993
+ * idle-stop transitions).
994
+ */
995
+ status_reason?: string | null;
996
+ vcpus: number;
997
+ memory_mb: number;
998
+ disk_gb: number;
999
+ expires_at: string;
1000
+ };
1001
+ /**
1002
+ * Request body for writing files into a sandbox. Writable roots inside the
1003
+ * guest are `/app`, `/scalix`, `/build`, and `/tmp`.
1004
+ */
1005
+ export type SandboxWriteFilesRequest = {
1006
+ /**
1007
+ * Files to write: `[{path, content}]`.
1008
+ */
1009
+ files: Array<{
1010
+ [key: string]: unknown;
1011
+ }>;
1012
+ };
632
1013
  export type ScopeConfig = {
633
1014
  enabled?: boolean;
634
1015
  /**
@@ -685,6 +1066,44 @@ export type SignUpRequest = {
685
1066
  } | null;
686
1067
  captcha_token?: string | null;
687
1068
  };
1069
+ /**
1070
+ * One column of a SQL result set.
1071
+ */
1072
+ export type SqlColumnInfo = {
1073
+ /**
1074
+ * Column name.
1075
+ */
1076
+ name: string;
1077
+ /**
1078
+ * PostgreSQL type OID.
1079
+ */
1080
+ type_oid: number;
1081
+ /**
1082
+ * PostgreSQL type name.
1083
+ */
1084
+ type_name: string;
1085
+ };
1086
+ /**
1087
+ * Per-query resource cost breakdown.
1088
+ */
1089
+ export type SqlQueryCost = {
1090
+ /**
1091
+ * Compute time consumed, in milliseconds.
1092
+ */
1093
+ compute_ms: number;
1094
+ /**
1095
+ * Pages read to serve the query.
1096
+ */
1097
+ pages_read: number;
1098
+ /**
1099
+ * Bytes transferred to the client.
1100
+ */
1101
+ bytes_transferred: number;
1102
+ /**
1103
+ * Estimated cost in USD.
1104
+ */
1105
+ estimated_usd: number;
1106
+ };
688
1107
  /**
689
1108
  * A parameterized SQL query to execute against the tenant's database.
690
1109
  */
@@ -701,13 +1120,15 @@ export type SqlRequest = {
701
1120
  } | null;
702
1121
  };
703
1122
  /**
704
- * Result set returned by a SQL query.
1123
+ * Result set returned by a SQL query. Matches the wire shape produced by
1124
+ * `http.rs::SqlResponse` - `columns` entries are objects (name + Postgres
1125
+ * type), not bare strings.
705
1126
  */
706
1127
  export type SqlResponse = {
707
1128
  /**
708
- * Column names, in result order.
1129
+ * Result-set columns, in result order.
709
1130
  */
710
- columns: Array<string>;
1131
+ columns: Array<SqlColumnInfo>;
711
1132
  /**
712
1133
  * Rows; each row is an array of cell values aligned to `columns`.
713
1134
  */
@@ -718,10 +1139,18 @@ export type SqlResponse = {
718
1139
  * Number of rows returned (or affected).
719
1140
  */
720
1141
  row_count: number;
1142
+ /**
1143
+ * The SQL command tag (e.g. `SELECT`, `INSERT`).
1144
+ */
1145
+ command: string;
721
1146
  /**
722
1147
  * Server-side execution time in milliseconds.
723
1148
  */
724
1149
  duration_ms: number;
1150
+ /**
1151
+ * Resource cost of this query.
1152
+ */
1153
+ cost: SqlQueryCost;
725
1154
  };
726
1155
  /**
727
1156
  * Response for `GET /v1/user/stats`.
@@ -1503,6 +1932,10 @@ export type RestorePitrErrors = {
1503
1932
  * Missing or invalid API key
1504
1933
  */
1505
1934
  401: ErrorResponse;
1935
+ /**
1936
+ * Recovery target is beyond the archived WAL — retry with an earlier target, or omit the target to restore the latest recoverable point
1937
+ */
1938
+ 409: ErrorResponse;
1506
1939
  /**
1507
1940
  * Internal error
1508
1941
  */
@@ -1565,6 +1998,55 @@ export type RealtimeWebsocketErrors = {
1565
1998
  500: ErrorResponse;
1566
1999
  };
1567
2000
  export type RealtimeWebsocketError = RealtimeWebsocketErrors[keyof RealtimeWebsocketErrors];
2001
+ export type BranchTimelineData = {
2002
+ body: BranchTimelineRequest;
2003
+ path: {
2004
+ /**
2005
+ * Tenant id (UUID)
2006
+ */
2007
+ tenant_id: string;
2008
+ /**
2009
+ * Parent timeline id (UUID), or `main` for the primary timeline
2010
+ */
2011
+ timeline_id: string;
2012
+ };
2013
+ query?: never;
2014
+ url: '/api/v1/tenants/{tenant_id}/timelines/{timeline_id}/branch';
2015
+ };
2016
+ export type BranchTimelineErrors = {
2017
+ /**
2018
+ * Invalid tenant, timeline, or new_timeline_id
2019
+ */
2020
+ 400: ErrorResponse;
2021
+ /**
2022
+ * Missing or invalid API key
2023
+ */
2024
+ 401: ErrorResponse;
2025
+ /**
2026
+ * Branch LSN is beyond the archived WAL
2027
+ */
2028
+ 409: ErrorResponse;
2029
+ /**
2030
+ * Internal error
2031
+ */
2032
+ 500: ErrorResponse;
2033
+ /**
2034
+ * Durability is not configured for this deployment
2035
+ */
2036
+ 501: ErrorResponse;
2037
+ /**
2038
+ * No compute capacity for the branch worker
2039
+ */
2040
+ 503: ErrorResponse;
2041
+ };
2042
+ export type BranchTimelineError = BranchTimelineErrors[keyof BranchTimelineErrors];
2043
+ export type BranchTimelineResponses = {
2044
+ /**
2045
+ * Branch created and routed
2046
+ */
2047
+ 201: BranchTimelineResponse;
2048
+ };
2049
+ export type BranchTimelineResponse2 = BranchTimelineResponses[keyof BranchTimelineResponses];
1568
2050
  export type BatchUpsertVectorsData = {
1569
2051
  body: VectorUpsertRequest;
1570
2052
  path: {
@@ -4019,17 +4501,343 @@ export type ListDeploymentVersionsErrors = {
4019
4501
  */
4020
4502
  401: ErrorResponse;
4021
4503
  /**
4022
- * Internal error
4504
+ * Internal error
4505
+ */
4506
+ 500: ErrorResponse;
4507
+ };
4508
+ export type ListDeploymentVersionsError = ListDeploymentVersionsErrors[keyof ListDeploymentVersionsErrors];
4509
+ export type ListDeploymentVersionsResponses = {
4510
+ /**
4511
+ * Deployment versions
4512
+ */
4513
+ 200: unknown;
4514
+ };
4515
+ export type ComputerListData = {
4516
+ body?: never;
4517
+ path?: never;
4518
+ query?: never;
4519
+ url: '/v1/computers';
4520
+ };
4521
+ export type ComputerListErrors = {
4522
+ /**
4523
+ * Missing or invalid API key
4524
+ */
4525
+ 401: ErrorResponse;
4526
+ };
4527
+ export type ComputerListError = ComputerListErrors[keyof ComputerListErrors];
4528
+ export type ComputerListResponses = {
4529
+ /**
4530
+ * Your Computers, newest first
4531
+ */
4532
+ 200: Array<ComputerInfo>;
4533
+ };
4534
+ export type ComputerListResponse = ComputerListResponses[keyof ComputerListResponses];
4535
+ export type ComputerCreateData = {
4536
+ body: ComputerCreateRequest;
4537
+ path?: never;
4538
+ query?: never;
4539
+ url: '/v1/computers';
4540
+ };
4541
+ export type ComputerCreateErrors = {
4542
+ /**
4543
+ * Invalid name or resource shape
4544
+ */
4545
+ 400: ErrorResponse;
4546
+ /**
4547
+ * Missing or invalid API key
4548
+ */
4549
+ 401: ErrorResponse;
4550
+ /**
4551
+ * Credit exhausted or plan limit reached
4552
+ */
4553
+ 402: ErrorResponse;
4554
+ /**
4555
+ * A Computer with that name already exists
4556
+ */
4557
+ 409: ErrorResponse;
4558
+ /**
4559
+ * No host has capacity for the requested resources
4560
+ */
4561
+ 503: ErrorResponse;
4562
+ };
4563
+ export type ComputerCreateError = ComputerCreateErrors[keyof ComputerCreateErrors];
4564
+ export type ComputerCreateResponses = {
4565
+ /**
4566
+ * Computer created (initially CREATING)
4567
+ */
4568
+ 201: ComputerInfo;
4569
+ };
4570
+ export type ComputerCreateResponse = ComputerCreateResponses[keyof ComputerCreateResponses];
4571
+ export type ComputerGetOrCreateByNameData = {
4572
+ body: ComputerCreateRequest;
4573
+ path: {
4574
+ /**
4575
+ * Lowercase DNS label, max 63 characters
4576
+ */
4577
+ name: string;
4578
+ };
4579
+ query?: never;
4580
+ url: '/v1/computers/by-name/{name}';
4581
+ };
4582
+ export type ComputerGetOrCreateByNameErrors = {
4583
+ /**
4584
+ * Invalid name or resource shape
4585
+ */
4586
+ 400: ErrorResponse;
4587
+ /**
4588
+ * No host has capacity for the requested resources
4589
+ */
4590
+ 503: ErrorResponse;
4591
+ };
4592
+ export type ComputerGetOrCreateByNameError = ComputerGetOrCreateByNameErrors[keyof ComputerGetOrCreateByNameErrors];
4593
+ export type ComputerGetOrCreateByNameResponses = {
4594
+ /**
4595
+ * The existing Computer
4596
+ */
4597
+ 200: ComputerInfo;
4598
+ /**
4599
+ * Computer created
4600
+ */
4601
+ 201: ComputerInfo;
4602
+ };
4603
+ export type ComputerGetOrCreateByNameResponse = ComputerGetOrCreateByNameResponses[keyof ComputerGetOrCreateByNameResponses];
4604
+ export type ComputerDeleteData = {
4605
+ body?: never;
4606
+ path: {
4607
+ /**
4608
+ * Computer id
4609
+ */
4610
+ id: string;
4611
+ };
4612
+ query?: never;
4613
+ url: '/v1/computers/{id}';
4614
+ };
4615
+ export type ComputerDeleteErrors = {
4616
+ /**
4617
+ * Not found
4618
+ */
4619
+ 404: ErrorResponse;
4620
+ };
4621
+ export type ComputerDeleteError = ComputerDeleteErrors[keyof ComputerDeleteErrors];
4622
+ export type ComputerDeleteResponses = {
4623
+ /**
4624
+ * Computer and its disk deleted
4625
+ */
4626
+ 204: void;
4627
+ };
4628
+ export type ComputerDeleteResponse = ComputerDeleteResponses[keyof ComputerDeleteResponses];
4629
+ export type ComputerGetData = {
4630
+ body?: never;
4631
+ path: {
4632
+ /**
4633
+ * Computer id
4634
+ */
4635
+ id: string;
4636
+ };
4637
+ query?: never;
4638
+ url: '/v1/computers/{id}';
4639
+ };
4640
+ export type ComputerGetErrors = {
4641
+ /**
4642
+ * Not found
4643
+ */
4644
+ 404: ErrorResponse;
4645
+ };
4646
+ export type ComputerGetError = ComputerGetErrors[keyof ComputerGetErrors];
4647
+ export type ComputerGetResponses = {
4648
+ /**
4649
+ * The Computer
4650
+ */
4651
+ 200: ComputerInfo;
4652
+ };
4653
+ export type ComputerGetResponse = ComputerGetResponses[keyof ComputerGetResponses];
4654
+ export type ComputerExecData = {
4655
+ body: ComputerExecRequest;
4656
+ path: {
4657
+ /**
4658
+ * Computer id
4659
+ */
4660
+ id: string;
4661
+ };
4662
+ query?: never;
4663
+ url: '/v1/computers/{id}/exec';
4664
+ };
4665
+ export type ComputerExecErrors = {
4666
+ /**
4667
+ * Not found
4668
+ */
4669
+ 404: ErrorResponse;
4670
+ /**
4671
+ * The Computer is not RUNNING
4672
+ */
4673
+ 409: ErrorResponse;
4674
+ };
4675
+ export type ComputerExecError = ComputerExecErrors[keyof ComputerExecErrors];
4676
+ export type ComputerExecResponses = {
4677
+ /**
4678
+ * Command finished
4679
+ */
4680
+ 200: ComputerExecResult;
4681
+ };
4682
+ export type ComputerExecResponse = ComputerExecResponses[keyof ComputerExecResponses];
4683
+ export type ComputerReadFileData = {
4684
+ body?: never;
4685
+ path: {
4686
+ /**
4687
+ * Computer id
4688
+ */
4689
+ id: string;
4690
+ };
4691
+ query: {
4692
+ /**
4693
+ * Absolute path inside the guest
4694
+ */
4695
+ path: string;
4696
+ };
4697
+ url: '/v1/computers/{id}/files';
4698
+ };
4699
+ export type ComputerReadFileErrors = {
4700
+ /**
4701
+ * Missing `path` query parameter
4702
+ */
4703
+ 400: ErrorResponse;
4704
+ /**
4705
+ * Not found
4706
+ */
4707
+ 404: ErrorResponse;
4708
+ /**
4709
+ * The Computer is not RUNNING
4710
+ */
4711
+ 409: ErrorResponse;
4712
+ };
4713
+ export type ComputerReadFileError = ComputerReadFileErrors[keyof ComputerReadFileErrors];
4714
+ export type ComputerReadFileResponses = {
4715
+ /**
4716
+ * File contents, base64-encoded
4717
+ */
4718
+ 200: ComputerFileRead;
4719
+ };
4720
+ export type ComputerReadFileResponse = ComputerReadFileResponses[keyof ComputerReadFileResponses];
4721
+ export type ComputerWriteFilesData = {
4722
+ body: ComputerWriteFilesRequest;
4723
+ path: {
4724
+ /**
4725
+ * Computer id
4726
+ */
4727
+ id: string;
4728
+ };
4729
+ query?: never;
4730
+ url: '/v1/computers/{id}/files';
4731
+ };
4732
+ export type ComputerWriteFilesErrors = {
4733
+ /**
4734
+ * No files, or more than 64
4735
+ */
4736
+ 400: ErrorResponse;
4737
+ /**
4738
+ * Not found
4739
+ */
4740
+ 404: ErrorResponse;
4741
+ /**
4742
+ * The Computer is not RUNNING
4743
+ */
4744
+ 409: ErrorResponse;
4745
+ };
4746
+ export type ComputerWriteFilesError = ComputerWriteFilesErrors[keyof ComputerWriteFilesErrors];
4747
+ export type ComputerWriteFilesResponses = {
4748
+ /**
4749
+ * Files written
4750
+ */
4751
+ 204: void;
4752
+ };
4753
+ export type ComputerWriteFilesResponse = ComputerWriteFilesResponses[keyof ComputerWriteFilesResponses];
4754
+ export type ComputerSetSshKeysData = {
4755
+ body: ComputerSshKeysRequest;
4756
+ path: {
4757
+ /**
4758
+ * Computer id
4759
+ */
4760
+ id: string;
4761
+ };
4762
+ query?: never;
4763
+ url: '/v1/computers/{id}/ssh-keys';
4764
+ };
4765
+ export type ComputerSetSshKeysErrors = {
4766
+ /**
4767
+ * Not an OpenSSH public key, or more than 32
4768
+ */
4769
+ 400: ErrorResponse;
4770
+ /**
4771
+ * Not found
4772
+ */
4773
+ 404: ErrorResponse;
4774
+ /**
4775
+ * The keys could not be delivered to the running machine
4776
+ */
4777
+ 502: ErrorResponse;
4778
+ };
4779
+ export type ComputerSetSshKeysError = ComputerSetSshKeysErrors[keyof ComputerSetSshKeysErrors];
4780
+ export type ComputerSetSshKeysResponses = {
4781
+ /**
4782
+ * The Computer, with the new key list
4783
+ */
4784
+ 200: ComputerInfo;
4785
+ };
4786
+ export type ComputerSetSshKeysResponse = ComputerSetSshKeysResponses[keyof ComputerSetSshKeysResponses];
4787
+ export type ComputerStartData = {
4788
+ body?: never;
4789
+ path: {
4790
+ /**
4791
+ * Computer id
4792
+ */
4793
+ id: string;
4794
+ };
4795
+ query?: never;
4796
+ url: '/v1/computers/{id}/start';
4797
+ };
4798
+ export type ComputerStartErrors = {
4799
+ /**
4800
+ * Not found
4801
+ */
4802
+ 404: ErrorResponse;
4803
+ /**
4804
+ * The Computer's host is unavailable
4805
+ */
4806
+ 503: ErrorResponse;
4807
+ };
4808
+ export type ComputerStartError = ComputerStartErrors[keyof ComputerStartErrors];
4809
+ export type ComputerStartResponses = {
4810
+ /**
4811
+ * The Computer, now RUNNING
4812
+ */
4813
+ 200: ComputerInfo;
4814
+ };
4815
+ export type ComputerStartResponse = ComputerStartResponses[keyof ComputerStartResponses];
4816
+ export type ComputerStopData = {
4817
+ body?: never;
4818
+ path: {
4819
+ /**
4820
+ * Computer id
4821
+ */
4822
+ id: string;
4823
+ };
4824
+ query?: never;
4825
+ url: '/v1/computers/{id}/stop';
4826
+ };
4827
+ export type ComputerStopErrors = {
4828
+ /**
4829
+ * Not found
4023
4830
  */
4024
- 500: ErrorResponse;
4831
+ 404: ErrorResponse;
4025
4832
  };
4026
- export type ListDeploymentVersionsError = ListDeploymentVersionsErrors[keyof ListDeploymentVersionsErrors];
4027
- export type ListDeploymentVersionsResponses = {
4833
+ export type ComputerStopError = ComputerStopErrors[keyof ComputerStopErrors];
4834
+ export type ComputerStopResponses = {
4028
4835
  /**
4029
- * Deployment versions
4836
+ * The Computer, now STOPPED
4030
4837
  */
4031
- 200: unknown;
4838
+ 200: ComputerInfo;
4032
4839
  };
4840
+ export type ComputerStopResponse = ComputerStopResponses[keyof ComputerStopResponses];
4033
4841
  export type ListCronSchedulesData = {
4034
4842
  body?: never;
4035
4843
  path?: never;
@@ -4226,6 +5034,167 @@ export type TriggerCronScheduleResponses = {
4226
5034
  */
4227
5035
  200: unknown;
4228
5036
  };
5037
+ export type ListDatabasesData = {
5038
+ body?: never;
5039
+ path?: never;
5040
+ query?: {
5041
+ /**
5042
+ * Also return soft-deleted databases restorable within the grace window
5043
+ */
5044
+ include_deleted?: boolean;
5045
+ };
5046
+ url: '/v1/databases';
5047
+ };
5048
+ export type ListDatabasesErrors = {
5049
+ /**
5050
+ * Missing or invalid API key
5051
+ */
5052
+ 401: ErrorResponse;
5053
+ };
5054
+ export type ListDatabasesError = ListDatabasesErrors[keyof ListDatabasesErrors];
5055
+ export type ListDatabasesResponses = {
5056
+ /**
5057
+ * Databases in the project
5058
+ */
5059
+ 200: ListDatabasesResponse;
5060
+ };
5061
+ export type ListDatabasesResponse2 = ListDatabasesResponses[keyof ListDatabasesResponses];
5062
+ export type CreateDatabaseData = {
5063
+ body: CreateDatabaseRequest;
5064
+ path?: never;
5065
+ query?: never;
5066
+ url: '/v1/databases';
5067
+ };
5068
+ export type CreateDatabaseErrors = {
5069
+ /**
5070
+ * Invalid name, isolation, or pg_version (message lists the supported versions)
5071
+ */
5072
+ 400: ErrorResponse;
5073
+ /**
5074
+ * Missing or invalid API key
5075
+ */
5076
+ 401: ErrorResponse;
5077
+ /**
5078
+ * A database with this name already exists in the org
5079
+ */
5080
+ 409: ErrorResponse;
5081
+ /**
5082
+ * Dedicated tier not provisionable on this deployment
5083
+ */
5084
+ 501: ErrorResponse;
5085
+ };
5086
+ export type CreateDatabaseError = CreateDatabaseErrors[keyof CreateDatabaseErrors];
5087
+ export type CreateDatabaseResponses = {
5088
+ /**
5089
+ * Database created
5090
+ */
5091
+ 201: CreateDatabaseResponse;
5092
+ };
5093
+ export type CreateDatabaseResponse2 = CreateDatabaseResponses[keyof CreateDatabaseResponses];
5094
+ export type ProvisionDatabaseData = {
5095
+ body?: never;
5096
+ path?: never;
5097
+ query?: never;
5098
+ url: '/v1/databases/provision';
5099
+ };
5100
+ export type ProvisionDatabaseErrors = {
5101
+ /**
5102
+ * Missing or invalid API key
5103
+ */
5104
+ 401: ErrorResponse;
5105
+ };
5106
+ export type ProvisionDatabaseError = ProvisionDatabaseErrors[keyof ProvisionDatabaseErrors];
5107
+ export type ProvisionDatabaseResponses = {
5108
+ /**
5109
+ * Connection info for the project's default database
5110
+ */
5111
+ 200: unknown;
5112
+ };
5113
+ export type DeleteDatabaseData = {
5114
+ body?: never;
5115
+ path: {
5116
+ /**
5117
+ * Database id
5118
+ */
5119
+ id: string;
5120
+ };
5121
+ query?: never;
5122
+ url: '/v1/databases/{id}';
5123
+ };
5124
+ export type DeleteDatabaseErrors = {
5125
+ /**
5126
+ * Missing or invalid API key
5127
+ */
5128
+ 401: ErrorResponse;
5129
+ /**
5130
+ * Database not found
5131
+ */
5132
+ 404: ErrorResponse;
5133
+ };
5134
+ export type DeleteDatabaseError = DeleteDatabaseErrors[keyof DeleteDatabaseErrors];
5135
+ export type DeleteDatabaseResponses = {
5136
+ /**
5137
+ * Database scheduled for deletion
5138
+ */
5139
+ 200: unknown;
5140
+ };
5141
+ export type GetDatabaseData = {
5142
+ body?: never;
5143
+ path: {
5144
+ /**
5145
+ * Database id
5146
+ */
5147
+ id: string;
5148
+ };
5149
+ query?: never;
5150
+ url: '/v1/databases/{id}';
5151
+ };
5152
+ export type GetDatabaseErrors = {
5153
+ /**
5154
+ * Missing or invalid API key
5155
+ */
5156
+ 401: ErrorResponse;
5157
+ /**
5158
+ * Database not found
5159
+ */
5160
+ 404: ErrorResponse;
5161
+ };
5162
+ export type GetDatabaseError = GetDatabaseErrors[keyof GetDatabaseErrors];
5163
+ export type GetDatabaseResponses = {
5164
+ /**
5165
+ * The database
5166
+ */
5167
+ 200: DatabaseJson;
5168
+ };
5169
+ export type GetDatabaseResponse = GetDatabaseResponses[keyof GetDatabaseResponses];
5170
+ export type RestoreDatabaseData = {
5171
+ body?: never;
5172
+ path: {
5173
+ /**
5174
+ * Database id
5175
+ */
5176
+ id: string;
5177
+ };
5178
+ query?: never;
5179
+ url: '/v1/databases/{id}/restore';
5180
+ };
5181
+ export type RestoreDatabaseErrors = {
5182
+ /**
5183
+ * Missing or invalid API key
5184
+ */
5185
+ 401: ErrorResponse;
5186
+ /**
5187
+ * Database not found or past the grace window
5188
+ */
5189
+ 404: ErrorResponse;
5190
+ };
5191
+ export type RestoreDatabaseError = RestoreDatabaseErrors[keyof RestoreDatabaseErrors];
5192
+ export type RestoreDatabaseResponses = {
5193
+ /**
5194
+ * Database restored to active
5195
+ */
5196
+ 200: unknown;
5197
+ };
4229
5198
  export type ListDomainsData = {
4230
5199
  body?: never;
4231
5200
  path?: never;
@@ -6226,6 +7195,232 @@ export type RollbackServiceResponses = {
6226
7195
  */
6227
7196
  200: unknown;
6228
7197
  };
7198
+ export type SandboxListData = {
7199
+ body?: never;
7200
+ path?: never;
7201
+ query?: never;
7202
+ url: '/v1/sandboxes';
7203
+ };
7204
+ export type SandboxListErrors = {
7205
+ /**
7206
+ * Missing or invalid API key
7207
+ */
7208
+ 401: ErrorResponse;
7209
+ };
7210
+ export type SandboxListError = SandboxListErrors[keyof SandboxListErrors];
7211
+ export type SandboxListResponses = {
7212
+ /**
7213
+ * `{sandboxes: [...], total}`
7214
+ */
7215
+ 200: unknown;
7216
+ };
7217
+ export type SandboxCreateData = {
7218
+ body: SandboxCreateRequest;
7219
+ path?: never;
7220
+ query?: never;
7221
+ url: '/v1/sandboxes';
7222
+ };
7223
+ export type SandboxCreateErrors = {
7224
+ /**
7225
+ * Missing or invalid API key
7226
+ */
7227
+ 401: ErrorResponse;
7228
+ /**
7229
+ * Credit exhausted or plan limit reached
7230
+ */
7231
+ 402: ErrorResponse;
7232
+ /**
7233
+ * No capacity for the requested resources
7234
+ */
7235
+ 503: ErrorResponse;
7236
+ };
7237
+ export type SandboxCreateError = SandboxCreateErrors[keyof SandboxCreateErrors];
7238
+ export type SandboxCreateResponses = {
7239
+ /**
7240
+ * Sandbox created (initially PROVISIONING)
7241
+ */
7242
+ 201: SandboxInfo;
7243
+ };
7244
+ export type SandboxCreateResponse = SandboxCreateResponses[keyof SandboxCreateResponses];
7245
+ export type SandboxDeleteData = {
7246
+ body?: never;
7247
+ path: {
7248
+ /**
7249
+ * Sandbox id
7250
+ */
7251
+ id: string;
7252
+ };
7253
+ query?: never;
7254
+ url: '/v1/sandboxes/{id}';
7255
+ };
7256
+ export type SandboxDeleteErrors = {
7257
+ /**
7258
+ * Not found
7259
+ */
7260
+ 404: ErrorResponse;
7261
+ };
7262
+ export type SandboxDeleteError = SandboxDeleteErrors[keyof SandboxDeleteErrors];
7263
+ export type SandboxDeleteResponses = {
7264
+ /**
7265
+ * Deleted
7266
+ */
7267
+ 204: void;
7268
+ };
7269
+ export type SandboxDeleteResponse = SandboxDeleteResponses[keyof SandboxDeleteResponses];
7270
+ export type SandboxGetData = {
7271
+ body?: never;
7272
+ path: {
7273
+ /**
7274
+ * Sandbox id
7275
+ */
7276
+ id: string;
7277
+ };
7278
+ query?: never;
7279
+ url: '/v1/sandboxes/{id}';
7280
+ };
7281
+ export type SandboxGetErrors = {
7282
+ /**
7283
+ * Not found
7284
+ */
7285
+ 404: ErrorResponse;
7286
+ };
7287
+ export type SandboxGetError = SandboxGetErrors[keyof SandboxGetErrors];
7288
+ export type SandboxGetResponses = {
7289
+ /**
7290
+ * Sandbox details
7291
+ */
7292
+ 200: SandboxInfo;
7293
+ };
7294
+ export type SandboxGetResponse = SandboxGetResponses[keyof SandboxGetResponses];
7295
+ export type SandboxRunCommandData = {
7296
+ body: SandboxCommandRequest;
7297
+ path: {
7298
+ /**
7299
+ * Sandbox id
7300
+ */
7301
+ id: string;
7302
+ };
7303
+ query?: never;
7304
+ url: '/v1/sandboxes/{id}/commands';
7305
+ };
7306
+ export type SandboxRunCommandErrors = {
7307
+ /**
7308
+ * Sandbox is not running
7309
+ */
7310
+ 400: ErrorResponse;
7311
+ /**
7312
+ * Not found
7313
+ */
7314
+ 404: ErrorResponse;
7315
+ };
7316
+ export type SandboxRunCommandError = SandboxRunCommandErrors[keyof SandboxRunCommandErrors];
7317
+ export type SandboxRunCommandResponses = {
7318
+ /**
7319
+ * Command result
7320
+ */
7321
+ 200: SandboxCommandResult;
7322
+ };
7323
+ export type SandboxRunCommandResponse = SandboxRunCommandResponses[keyof SandboxRunCommandResponses];
7324
+ export type SandboxExtendData = {
7325
+ body: SandboxExtendRequest;
7326
+ path: {
7327
+ /**
7328
+ * Sandbox id
7329
+ */
7330
+ id: string;
7331
+ };
7332
+ query?: never;
7333
+ url: '/v1/sandboxes/{id}/extend';
7334
+ };
7335
+ export type SandboxExtendErrors = {
7336
+ /**
7337
+ * Not found
7338
+ */
7339
+ 404: ErrorResponse;
7340
+ };
7341
+ export type SandboxExtendError = SandboxExtendErrors[keyof SandboxExtendErrors];
7342
+ export type SandboxExtendResponses = {
7343
+ /**
7344
+ * Updated sandbox
7345
+ */
7346
+ 200: SandboxInfo;
7347
+ };
7348
+ export type SandboxExtendResponse = SandboxExtendResponses[keyof SandboxExtendResponses];
7349
+ export type SandboxWriteFilesData = {
7350
+ body: SandboxWriteFilesRequest;
7351
+ path: {
7352
+ /**
7353
+ * Sandbox id
7354
+ */
7355
+ id: string;
7356
+ };
7357
+ query?: never;
7358
+ url: '/v1/sandboxes/{id}/files';
7359
+ };
7360
+ export type SandboxWriteFilesErrors = {
7361
+ /**
7362
+ * Not found
7363
+ */
7364
+ 404: ErrorResponse;
7365
+ /**
7366
+ * Path outside the allowed guest roots
7367
+ */
7368
+ 502: ErrorResponse;
7369
+ };
7370
+ export type SandboxWriteFilesError = SandboxWriteFilesErrors[keyof SandboxWriteFilesErrors];
7371
+ export type SandboxWriteFilesResponses = {
7372
+ /**
7373
+ * Files written
7374
+ */
7375
+ 204: void;
7376
+ };
7377
+ export type SandboxWriteFilesResponse = SandboxWriteFilesResponses[keyof SandboxWriteFilesResponses];
7378
+ export type SandboxReadFileData = {
7379
+ body?: never;
7380
+ path: {
7381
+ /**
7382
+ * Sandbox id
7383
+ */
7384
+ id: string;
7385
+ /**
7386
+ * Guest file path, e.g. `app/output.json`
7387
+ */
7388
+ path: string;
7389
+ };
7390
+ query?: never;
7391
+ url: '/v1/sandboxes/{id}/files/{path}';
7392
+ };
7393
+ export type SandboxReadFileErrors = {
7394
+ /**
7395
+ * File or sandbox not found
7396
+ */
7397
+ 404: ErrorResponse;
7398
+ };
7399
+ export type SandboxReadFileError = SandboxReadFileErrors[keyof SandboxReadFileErrors];
7400
+ export type SandboxReadFileResponses = {
7401
+ /**
7402
+ * File content (application/octet-stream)
7403
+ */
7404
+ 200: unknown;
7405
+ };
7406
+ export type SandboxSnapshotData = {
7407
+ body?: never;
7408
+ path: {
7409
+ /**
7410
+ * Sandbox id
7411
+ */
7412
+ id: string;
7413
+ };
7414
+ query?: never;
7415
+ url: '/v1/sandboxes/{id}/snapshot';
7416
+ };
7417
+ export type SandboxSnapshotErrors = {
7418
+ /**
7419
+ * Snapshots are not available for ephemeral sandboxes
7420
+ */
7421
+ 501: ErrorResponse;
7422
+ };
7423
+ export type SandboxSnapshotError = SandboxSnapshotErrors[keyof SandboxSnapshotErrors];
6229
7424
  export type SearchIndexData = {
6230
7425
  body?: never;
6231
7426
  path?: never;