@faable/deploy-sdk 2.14.0 → 2.16.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.
@@ -22,6 +22,14 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
22
22
  * `GET /app/checkname` — operationId: `app/checkname`
23
23
  *
24
24
  * Check if an app name is availiable
25
+ *
26
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
27
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
28
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
29
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
30
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
31
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
32
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
25
33
  */
26
34
  appCheckname(params?: OpQuery<"app/checkname">): Promise<{
27
35
  name: string;
@@ -34,6 +42,17 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
34
42
  * `POST /app` — operationId: `app/create`
35
43
  *
36
44
  * Create App
45
+ *
46
+ * @throws {FaableApiError} `already_exists` (400) — A resource with the same unique field already exists. `details.fields` names the field.
47
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
48
+ * @throws {FaableApiError} `team_required` (400) — The operation needs a project: send it in the `x-faable-team` header.
49
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
50
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
51
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
52
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
53
+ * @throws {FaableApiError} `app_rate_limited` (429) — A new account may only create a few apps in its first 24 hours.
54
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
55
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
37
56
  */
38
57
  appCreate(data: OpBody<"app/create">): Promise<{
39
58
  id: string;
@@ -83,6 +102,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
83
102
  * `DELETE /app/{id}` — operationId: `app/delete`
84
103
  *
85
104
  * Delete App
105
+ *
106
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
107
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
108
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
109
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
110
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
111
+ * @throws {FaableApiError} `moderation_hold` (403) — The project contains an app disabled by moderation and cannot be deleted. Contact support@faable.com.
112
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
113
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
114
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
115
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
116
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
86
117
  */
87
118
  appDelete(id: string): Promise<{
88
119
  id: string;
@@ -132,6 +163,25 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
132
163
  * `POST /app/{id}/deploy` — operationId: `app/deploy_now`
133
164
  *
134
165
  * Deploy the latest commit now
166
+ *
167
+ * Build and deploy the current head of the deploy branch, without waiting for a push. Same path as a push webhook, including the same-commit dedupe.
168
+ *
169
+ * @throws {FaableApiError} `branch_missing` (400) — The deploy branch does not exist on the repository. `message` lists the branches that do.
170
+ * @throws {FaableApiError} `deploy_mode_conflict` (400) — The app deploys from its own workflow, so the platform will not create a deployment for it.
171
+ * @throws {FaableApiError} `repository_empty` (400) — The repository has no commits on the deploy branch yet.
172
+ * @throws {FaableApiError} `repository_not_linked` (400) — The app has no linked repository.
173
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
174
+ * @throws {FaableApiError} `github_token_invalid` (401) — The stored GitHub token was rejected; the user must reconnect.
175
+ * @throws {FaableApiError} `user_token_required` (401) — The endpoint acts on behalf of a person and the credential carries no user (an API key or a service account).
176
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
177
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
178
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
179
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
180
+ * @throws {FaableApiError} `deploy_refused` (409) — The deploy was refused by quota, plan or an in-flight deployment. `message` says which.
181
+ * @throws {FaableApiError} `github_identity_missing` (412) — The user has not connected GitHub. Send them through `connect_github`.
182
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
183
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
184
+ * @throws {FaableApiError} `github_error` (502) — GitHub failed upstream. `message` carries what it said.
135
185
  */
136
186
  appDeployNow(id: string): Promise<{
137
187
  status: "created";
@@ -142,6 +192,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
142
192
  * `GET /app/{id}` — operationId: `app/get`
143
193
  *
144
194
  * Get App
195
+ *
196
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
197
+ * @throws {FaableApiError} `invalid_expand` (400) — An `?expand=` path is not allowed on this resource.
198
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
199
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
200
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
201
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
202
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
203
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
204
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
205
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
206
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
145
207
  */
146
208
  appGet(id: string, params?: OpQuery<"app/get">): Promise<{
147
209
  id: string;
@@ -191,6 +253,16 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
191
253
  * `GET /app/{app_id}/registry` — operationId: `app/get_registry`
192
254
  *
193
255
  * Get app registry
256
+ *
257
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
258
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
259
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
260
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
261
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
262
+ * @throws {FaableApiError} `app_disabled` (409) — The app is disabled, so it cannot be deployed or provisioned. `message` says why when the reason is public.
263
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
264
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
265
+ * @throws {FaableApiError} `bad_gateway` (502) — An upstream the API depends on failed.
194
266
  */
195
267
  appGetRegistry(app_id: string): Promise<{
196
268
  id: string;
@@ -204,6 +276,26 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
204
276
  * `POST /app/{id}/link-repository` — operationId: `app/link_repository`
205
277
  *
206
278
  * Link a GitHub repository to an app
279
+ *
280
+ * Link a GitHub repository to an app after verifying the user has a connected GitHub identity with access to the repository.
281
+ *
282
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
283
+ * @throws {FaableApiError} `github_token_invalid` (401) — The stored GitHub token was rejected; the user must reconnect.
284
+ * @throws {FaableApiError} `user_token_required` (401) — The endpoint acts on behalf of a person and the credential carries no user (an API key or a service account).
285
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
286
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
287
+ * @throws {FaableApiError} `github_installation_suspended` (403) — The GitHub App installation is suspended.
288
+ * @throws {FaableApiError} `github_permission_denied` (403) — The installation lacks a permission this operation needs.
289
+ * @throws {FaableApiError} `github_repository_blocked` (403) — GitHub refuses to serve the source of that repository (403 or 451).
290
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
291
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
292
+ * @throws {FaableApiError} `github_repository_not_found` (404) — The repository does not exist or the installation cannot see it.
293
+ * @throws {FaableApiError} `repository_already_linked` (409) — The repository is already linked to another app. `details.app_id` / `details.app_name` name it.
294
+ * @throws {FaableApiError} `github_identity_missing` (412) — The user has not connected GitHub. Send them through `connect_github`.
295
+ * @throws {FaableApiError} `github_installation_missing` (412) — The Faable GitHub App is not installed on any repository of theirs.
296
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
297
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
298
+ * @throws {FaableApiError} `github_error` (502) — GitHub failed upstream. `message` carries what it said.
207
299
  */
208
300
  appLinkRepository(id: string, data: OpBody<"app/link_repository">): Promise<{
209
301
  id: string;
@@ -253,6 +345,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
253
345
  * `GET /app` — operationId: `app/list`
254
346
  *
255
347
  * List Apps
348
+ *
349
+ * @throws {FaableApiError} `invalid_query` (400) — The `?query=` FaableQL expression could not be parsed.
350
+ * @throws {FaableApiError} `invalid_expand` (400) — An `?expand=` path is not allowed on this resource.
351
+ * @throws {FaableApiError} `search_not_supported` (400) — This resource does not support `?q=`.
352
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
353
+ * @throws {FaableApiError} `team_or_scope_required` (401) — Listing needs either a project in `x-faable-team` or a global scope on the token.
354
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
355
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
356
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
357
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
358
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
359
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
256
360
  */
257
361
  appList(params?: Omit<OpQuery<"app/list">, "cursor" | "next">): {
258
362
  all: () => Promise<{
@@ -395,12 +499,33 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
395
499
  * `GET /app/{app_id}/logs` — operationId: `app/logs`
396
500
  *
397
501
  * Get app logs
502
+ *
503
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
504
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
505
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
506
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
507
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
508
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
509
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
398
510
  */
399
511
  appLogs(app_id: string, params?: OpQuery<"app/logs">): Promise<void>;
400
512
  /**
401
513
  * `GET /app/{id}/repo/branches` — operationId: `app/repo_branches`
402
514
  *
403
515
  * List repository branches
516
+ *
517
+ * Branch names of the linked repository.
518
+ *
519
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
520
+ * @throws {FaableApiError} `github_token_invalid` (401) — The stored GitHub token was rejected; the user must reconnect.
521
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
522
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
523
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
524
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
525
+ * @throws {FaableApiError} `github_repository_not_found` (404) — The repository does not exist or the installation cannot see it.
526
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
527
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
528
+ * @throws {FaableApiError} `github_error` (502) — GitHub failed upstream. `message` carries what it said.
404
529
  */
405
530
  appRepoBranches(id: string): Promise<{
406
531
  branches: string[];
@@ -409,6 +534,19 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
409
534
  * `GET /app/{id}/repo/config` — operationId: `app/repo_config`
410
535
  *
411
536
  * Get effective repository build config
537
+ *
538
+ * Effective build configuration read from the repository: the monorepo Root Directory and its source (platform override or the repo's faable.json).
539
+ *
540
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
541
+ * @throws {FaableApiError} `github_token_invalid` (401) — The stored GitHub token was rejected; the user must reconnect.
542
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
543
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
544
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
545
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
546
+ * @throws {FaableApiError} `github_repository_not_found` (404) — The repository does not exist or the installation cannot see it.
547
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
548
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
549
+ * @throws {FaableApiError} `github_error` (502) — GitHub failed upstream. `message` carries what it said.
412
550
  */
413
551
  appRepoConfig(id: string): Promise<{
414
552
  root_dir: string | null;
@@ -418,6 +556,16 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
418
556
  * `GET /app/{id}/repo/directories` — operationId: `app/repo_directories`
419
557
  *
420
558
  * List repository directories
559
+ *
560
+ * Directories of the linked repository on the deploy branch, flagged with whether each one holds a buildable manifest. Feeds the Root Directory picker so a monorepo is configured from what the repository actually contains. Limited to three levels deep; dotted directories and node_modules are excluded.
561
+ *
562
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
563
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
564
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
565
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
566
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
567
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
568
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
421
569
  */
422
570
  appRepoDirectories(id: string): Promise<{
423
571
  directories: {
@@ -426,10 +574,49 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
426
574
  }[];
427
575
  truncated: boolean;
428
576
  }>;
577
+ /**
578
+ * `GET /app/repo-linkable` — operationId: `app/repo_linkable`
579
+ *
580
+ * Check whether a repository can be linked to a new app
581
+ *
582
+ * Runs the free-plan "one repository, one app" guard before the app exists. Always 200: `linkable:false` names the app that already has the repository (and its project when it is another one of yours), with the same message the link would refuse with.
583
+ *
584
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
585
+ * @throws {FaableApiError} `user_token_required` (401) — The endpoint acts on behalf of a person and the credential carries no user (an API key or a service account).
586
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
587
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
588
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
589
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
590
+ * @throws {FaableApiError} `github_identity_missing` (412) — The user has not connected GitHub. Send them through `connect_github`.
591
+ * @throws {FaableApiError} `github_installation_missing` (412) — The Faable GitHub App is not installed on any repository of theirs.
592
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
593
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
594
+ * @throws {FaableApiError} `github_error` (502) — GitHub failed upstream. `message` carries what it said.
595
+ */
596
+ appRepoLinkable(params?: OpQuery<"app/repo_linkable">): Promise<{
597
+ linkable: boolean;
598
+ code?: "repository_already_linked";
599
+ message?: string;
600
+ details?: {
601
+ app_id: string;
602
+ app_name?: string;
603
+ project?: string;
604
+ };
605
+ }>;
429
606
  /**
430
607
  * `GET /app/{id}/repo/workflows` — operationId: `app/repo_workflows`
431
608
  *
432
609
  * List repository workflow files
610
+ *
611
+ * GitHub Actions workflow files present on the linked repository (deploy branch).
612
+ *
613
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
614
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
615
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
616
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
617
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
618
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
619
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
433
620
  */
434
621
  appRepoWorkflows(id: string): Promise<{
435
622
  workflows: {
@@ -442,6 +629,19 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
442
629
  * `POST /app/{id}/deploy-branch` — operationId: `app/set_deploy_branch`
443
630
  *
444
631
  * Change the deploy branch
632
+ *
633
+ * Change the branch the app deploys from. Apps deploying from their own GitHub Actions workflow must update the branch trigger in the workflow file themselves.
634
+ *
635
+ * @throws {FaableApiError} `branch_missing` (400) — The deploy branch does not exist on the repository. `message` lists the branches that do.
636
+ * @throws {FaableApiError} `repository_not_linked` (400) — The app has no linked repository.
637
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
638
+ * @throws {FaableApiError} `user_token_required` (401) — The endpoint acts on behalf of a person and the credential carries no user (an API key or a service account).
639
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
640
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
641
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
642
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
643
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
644
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
445
645
  */
446
646
  appSetDeployBranch(id: string, data: OpBody<"app/set_deploy_branch">): Promise<{
447
647
  github_branch: string;
@@ -451,6 +651,19 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
451
651
  * `POST /app/{id}/deploy-mode` — operationId: `app/set_deploy_mode`
452
652
  *
453
653
  * Set the deploy mode
654
+ *
655
+ * Choose how pushes deploy: 'push' = every push deploys directly; 'ci' = deploy once the commit's CI checks pass. Both are platform-managed (webhook) triggers.
656
+ *
657
+ * @throws {FaableApiError} `no_deploy_workflow` (400) — No workflow in the repository runs `faable deploy`.
658
+ * @throws {FaableApiError} `no_workflows` (400) — The repository has no GitHub Actions workflows, so a CI gate would never open.
659
+ * @throws {FaableApiError} `root_dir_mismatch` (400) — The workflow deploys from one directory and platform builds would run from another. Declare `rootDir` in faable.json.
660
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
661
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
662
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
663
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
664
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
665
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
666
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
454
667
  */
455
668
  appSetDeployMode(id: string, data: OpBody<"app/set_deploy_mode">): Promise<{
456
669
  id: string;
@@ -500,6 +713,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
500
713
  * `POST /app/{id}/root-dir` — operationId: `app/set_root_dir`
501
714
  *
502
715
  * Set the Root Directory
716
+ *
717
+ * Set the platform Root Directory: the subdirectory of the repository the build runs from. Takes precedence over the repo's faable.json `rootDir`; `null` clears it and hands precedence back. The path must exist on the deploy branch.
718
+ *
719
+ * @throws {FaableApiError} `invalid_root_dir` (400) — The Root Directory must be a path inside the repository — no leading `/` and no `..`.
720
+ * @throws {FaableApiError} `root_dir_not_found` (400) — The Root Directory does not exist on that ref of the repository.
721
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
722
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
723
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
724
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
725
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
726
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
727
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
503
728
  */
504
729
  appSetRootDir(id: string, data: OpBody<"app/set_root_dir">): Promise<{
505
730
  id: string;
@@ -549,6 +774,15 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
549
774
  * `GET /app/slug/{slug}` — operationId: `app/slug`
550
775
  *
551
776
  * Get App by unique slug
777
+ *
778
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
779
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
780
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
781
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
782
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
783
+ * @throws {FaableApiError} `app_not_found` (404) — No app with that id or slug in this project.
784
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
785
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
552
786
  */
553
787
  appSlug(slug: string): Promise<{
554
788
  id: string;
@@ -598,6 +832,15 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
598
832
  * `GET /app/{app_id}/traffic` — operationId: `app/traffic`
599
833
  *
600
834
  * Get App Traffic
835
+ *
836
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
837
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
838
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
839
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
840
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
841
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
842
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
843
+ * @throws {FaableApiError} `metrics_unavailable` (503) — Traffic metrics are temporarily unavailable — this is not an app with no traffic.
601
844
  */
602
845
  appTraffic(app_id: string, params?: OpQuery<"app/traffic">): Promise<{
603
846
  range: {
@@ -651,11 +894,23 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
651
894
  user_agent: string;
652
895
  requests: number;
653
896
  }[];
897
+ degraded: string[];
654
898
  }>;
655
899
  /**
656
900
  * `POST /app/{id}/unlink-repository` — operationId: `app/unlink_repository`
657
901
  *
658
902
  * Unlink the GitHub repository from an app
903
+ *
904
+ * Unlink the GitHub repository from an app.
905
+ *
906
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
907
+ * @throws {FaableApiError} `user_token_required` (401) — The endpoint acts on behalf of a person and the credential carries no user (an API key or a service account).
908
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
909
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
910
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
911
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
912
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
913
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
659
914
  */
660
915
  appUnlinkRepository(id: string): Promise<{
661
916
  id: string;
@@ -705,6 +960,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
705
960
  * `POST /app/{id}` — operationId: `app/update`
706
961
  *
707
962
  * Update App
963
+ *
964
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
965
+ * @throws {FaableApiError} `already_exists` (400) — A resource with the same unique field already exists. `details.fields` names the field.
966
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
967
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
968
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
969
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
970
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
971
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
972
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
973
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
974
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
708
975
  */
709
976
  appUpdate(id: string, data: OpBody<"app/update">): Promise<{
710
977
  id: string;
@@ -754,6 +1021,16 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
754
1021
  * `GET /app/{app_id}/waf` — operationId: `app/waf`
755
1022
  *
756
1023
  * Get App WAF
1024
+ *
1025
+ * Get the WAF rules in effect for an App
1026
+ *
1027
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1028
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1029
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1030
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1031
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1032
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1033
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
757
1034
  */
758
1035
  appWaf(app_id: string): Promise<{
759
1036
  enabled: boolean;
@@ -782,6 +1059,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
782
1059
  * `POST /app/{app_id}/waf/rules` — operationId: `app/waf/addRule`
783
1060
  *
784
1061
  * Add App WAF Rule
1062
+ *
1063
+ * Add a WAF rule to an App
1064
+ *
1065
+ * @throws {FaableApiError} `bad_request` (400) — The request is malformed. `message` says what is wrong.
1066
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1067
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1068
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1069
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1070
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1071
+ * @throws {FaableApiError} `conflict` (409) — The request conflicts with the current state of the resource.
1072
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1073
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
785
1074
  */
786
1075
  appWafAddRule(app_id: string, data: OpBody<"app/waf/addRule">): Promise<{
787
1076
  enabled: boolean;
@@ -810,6 +1099,19 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
810
1099
  * `DELETE /app/{app_id}/waf/rules` — operationId: `app/waf/removeRule`
811
1100
  *
812
1101
  * Remove App WAF Rule
1102
+ *
1103
+ * Remove a WAF rule from an App
1104
+ *
1105
+ * @throws {FaableApiError} `bad_request` (400) — The request is malformed. `message` says what is wrong.
1106
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1107
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1108
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1109
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1110
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1111
+ * @throws {FaableApiError} `waf_rule_not_found` (404) — No WAF rule with that pattern on this app.
1112
+ * @throws {FaableApiError} `conflict` (409) — The request conflicts with the current state of the resource.
1113
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1114
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
813
1115
  */
814
1116
  appWafRemoveRule(app_id: string, data: OpBody<"app/waf/removeRule">): Promise<{
815
1117
  enabled: boolean;
@@ -838,6 +1140,19 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
838
1140
  * `GET /deploy-quota` — operationId: `deploy_quota/get`
839
1141
  *
840
1142
  * Get the team's daily deploy quota status
1143
+ *
1144
+ * Daily deploy allowance of the current team: how much was used today, when it resets, and how many builds are held waiting for it.
1145
+ *
1146
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1147
+ * @throws {FaableApiError} `invalid_expand` (400) — An `?expand=` path is not allowed on this resource.
1148
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1149
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1150
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1151
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1152
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1153
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1154
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1155
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
841
1156
  */
842
1157
  deployQuotaGet(): Promise<{
843
1158
  limited: boolean;
@@ -851,6 +1166,15 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
851
1166
  * `POST /deploy-quota/release` — operationId: `deploy_quota/release`
852
1167
  *
853
1168
  * Roll out the builds held by the daily deploy quota
1169
+ *
1170
+ * Releases the team's held deployments if its current plan allows it (per app, only the newest held build rolls out; older ones are canceled). Safe to call at any time — it does nothing while the quota is still spent.
1171
+ *
1172
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1173
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1174
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1175
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1176
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1177
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
854
1178
  */
855
1179
  deployQuotaRelease(): Promise<{
856
1180
  released: string[];
@@ -860,6 +1184,16 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
860
1184
  * `POST /deployment/{deployment_id}/cancel` — operationId: `deployment/cancel`
861
1185
  *
862
1186
  * Cancel a queued or building deployment
1187
+ *
1188
+ * Cancel a deployment that has not been handed over to the controller yet (QUEUED or BUILDING)
1189
+ *
1190
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1191
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1192
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1193
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1194
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1195
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1196
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
863
1197
  */
864
1198
  deploymentCancel(deployment_id: string): Promise<{
865
1199
  id: string;
@@ -890,6 +1224,20 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
890
1224
  * `POST /deployment` — operationId: `deployment/create`
891
1225
  *
892
1226
  * Create Deployment
1227
+ *
1228
+ * @throws {FaableApiError} `already_exists` (400) — A resource with the same unique field already exists. `details.fields` names the field.
1229
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1230
+ * @throws {FaableApiError} `team_required` (400) — The operation needs a project: send it in the `x-faable-team` header.
1231
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1232
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1233
+ * @throws {FaableApiError} `plan_required` (403) — The build or feature needs a higher plan. `message` says which.
1234
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1235
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1236
+ * @throws {FaableApiError} `app_disabled` (409) — The app is disabled, so it cannot be deployed or provisioned. `message` says why when the reason is public.
1237
+ * @throws {FaableApiError} `remote_build_disabled` (409) — Remote builds are off for this environment or this app. Deploy with a local build instead.
1238
+ * @throws {FaableApiError} `deploy_refused` (409) — The deploy was refused by quota, plan or an in-flight deployment. `message` says which.
1239
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1240
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
893
1241
  */
894
1242
  deploymentCreate(data: OpBody<"deployment/create">): Promise<{
895
1243
  id: string;
@@ -920,6 +1268,17 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
920
1268
  * `DELETE /deployment/{id}` — operationId: `deployment/delete`
921
1269
  *
922
1270
  * Delete Deployment
1271
+ *
1272
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1273
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1274
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1275
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1276
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1277
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1278
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1279
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1280
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1281
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
923
1282
  */
924
1283
  deploymentDelete(id: string): Promise<{
925
1284
  id: string;
@@ -950,6 +1309,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
950
1309
  * `GET /deployment/{id}` — operationId: `deployment/get`
951
1310
  *
952
1311
  * Get Deployment
1312
+ *
1313
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1314
+ * @throws {FaableApiError} `invalid_expand` (400) — An `?expand=` path is not allowed on this resource.
1315
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1316
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1317
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1318
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1319
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1320
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1321
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1322
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1323
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
953
1324
  */
954
1325
  deploymentGet(id: string): Promise<{
955
1326
  id: string;
@@ -980,6 +1351,17 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
980
1351
  * `GET /deployment/{deployment_id}/logs` — operationId: `deployment/get_logs`
981
1352
  *
982
1353
  * Get deployment build logs
1354
+ *
1355
+ * Get the CLI build/deploy output attached to a deployment
1356
+ *
1357
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1358
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1359
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1360
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1361
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1362
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1363
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1364
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
983
1365
  */
984
1366
  deploymentGetLogs(deployment_id: string): Promise<{
985
1367
  id: string;
@@ -999,6 +1381,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
999
1381
  * `GET /deployment` — operationId: `deployment/list`
1000
1382
  *
1001
1383
  * List Deployments
1384
+ *
1385
+ * @throws {FaableApiError} `invalid_query` (400) — The `?query=` FaableQL expression could not be parsed.
1386
+ * @throws {FaableApiError} `invalid_expand` (400) — An `?expand=` path is not allowed on this resource.
1387
+ * @throws {FaableApiError} `search_not_supported` (400) — This resource does not support `?q=`.
1388
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1389
+ * @throws {FaableApiError} `team_or_scope_required` (401) — Listing needs either a project in `x-faable-team` or a global scope on the token.
1390
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1391
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1392
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1393
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1394
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1395
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1002
1396
  */
1003
1397
  deploymentList(params?: Omit<OpQuery<"deployment/list">, "cursor" | "next">): {
1004
1398
  all: () => Promise<{
@@ -1084,6 +1478,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1084
1478
  * `POST /deployment/{id}` — operationId: `deployment/update`
1085
1479
  *
1086
1480
  * Update Deployment
1481
+ *
1482
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1483
+ * @throws {FaableApiError} `already_exists` (400) — A resource with the same unique field already exists. `details.fields` names the field.
1484
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1485
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1486
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1487
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1488
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1489
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1490
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1491
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1492
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1087
1493
  */
1088
1494
  deploymentUpdate(id: string, data: OpBody<"deployment/update">): Promise<{
1089
1495
  id: string;
@@ -1114,6 +1520,19 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1114
1520
  * `POST /domain` — operationId: `domain/create`
1115
1521
  *
1116
1522
  * Create Domain
1523
+ *
1524
+ * @throws {FaableApiError} `already_exists` (400) — A resource with the same unique field already exists. `details.fields` names the field.
1525
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1526
+ * @throws {FaableApiError} `team_required` (400) — The operation needs a project: send it in the `x-faable-team` header.
1527
+ * @throws {FaableApiError} `domain_invalid` (400) — Not a valid hostname. No protocol, port or path.
1528
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1529
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1530
+ * @throws {FaableApiError} `domain_reserved` (403) — Hostnames under that domain are assigned by Faable.
1531
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1532
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1533
+ * @throws {FaableApiError} `domain_taken` (409) — That hostname is already registered on Faable.
1534
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1535
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1117
1536
  */
1118
1537
  domainCreate(data: OpBody<"domain/create">): Promise<{
1119
1538
  id: string;
@@ -1135,6 +1554,17 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1135
1554
  * `DELETE /domain/{id}` — operationId: `domain/delete`
1136
1555
  *
1137
1556
  * Delete Domain
1557
+ *
1558
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1559
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1560
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1561
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1562
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1563
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1564
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1565
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1566
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1567
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1138
1568
  */
1139
1569
  domainDelete(id: string): Promise<{
1140
1570
  id: string;
@@ -1156,6 +1586,14 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1156
1586
  * `GET /domain/fqdn/{fqdn}` — operationId: `domain/fqdn`
1157
1587
  *
1158
1588
  * Get domain by FQDN
1589
+ *
1590
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1591
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1592
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1593
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1594
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1595
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1596
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1159
1597
  */
1160
1598
  domainFqdn(fqdn: string): Promise<{
1161
1599
  id: string;
@@ -1177,6 +1615,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1177
1615
  * `GET /domain/{id}` — operationId: `domain/get`
1178
1616
  *
1179
1617
  * Get Domain
1618
+ *
1619
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1620
+ * @throws {FaableApiError} `invalid_expand` (400) — An `?expand=` path is not allowed on this resource.
1621
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1622
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1623
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1624
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1625
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1626
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1627
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1628
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1629
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1180
1630
  */
1181
1631
  domainGet(id: string): Promise<{
1182
1632
  id: string;
@@ -1198,6 +1648,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1198
1648
  * `GET /domain` — operationId: `domain/list`
1199
1649
  *
1200
1650
  * List Domains
1651
+ *
1652
+ * @throws {FaableApiError} `invalid_query` (400) — The `?query=` FaableQL expression could not be parsed.
1653
+ * @throws {FaableApiError} `invalid_expand` (400) — An `?expand=` path is not allowed on this resource.
1654
+ * @throws {FaableApiError} `search_not_supported` (400) — This resource does not support `?q=`.
1655
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1656
+ * @throws {FaableApiError} `team_or_scope_required` (401) — Listing needs either a project in `x-faable-team` or a global scope on the token.
1657
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1658
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1659
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1660
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1661
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1662
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1201
1663
  */
1202
1664
  domainList(params?: Omit<OpQuery<"domain/list">, "cursor" | "next">): {
1203
1665
  all: () => Promise<{
@@ -1256,6 +1718,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1256
1718
  * `POST /domain/{id}` — operationId: `domain/update`
1257
1719
  *
1258
1720
  * Update Domain
1721
+ *
1722
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1723
+ * @throws {FaableApiError} `already_exists` (400) — A resource with the same unique field already exists. `details.fields` names the field.
1724
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1725
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1726
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1727
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1728
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1729
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1730
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1731
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1732
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1259
1733
  */
1260
1734
  domainUpdate(id: string, data: OpBody<"domain/update">): Promise<{
1261
1735
  id: string;
@@ -1277,6 +1751,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1277
1751
  * `POST /project` — operationId: `project/create`
1278
1752
  *
1279
1753
  * Create Project
1754
+ *
1755
+ * @throws {FaableApiError} `already_exists` (400) — A resource with the same unique field already exists. `details.fields` names the field.
1756
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1757
+ * @throws {FaableApiError} `team_required` (400) — The operation needs a project: send it in the `x-faable-team` header.
1758
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1759
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1760
+ * @throws {FaableApiError} `project_plan_limited` (402) — The Free plan project cap is reached. Upgrade to create more.
1761
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1762
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1763
+ * @throws {FaableApiError} `project_rate_limited` (429) — A new account may only create a few projects in its first hours. It opens with time, or with a plan.
1764
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1765
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1280
1766
  */
1281
1767
  projectCreate(data: OpBody<"project/create">): Promise<{
1282
1768
  id: string;
@@ -1296,6 +1782,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1296
1782
  * `DELETE /project/{id}` — operationId: `project/delete`
1297
1783
  *
1298
1784
  * Delete Project
1785
+ *
1786
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1787
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1788
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1789
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1790
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1791
+ * @throws {FaableApiError} `moderation_hold` (403) — The project contains an app disabled by moderation and cannot be deleted. Contact support@faable.com.
1792
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1793
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1794
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1795
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1796
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1299
1797
  */
1300
1798
  projectDelete(id: string): Promise<{
1301
1799
  id: string;
@@ -1315,6 +1813,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1315
1813
  * `GET /project/{id}` — operationId: `project/get`
1316
1814
  *
1317
1815
  * Get Project
1816
+ *
1817
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1818
+ * @throws {FaableApiError} `invalid_expand` (400) — An `?expand=` path is not allowed on this resource.
1819
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1820
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1821
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1822
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1823
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1824
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1825
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
1826
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1827
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1318
1828
  */
1319
1829
  projectGet(id: string): Promise<{
1320
1830
  id: string;
@@ -1334,6 +1844,15 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1334
1844
  * `POST /project/{id}/invite` — operationId: `project/invite`
1335
1845
  *
1336
1846
  * Invite collaborators to project
1847
+ *
1848
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1849
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1850
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1851
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1852
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1853
+ * @throws {FaableApiError} `project_not_found` (404) — No project with that id for this caller.
1854
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1855
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1337
1856
  */
1338
1857
  projectInvite(id: string, data: OpBody<"project/invite">): Promise<{
1339
1858
  project: import("./types.js").components["schemas"]["Project"];
@@ -1343,10 +1862,50 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1343
1862
  user_id?: string;
1344
1863
  }[];
1345
1864
  }>;
1865
+ /**
1866
+ * `GET /project/limits` — operationId: `project/limits`
1867
+ *
1868
+ * Project creation limits for the caller
1869
+ *
1870
+ * Whether the caller can create another project, and why not
1871
+ *
1872
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1873
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1874
+ * @throws {FaableApiError} `owner_only` (403) — Only the project owner can manage collaborators.
1875
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1876
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1877
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1878
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1879
+ */
1880
+ projectLimits(): Promise<{
1881
+ can_create: boolean;
1882
+ reason: "free_project_limit" | "new_account_window" | null;
1883
+ message: string | null;
1884
+ free_projects: number | null;
1885
+ max_free_projects: number | null;
1886
+ upgradable_projects: {
1887
+ id: string;
1888
+ name: string;
1889
+ }[];
1890
+ new_account_window_ends_at: string | null;
1891
+ resolved: boolean;
1892
+ }>;
1346
1893
  /**
1347
1894
  * `GET /project` — operationId: `project/list`
1348
1895
  *
1349
1896
  * List Projects
1897
+ *
1898
+ * @throws {FaableApiError} `invalid_query` (400) — The `?query=` FaableQL expression could not be parsed.
1899
+ * @throws {FaableApiError} `invalid_expand` (400) — An `?expand=` path is not allowed on this resource.
1900
+ * @throws {FaableApiError} `search_not_supported` (400) — This resource does not support `?q=`.
1901
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1902
+ * @throws {FaableApiError} `team_or_scope_required` (401) — Listing needs either a project in `x-faable-team` or a global scope on the token.
1903
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1904
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1905
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1906
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1907
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1908
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1350
1909
  */
1351
1910
  projectList(params?: Omit<OpQuery<"project/list">, "cursor" | "next">): {
1352
1911
  all: () => Promise<{
@@ -1399,6 +1958,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1399
1958
  * `DELETE /project/{id}/collaborator/{user_id}` — operationId: `project/removeCollaborator`
1400
1959
  *
1401
1960
  * Remove a collaborator from a project
1961
+ *
1962
+ * @throws {FaableApiError} `owner_not_removable` (400) — The project owner cannot be removed. Delete the project instead.
1963
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1964
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1965
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1966
+ * @throws {FaableApiError} `superadmin_only` (403) — The operation is restricted to platform staff.
1967
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
1968
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
1969
+ * @throws {FaableApiError} `collaborator_not_found` (404) — That user is not a collaborator on the project.
1970
+ * @throws {FaableApiError} `project_not_found` (404) — No project with that id for this caller.
1971
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
1972
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1402
1973
  */
1403
1974
  projectRemoveCollaborator(id: string, user_id: string): Promise<{
1404
1975
  id: string;
@@ -1418,6 +1989,18 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1418
1989
  * `POST /project/{id}` — operationId: `project/update`
1419
1990
  *
1420
1991
  * Update Project
1992
+ *
1993
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
1994
+ * @throws {FaableApiError} `already_exists` (400) — A resource with the same unique field already exists. `details.fields` names the field.
1995
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
1996
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
1997
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
1998
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
1999
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
2000
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
2001
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
2002
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
2003
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1421
2004
  */
1422
2005
  projectUpdate(id: string, data: OpBody<"project/update">): Promise<{
1423
2006
  id: string;
@@ -1437,6 +2020,16 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1437
2020
  * `POST /secret/createbatch` — operationId: `secrets/create_batch`
1438
2021
  *
1439
2022
  * Create secrets in batch
2023
+ *
2024
+ * Create a secrets in batch
2025
+ *
2026
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
2027
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
2028
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
2029
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
2030
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
2031
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
2032
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1440
2033
  */
1441
2034
  secretsCreateBatch(data: OpBody<"secrets/create_batch">): Promise<{
1442
2035
  id: string;
@@ -1457,12 +2050,33 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1457
2050
  * `DELETE /secret/{secret_id}` — operationId: `secrets/delete`
1458
2051
  *
1459
2052
  * Delete a secret
2053
+ *
2054
+ * @throws {FaableApiError} `invalid_id` (400) — The id in the path is not a valid id for this resource.
2055
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
2056
+ * @throws {FaableApiError} `access_denied` (401) — The row exists but does not belong to the caller.
2057
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
2058
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
2059
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
2060
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
2061
+ * @throws {FaableApiError} `not_found` (404) — The resource does not exist, or not in the caller’s project.
2062
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
2063
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1460
2064
  */
1461
2065
  secretsDelete(secret_id: string): Promise<void>;
1462
2066
  /**
1463
2067
  * `GET /secret/{context_id}` — operationId: `secrets/list_app`
1464
2068
  *
1465
2069
  * List all secrets assigned to an App or Profile contexts
2070
+ *
2071
+ * List all app secrets assigned to an App or Profile contexts
2072
+ *
2073
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
2074
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
2075
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
2076
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
2077
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
2078
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
2079
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1466
2080
  */
1467
2081
  secretsListApp(context_id: string, params?: OpQuery<"secrets/list_app">): Promise<{
1468
2082
  next: string | null;
@@ -1472,6 +2086,14 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1472
2086
  * `POST /secret` — operationId: `secrets/upsert`
1473
2087
  *
1474
2088
  * Upsert a secret
2089
+ *
2090
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
2091
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
2092
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
2093
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
2094
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
2095
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
2096
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1475
2097
  */
1476
2098
  secretsUpsert(data: OpBody<"secrets/upsert">): Promise<{
1477
2099
  id: string;
@@ -1492,6 +2114,14 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1492
2114
  * `GET /usage/summary` — operationId: `usage/summary`
1493
2115
  *
1494
2116
  * Get team usage summary for the current billing period
2117
+ *
2118
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
2119
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
2120
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
2121
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
2122
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
2123
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
2124
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1495
2125
  */
1496
2126
  usageSummary(params?: OpQuery<"usage/summary">): Promise<{
1497
2127
  resources: {
@@ -1531,6 +2161,13 @@ export declare abstract class GeneratedFaableDeployApi extends FaableApi {
1531
2161
  * `GET /usage/traffic` — operationId: `usage/traffic`
1532
2162
  *
1533
2163
  * Get metered traffic usage per team for the current period
2164
+ *
2165
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
2166
+ * @throws {FaableApiError} `invalid_token` (401) — The bearer token is missing, malformed or expired.
2167
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
2168
+ * @throws {FaableApiError} `user_suspended` (403) — The account is suspended. Contact support@faable.com.
2169
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
2170
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
1534
2171
  */
1535
2172
  usageTraffic(): Promise<{
1536
2173
  traffic: {