@lizard-build/sdk 0.1.60 → 0.1.62
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.
- package/dist/index.d.mts +67 -14
- package/dist/index.d.ts +67 -14
- package/dist/index.js +49 -5
- package/dist/index.mjs +49 -5
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -68,7 +68,7 @@ interface Addon {
|
|
|
68
68
|
name: string;
|
|
69
69
|
type: AddonType;
|
|
70
70
|
projectId: string;
|
|
71
|
-
status: 'none' | 'running' | 'crashed' | 'stopped';
|
|
71
|
+
status: 'none' | 'running' | 'crashed' | 'stopped' | 'paused';
|
|
72
72
|
deployStatus: string;
|
|
73
73
|
version?: string;
|
|
74
74
|
/** Exposed connection variables (e.g. DATABASE_URL, REDIS_URL). */
|
|
@@ -117,6 +117,13 @@ declare class AddonsAPI {
|
|
|
117
117
|
}): Promise<Addon>;
|
|
118
118
|
/** Restart an addon. */
|
|
119
119
|
redeploy(projectId: string, addonId: string): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Pause a managed database: it scales to 0 (connections are refused) and keeps its host,
|
|
122
|
+
* port, password and data. Postgres and Redis.
|
|
123
|
+
*/
|
|
124
|
+
pause(projectId: string, addonId: string): Promise<PauseState>;
|
|
125
|
+
/** Resume a paused database: same host, port, password and data. */
|
|
126
|
+
resume(projectId: string, addonId: string): Promise<PauseState>;
|
|
120
127
|
rename(projectId: string, addonId: string, name: string): Promise<unknown>;
|
|
121
128
|
secrets(projectId: string, addonId: string): Promise<Array<{
|
|
122
129
|
key: string;
|
|
@@ -136,6 +143,25 @@ interface CreateProjectOpts {
|
|
|
136
143
|
workspaceId: string;
|
|
137
144
|
name: string;
|
|
138
145
|
}
|
|
146
|
+
/** One app or managed database a project / workspace pause or resume acted on. */
|
|
147
|
+
interface PausedService {
|
|
148
|
+
kind: 'app' | 'database';
|
|
149
|
+
id: string;
|
|
150
|
+
name: string;
|
|
151
|
+
}
|
|
152
|
+
/** What `projects.pause/resume` and `workspaces.pause/resume` answer: what was done, and
|
|
153
|
+
* what was skipped with why (already paused, not running, busy, a storage bucket...). */
|
|
154
|
+
interface PauseResult {
|
|
155
|
+
done: PausedService[];
|
|
156
|
+
skipped: Array<PausedService & {
|
|
157
|
+
reason: string;
|
|
158
|
+
}>;
|
|
159
|
+
}
|
|
160
|
+
/** What pausing or resuming one service answers. */
|
|
161
|
+
interface PauseState {
|
|
162
|
+
ok: boolean;
|
|
163
|
+
status: 'paused' | 'running';
|
|
164
|
+
}
|
|
139
165
|
declare class ProjectsAPI {
|
|
140
166
|
private readonly client;
|
|
141
167
|
constructor(client: PlatformClient);
|
|
@@ -154,6 +180,13 @@ declare class ProjectsAPI {
|
|
|
154
180
|
update(id: string, opts: {
|
|
155
181
|
name?: string;
|
|
156
182
|
}): Promise<Project>;
|
|
183
|
+
/**
|
|
184
|
+
* Pause every app and managed database of a project: each scales to 0 and keeps its URL,
|
|
185
|
+
* host, port, password, settings and volumes. Skipped ones are listed with why.
|
|
186
|
+
*/
|
|
187
|
+
pause(id: string): Promise<PauseResult>;
|
|
188
|
+
/** Resume what was paused in a project (not what a billing freeze paused). */
|
|
189
|
+
resume(id: string): Promise<PauseResult>;
|
|
157
190
|
/** Delete a project. */
|
|
158
191
|
delete(id: string): Promise<void>;
|
|
159
192
|
apply(id: string, config: ProjectConfig): Promise<ConfigResult>;
|
|
@@ -205,7 +238,7 @@ interface Service {
|
|
|
205
238
|
id: string;
|
|
206
239
|
name: string;
|
|
207
240
|
projectId: string;
|
|
208
|
-
status: 'none' | 'running' | 'crashed' | 'stopped';
|
|
241
|
+
status: 'none' | 'running' | 'crashed' | 'stopped' | 'paused';
|
|
209
242
|
deployStatus: 'idle' | 'building' | 'deploying' | 'restarting' | 'failed' | 'deleting';
|
|
210
243
|
domain?: string;
|
|
211
244
|
region?: string;
|
|
@@ -323,6 +356,13 @@ declare class ServicesAPI {
|
|
|
323
356
|
redeploy(id: string): Promise<DeployHandle>;
|
|
324
357
|
/** Restart a service without rebuilding. */
|
|
325
358
|
restart(id: string): Promise<void>;
|
|
359
|
+
/**
|
|
360
|
+
* Pause a service: it scales to 0 (its URL answers 503) and keeps its URL, settings, env
|
|
361
|
+
* and volumes. Restart and redeploy are refused until it is resumed.
|
|
362
|
+
*/
|
|
363
|
+
pause(id: string): Promise<PauseState>;
|
|
364
|
+
/** Resume a paused service: it starts again from the same image, with its data. */
|
|
365
|
+
resume(id: string): Promise<PauseState>;
|
|
326
366
|
/** Scale a service. */
|
|
327
367
|
scale(id: string, opts: ScaleOpts): Promise<void>;
|
|
328
368
|
/**
|
|
@@ -1432,6 +1472,13 @@ declare class WorkspacesAPI {
|
|
|
1432
1472
|
* `code: 'ACCOUNT_SCOPE_REQUIRED'`.
|
|
1433
1473
|
*/
|
|
1434
1474
|
create(opts: CreateWorkspaceOpts): Promise<Workspace>;
|
|
1475
|
+
/**
|
|
1476
|
+
* Pause every app and managed database in every project of a workspace (owner only).
|
|
1477
|
+
* Each keeps its URL, host, port, password, settings and volumes.
|
|
1478
|
+
*/
|
|
1479
|
+
pause(id: string): Promise<PauseResult>;
|
|
1480
|
+
/** Resume what was paused in a workspace (owner only; not what a billing freeze paused). */
|
|
1481
|
+
resume(id: string): Promise<PauseResult>;
|
|
1435
1482
|
/**
|
|
1436
1483
|
* Delete a workspace.
|
|
1437
1484
|
*
|
|
@@ -1982,11 +2029,11 @@ declare class Lizard {
|
|
|
1982
2029
|
/**
|
|
1983
2030
|
* The account this credential belongs to — the SDK's `lizard whoami`.
|
|
1984
2031
|
*
|
|
1985
|
-
* A **scoped** key
|
|
1986
|
-
*
|
|
1987
|
-
*
|
|
1988
|
-
*
|
|
1989
|
-
*
|
|
2032
|
+
* A **scoped** key never learns whose account it is: it gets only `scoped: true` and
|
|
2033
|
+
* its `scopes`, each project or workspace with its name. No id, username, avatar,
|
|
2034
|
+
* email, balance or plan -- a scoped key is meant to be handed to someone who is not
|
|
2035
|
+
* the account's member, or injected into a sandbox. An unscoped key or a session
|
|
2036
|
+
* sees the full account.
|
|
1990
2037
|
*
|
|
1991
2038
|
* Reading back `scopes` is the cheapest way to answer "what can this key reach".
|
|
1992
2039
|
*/
|
|
@@ -1995,21 +2042,27 @@ declare class Lizard {
|
|
|
1995
2042
|
get platform(): PlatformClient;
|
|
1996
2043
|
}
|
|
1997
2044
|
/**
|
|
1998
|
-
* The account behind a credential
|
|
2045
|
+
* The account behind a credential -- see {@link Lizard.whoami}.
|
|
1999
2046
|
*
|
|
2000
|
-
*
|
|
2001
|
-
*
|
|
2047
|
+
* A scoped key gets only `scoped: true` and `scopes`; every other field is present only
|
|
2048
|
+
* for an unscoped key or a session.
|
|
2002
2049
|
*/
|
|
2003
2050
|
interface Account {
|
|
2004
|
-
|
|
2005
|
-
|
|
2051
|
+
/** Absent for a scoped key. */
|
|
2052
|
+
id?: string;
|
|
2053
|
+
/** Absent for a scoped key. */
|
|
2054
|
+
username?: string;
|
|
2006
2055
|
avatarUrl?: string | null;
|
|
2007
|
-
/** True when the calling key is scoped, meaning the account fields
|
|
2056
|
+
/** True when the calling key is scoped, meaning the account fields are absent. */
|
|
2008
2057
|
scoped?: boolean;
|
|
2009
|
-
/** What the calling key may reach. Present when `scoped` is true. */
|
|
2058
|
+
/** What the calling key may reach, by name. Present when `scoped` is true. */
|
|
2010
2059
|
scopes?: Array<{
|
|
2011
2060
|
type: 'workspace' | 'project';
|
|
2012
2061
|
id: string;
|
|
2062
|
+
name?: string | null;
|
|
2063
|
+
/** For a project scope: the workspace it belongs to. */
|
|
2064
|
+
workspaceId?: string | null;
|
|
2065
|
+
workspaceName?: string | null;
|
|
2013
2066
|
}>;
|
|
2014
2067
|
email?: string | null;
|
|
2015
2068
|
plan?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -68,7 +68,7 @@ interface Addon {
|
|
|
68
68
|
name: string;
|
|
69
69
|
type: AddonType;
|
|
70
70
|
projectId: string;
|
|
71
|
-
status: 'none' | 'running' | 'crashed' | 'stopped';
|
|
71
|
+
status: 'none' | 'running' | 'crashed' | 'stopped' | 'paused';
|
|
72
72
|
deployStatus: string;
|
|
73
73
|
version?: string;
|
|
74
74
|
/** Exposed connection variables (e.g. DATABASE_URL, REDIS_URL). */
|
|
@@ -117,6 +117,13 @@ declare class AddonsAPI {
|
|
|
117
117
|
}): Promise<Addon>;
|
|
118
118
|
/** Restart an addon. */
|
|
119
119
|
redeploy(projectId: string, addonId: string): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Pause a managed database: it scales to 0 (connections are refused) and keeps its host,
|
|
122
|
+
* port, password and data. Postgres and Redis.
|
|
123
|
+
*/
|
|
124
|
+
pause(projectId: string, addonId: string): Promise<PauseState>;
|
|
125
|
+
/** Resume a paused database: same host, port, password and data. */
|
|
126
|
+
resume(projectId: string, addonId: string): Promise<PauseState>;
|
|
120
127
|
rename(projectId: string, addonId: string, name: string): Promise<unknown>;
|
|
121
128
|
secrets(projectId: string, addonId: string): Promise<Array<{
|
|
122
129
|
key: string;
|
|
@@ -136,6 +143,25 @@ interface CreateProjectOpts {
|
|
|
136
143
|
workspaceId: string;
|
|
137
144
|
name: string;
|
|
138
145
|
}
|
|
146
|
+
/** One app or managed database a project / workspace pause or resume acted on. */
|
|
147
|
+
interface PausedService {
|
|
148
|
+
kind: 'app' | 'database';
|
|
149
|
+
id: string;
|
|
150
|
+
name: string;
|
|
151
|
+
}
|
|
152
|
+
/** What `projects.pause/resume` and `workspaces.pause/resume` answer: what was done, and
|
|
153
|
+
* what was skipped with why (already paused, not running, busy, a storage bucket...). */
|
|
154
|
+
interface PauseResult {
|
|
155
|
+
done: PausedService[];
|
|
156
|
+
skipped: Array<PausedService & {
|
|
157
|
+
reason: string;
|
|
158
|
+
}>;
|
|
159
|
+
}
|
|
160
|
+
/** What pausing or resuming one service answers. */
|
|
161
|
+
interface PauseState {
|
|
162
|
+
ok: boolean;
|
|
163
|
+
status: 'paused' | 'running';
|
|
164
|
+
}
|
|
139
165
|
declare class ProjectsAPI {
|
|
140
166
|
private readonly client;
|
|
141
167
|
constructor(client: PlatformClient);
|
|
@@ -154,6 +180,13 @@ declare class ProjectsAPI {
|
|
|
154
180
|
update(id: string, opts: {
|
|
155
181
|
name?: string;
|
|
156
182
|
}): Promise<Project>;
|
|
183
|
+
/**
|
|
184
|
+
* Pause every app and managed database of a project: each scales to 0 and keeps its URL,
|
|
185
|
+
* host, port, password, settings and volumes. Skipped ones are listed with why.
|
|
186
|
+
*/
|
|
187
|
+
pause(id: string): Promise<PauseResult>;
|
|
188
|
+
/** Resume what was paused in a project (not what a billing freeze paused). */
|
|
189
|
+
resume(id: string): Promise<PauseResult>;
|
|
157
190
|
/** Delete a project. */
|
|
158
191
|
delete(id: string): Promise<void>;
|
|
159
192
|
apply(id: string, config: ProjectConfig): Promise<ConfigResult>;
|
|
@@ -205,7 +238,7 @@ interface Service {
|
|
|
205
238
|
id: string;
|
|
206
239
|
name: string;
|
|
207
240
|
projectId: string;
|
|
208
|
-
status: 'none' | 'running' | 'crashed' | 'stopped';
|
|
241
|
+
status: 'none' | 'running' | 'crashed' | 'stopped' | 'paused';
|
|
209
242
|
deployStatus: 'idle' | 'building' | 'deploying' | 'restarting' | 'failed' | 'deleting';
|
|
210
243
|
domain?: string;
|
|
211
244
|
region?: string;
|
|
@@ -323,6 +356,13 @@ declare class ServicesAPI {
|
|
|
323
356
|
redeploy(id: string): Promise<DeployHandle>;
|
|
324
357
|
/** Restart a service without rebuilding. */
|
|
325
358
|
restart(id: string): Promise<void>;
|
|
359
|
+
/**
|
|
360
|
+
* Pause a service: it scales to 0 (its URL answers 503) and keeps its URL, settings, env
|
|
361
|
+
* and volumes. Restart and redeploy are refused until it is resumed.
|
|
362
|
+
*/
|
|
363
|
+
pause(id: string): Promise<PauseState>;
|
|
364
|
+
/** Resume a paused service: it starts again from the same image, with its data. */
|
|
365
|
+
resume(id: string): Promise<PauseState>;
|
|
326
366
|
/** Scale a service. */
|
|
327
367
|
scale(id: string, opts: ScaleOpts): Promise<void>;
|
|
328
368
|
/**
|
|
@@ -1432,6 +1472,13 @@ declare class WorkspacesAPI {
|
|
|
1432
1472
|
* `code: 'ACCOUNT_SCOPE_REQUIRED'`.
|
|
1433
1473
|
*/
|
|
1434
1474
|
create(opts: CreateWorkspaceOpts): Promise<Workspace>;
|
|
1475
|
+
/**
|
|
1476
|
+
* Pause every app and managed database in every project of a workspace (owner only).
|
|
1477
|
+
* Each keeps its URL, host, port, password, settings and volumes.
|
|
1478
|
+
*/
|
|
1479
|
+
pause(id: string): Promise<PauseResult>;
|
|
1480
|
+
/** Resume what was paused in a workspace (owner only; not what a billing freeze paused). */
|
|
1481
|
+
resume(id: string): Promise<PauseResult>;
|
|
1435
1482
|
/**
|
|
1436
1483
|
* Delete a workspace.
|
|
1437
1484
|
*
|
|
@@ -1982,11 +2029,11 @@ declare class Lizard {
|
|
|
1982
2029
|
/**
|
|
1983
2030
|
* The account this credential belongs to — the SDK's `lizard whoami`.
|
|
1984
2031
|
*
|
|
1985
|
-
* A **scoped** key
|
|
1986
|
-
*
|
|
1987
|
-
*
|
|
1988
|
-
*
|
|
1989
|
-
*
|
|
2032
|
+
* A **scoped** key never learns whose account it is: it gets only `scoped: true` and
|
|
2033
|
+
* its `scopes`, each project or workspace with its name. No id, username, avatar,
|
|
2034
|
+
* email, balance or plan -- a scoped key is meant to be handed to someone who is not
|
|
2035
|
+
* the account's member, or injected into a sandbox. An unscoped key or a session
|
|
2036
|
+
* sees the full account.
|
|
1990
2037
|
*
|
|
1991
2038
|
* Reading back `scopes` is the cheapest way to answer "what can this key reach".
|
|
1992
2039
|
*/
|
|
@@ -1995,21 +2042,27 @@ declare class Lizard {
|
|
|
1995
2042
|
get platform(): PlatformClient;
|
|
1996
2043
|
}
|
|
1997
2044
|
/**
|
|
1998
|
-
* The account behind a credential
|
|
2045
|
+
* The account behind a credential -- see {@link Lizard.whoami}.
|
|
1999
2046
|
*
|
|
2000
|
-
*
|
|
2001
|
-
*
|
|
2047
|
+
* A scoped key gets only `scoped: true` and `scopes`; every other field is present only
|
|
2048
|
+
* for an unscoped key or a session.
|
|
2002
2049
|
*/
|
|
2003
2050
|
interface Account {
|
|
2004
|
-
|
|
2005
|
-
|
|
2051
|
+
/** Absent for a scoped key. */
|
|
2052
|
+
id?: string;
|
|
2053
|
+
/** Absent for a scoped key. */
|
|
2054
|
+
username?: string;
|
|
2006
2055
|
avatarUrl?: string | null;
|
|
2007
|
-
/** True when the calling key is scoped, meaning the account fields
|
|
2056
|
+
/** True when the calling key is scoped, meaning the account fields are absent. */
|
|
2008
2057
|
scoped?: boolean;
|
|
2009
|
-
/** What the calling key may reach. Present when `scoped` is true. */
|
|
2058
|
+
/** What the calling key may reach, by name. Present when `scoped` is true. */
|
|
2010
2059
|
scopes?: Array<{
|
|
2011
2060
|
type: 'workspace' | 'project';
|
|
2012
2061
|
id: string;
|
|
2062
|
+
name?: string | null;
|
|
2063
|
+
/** For a project scope: the workspace it belongs to. */
|
|
2064
|
+
workspaceId?: string | null;
|
|
2065
|
+
workspaceName?: string | null;
|
|
2013
2066
|
}>;
|
|
2014
2067
|
email?: string | null;
|
|
2015
2068
|
plan?: string;
|
package/dist/index.js
CHANGED
|
@@ -407,6 +407,17 @@ var ServicesAPI = class {
|
|
|
407
407
|
restart(id) {
|
|
408
408
|
return this.client.post(`/api/apps/${id}/restart`, {});
|
|
409
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Pause a service: it scales to 0 (its URL answers 503) and keeps its URL, settings, env
|
|
412
|
+
* and volumes. Restart and redeploy are refused until it is resumed.
|
|
413
|
+
*/
|
|
414
|
+
pause(id) {
|
|
415
|
+
return this.client.post(`/api/apps/${id}/pause`, {});
|
|
416
|
+
}
|
|
417
|
+
/** Resume a paused service: it starts again from the same image, with its data. */
|
|
418
|
+
resume(id) {
|
|
419
|
+
return this.client.post(`/api/apps/${id}/resume`, {});
|
|
420
|
+
}
|
|
410
421
|
/** Scale a service. */
|
|
411
422
|
async scale(id, opts) {
|
|
412
423
|
if (opts.storageMi !== void 0) throw new LizardError("Storage scaling is only supported for addons");
|
|
@@ -1393,6 +1404,17 @@ var ProjectsAPI = class {
|
|
|
1393
1404
|
update(id, opts) {
|
|
1394
1405
|
return this.client.patch(`/api/projects/${id}`, opts);
|
|
1395
1406
|
}
|
|
1407
|
+
/**
|
|
1408
|
+
* Pause every app and managed database of a project: each scales to 0 and keeps its URL,
|
|
1409
|
+
* host, port, password, settings and volumes. Skipped ones are listed with why.
|
|
1410
|
+
*/
|
|
1411
|
+
pause(id) {
|
|
1412
|
+
return this.client.post(`/api/projects/${id}/pause`, {});
|
|
1413
|
+
}
|
|
1414
|
+
/** Resume what was paused in a project (not what a billing freeze paused). */
|
|
1415
|
+
resume(id) {
|
|
1416
|
+
return this.client.post(`/api/projects/${id}/resume`, {});
|
|
1417
|
+
}
|
|
1396
1418
|
/** Delete a project. */
|
|
1397
1419
|
delete(id) {
|
|
1398
1420
|
return this.client.delete(`/api/projects/${id}`);
|
|
@@ -1473,6 +1495,17 @@ var AddonsAPI = class {
|
|
|
1473
1495
|
redeploy(projectId, addonId) {
|
|
1474
1496
|
return this.client.post(`/api/projects/${projectId}/addons/${addonId}/redeploy`, {});
|
|
1475
1497
|
}
|
|
1498
|
+
/**
|
|
1499
|
+
* Pause a managed database: it scales to 0 (connections are refused) and keeps its host,
|
|
1500
|
+
* port, password and data. Postgres and Redis.
|
|
1501
|
+
*/
|
|
1502
|
+
pause(projectId, addonId) {
|
|
1503
|
+
return this.client.post(`/api/projects/${projectId}/addons/${addonId}/pause`, {});
|
|
1504
|
+
}
|
|
1505
|
+
/** Resume a paused database: same host, port, password and data. */
|
|
1506
|
+
resume(projectId, addonId) {
|
|
1507
|
+
return this.client.post(`/api/projects/${projectId}/addons/${addonId}/resume`, {});
|
|
1508
|
+
}
|
|
1476
1509
|
rename(projectId, addonId, name) {
|
|
1477
1510
|
return this.client.patch(`/api/projects/${projectId}/addons/${addonId}`, { name });
|
|
1478
1511
|
}
|
|
@@ -1663,6 +1696,17 @@ var WorkspacesAPI = class {
|
|
|
1663
1696
|
create(opts) {
|
|
1664
1697
|
return this.client.post("/api/workspaces", opts);
|
|
1665
1698
|
}
|
|
1699
|
+
/**
|
|
1700
|
+
* Pause every app and managed database in every project of a workspace (owner only).
|
|
1701
|
+
* Each keeps its URL, host, port, password, settings and volumes.
|
|
1702
|
+
*/
|
|
1703
|
+
pause(id) {
|
|
1704
|
+
return this.client.post(`/api/workspaces/${id}/pause`, {});
|
|
1705
|
+
}
|
|
1706
|
+
/** Resume what was paused in a workspace (owner only; not what a billing freeze paused). */
|
|
1707
|
+
resume(id) {
|
|
1708
|
+
return this.client.post(`/api/workspaces/${id}/resume`, {});
|
|
1709
|
+
}
|
|
1666
1710
|
/**
|
|
1667
1711
|
* Delete a workspace.
|
|
1668
1712
|
*
|
|
@@ -1990,11 +2034,11 @@ var Lizard = class {
|
|
|
1990
2034
|
/**
|
|
1991
2035
|
* The account this credential belongs to — the SDK's `lizard whoami`.
|
|
1992
2036
|
*
|
|
1993
|
-
* A **scoped** key
|
|
1994
|
-
*
|
|
1995
|
-
*
|
|
1996
|
-
*
|
|
1997
|
-
*
|
|
2037
|
+
* A **scoped** key never learns whose account it is: it gets only `scoped: true` and
|
|
2038
|
+
* its `scopes`, each project or workspace with its name. No id, username, avatar,
|
|
2039
|
+
* email, balance or plan -- a scoped key is meant to be handed to someone who is not
|
|
2040
|
+
* the account's member, or injected into a sandbox. An unscoped key or a session
|
|
2041
|
+
* sees the full account.
|
|
1998
2042
|
*
|
|
1999
2043
|
* Reading back `scopes` is the cheapest way to answer "what can this key reach".
|
|
2000
2044
|
*/
|
package/dist/index.mjs
CHANGED
|
@@ -354,6 +354,17 @@ var ServicesAPI = class {
|
|
|
354
354
|
restart(id) {
|
|
355
355
|
return this.client.post(`/api/apps/${id}/restart`, {});
|
|
356
356
|
}
|
|
357
|
+
/**
|
|
358
|
+
* Pause a service: it scales to 0 (its URL answers 503) and keeps its URL, settings, env
|
|
359
|
+
* and volumes. Restart and redeploy are refused until it is resumed.
|
|
360
|
+
*/
|
|
361
|
+
pause(id) {
|
|
362
|
+
return this.client.post(`/api/apps/${id}/pause`, {});
|
|
363
|
+
}
|
|
364
|
+
/** Resume a paused service: it starts again from the same image, with its data. */
|
|
365
|
+
resume(id) {
|
|
366
|
+
return this.client.post(`/api/apps/${id}/resume`, {});
|
|
367
|
+
}
|
|
357
368
|
/** Scale a service. */
|
|
358
369
|
async scale(id, opts) {
|
|
359
370
|
if (opts.storageMi !== void 0) throw new LizardError("Storage scaling is only supported for addons");
|
|
@@ -1340,6 +1351,17 @@ var ProjectsAPI = class {
|
|
|
1340
1351
|
update(id, opts) {
|
|
1341
1352
|
return this.client.patch(`/api/projects/${id}`, opts);
|
|
1342
1353
|
}
|
|
1354
|
+
/**
|
|
1355
|
+
* Pause every app and managed database of a project: each scales to 0 and keeps its URL,
|
|
1356
|
+
* host, port, password, settings and volumes. Skipped ones are listed with why.
|
|
1357
|
+
*/
|
|
1358
|
+
pause(id) {
|
|
1359
|
+
return this.client.post(`/api/projects/${id}/pause`, {});
|
|
1360
|
+
}
|
|
1361
|
+
/** Resume what was paused in a project (not what a billing freeze paused). */
|
|
1362
|
+
resume(id) {
|
|
1363
|
+
return this.client.post(`/api/projects/${id}/resume`, {});
|
|
1364
|
+
}
|
|
1343
1365
|
/** Delete a project. */
|
|
1344
1366
|
delete(id) {
|
|
1345
1367
|
return this.client.delete(`/api/projects/${id}`);
|
|
@@ -1420,6 +1442,17 @@ var AddonsAPI = class {
|
|
|
1420
1442
|
redeploy(projectId, addonId) {
|
|
1421
1443
|
return this.client.post(`/api/projects/${projectId}/addons/${addonId}/redeploy`, {});
|
|
1422
1444
|
}
|
|
1445
|
+
/**
|
|
1446
|
+
* Pause a managed database: it scales to 0 (connections are refused) and keeps its host,
|
|
1447
|
+
* port, password and data. Postgres and Redis.
|
|
1448
|
+
*/
|
|
1449
|
+
pause(projectId, addonId) {
|
|
1450
|
+
return this.client.post(`/api/projects/${projectId}/addons/${addonId}/pause`, {});
|
|
1451
|
+
}
|
|
1452
|
+
/** Resume a paused database: same host, port, password and data. */
|
|
1453
|
+
resume(projectId, addonId) {
|
|
1454
|
+
return this.client.post(`/api/projects/${projectId}/addons/${addonId}/resume`, {});
|
|
1455
|
+
}
|
|
1423
1456
|
rename(projectId, addonId, name) {
|
|
1424
1457
|
return this.client.patch(`/api/projects/${projectId}/addons/${addonId}`, { name });
|
|
1425
1458
|
}
|
|
@@ -1610,6 +1643,17 @@ var WorkspacesAPI = class {
|
|
|
1610
1643
|
create(opts) {
|
|
1611
1644
|
return this.client.post("/api/workspaces", opts);
|
|
1612
1645
|
}
|
|
1646
|
+
/**
|
|
1647
|
+
* Pause every app and managed database in every project of a workspace (owner only).
|
|
1648
|
+
* Each keeps its URL, host, port, password, settings and volumes.
|
|
1649
|
+
*/
|
|
1650
|
+
pause(id) {
|
|
1651
|
+
return this.client.post(`/api/workspaces/${id}/pause`, {});
|
|
1652
|
+
}
|
|
1653
|
+
/** Resume what was paused in a workspace (owner only; not what a billing freeze paused). */
|
|
1654
|
+
resume(id) {
|
|
1655
|
+
return this.client.post(`/api/workspaces/${id}/resume`, {});
|
|
1656
|
+
}
|
|
1613
1657
|
/**
|
|
1614
1658
|
* Delete a workspace.
|
|
1615
1659
|
*
|
|
@@ -1937,11 +1981,11 @@ var Lizard = class {
|
|
|
1937
1981
|
/**
|
|
1938
1982
|
* The account this credential belongs to — the SDK's `lizard whoami`.
|
|
1939
1983
|
*
|
|
1940
|
-
* A **scoped** key
|
|
1941
|
-
*
|
|
1942
|
-
*
|
|
1943
|
-
*
|
|
1944
|
-
*
|
|
1984
|
+
* A **scoped** key never learns whose account it is: it gets only `scoped: true` and
|
|
1985
|
+
* its `scopes`, each project or workspace with its name. No id, username, avatar,
|
|
1986
|
+
* email, balance or plan -- a scoped key is meant to be handed to someone who is not
|
|
1987
|
+
* the account's member, or injected into a sandbox. An unscoped key or a session
|
|
1988
|
+
* sees the full account.
|
|
1945
1989
|
*
|
|
1946
1990
|
* Reading back `scopes` is the cheapest way to answer "what can this key reach".
|
|
1947
1991
|
*/
|
package/package.json
CHANGED