@exedev/sdk 0.0.6 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +128 -46
- package/dist/client.d.ts +59 -54
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +343 -99
- package/dist/client.js.map +1 -1
- package/dist/commands.gen.d.ts +1468 -0
- package/dist/commands.gen.d.ts.map +1 -0
- package/dist/commands.gen.js +1640 -0
- package/dist/commands.gen.js.map +1 -0
- package/dist/index.d.ts +9 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +110 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +8 -5
|
@@ -0,0 +1,1468 @@
|
|
|
1
|
+
import { Transport } from "./client.js";
|
|
2
|
+
import type { ExedevOptions, SSHOptions, SSHResult } from "./client.js";
|
|
3
|
+
import type { CommandResults } from "./types.js";
|
|
4
|
+
export interface CallOptions {
|
|
5
|
+
signal?: AbortSignal;
|
|
6
|
+
}
|
|
7
|
+
export interface WaitOptions extends CallOptions {
|
|
8
|
+
/** SSH readiness deadline, in milliseconds. Default 60,000. */
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ReadyOptions extends WaitOptions {
|
|
12
|
+
/** Default ssh. Use created to return without probing (and without ssh permission). */
|
|
13
|
+
waitUntil?: "ssh" | "created";
|
|
14
|
+
}
|
|
15
|
+
export interface VMInfo {
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly tags: readonly string[];
|
|
18
|
+
readonly sshDest?: string;
|
|
19
|
+
readonly httpsUrl?: string;
|
|
20
|
+
readonly status?: string;
|
|
21
|
+
readonly region?: string;
|
|
22
|
+
readonly comment?: string;
|
|
23
|
+
readonly createdAt?: string;
|
|
24
|
+
readonly setupError?: string;
|
|
25
|
+
}
|
|
26
|
+
export type CommandResult<P extends string> = P extends keyof CommandResults ? CommandResults[P] : unknown;
|
|
27
|
+
export type FlagKind = "bool" | "number" | "string" | "repeated";
|
|
28
|
+
export type Arg = string | readonly string[] | undefined;
|
|
29
|
+
/** Options for {@link ExedevClient.ls}. */
|
|
30
|
+
export interface LsOptions extends CallOptions {
|
|
31
|
+
/** group VMs by none|tag|region|type (default: none) */
|
|
32
|
+
group?: "none" | "tag" | "region";
|
|
33
|
+
/** show detailed information */
|
|
34
|
+
l?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/** Options for {@link ExedevClient.new}. */
|
|
37
|
+
export interface NewOptions extends ReadyOptions {
|
|
38
|
+
/** short note about the VM (max 200 bytes) */
|
|
39
|
+
comment?: string;
|
|
40
|
+
/** number of CPUs (default 2; run 'billing plan' for plan limits) */
|
|
41
|
+
cpu?: number;
|
|
42
|
+
/** disk size (e.g., 20, 20GB, 50G) */
|
|
43
|
+
disk?: string;
|
|
44
|
+
/** environment variable in KEY=VALUE format (can be specified multiple times) */
|
|
45
|
+
env?: string | readonly string[];
|
|
46
|
+
/** container image (default: exeuntu) */
|
|
47
|
+
image?: string;
|
|
48
|
+
/** integration name to attach (can be specified multiple times or comma-separated) */
|
|
49
|
+
integration?: string | readonly string[];
|
|
50
|
+
/** memory allocation (e.g., 4, 4GB, 8G) */
|
|
51
|
+
memory?: string;
|
|
52
|
+
/** VM name (auto-generated if not specified) */
|
|
53
|
+
name?: string;
|
|
54
|
+
/** do not send email notification */
|
|
55
|
+
"no-email"?: boolean;
|
|
56
|
+
/** use ordinary placement (not available on plans that place new VMs in pools) */
|
|
57
|
+
"no-pool"?: boolean;
|
|
58
|
+
/** create the VM in one of your team's pools (see 'pool list') */
|
|
59
|
+
pool?: string;
|
|
60
|
+
/** initial prompt to send to Shelley after VM creation (requires an image with Shelley, like exeuntu); use /dev/stdin to read from stdin */
|
|
61
|
+
prompt?: string;
|
|
62
|
+
/** private container registry credentials as USERNAME:PASSWORD (e.g. octocat:ghp_xxx) for the registry hosting --image */
|
|
63
|
+
"registry-auth"?: string;
|
|
64
|
+
/** alias for --standalone */
|
|
65
|
+
sandbox?: boolean;
|
|
66
|
+
/** setup script to run on first boot (max 10KiB); supports \n for newlines; use /dev/stdin to pipe from stdin */
|
|
67
|
+
"setup-script"?: string;
|
|
68
|
+
/** create a standalone VM with its own reserved capacity (requires a plan with standalone VMs and team approval) */
|
|
69
|
+
standalone?: boolean;
|
|
70
|
+
/** tag to add to the VM (can be specified multiple times or comma-separated) */
|
|
71
|
+
tag?: string | readonly string[];
|
|
72
|
+
}
|
|
73
|
+
/** Options for {@link VM.tag}. */
|
|
74
|
+
export interface TagOptions extends CallOptions {
|
|
75
|
+
/** delete tag */
|
|
76
|
+
d?: boolean;
|
|
77
|
+
}
|
|
78
|
+
/** Options for {@link VM.cp}. */
|
|
79
|
+
export interface CpOptions extends ReadyOptions {
|
|
80
|
+
/** Name of the copy; omitted to generate one. */
|
|
81
|
+
name?: string;
|
|
82
|
+
/** copy tags from source VM (use --copy-tags=false to disable) (default: true) */
|
|
83
|
+
"copy-tags"?: boolean;
|
|
84
|
+
/** number of CPUs */
|
|
85
|
+
cpu?: number;
|
|
86
|
+
/** disk size (e.g., 20, 20GB, 50G) */
|
|
87
|
+
disk?: string;
|
|
88
|
+
/** memory allocation (e.g., 4, 4GB, 8G) */
|
|
89
|
+
memory?: string;
|
|
90
|
+
/** create the copy in one of your team's pools (see 'pool list') */
|
|
91
|
+
pool?: string;
|
|
92
|
+
/** alias for --standalone */
|
|
93
|
+
sandbox?: boolean;
|
|
94
|
+
/** create the copy as a standalone VM with its own reserved capacity (requires a plan with standalone VMs and team approval) */
|
|
95
|
+
standalone?: boolean;
|
|
96
|
+
}
|
|
97
|
+
/** Options for {@link VM.resize}. */
|
|
98
|
+
export interface ResizeOptions extends CallOptions {
|
|
99
|
+
/** number of CPUs */
|
|
100
|
+
cpu?: number;
|
|
101
|
+
/** new total disk size (e.g., 25, 25GB) - disk size can only increase; billed by usage above your plan's included disk, not by size */
|
|
102
|
+
disk?: string;
|
|
103
|
+
/** memory allocation (e.g., 4, 4GB, 8G) */
|
|
104
|
+
memory?: string;
|
|
105
|
+
}
|
|
106
|
+
/** Options for {@link VM.domainAdd}. */
|
|
107
|
+
export interface DomainAddOptions extends CallOptions {
|
|
108
|
+
/** issue a wildcard (*.<parent>) certificate via DNS-01 delegation */
|
|
109
|
+
wildcard?: boolean;
|
|
110
|
+
}
|
|
111
|
+
/** Options for {@link ExedevClient.domainLs}. */
|
|
112
|
+
export interface DomainLsOptions extends CallOptions {
|
|
113
|
+
/** list domains across all your VMs */
|
|
114
|
+
a?: boolean;
|
|
115
|
+
}
|
|
116
|
+
/** Options for {@link VM.shareShow}. */
|
|
117
|
+
export interface ShareShowOptions extends CallOptions {
|
|
118
|
+
/** show QR code for the URL */
|
|
119
|
+
qr?: boolean;
|
|
120
|
+
}
|
|
121
|
+
/** Options for {@link VM.shareAdd}. */
|
|
122
|
+
export interface ShareAddOptions extends CallOptions {
|
|
123
|
+
/** message to include in share invitation */
|
|
124
|
+
message?: string;
|
|
125
|
+
/** show QR code for the URL */
|
|
126
|
+
qr?: boolean;
|
|
127
|
+
/** grant/revoke shell (SSH, Terminal, Shelley) access instead of web-only */
|
|
128
|
+
root?: boolean;
|
|
129
|
+
}
|
|
130
|
+
/** Options for {@link VM.shareRemove}. */
|
|
131
|
+
export interface ShareRemoveOptions extends CallOptions {
|
|
132
|
+
/** grant/revoke shell (SSH, Terminal, Shelley) access instead of web-only */
|
|
133
|
+
root?: boolean;
|
|
134
|
+
}
|
|
135
|
+
/** Options for {@link VM.shareAddLink}. */
|
|
136
|
+
export interface ShareAddLinkOptions extends CallOptions {
|
|
137
|
+
/** show QR code for the URL */
|
|
138
|
+
qr?: boolean;
|
|
139
|
+
}
|
|
140
|
+
/** Options for {@link VM.shareReceiveEmail}. */
|
|
141
|
+
export interface ShareReceiveEmailOptions extends CallOptions {
|
|
142
|
+
/** restrict who the VM may email: all|known|owner|none */
|
|
143
|
+
"reply-policy"?: string;
|
|
144
|
+
}
|
|
145
|
+
/** Options for {@link ExedevClient.sshKeyAdd}. */
|
|
146
|
+
export interface SshKeyAddOptions extends CallOptions {
|
|
147
|
+
/** scope key to VMs with this tag */
|
|
148
|
+
tag?: string;
|
|
149
|
+
}
|
|
150
|
+
/** Options for {@link ExedevClient.sshKeyGenerateApiKey}. */
|
|
151
|
+
export interface SshKeyGenerateApiKeyOptions extends CallOptions {
|
|
152
|
+
/** comma-separated list of allowed commands (empty = defaults) */
|
|
153
|
+
cmds?: string;
|
|
154
|
+
/** expiry duration (e.g. 30d, 1y) or 'never' */
|
|
155
|
+
exp?: string;
|
|
156
|
+
/** label for this token's SSH key */
|
|
157
|
+
label?: string;
|
|
158
|
+
/** scope key to a VM (authenticates to its HTTPS endpoints instead of exe.dev commands) */
|
|
159
|
+
vm?: string;
|
|
160
|
+
}
|
|
161
|
+
/** Options for {@link ExedevClient.integrationsList}. */
|
|
162
|
+
export interface IntegrationsListOptions extends CallOptions {
|
|
163
|
+
/** include per-VM usage (lastUsedAt, usedByVMs); JSON only */
|
|
164
|
+
usage?: boolean;
|
|
165
|
+
}
|
|
166
|
+
/** Options for {@link ExedevClient.integrationsSetupGithub}. */
|
|
167
|
+
export interface IntegrationsSetupGithubOptions extends CallOptions {
|
|
168
|
+
/** disconnect GitHub account */
|
|
169
|
+
d?: boolean;
|
|
170
|
+
/** disconnect GitHub account */
|
|
171
|
+
delete?: boolean;
|
|
172
|
+
/** list connected GitHub accounts */
|
|
173
|
+
list?: boolean;
|
|
174
|
+
/** verify GitHub connections are working */
|
|
175
|
+
verify?: boolean;
|
|
176
|
+
}
|
|
177
|
+
/** Options for {@link ExedevClient.integrationsSetupChatgpt}. */
|
|
178
|
+
export interface IntegrationsSetupChatgptOptions extends CallOptions {
|
|
179
|
+
/** disconnect ChatGPT account */
|
|
180
|
+
d?: boolean;
|
|
181
|
+
/** disconnect ChatGPT account */
|
|
182
|
+
delete?: boolean;
|
|
183
|
+
/** list connected ChatGPT accounts */
|
|
184
|
+
list?: boolean;
|
|
185
|
+
/** local ChatGPT account name (default chatgpt) */
|
|
186
|
+
name?: string;
|
|
187
|
+
/** verify ChatGPT connections are working */
|
|
188
|
+
verify?: boolean;
|
|
189
|
+
}
|
|
190
|
+
/** Options for {@link ExedevClient.integrationsAdd}. */
|
|
191
|
+
export interface IntegrationsAddOptions extends CallOptions {
|
|
192
|
+
/** authenticate as your GitHub user instead of the exe.dev app (github only); pushes and API calls are attributed to your GitHub account */
|
|
193
|
+
"act-as-user"?: boolean;
|
|
194
|
+
/** attach to a spec (vm:<name>, tag:<name>, or auto:all); can be repeated */
|
|
195
|
+
attach?: string | readonly string[];
|
|
196
|
+
/** bearer token (shorthand for --header="Authorization:Bearer TOKEN"; combines with --header) */
|
|
197
|
+
bearer?: string;
|
|
198
|
+
/** optional free-form comment stored with the integration */
|
|
199
|
+
comment?: string;
|
|
200
|
+
/** install the canonical reflection integration with all fields; attaches to auto:all unless --attach=vm:<name> is supplied; no other customization */
|
|
201
|
+
default?: boolean;
|
|
202
|
+
/** comma-separated reflection fields to expose (email, integrations, tags, comment, default_port); 'all' exposes every field including ones added in the future; 'none' disables every field (default: all) */
|
|
203
|
+
fields?: string;
|
|
204
|
+
/** time-box every --attach to a duration from now (e.g. 2h, 45m); access lapses automatically */
|
|
205
|
+
for?: string;
|
|
206
|
+
/** header to inject (e.g. X-Auth:secret); can be repeated */
|
|
207
|
+
header?: string | readonly string[];
|
|
208
|
+
/** host keys for ssh-key: authorized_keys or known_hosts lines (hostnames are ignored), or '*' for any; can be repeated; one - reads them piped in, e.g. from ssh-keyscan */
|
|
209
|
+
"host-key"?: string | readonly string[];
|
|
210
|
+
/** integration name (required unless --default) */
|
|
211
|
+
name?: string;
|
|
212
|
+
/** create an endpoint integration with no injected authentication */
|
|
213
|
+
"no-auth"?: boolean;
|
|
214
|
+
/** authenticate with a generated API key scoped to the target VM; combines with --header/--bearer */
|
|
215
|
+
peer?: boolean;
|
|
216
|
+
/** restrict the integration to read access (github only); git push and write API calls are rejected */
|
|
217
|
+
readonly?: boolean;
|
|
218
|
+
/** GitHub repository in owner/repo format (required for github) */
|
|
219
|
+
repository?: string;
|
|
220
|
+
/** path prefix to strip from each request before forwarding (http-proxy only; e.g. /api/v3 makes /api/v3/users reach the target as /users) */
|
|
221
|
+
"strip-prefix"?: string;
|
|
222
|
+
/** target URL (required for http-proxy) */
|
|
223
|
+
target?: string;
|
|
224
|
+
/** create as a team integration */
|
|
225
|
+
team?: boolean;
|
|
226
|
+
}
|
|
227
|
+
/** Options for {@link ExedevClient.integrationsRemove}. */
|
|
228
|
+
export interface IntegrationsRemoveOptions extends CallOptions {
|
|
229
|
+
/** operate on a team integration */
|
|
230
|
+
team?: boolean;
|
|
231
|
+
}
|
|
232
|
+
/** Options for {@link ExedevClient.integrationsTest}. */
|
|
233
|
+
export interface IntegrationsTestOptions extends CallOptions {
|
|
234
|
+
/** operate on a team integration */
|
|
235
|
+
team?: boolean;
|
|
236
|
+
}
|
|
237
|
+
/** Options for {@link ExedevClient.integrationsEdit}. */
|
|
238
|
+
export interface IntegrationsEditOptions extends CallOptions {
|
|
239
|
+
/** authenticate as your GitHub user instead of the exe.dev app (github only) */
|
|
240
|
+
"act-as-user"?: boolean;
|
|
241
|
+
/** bearer token (shorthand for --header="Authorization:Bearer TOKEN"; combines with --header) */
|
|
242
|
+
bearer?: string;
|
|
243
|
+
/** remove injected headers for http-proxy */
|
|
244
|
+
"clear-header"?: boolean;
|
|
245
|
+
/** free-form comment stored with the integration */
|
|
246
|
+
comment?: string;
|
|
247
|
+
/** comma-separated reflection fields to expose (email, integrations, tags, comment, default_port); 'all' exposes every field including ones added in the future; 'none' disables every field */
|
|
248
|
+
fields?: string;
|
|
249
|
+
/** header to inject for http-proxy; can be repeated; replaces all existing headers */
|
|
250
|
+
header?: string | readonly string[];
|
|
251
|
+
/** replacement host keys for ssh-key; replaces the whole list; can be repeated; one - reads them piped in */
|
|
252
|
+
"host-key"?: string | readonly string[];
|
|
253
|
+
/** remove injected authentication for http-proxy */
|
|
254
|
+
"no-auth"?: boolean;
|
|
255
|
+
/** restrict the integration to read access (github only) */
|
|
256
|
+
readonly?: boolean;
|
|
257
|
+
/** GitHub repository in owner/repo format */
|
|
258
|
+
repository?: string;
|
|
259
|
+
/** path prefix to strip from each request before forwarding (http-proxy only; e.g. /api/v3; empty clears it) */
|
|
260
|
+
"strip-prefix"?: string;
|
|
261
|
+
/** target URL for http-proxy */
|
|
262
|
+
target?: string;
|
|
263
|
+
/** edit a team integration */
|
|
264
|
+
team?: boolean;
|
|
265
|
+
/** replacement Slack or Discord webhook URL */
|
|
266
|
+
"webhook-url"?: string;
|
|
267
|
+
}
|
|
268
|
+
/** Options for {@link ExedevClient.integrationsAttach}. */
|
|
269
|
+
export interface IntegrationsAttachOptions extends CallOptions {
|
|
270
|
+
/** time-box the attachment to a duration from now (e.g. 2h, 45m); access lapses automatically */
|
|
271
|
+
for?: string;
|
|
272
|
+
/** operate on a team integration */
|
|
273
|
+
team?: boolean;
|
|
274
|
+
/** time-box the attachment until an RFC3339 instant (e.g. 2026-08-03T20:00:00Z) */
|
|
275
|
+
until?: string;
|
|
276
|
+
}
|
|
277
|
+
/** Options for {@link ExedevClient.integrationsDetach}. */
|
|
278
|
+
export interface IntegrationsDetachOptions extends CallOptions {
|
|
279
|
+
/** operate on a team integration */
|
|
280
|
+
team?: boolean;
|
|
281
|
+
}
|
|
282
|
+
/** Options for {@link ExedevClient.integrationsRename}. */
|
|
283
|
+
export interface IntegrationsRenameOptions extends CallOptions {
|
|
284
|
+
/** operate on a team integration */
|
|
285
|
+
team?: boolean;
|
|
286
|
+
}
|
|
287
|
+
/** Options for {@link ExedevClient.teamDisable}. */
|
|
288
|
+
export interface TeamDisableOptions extends CallOptions {
|
|
289
|
+
/** skip the confirmation prompt (required for non-interactive use, e.g. the web UI) */
|
|
290
|
+
yes?: boolean;
|
|
291
|
+
}
|
|
292
|
+
/** Options for {@link ExedevClient.teamRemove}. */
|
|
293
|
+
export interface TeamRemoveOptions extends CallOptions {
|
|
294
|
+
/** transfer the member's VMs to this team member before removing them */
|
|
295
|
+
"transfer-vms-to"?: string;
|
|
296
|
+
}
|
|
297
|
+
/** Options for {@link ExedevClient.teamBillingPlan}. */
|
|
298
|
+
export interface TeamBillingPlanOptions extends CallOptions {
|
|
299
|
+
/** list the plans you can switch to */
|
|
300
|
+
all?: boolean;
|
|
301
|
+
}
|
|
302
|
+
/** Options for {@link ExedevClient.teamBillingUpdate}. */
|
|
303
|
+
export interface TeamBillingUpdateOptions extends CallOptions {
|
|
304
|
+
/** billing address city */
|
|
305
|
+
"address-city"?: string;
|
|
306
|
+
/** billing address country code */
|
|
307
|
+
"address-country"?: string;
|
|
308
|
+
/** billing address line 1 */
|
|
309
|
+
"address-line1"?: string;
|
|
310
|
+
/** billing address line 2 */
|
|
311
|
+
"address-line2"?: string;
|
|
312
|
+
/** billing address postal code */
|
|
313
|
+
"address-postal-code"?: string;
|
|
314
|
+
/** billing address state or province */
|
|
315
|
+
"address-state"?: string;
|
|
316
|
+
/** business name shown on invoices */
|
|
317
|
+
"business-name"?: string;
|
|
318
|
+
/** billing email shown on invoices */
|
|
319
|
+
email?: string;
|
|
320
|
+
/** customer name shown on invoices */
|
|
321
|
+
name?: string;
|
|
322
|
+
/** phone number shown on invoices */
|
|
323
|
+
phone?: string;
|
|
324
|
+
/** tax ID type shown on invoices (e.g. eu_vat, pl_nip, us_ein) */
|
|
325
|
+
"tax-id-type"?: string;
|
|
326
|
+
/** tax ID value shown on invoices */
|
|
327
|
+
"tax-id-value"?: string;
|
|
328
|
+
}
|
|
329
|
+
/** Options for {@link ExedevClient.teamAuthSet}. */
|
|
330
|
+
export interface TeamAuthSetOptions extends CallOptions {
|
|
331
|
+
/** OIDC client ID */
|
|
332
|
+
"client-id"?: string;
|
|
333
|
+
/** OIDC client secret */
|
|
334
|
+
"client-secret"?: string;
|
|
335
|
+
/** display name for the SSO provider */
|
|
336
|
+
"display-name"?: string;
|
|
337
|
+
/** OIDC issuer URL (e.g. https://accounts.google.com) */
|
|
338
|
+
"issuer-url"?: string;
|
|
339
|
+
}
|
|
340
|
+
/** Options for {@link ExedevClient.teamSettingsVmPlacementMemberPool}. */
|
|
341
|
+
export interface TeamSettingsVmPlacementMemberPoolOptions extends CallOptions {
|
|
342
|
+
/** CPUs to reserve for each member pool (required) */
|
|
343
|
+
cpus?: number;
|
|
344
|
+
/** maximum VMs in each member pool (Work defaults to 25 per vCPU, up to 1000) (default: 100) */
|
|
345
|
+
"max-vms"?: number;
|
|
346
|
+
}
|
|
347
|
+
/** Options for {@link ExedevClient.teamVmLs}. */
|
|
348
|
+
export interface TeamVmLsOptions extends CallOptions {
|
|
349
|
+
/** group VMs by none|tag|region|type|user|access (default: none) */
|
|
350
|
+
group?: "none" | "tag" | "region" | "user" | "access";
|
|
351
|
+
/** show detailed information */
|
|
352
|
+
l?: boolean;
|
|
353
|
+
}
|
|
354
|
+
/** Options for {@link ExedevClient.poolNew}. */
|
|
355
|
+
export interface PoolNewOptions extends CallOptions {
|
|
356
|
+
/** number of CPUs reserved for the pool (required; an even number of vCPUs from 2 through 512 (2, 4, 6, and so on; memory is 2 GiB per vCPU)) */
|
|
357
|
+
cpus?: number;
|
|
358
|
+
/** maximum VMs in the pool (Work defaults to the size limit of up to 25 VMs per vCPU, capped at 1000 VMs) (default: 100) */
|
|
359
|
+
"max-vms"?: number;
|
|
360
|
+
/** region code for the pool (required unless your team has dedicated hosts, which decide the region) */
|
|
361
|
+
region?: string;
|
|
362
|
+
}
|
|
363
|
+
/** Options for {@link ExedevClient.poolList}. */
|
|
364
|
+
export interface PoolListOptions extends CallOptions {
|
|
365
|
+
/** statistics range: live, 24h, 7d, or 30d (requires --usage) (default: live) */
|
|
366
|
+
range?: string;
|
|
367
|
+
/** show live or historical CPU and starvation statistics */
|
|
368
|
+
usage?: boolean;
|
|
369
|
+
}
|
|
370
|
+
/** Options for {@link ExedevClient.poolAdopt}. */
|
|
371
|
+
export interface PoolAdoptOptions extends CallOptions {
|
|
372
|
+
/** pool to adopt into (required) */
|
|
373
|
+
pool?: string;
|
|
374
|
+
/** VM to adopt (required) */
|
|
375
|
+
vm?: string;
|
|
376
|
+
}
|
|
377
|
+
/** Options for {@link ExedevClient.poolDetach}. */
|
|
378
|
+
export interface PoolDetachOptions extends CallOptions {
|
|
379
|
+
/** leave the VM outside any pool instead of making it standalone (only while your team has poolless VMs) */
|
|
380
|
+
poolless?: boolean;
|
|
381
|
+
/** VM to detach from its pool (required) */
|
|
382
|
+
vm?: string;
|
|
383
|
+
}
|
|
384
|
+
/** Options for {@link ExedevClient.poolResize}. */
|
|
385
|
+
export interface PoolResizeOptions extends CallOptions {
|
|
386
|
+
/** new pool size in vCPUs (required unless --max-vms is set; even, from 2 up to the placement limit) */
|
|
387
|
+
cpus?: number;
|
|
388
|
+
/** allow --max-vms below the current VM count (does not stop or evict VMs) */
|
|
389
|
+
force?: boolean;
|
|
390
|
+
/** maximum VMs in the pool (Work: at most 25 per vCPU, up to 1000) */
|
|
391
|
+
"max-vms"?: string;
|
|
392
|
+
}
|
|
393
|
+
/** Options for {@link ExedevClient.billingPlan}. */
|
|
394
|
+
export interface BillingPlanOptions extends CallOptions {
|
|
395
|
+
/** list the plans you can switch to */
|
|
396
|
+
all?: boolean;
|
|
397
|
+
}
|
|
398
|
+
/** Options for {@link ExedevClient.billingUsage}. */
|
|
399
|
+
export interface BillingUsageOptions extends CallOptions {
|
|
400
|
+
/** group usage by: vm */
|
|
401
|
+
group?: string;
|
|
402
|
+
/** time range: cycle (current billing cycle), 24h, 7d, or 30d (default: cycle) */
|
|
403
|
+
range?: string;
|
|
404
|
+
}
|
|
405
|
+
/** Options for {@link ExedevClient.billingCreditsUsage}. */
|
|
406
|
+
export interface BillingCreditsUsageOptions extends CallOptions {
|
|
407
|
+
/** break each group down: models under a day or VM, VMs under a model */
|
|
408
|
+
detail?: boolean;
|
|
409
|
+
/** group spend by model, day, or box (default: model) */
|
|
410
|
+
group?: string;
|
|
411
|
+
/** calendar month to report, as YYYY-MM (default: this month, UTC) */
|
|
412
|
+
month?: string;
|
|
413
|
+
}
|
|
414
|
+
/** Options for {@link ExedevClient.billingCreditsTransactions}. */
|
|
415
|
+
export interface BillingCreditsTransactionsOptions extends CallOptions {
|
|
416
|
+
/** how many transactions to show, 1-100 (default 20) */
|
|
417
|
+
limit?: string;
|
|
418
|
+
}
|
|
419
|
+
/** Options for {@link ExedevClient.billingCreditsBuy}. */
|
|
420
|
+
export interface BillingCreditsBuyOptions extends CallOptions {
|
|
421
|
+
/** retry key so a repeated purchase of the same amount charges once */
|
|
422
|
+
"idempotency-key"?: string;
|
|
423
|
+
/** skip the confirmation prompt (required when not running interactively) */
|
|
424
|
+
yes?: boolean;
|
|
425
|
+
}
|
|
426
|
+
/** Options for {@link ExedevClient.billingCapacity}. */
|
|
427
|
+
export interface BillingCapacityOptions extends CallOptions {
|
|
428
|
+
/** Personal capacity in vCPUs: 2, 4, 8, or 16 */
|
|
429
|
+
cpu?: number;
|
|
430
|
+
/** skip interactive confirmation (required for non-interactive changes) */
|
|
431
|
+
yes?: boolean;
|
|
432
|
+
}
|
|
433
|
+
/** Options for {@link ExedevClient.billingUpdate}. */
|
|
434
|
+
export interface BillingUpdateOptions extends CallOptions {
|
|
435
|
+
/** billing address city */
|
|
436
|
+
"address-city"?: string;
|
|
437
|
+
/** billing address country code */
|
|
438
|
+
"address-country"?: string;
|
|
439
|
+
/** billing address line 1 */
|
|
440
|
+
"address-line1"?: string;
|
|
441
|
+
/** billing address line 2 */
|
|
442
|
+
"address-line2"?: string;
|
|
443
|
+
/** billing address postal code */
|
|
444
|
+
"address-postal-code"?: string;
|
|
445
|
+
/** billing address state or province */
|
|
446
|
+
"address-state"?: string;
|
|
447
|
+
/** business name shown on invoices */
|
|
448
|
+
"business-name"?: string;
|
|
449
|
+
/** billing email shown on invoices */
|
|
450
|
+
email?: string;
|
|
451
|
+
/** customer name shown on invoices */
|
|
452
|
+
name?: string;
|
|
453
|
+
/** phone number shown on invoices */
|
|
454
|
+
phone?: string;
|
|
455
|
+
/** tax ID type shown on invoices (e.g. eu_vat, pl_nip, us_ein) */
|
|
456
|
+
"tax-id-type"?: string;
|
|
457
|
+
/** tax ID value shown on invoices */
|
|
458
|
+
"tax-id-value"?: string;
|
|
459
|
+
}
|
|
460
|
+
/** Options for {@link ExedevClient.billingInvoicesList}. */
|
|
461
|
+
export interface BillingInvoicesListOptions extends CallOptions {
|
|
462
|
+
/** account whose invoices to list: personal or team (default: personal) */
|
|
463
|
+
account?: string;
|
|
464
|
+
}
|
|
465
|
+
/** Options for {@link ExedevClient.billingInvoicesShow}. */
|
|
466
|
+
export interface BillingInvoicesShowOptions extends CallOptions {
|
|
467
|
+
/** list VMs without a pool individually */
|
|
468
|
+
vms?: boolean;
|
|
469
|
+
}
|
|
470
|
+
/** Options for {@link ExedevClient.billingReceipts}. */
|
|
471
|
+
export interface BillingReceiptsOptions extends CallOptions {
|
|
472
|
+
/** start of the period, YYYY-MM-DD */
|
|
473
|
+
from?: string;
|
|
474
|
+
/** end of the period, YYYY-MM-DD */
|
|
475
|
+
to?: string;
|
|
476
|
+
}
|
|
477
|
+
/** Options for {@link ExedevClient.billingStatement}. */
|
|
478
|
+
export interface BillingStatementOptions extends CallOptions {
|
|
479
|
+
/** start of the period, YYYY-MM-DD */
|
|
480
|
+
from?: string;
|
|
481
|
+
/** end of the period, YYYY-MM-DD */
|
|
482
|
+
to?: string;
|
|
483
|
+
}
|
|
484
|
+
/** Options for {@link ExedevClient.billingProviderLink}. */
|
|
485
|
+
export interface BillingProviderLinkOptions extends CallOptions {
|
|
486
|
+
/** team size: no marketplace team plans are available */
|
|
487
|
+
size?: string;
|
|
488
|
+
/** name for the team to create (only when you have no team yet) */
|
|
489
|
+
"team-name"?: string;
|
|
490
|
+
/** marketplace link token from the exe.dev link page */
|
|
491
|
+
token?: string;
|
|
492
|
+
}
|
|
493
|
+
/** Options for {@link ExedevClient.browser}. */
|
|
494
|
+
export interface BrowserOptions extends CallOptions {
|
|
495
|
+
/** show QR code for the URL */
|
|
496
|
+
qr?: boolean;
|
|
497
|
+
}
|
|
498
|
+
/** Options for {@link VM.stat}. */
|
|
499
|
+
export interface StatOptions extends CallOptions {
|
|
500
|
+
/** time range: 24h, 7d, or 30d (default: 24h) */
|
|
501
|
+
range?: string;
|
|
502
|
+
}
|
|
503
|
+
export declare class ExedevClient {
|
|
504
|
+
#private;
|
|
505
|
+
constructor(options: ExedevOptions);
|
|
506
|
+
/** Reference an existing VM without a request. Use refresh() to fetch its metadata. */
|
|
507
|
+
vm(name: string): VM;
|
|
508
|
+
/**
|
|
509
|
+
* Browse documentation
|
|
510
|
+
*
|
|
511
|
+
* Usage: `doc [slug-or-query...]`
|
|
512
|
+
*
|
|
513
|
+
* Tag-scoped API keys may run this command.
|
|
514
|
+
*/
|
|
515
|
+
doc(slugOrQueries?: string | readonly string[], options?: CallOptions): Promise<CommandResult<"doc">>;
|
|
516
|
+
/**
|
|
517
|
+
* List your VMs
|
|
518
|
+
*
|
|
519
|
+
* Usage: `ls [-l] [--group=tag|region|type] [name|pattern]`
|
|
520
|
+
*
|
|
521
|
+
* Tag-scoped API keys may run this command.
|
|
522
|
+
*/
|
|
523
|
+
ls(nameOrPattern?: string, options?: LsOptions): Promise<VM[]>;
|
|
524
|
+
/**
|
|
525
|
+
* Create a new VM
|
|
526
|
+
*
|
|
527
|
+
* CLI examples:
|
|
528
|
+
* ```
|
|
529
|
+
* new # just give me a computer
|
|
530
|
+
* new --name=b --image=ubuntu:22.04 # custom image and name
|
|
531
|
+
* new --cpu=4 --memory=16GB # 4 CPUs, 16GB RAM
|
|
532
|
+
* new --disk=50GB # 50GB disk
|
|
533
|
+
* new --tag=prod,staging # create with tags
|
|
534
|
+
* new --env FOO=bar --env BAZ=qux # with environment variables
|
|
535
|
+
* new --integration=myproxy # attach an integration
|
|
536
|
+
* echo 'build me a web app' | ssh exe.dev new --prompt=/dev/stdin
|
|
537
|
+
* ```
|
|
538
|
+
*
|
|
539
|
+
* Tag-scoped API keys may run this command.
|
|
540
|
+
*/
|
|
541
|
+
new(options?: NewOptions): Promise<VM>;
|
|
542
|
+
/**
|
|
543
|
+
* List custom domains for a VM (or -a for all your VMs)
|
|
544
|
+
*
|
|
545
|
+
* Usage: `domain ls <vm> | domain ls -a`
|
|
546
|
+
*/
|
|
547
|
+
domainLs(args?: readonly string[], options?: DomainLsOptions): Promise<CommandResult<"domain ls">>;
|
|
548
|
+
/**
|
|
549
|
+
* Show user information (email, keys, etc)
|
|
550
|
+
*
|
|
551
|
+
* Usage: `whoami`
|
|
552
|
+
*
|
|
553
|
+
* Tag-scoped API keys may run this command.
|
|
554
|
+
*/
|
|
555
|
+
whoami(options?: CallOptions): Promise<CommandResult<"whoami">>;
|
|
556
|
+
/**
|
|
557
|
+
* List all SSH keys associated with your account
|
|
558
|
+
*
|
|
559
|
+
* Usage: `ssh-key list`
|
|
560
|
+
*
|
|
561
|
+
* Tag-scoped API keys may run this command.
|
|
562
|
+
*/
|
|
563
|
+
sshKeyList(options?: CallOptions): Promise<CommandResult<"ssh-key list">>;
|
|
564
|
+
/**
|
|
565
|
+
* Add a new SSH key to your account
|
|
566
|
+
*
|
|
567
|
+
* Usage: `ssh-key add [--tag=TAG] <public-key>`
|
|
568
|
+
*
|
|
569
|
+
* CLI examples:
|
|
570
|
+
* ```
|
|
571
|
+
* ssh-key add 'ssh-ed25519 AAAA... my-laptop'
|
|
572
|
+
*
|
|
573
|
+
* To generate a new key locally:
|
|
574
|
+
* ssh-keygen -t ed25519 -C "mnemonic-for-this-key" -f ~/.ssh/id_exe
|
|
575
|
+
*
|
|
576
|
+
* The -C flag sets a name for the key.
|
|
577
|
+
*
|
|
578
|
+
* Then add the public key from your local shell:
|
|
579
|
+
* cat ~/.ssh/id_exe.pub | ssh exe.dev ssh-key add
|
|
580
|
+
*
|
|
581
|
+
* Or from the exe.dev shell:
|
|
582
|
+
* ssh-key add 'ssh-ed25519 AAAA... my-laptop'
|
|
583
|
+
* ```
|
|
584
|
+
*
|
|
585
|
+
* Tag-scoped API keys may run this command.
|
|
586
|
+
*/
|
|
587
|
+
sshKeyAdd(publicKey: string, options?: SshKeyAddOptions): Promise<CommandResult<"ssh-key add">>;
|
|
588
|
+
/**
|
|
589
|
+
* Remove an SSH key from your account
|
|
590
|
+
*
|
|
591
|
+
* Usage: `ssh-key remove <name|fingerprint|public-key>`
|
|
592
|
+
*
|
|
593
|
+
* Tag-scoped API keys may run this command.
|
|
594
|
+
*/
|
|
595
|
+
sshKeyRemove(nameOrFingerprintOrPublicKey: string, options?: CallOptions): Promise<CommandResult<"ssh-key remove">>;
|
|
596
|
+
/**
|
|
597
|
+
* Rename an SSH key
|
|
598
|
+
*
|
|
599
|
+
* Usage: `ssh-key rename <old-name> <new-name>`
|
|
600
|
+
*
|
|
601
|
+
* Tag-scoped API keys may run this command.
|
|
602
|
+
*/
|
|
603
|
+
sshKeyRename(oldName: string, newName: string, options?: CallOptions): Promise<CommandResult<"ssh-key rename">>;
|
|
604
|
+
/**
|
|
605
|
+
* Generate an API key for the exe.dev HTTPS API or for a specific VM
|
|
606
|
+
*
|
|
607
|
+
* Usage: `ssh-key generate-api-key [--label=NAME] [--vm=VMNAME] [--cmds=CMD1,CMD2] [--exp=30d]`
|
|
608
|
+
*
|
|
609
|
+
* CLI examples:
|
|
610
|
+
* ```
|
|
611
|
+
* # Generate a key for the exe.dev API (lobby commands like ls, new, whoami):
|
|
612
|
+
* ssh-key generate-api-key --label=ci --cmds=ls,new --exp=90d
|
|
613
|
+
*
|
|
614
|
+
* # Generate a key scoped to a VM (authenticates to its HTTPS proxy):
|
|
615
|
+
* ssh-key generate-api-key --vm=my-vm --label=deploy
|
|
616
|
+
* ```
|
|
617
|
+
*
|
|
618
|
+
* Tag-scoped API keys may run this command.
|
|
619
|
+
*/
|
|
620
|
+
sshKeyGenerateApiKey(options?: SshKeyGenerateApiKeyOptions): Promise<CommandResult<"ssh-key generate-api-key">>;
|
|
621
|
+
/**
|
|
622
|
+
* Set your preferred region for new VMs.
|
|
623
|
+
*
|
|
624
|
+
* Usage: `set-region <region-code>`
|
|
625
|
+
*/
|
|
626
|
+
setRegion(regionCode: string, options?: CallOptions): Promise<CommandResult<"set-region">>;
|
|
627
|
+
/**
|
|
628
|
+
* List your integrations
|
|
629
|
+
*
|
|
630
|
+
* Usage: `integrations list [--json [--usage]]`
|
|
631
|
+
*
|
|
632
|
+
* Tag-scoped API keys may run this command.
|
|
633
|
+
*/
|
|
634
|
+
integrationsList(options?: IntegrationsListOptions): Promise<CommandResult<"integrations list">>;
|
|
635
|
+
/**
|
|
636
|
+
* Set up GitHub integration
|
|
637
|
+
*
|
|
638
|
+
* Usage: `integrations setup github [--list|--verify|-d]`
|
|
639
|
+
*/
|
|
640
|
+
integrationsSetupGithub(options?: IntegrationsSetupGithubOptions): Promise<CommandResult<"integrations setup github">>;
|
|
641
|
+
/**
|
|
642
|
+
* Set up ChatGPT account access for LLM integrations
|
|
643
|
+
*
|
|
644
|
+
* Usage: `integrations setup chatgpt [--name=<account-name>|--list|--verify|-d]`
|
|
645
|
+
*/
|
|
646
|
+
integrationsSetupChatgpt(options?: IntegrationsSetupChatgptOptions): Promise<CommandResult<"integrations setup chatgpt">>;
|
|
647
|
+
/**
|
|
648
|
+
* Add a new integration
|
|
649
|
+
*
|
|
650
|
+
* Credential value flags (keys, tokens, passwords, bearer tokens, and webhook URLs) accept - to read from stdin.
|
|
651
|
+
*
|
|
652
|
+
* Usage: `integrations add <type> [--default | --name=<name> [--team] [args...]]`
|
|
653
|
+
*/
|
|
654
|
+
integrationsAdd(type: string, options?: IntegrationsAddOptions): Promise<CommandResult<"integrations add">>;
|
|
655
|
+
/**
|
|
656
|
+
* Remove an integration
|
|
657
|
+
*
|
|
658
|
+
* Usage: `integrations remove <name> [--team]`
|
|
659
|
+
*/
|
|
660
|
+
integrationsRemove(name: string, options?: IntegrationsRemoveOptions): Promise<CommandResult<"integrations remove">>;
|
|
661
|
+
/**
|
|
662
|
+
* Test an integration's credential (connection check)
|
|
663
|
+
*
|
|
664
|
+
* Usage: `integrations test <name> [--team]`
|
|
665
|
+
*/
|
|
666
|
+
integrationsTest(name: string, options?: IntegrationsTestOptions): Promise<CommandResult<"integrations test">>;
|
|
667
|
+
/**
|
|
668
|
+
* Edit an integration
|
|
669
|
+
*
|
|
670
|
+
* Credential value flags (keys, tokens, passwords, bearer tokens, and webhook URLs) accept - to read from stdin.
|
|
671
|
+
*
|
|
672
|
+
* Usage: `integrations edit <name> [--team] [args...]`
|
|
673
|
+
*/
|
|
674
|
+
integrationsEdit(name: string, args?: string | readonly string[], options?: IntegrationsEditOptions): Promise<CommandResult<"integrations edit">>;
|
|
675
|
+
/**
|
|
676
|
+
* Attach an integration to a VM, tag, or all VMs
|
|
677
|
+
*
|
|
678
|
+
* A <spec> controls where the integration is mounted:
|
|
679
|
+
* vm:<vm-name> attach to a specific VM (personal only)
|
|
680
|
+
* tag:<tag-name> attach to every VM with the given tag
|
|
681
|
+
* auto:all attach to all current and future VMs (personal only)
|
|
682
|
+
*
|
|
683
|
+
* You can attach the same integration multiple times with different specs.
|
|
684
|
+
* Team integrations only support tag:<tag-name>.
|
|
685
|
+
*
|
|
686
|
+
* A grant can be time-boxed with --for <duration> or --until <RFC3339>;
|
|
687
|
+
* when it lapses, access stops immediately, with nothing to revoke.
|
|
688
|
+
* Re-attaching the same spec with a new --for/--until extends or shortens it.
|
|
689
|
+
*
|
|
690
|
+
* Usage: `integrations attach <name> <spec> [--team] [--for <duration> | --until <time>]`
|
|
691
|
+
*
|
|
692
|
+
* CLI examples:
|
|
693
|
+
* ```
|
|
694
|
+
* int attach my-mcp vm:dev1
|
|
695
|
+
* int attach my-mcp tag:production
|
|
696
|
+
* int attach my-mcp auto:all
|
|
697
|
+
* int attach shared-mcp tag:production
|
|
698
|
+
* int attach gmail vm:dev1 --for 2h
|
|
699
|
+
* ```
|
|
700
|
+
*/
|
|
701
|
+
integrationsAttach(name: string, spec: string, options?: IntegrationsAttachOptions): Promise<CommandResult<"integrations attach">>;
|
|
702
|
+
/**
|
|
703
|
+
* Detach an integration from a VM, tag, or all VMs
|
|
704
|
+
*
|
|
705
|
+
* Usage: `integrations detach <name> <spec> [--team]`
|
|
706
|
+
*/
|
|
707
|
+
integrationsDetach(name: string, spec: string, options?: IntegrationsDetachOptions): Promise<CommandResult<"integrations detach">>;
|
|
708
|
+
/**
|
|
709
|
+
* Rename an integration
|
|
710
|
+
*
|
|
711
|
+
* Usage: `integrations rename <name> <new-name> [--team]`
|
|
712
|
+
*/
|
|
713
|
+
integrationsRename(name: string, newName: string, options?: IntegrationsRenameOptions): Promise<CommandResult<"integrations rename">>;
|
|
714
|
+
/**
|
|
715
|
+
* Browse the catalog of ready-made service integrations
|
|
716
|
+
*
|
|
717
|
+
* Usage: `integrations catalog [service-or-search-term]`
|
|
718
|
+
*
|
|
719
|
+
* CLI examples:
|
|
720
|
+
* ```
|
|
721
|
+
* int catalog
|
|
722
|
+
* int catalog stripe
|
|
723
|
+
* ```
|
|
724
|
+
*/
|
|
725
|
+
integrationsCatalog(serviceOrSearchTerm?: string, options?: CallOptions): Promise<CommandResult<"integrations catalog">>;
|
|
726
|
+
/**
|
|
727
|
+
* View and manage your team
|
|
728
|
+
*/
|
|
729
|
+
team(options?: CallOptions): Promise<CommandResult<"team">>;
|
|
730
|
+
/**
|
|
731
|
+
* Disband your team
|
|
732
|
+
*
|
|
733
|
+
* Usage: `team disable`
|
|
734
|
+
*/
|
|
735
|
+
teamDisable(options?: TeamDisableOptions): Promise<CommandResult<"team disable">>;
|
|
736
|
+
/**
|
|
737
|
+
* List team members
|
|
738
|
+
*
|
|
739
|
+
* Usage: `team members`
|
|
740
|
+
*/
|
|
741
|
+
teamMembers(options?: CallOptions): Promise<CommandResult<"team members">>;
|
|
742
|
+
/**
|
|
743
|
+
* Show team pool, disk, and bandwidth usage for the billing period
|
|
744
|
+
*
|
|
745
|
+
* Usage: `team usage`
|
|
746
|
+
*/
|
|
747
|
+
teamUsage(options?: CallOptions): Promise<CommandResult<"team usage">>;
|
|
748
|
+
/**
|
|
749
|
+
* Add a user to the team
|
|
750
|
+
*
|
|
751
|
+
* Usage: `team add <email> [<user|admin|billing_owner>]`
|
|
752
|
+
*/
|
|
753
|
+
teamAdd(email: string, userOrAdminOrBillingOwner?: "user" | "admin" | "billing_owner", options?: CallOptions): Promise<CommandResult<"team add">>;
|
|
754
|
+
/**
|
|
755
|
+
* Remove a user from the team
|
|
756
|
+
*
|
|
757
|
+
* Usage: `team remove <email> [--transfer-vms-to <email>]`
|
|
758
|
+
*/
|
|
759
|
+
teamRemove(email: string, options?: TeamRemoveOptions): Promise<CommandResult<"team remove">>;
|
|
760
|
+
/**
|
|
761
|
+
* Change a team member's role
|
|
762
|
+
*
|
|
763
|
+
* Usage: `team role <email> <user|admin|billing_owner>`
|
|
764
|
+
*/
|
|
765
|
+
teamRole(email: string, userOrAdminOrBillingOwner: "user" | "admin" | "billing_owner", options?: CallOptions): Promise<CommandResult<"team role">>;
|
|
766
|
+
/**
|
|
767
|
+
* Rename your team
|
|
768
|
+
*
|
|
769
|
+
* Usage: `team rename <name>`
|
|
770
|
+
*/
|
|
771
|
+
teamRename(name: string, options?: CallOptions): Promise<CommandResult<"team rename">>;
|
|
772
|
+
/**
|
|
773
|
+
* Show your team's plan
|
|
774
|
+
*
|
|
775
|
+
* Usage: `team billing plan [--all]`
|
|
776
|
+
*
|
|
777
|
+
* CLI examples:
|
|
778
|
+
* ```
|
|
779
|
+
* team billing plan
|
|
780
|
+
* team billing plan --all # plans your team can switch to
|
|
781
|
+
* ```
|
|
782
|
+
*/
|
|
783
|
+
teamBillingPlan(options?: TeamBillingPlanOptions): Promise<CommandResult<"team billing plan">>;
|
|
784
|
+
/**
|
|
785
|
+
* Update team billing information
|
|
786
|
+
*
|
|
787
|
+
* Usage: `team billing update [--email=<email>] [--name=<name>] [--business-name=<name>] [--phone=<phone>] [--address-line1=<line>] [--address-line2=<line>] [--address-city=<city>] [--address-state=<state>] [--address-postal-code=<code>] [--address-country=<country>] [--tax-id-type=<type>] [--tax-id-value=<value>]`
|
|
788
|
+
*/
|
|
789
|
+
teamBillingUpdate(options?: TeamBillingUpdateOptions): Promise<CommandResult<"team billing update">>;
|
|
790
|
+
/**
|
|
791
|
+
* Transfer a VM to another team member
|
|
792
|
+
*
|
|
793
|
+
* Usage: `team transfer <vm_name> <target_email>`
|
|
794
|
+
*/
|
|
795
|
+
teamTransfer(vmName: string, targetEmail: string, options?: CallOptions): Promise<CommandResult<"team transfer">>;
|
|
796
|
+
/**
|
|
797
|
+
* View and manage team auth settings
|
|
798
|
+
*
|
|
799
|
+
* Usage: `team auth`
|
|
800
|
+
*/
|
|
801
|
+
teamAuth(options?: CallOptions): Promise<CommandResult<"team auth">>;
|
|
802
|
+
/**
|
|
803
|
+
* Require OIDC for web login (web|off)
|
|
804
|
+
*
|
|
805
|
+
* Usage: `team auth require-oidc <web|off>`
|
|
806
|
+
*/
|
|
807
|
+
teamAuthRequireOidc(webOrOff: "web" | "off", options?: CallOptions): Promise<CommandResult<"team auth require-oidc">>;
|
|
808
|
+
/**
|
|
809
|
+
* Set the team auth provider (default, google, oidc)
|
|
810
|
+
*
|
|
811
|
+
* Usage: `team auth set <default|google|oidc> [--issuer-url=<url> --client-id=<id> --client-secret=<secret>]`
|
|
812
|
+
*/
|
|
813
|
+
teamAuthSet(defaultOrGoogleOrOidc: "default" | "google" | "oidc", options?: TeamAuthSetOptions): Promise<CommandResult<"team auth set">>;
|
|
814
|
+
/**
|
|
815
|
+
* View and manage team settings
|
|
816
|
+
*
|
|
817
|
+
* Usage: `team settings`
|
|
818
|
+
*/
|
|
819
|
+
teamSettings(options?: CallOptions): Promise<CommandResult<"team settings">>;
|
|
820
|
+
/**
|
|
821
|
+
* View and manage automatic VM placement
|
|
822
|
+
*
|
|
823
|
+
* Usage: `team settings vm-placement`
|
|
824
|
+
*/
|
|
825
|
+
teamSettingsVmPlacement(options?: CallOptions): Promise<CommandResult<"team settings vm-placement">>;
|
|
826
|
+
/**
|
|
827
|
+
* Use ordinary VM placement
|
|
828
|
+
*
|
|
829
|
+
* Usage: `team settings vm-placement default`
|
|
830
|
+
*/
|
|
831
|
+
teamSettingsVmPlacementDefault(options?: CallOptions): Promise<CommandResult<"team settings vm-placement default">>;
|
|
832
|
+
/**
|
|
833
|
+
* Send bare new commands to a shared team pool
|
|
834
|
+
*
|
|
835
|
+
* Usage: `team settings vm-placement pool <name>`
|
|
836
|
+
*/
|
|
837
|
+
teamSettingsVmPlacementPool(name: string, options?: CallOptions): Promise<CommandResult<"team settings vm-placement pool">>;
|
|
838
|
+
/**
|
|
839
|
+
* Create or reuse one team pool per member for bare new commands
|
|
840
|
+
*
|
|
841
|
+
* Usage: `team settings vm-placement member-pool --cpus=N [--max-vms=N]`
|
|
842
|
+
*/
|
|
843
|
+
teamSettingsVmPlacementMemberPool(options?: TeamSettingsVmPlacementMemberPoolOptions): Promise<CommandResult<"team settings vm-placement member-pool">>;
|
|
844
|
+
/**
|
|
845
|
+
* Keep bare new commands outside pools while migrating (legacy)
|
|
846
|
+
*
|
|
847
|
+
* Usage: `team settings vm-placement poolless`
|
|
848
|
+
*/
|
|
849
|
+
teamSettingsVmPlacementPoolless(options?: CallOptions): Promise<CommandResult<"team settings vm-placement poolless">>;
|
|
850
|
+
/**
|
|
851
|
+
* Set who can create standalone VMs
|
|
852
|
+
*
|
|
853
|
+
* Usage: `team settings standalone <off|admins-only|all-users>`
|
|
854
|
+
*/
|
|
855
|
+
teamSettingsStandalone(offOrAdminsOnlyOrAllUsers: "off" | "admins-only" | "all-users", options?: CallOptions): Promise<CommandResult<"team settings standalone">>;
|
|
856
|
+
/**
|
|
857
|
+
* Allow or block the exe.dev LLM gateway (your own API keys are unaffected)
|
|
858
|
+
*
|
|
859
|
+
* Usage: `team settings llm-gateway <on|off>`
|
|
860
|
+
*/
|
|
861
|
+
teamSettingsLlmGateway(onOrOff: "on" | "off", options?: CallOptions): Promise<CommandResult<"team settings llm-gateway">>;
|
|
862
|
+
/**
|
|
863
|
+
* Allow team VMs to share CPU cores with each other
|
|
864
|
+
*
|
|
865
|
+
* Usage: `team settings core-sharing <on|off>`
|
|
866
|
+
*/
|
|
867
|
+
teamSettingsCoreSharing(onOrOff: "on" | "off", options?: CallOptions): Promise<CommandResult<"team settings core-sharing">>;
|
|
868
|
+
/**
|
|
869
|
+
* Set who can share team VMs
|
|
870
|
+
*
|
|
871
|
+
* Usage: `team settings vm-sharing <admins-only|all-members>`
|
|
872
|
+
*/
|
|
873
|
+
teamSettingsVmSharing(adminsOnlyOrAllMembers: "admins-only" | "all-members", options?: CallOptions): Promise<CommandResult<"team settings vm-sharing">>;
|
|
874
|
+
/**
|
|
875
|
+
* Set how long members stay signed in on the web and mobile apps
|
|
876
|
+
*
|
|
877
|
+
* Usage: `team settings session-length <length>`
|
|
878
|
+
*
|
|
879
|
+
* CLI examples:
|
|
880
|
+
* ```
|
|
881
|
+
* team settings session-length 1d
|
|
882
|
+
* team settings session-length default
|
|
883
|
+
* ```
|
|
884
|
+
*/
|
|
885
|
+
teamSettingsSessionLength(length: string, options?: CallOptions): Promise<CommandResult<"team settings session-length">>;
|
|
886
|
+
/**
|
|
887
|
+
* Allow users from your email domain to join this team on signup
|
|
888
|
+
*
|
|
889
|
+
* Usage: `team settings auto-join <on|off>`
|
|
890
|
+
*/
|
|
891
|
+
teamSettingsAutoJoin(onOrOff: "on" | "off", options?: CallOptions): Promise<CommandResult<"team settings auto-join">>;
|
|
892
|
+
/**
|
|
893
|
+
* List all VMs across your team
|
|
894
|
+
*
|
|
895
|
+
* Usage: `team vm ls [-l] [--group=tag|region|type|user|access] [name|pattern]`
|
|
896
|
+
*
|
|
897
|
+
* Tag-scoped API keys may run this command.
|
|
898
|
+
*/
|
|
899
|
+
teamVmLs(nameOrPattern?: string, options?: TeamVmLsOptions): Promise<CommandResult<"team vm ls">>;
|
|
900
|
+
/**
|
|
901
|
+
* Create a pool: reserved capacity for your team's VMs
|
|
902
|
+
*
|
|
903
|
+
* Usage: `pool new <name> --cpus=N [--region=<region>] [--max-vms=M]`
|
|
904
|
+
*/
|
|
905
|
+
poolNew(name: string, options?: PoolNewOptions): Promise<CommandResult<"pool new">>;
|
|
906
|
+
/**
|
|
907
|
+
* Show your team's dedicated hosts, where its new pools are placed
|
|
908
|
+
*
|
|
909
|
+
* Usage: `pool hosts`
|
|
910
|
+
*/
|
|
911
|
+
poolHosts(options?: CallOptions): Promise<CommandResult<"pool hosts">>;
|
|
912
|
+
/**
|
|
913
|
+
* List your team's pools, or show live or historical usage with --usage
|
|
914
|
+
*
|
|
915
|
+
* Usage: `pool list [pool-name] [--usage [--range=live|24h|7d|30d]]`
|
|
916
|
+
*/
|
|
917
|
+
poolList(poolName?: string, options?: PoolListOptions): Promise<CommandResult<"pool list">>;
|
|
918
|
+
/**
|
|
919
|
+
* Adopt a VM into a pool; this can take several minutes
|
|
920
|
+
*
|
|
921
|
+
* Usage: `pool adopt --vm=<vm-name> --pool=<pool-name>`
|
|
922
|
+
*
|
|
923
|
+
* CLI examples:
|
|
924
|
+
* ```
|
|
925
|
+
* pool adopt --vm=builder --pool=compile
|
|
926
|
+
* ```
|
|
927
|
+
*/
|
|
928
|
+
poolAdopt(options?: PoolAdoptOptions): Promise<CommandResult<"pool adopt">>;
|
|
929
|
+
/**
|
|
930
|
+
* Detach a VM from its pool into its own standalone capacity (--poolless leaves it outside any pool)
|
|
931
|
+
*
|
|
932
|
+
* Usage: `pool detach --vm=<vm-name> [--poolless]`
|
|
933
|
+
*
|
|
934
|
+
* CLI examples:
|
|
935
|
+
* ```
|
|
936
|
+
* pool detach --vm=builder
|
|
937
|
+
* pool detach --vm=builder --poolless
|
|
938
|
+
* ```
|
|
939
|
+
*/
|
|
940
|
+
poolDetach(options?: PoolDetachOptions): Promise<CommandResult<"pool detach">>;
|
|
941
|
+
/**
|
|
942
|
+
* Change a pool's CPU capacity or VM cap
|
|
943
|
+
*
|
|
944
|
+
* Usage: `pool resize <name> --cpus=N | pool resize <name> --max-vms=N [--force]`
|
|
945
|
+
*/
|
|
946
|
+
poolResize(args?: readonly string[], options?: PoolResizeOptions): Promise<CommandResult<"pool resize">>;
|
|
947
|
+
/**
|
|
948
|
+
* Rename a pool without changing its capacity or VMs
|
|
949
|
+
*
|
|
950
|
+
* Usage: `pool rename <old-name> <new-name>`
|
|
951
|
+
*/
|
|
952
|
+
poolRename(oldName: string, newName: string, options?: CallOptions): Promise<CommandResult<"pool rename">>;
|
|
953
|
+
/**
|
|
954
|
+
* Delete a pool (refused while it has VMs; --force detaches them)
|
|
955
|
+
*
|
|
956
|
+
* Usage: `pool delete <name> [--force]`
|
|
957
|
+
*/
|
|
958
|
+
poolDelete(name: string, options?: CallOptions): Promise<CommandResult<"pool delete">>;
|
|
959
|
+
/**
|
|
960
|
+
* Show your current plan and resource limits
|
|
961
|
+
*
|
|
962
|
+
* Usage: `billing plan [--all]`
|
|
963
|
+
*
|
|
964
|
+
* CLI examples:
|
|
965
|
+
* ```
|
|
966
|
+
* billing plan
|
|
967
|
+
* billing plan --all # plans you can switch to
|
|
968
|
+
* ```
|
|
969
|
+
*/
|
|
970
|
+
billingPlan(options?: BillingPlanOptions): Promise<CommandResult<"billing plan">>;
|
|
971
|
+
/**
|
|
972
|
+
* Show VM resource usage against your plan quotas
|
|
973
|
+
*
|
|
974
|
+
* Usage: `billing usage [--range=cycle|24h|7d|30d] [--group=vm]`
|
|
975
|
+
*
|
|
976
|
+
* CLI examples:
|
|
977
|
+
* ```
|
|
978
|
+
* billing usage --range=7d
|
|
979
|
+
* billing credits usage # Shelley/LLM credit spend instead
|
|
980
|
+
* ```
|
|
981
|
+
*/
|
|
982
|
+
billingUsage(options?: BillingUsageOptions): Promise<CommandResult<"billing usage">>;
|
|
983
|
+
/**
|
|
984
|
+
* Show Shelley credit balances
|
|
985
|
+
*
|
|
986
|
+
* Usage: `billing credits [usage|transactions|buy]`
|
|
987
|
+
*/
|
|
988
|
+
billingCredits(options?: CallOptions): Promise<CommandResult<"billing credits">>;
|
|
989
|
+
/**
|
|
990
|
+
* Show Shelley (LLM) credit spend by model, day, or VM
|
|
991
|
+
*
|
|
992
|
+
* Usage: `billing credits usage [--month=YYYY-MM] [--group=model|day|box] [--detail]`
|
|
993
|
+
*
|
|
994
|
+
* CLI examples:
|
|
995
|
+
* ```
|
|
996
|
+
* billing credits usage --group=day
|
|
997
|
+
* billing credits usage --group=box --detail
|
|
998
|
+
* billing credits usage --month=2026-05 --group=box
|
|
999
|
+
* ```
|
|
1000
|
+
*/
|
|
1001
|
+
billingCreditsUsage(options?: BillingCreditsUsageOptions): Promise<CommandResult<"billing credits usage">>;
|
|
1002
|
+
/**
|
|
1003
|
+
* Show your credit purchases and gifts
|
|
1004
|
+
*
|
|
1005
|
+
* Usage: `billing credits transactions [--limit=N]`
|
|
1006
|
+
*/
|
|
1007
|
+
billingCreditsTransactions(options?: BillingCreditsTransactionsOptions): Promise<CommandResult<"billing credits transactions">>;
|
|
1008
|
+
/**
|
|
1009
|
+
* Buy Shelley credits with your personal payment method
|
|
1010
|
+
*
|
|
1011
|
+
* Usage: `billing credits buy <dollars> [--yes]`
|
|
1012
|
+
*
|
|
1013
|
+
* CLI examples:
|
|
1014
|
+
* ```
|
|
1015
|
+
* billing credits buy 25
|
|
1016
|
+
* billing credits buy 100 --yes
|
|
1017
|
+
* ```
|
|
1018
|
+
*/
|
|
1019
|
+
billingCreditsBuy(dollars: string, options?: BillingCreditsBuyOptions): Promise<CommandResult<"billing credits buy">>;
|
|
1020
|
+
/**
|
|
1021
|
+
* Show invite rewards you've earned
|
|
1022
|
+
*
|
|
1023
|
+
* Usage: `billing rewards`
|
|
1024
|
+
*/
|
|
1025
|
+
billingRewards(options?: CallOptions): Promise<CommandResult<"billing rewards">>;
|
|
1026
|
+
/**
|
|
1027
|
+
* Change your subscription capacity
|
|
1028
|
+
*
|
|
1029
|
+
* Usage: `billing capacity [--cpu=N] [--yes]`
|
|
1030
|
+
*
|
|
1031
|
+
* CLI examples:
|
|
1032
|
+
* ```
|
|
1033
|
+
* billing capacity
|
|
1034
|
+
* billing capacity --cpu=4 --yes
|
|
1035
|
+
* ```
|
|
1036
|
+
*/
|
|
1037
|
+
billingCapacity(options?: BillingCapacityOptions): Promise<CommandResult<"billing capacity">>;
|
|
1038
|
+
/**
|
|
1039
|
+
* Show your payment methods
|
|
1040
|
+
*
|
|
1041
|
+
* Usage: `billing payment [list]`
|
|
1042
|
+
*/
|
|
1043
|
+
billingPayment(options?: CallOptions): Promise<CommandResult<"billing payment">>;
|
|
1044
|
+
/**
|
|
1045
|
+
* List all payment methods on file
|
|
1046
|
+
*
|
|
1047
|
+
* Usage: `billing payment list`
|
|
1048
|
+
*/
|
|
1049
|
+
billingPaymentList(options?: CallOptions): Promise<CommandResult<"billing payment list">>;
|
|
1050
|
+
/**
|
|
1051
|
+
* Remove a saved payment method
|
|
1052
|
+
*
|
|
1053
|
+
* Usage: `billing payment remove <ref>`
|
|
1054
|
+
*
|
|
1055
|
+
* CLI examples:
|
|
1056
|
+
* ```
|
|
1057
|
+
* billing payment remove 4f1c2a9b8d3e
|
|
1058
|
+
* ```
|
|
1059
|
+
*/
|
|
1060
|
+
billingPaymentRemove(ref: string, options?: CallOptions): Promise<CommandResult<"billing payment remove">>;
|
|
1061
|
+
/**
|
|
1062
|
+
* Make a saved payment method the default
|
|
1063
|
+
*
|
|
1064
|
+
* Usage: `billing payment default <ref>`
|
|
1065
|
+
*
|
|
1066
|
+
* CLI examples:
|
|
1067
|
+
* ```
|
|
1068
|
+
* billing payment default 4f1c2a9b8d3e
|
|
1069
|
+
* ```
|
|
1070
|
+
*/
|
|
1071
|
+
billingPaymentDefault(ref: string, options?: CallOptions): Promise<CommandResult<"billing payment default">>;
|
|
1072
|
+
/**
|
|
1073
|
+
* Open the billing management page
|
|
1074
|
+
*
|
|
1075
|
+
* Usage: `billing manage`
|
|
1076
|
+
*/
|
|
1077
|
+
billingManage(options?: CallOptions): Promise<CommandResult<"billing manage">>;
|
|
1078
|
+
/**
|
|
1079
|
+
* Open the personal plan activation page
|
|
1080
|
+
*
|
|
1081
|
+
* Usage: `billing activate`
|
|
1082
|
+
*/
|
|
1083
|
+
billingActivate(options?: CallOptions): Promise<CommandResult<"billing activate">>;
|
|
1084
|
+
/**
|
|
1085
|
+
* Update your billing contact information
|
|
1086
|
+
*
|
|
1087
|
+
* Usage: `billing update [--email=<email>] [--name=<name>] [--business-name=<name>] [--phone=<phone>] [--address-line1=<line>] [--address-line2=<line>] [--address-city=<city>] [--address-state=<state>] [--address-postal-code=<code>] [--address-country=<country>] [--tax-id-type=<type>] [--tax-id-value=<value>]`
|
|
1088
|
+
*/
|
|
1089
|
+
billingUpdate(options?: BillingUpdateOptions): Promise<CommandResult<"billing update">>;
|
|
1090
|
+
/**
|
|
1091
|
+
* Show recent invoices
|
|
1092
|
+
*
|
|
1093
|
+
* Usage: `billing invoices`
|
|
1094
|
+
*/
|
|
1095
|
+
billingInvoices(options?: CallOptions): Promise<CommandResult<"billing invoices">>;
|
|
1096
|
+
/**
|
|
1097
|
+
* List invoices for your personal or team account
|
|
1098
|
+
*
|
|
1099
|
+
* Usage: `billing invoices list [--account=personal|team]`
|
|
1100
|
+
*
|
|
1101
|
+
* CLI examples:
|
|
1102
|
+
* ```
|
|
1103
|
+
* billing invoices list --account=team
|
|
1104
|
+
* ```
|
|
1105
|
+
*/
|
|
1106
|
+
billingInvoicesList(options?: BillingInvoicesListOptions): Promise<CommandResult<"billing invoices list">>;
|
|
1107
|
+
/**
|
|
1108
|
+
* Show one invoice with its usage breakdown
|
|
1109
|
+
*
|
|
1110
|
+
* Usage: `billing invoices show <id> [--vms]`
|
|
1111
|
+
*
|
|
1112
|
+
* CLI examples:
|
|
1113
|
+
* ```
|
|
1114
|
+
* billing invoices show in_1Abc --vms
|
|
1115
|
+
* ```
|
|
1116
|
+
*/
|
|
1117
|
+
billingInvoicesShow(id: string, options?: BillingInvoicesShowOptions): Promise<CommandResult<"billing invoices show">>;
|
|
1118
|
+
/**
|
|
1119
|
+
* Show credit purchase receipts and purchases (this billing account only)
|
|
1120
|
+
*
|
|
1121
|
+
* Usage: `billing receipts [--from=<YYYY-MM-DD>] [--to=<YYYY-MM-DD>]`
|
|
1122
|
+
*
|
|
1123
|
+
* CLI examples:
|
|
1124
|
+
* ```
|
|
1125
|
+
* billing receipts --from=2026-01-01 --to=2026-06-30
|
|
1126
|
+
* ```
|
|
1127
|
+
*/
|
|
1128
|
+
billingReceipts(options?: BillingReceiptsOptions): Promise<CommandResult<"billing receipts">>;
|
|
1129
|
+
/**
|
|
1130
|
+
* Open a consolidated credit purchase statement
|
|
1131
|
+
*
|
|
1132
|
+
* Usage: `billing statement [--from=<YYYY-MM-DD>] [--to=<YYYY-MM-DD>]`
|
|
1133
|
+
*
|
|
1134
|
+
* CLI examples:
|
|
1135
|
+
* ```
|
|
1136
|
+
* billing statement --from=2026-01-01 --to=2026-06-30
|
|
1137
|
+
* ```
|
|
1138
|
+
*/
|
|
1139
|
+
billingStatement(options?: BillingStatementOptions): Promise<CommandResult<"billing statement">>;
|
|
1140
|
+
/**
|
|
1141
|
+
* Connect a marketplace subscription to your team
|
|
1142
|
+
*
|
|
1143
|
+
* Usage: `billing provider link <aws|azure> --token=<link-token> [--size=<team-size>] [--team-name=<name>]`
|
|
1144
|
+
*/
|
|
1145
|
+
billingProviderLink(awsOrAzure: "aws" | "azure", options?: BillingProviderLinkOptions): Promise<CommandResult<"billing provider link">>;
|
|
1146
|
+
/**
|
|
1147
|
+
* Manage your invite link and rewards
|
|
1148
|
+
*/
|
|
1149
|
+
invite(options?: CallOptions): Promise<CommandResult<"invite">>;
|
|
1150
|
+
/**
|
|
1151
|
+
* Show your active invite link and reward
|
|
1152
|
+
*
|
|
1153
|
+
* Usage: `invite show`
|
|
1154
|
+
*/
|
|
1155
|
+
inviteShow(options?: CallOptions): Promise<CommandResult<"invite show">>;
|
|
1156
|
+
/**
|
|
1157
|
+
* Print only your active invite link
|
|
1158
|
+
*
|
|
1159
|
+
* Usage: `invite link`
|
|
1160
|
+
*/
|
|
1161
|
+
inviteLink(options?: CallOptions): Promise<CommandResult<"invite link">>;
|
|
1162
|
+
/**
|
|
1163
|
+
* List invite rewards you can use
|
|
1164
|
+
*
|
|
1165
|
+
* Usage: `invite rewards`
|
|
1166
|
+
*/
|
|
1167
|
+
inviteRewards(options?: CallOptions): Promise<CommandResult<"invite rewards">>;
|
|
1168
|
+
/**
|
|
1169
|
+
* Choose the reward for your invite link
|
|
1170
|
+
*
|
|
1171
|
+
* Usage: `invite set-reward standard|bonus-credits|extra-memory|extra-disk`
|
|
1172
|
+
*/
|
|
1173
|
+
inviteSetReward(standardOrBonusCreditsOrExtraMemoryOrExtraDisk: "standard" | "bonus-credits" | "extra-memory" | "extra-disk", options?: CallOptions): Promise<CommandResult<"invite set-reward">>;
|
|
1174
|
+
/**
|
|
1175
|
+
* Show signups, upgrades, and reward status
|
|
1176
|
+
*
|
|
1177
|
+
* Usage: `invite activity`
|
|
1178
|
+
*/
|
|
1179
|
+
inviteActivity(options?: CallOptions): Promise<CommandResult<"invite activity">>;
|
|
1180
|
+
/**
|
|
1181
|
+
* Request more trial invites
|
|
1182
|
+
*
|
|
1183
|
+
* Usage: `invite request`
|
|
1184
|
+
*/
|
|
1185
|
+
inviteRequest(options?: CallOptions): Promise<CommandResult<"invite request">>;
|
|
1186
|
+
/**
|
|
1187
|
+
* Open the invites page
|
|
1188
|
+
*
|
|
1189
|
+
* Usage: `invite manage`
|
|
1190
|
+
*/
|
|
1191
|
+
inviteManage(options?: CallOptions): Promise<CommandResult<"invite manage">>;
|
|
1192
|
+
/**
|
|
1193
|
+
* Generate a magic link to log in to the website
|
|
1194
|
+
*
|
|
1195
|
+
* Usage: `browser`
|
|
1196
|
+
*/
|
|
1197
|
+
browser(options?: BrowserOptions): Promise<CommandResult<"browser">>;
|
|
1198
|
+
}
|
|
1199
|
+
/** A VM reference. info is a snapshot; refresh() fetches current metadata. */
|
|
1200
|
+
export declare class VM {
|
|
1201
|
+
#private;
|
|
1202
|
+
/** @internal Obtain VMs through exe.new(), exe.ls(), exe.vm(), or vm.cp(). */
|
|
1203
|
+
constructor(transport: Transport, info: VMInfo);
|
|
1204
|
+
get info(): Readonly<VMInfo>;
|
|
1205
|
+
get name(): string;
|
|
1206
|
+
get httpsUrl(): string | undefined;
|
|
1207
|
+
get sshDest(): string | undefined;
|
|
1208
|
+
get tags(): readonly string[];
|
|
1209
|
+
/** Run a shell command once. Nonzero exit codes are results, not exceptions. */
|
|
1210
|
+
ssh(command: string, options?: SSHOptions): Promise<SSHResult>;
|
|
1211
|
+
/** Refresh metadata without changing this reference's identity. Requires ls permission. */
|
|
1212
|
+
refresh(options?: CallOptions): Promise<this>;
|
|
1213
|
+
/**
|
|
1214
|
+
* Probe SSH with `true` until it exits successfully. Never reruns a user command.
|
|
1215
|
+
* The default deadline is 60 seconds, including requests and backoff. This does
|
|
1216
|
+
* not wait for application servers or setup scripts. Requires ssh permission.
|
|
1217
|
+
*/
|
|
1218
|
+
waitUntilReady(options?: WaitOptions): Promise<this>;
|
|
1219
|
+
/**
|
|
1220
|
+
* Delete a VM
|
|
1221
|
+
*
|
|
1222
|
+
* Usage: `rm <vmname>...`
|
|
1223
|
+
*
|
|
1224
|
+
* Tag-scoped API keys may run this command.
|
|
1225
|
+
*/
|
|
1226
|
+
rm(options?: CallOptions): Promise<CommandResult<"rm">>;
|
|
1227
|
+
/**
|
|
1228
|
+
* Restart a VM
|
|
1229
|
+
*
|
|
1230
|
+
* Usage: `restart <vmname>`
|
|
1231
|
+
*
|
|
1232
|
+
* Tag-scoped API keys may run this command.
|
|
1233
|
+
*/
|
|
1234
|
+
restart(options?: ReadyOptions): Promise<this>;
|
|
1235
|
+
/**
|
|
1236
|
+
* Pause a VM (snapshot RAM to disk, free its CPU and memory)
|
|
1237
|
+
*
|
|
1238
|
+
* Usage: `pause <vmname>`
|
|
1239
|
+
*
|
|
1240
|
+
* CLI examples:
|
|
1241
|
+
* ```
|
|
1242
|
+
* pause my-vm # snapshot RAM to disk; resume later with 'resume my-vm'
|
|
1243
|
+
* ```
|
|
1244
|
+
*
|
|
1245
|
+
* Tag-scoped API keys may run this command.
|
|
1246
|
+
*/
|
|
1247
|
+
pause(options?: CallOptions): Promise<CommandResult<"pause">>;
|
|
1248
|
+
/**
|
|
1249
|
+
* Resume a paused VM (restore RAM from disk)
|
|
1250
|
+
*
|
|
1251
|
+
* Usage: `resume <vmname>`
|
|
1252
|
+
*
|
|
1253
|
+
* Tag-scoped API keys may run this command.
|
|
1254
|
+
*/
|
|
1255
|
+
resume(options?: ReadyOptions): Promise<this>;
|
|
1256
|
+
/**
|
|
1257
|
+
* rename a vm
|
|
1258
|
+
*
|
|
1259
|
+
* Usage: `rename <oldname> <newname>`
|
|
1260
|
+
*
|
|
1261
|
+
* Tag-scoped API keys may run this command.
|
|
1262
|
+
*/
|
|
1263
|
+
rename(newname: string, options?: CallOptions): Promise<this>;
|
|
1264
|
+
/**
|
|
1265
|
+
* Add or remove tags on a VM
|
|
1266
|
+
*
|
|
1267
|
+
* Usage: `tag [-d] <vm> <tag-name> [tag-name...]`
|
|
1268
|
+
*
|
|
1269
|
+
* CLI examples:
|
|
1270
|
+
* ```
|
|
1271
|
+
* tag my-vm prod web # add tags
|
|
1272
|
+
* tag -d my-vm prod web # remove tags
|
|
1273
|
+
* ```
|
|
1274
|
+
*
|
|
1275
|
+
* Tag-scoped API keys may run this command.
|
|
1276
|
+
*/
|
|
1277
|
+
tag(tagNames: string | readonly string[], options?: TagOptions): Promise<CommandResult<"tag">>;
|
|
1278
|
+
/**
|
|
1279
|
+
* Copy an existing VM
|
|
1280
|
+
*
|
|
1281
|
+
* Usage: `cp <source-vm> [new-name] [--pool=<name>] [--memory=<size>] [--cpu=<count>] [--disk=<size>]`
|
|
1282
|
+
*
|
|
1283
|
+
* CLI examples:
|
|
1284
|
+
* ```
|
|
1285
|
+
* cp my-vm # copy with auto-generated name
|
|
1286
|
+
* cp my-vm my-vm-copy # copy with specific name
|
|
1287
|
+
* cp my-vm --cpu=4 --memory=16GB # copy with different resources
|
|
1288
|
+
* cp my-vm my-pool-copy --pool=build # copy into a team pool
|
|
1289
|
+
* cp my-vm --copy-tags=false # copy without tags
|
|
1290
|
+
* ```
|
|
1291
|
+
*
|
|
1292
|
+
* Tag-scoped API keys may run this command.
|
|
1293
|
+
*/
|
|
1294
|
+
cp(options?: CpOptions): Promise<VM>;
|
|
1295
|
+
/**
|
|
1296
|
+
* Resize a VM's resources (memory, CPU, disk)
|
|
1297
|
+
*
|
|
1298
|
+
* Usage: `resize <vmname> [--memory=<size>] [--cpu=<count>] [--disk=<size>]`
|
|
1299
|
+
*
|
|
1300
|
+
* Tag-scoped API keys may run this command.
|
|
1301
|
+
*/
|
|
1302
|
+
resize(options?: ResizeOptions): Promise<CommandResult<"resize">>;
|
|
1303
|
+
/**
|
|
1304
|
+
* Set or clear a short comment on a VM
|
|
1305
|
+
*
|
|
1306
|
+
* Usage: `comment <hostname> <text>`
|
|
1307
|
+
*
|
|
1308
|
+
* CLI examples:
|
|
1309
|
+
* ```
|
|
1310
|
+
* comment my-vm staging copy
|
|
1311
|
+
* comment my-vm "" # clear the comment
|
|
1312
|
+
* ```
|
|
1313
|
+
*
|
|
1314
|
+
* Tag-scoped API keys may run this command.
|
|
1315
|
+
*/
|
|
1316
|
+
comment(text: string, options?: CallOptions): Promise<CommandResult<"comment">>;
|
|
1317
|
+
/**
|
|
1318
|
+
* Link a custom domain to a VM
|
|
1319
|
+
*
|
|
1320
|
+
* Usage: `domain add [--wildcard] <vm> <domain>`
|
|
1321
|
+
*/
|
|
1322
|
+
domainAdd(domain: string, options?: DomainAddOptions): Promise<CommandResult<"domain add">>;
|
|
1323
|
+
/**
|
|
1324
|
+
* Remove a custom domain from a VM
|
|
1325
|
+
*
|
|
1326
|
+
* Usage: `domain rm <vm> <domain>`
|
|
1327
|
+
*/
|
|
1328
|
+
domainRm(domain: string, options?: CallOptions): Promise<CommandResult<"domain rm">>;
|
|
1329
|
+
/**
|
|
1330
|
+
* Show current shares for a VM
|
|
1331
|
+
*
|
|
1332
|
+
* Usage: `share show <vm>`
|
|
1333
|
+
*
|
|
1334
|
+
* Tag-scoped API keys may run this command.
|
|
1335
|
+
*/
|
|
1336
|
+
shareShow(options?: ShareShowOptions): Promise<CommandResult<"share show">>;
|
|
1337
|
+
/**
|
|
1338
|
+
* Set the HTTP proxy port for a VM
|
|
1339
|
+
*
|
|
1340
|
+
* Usage: `share port <vm> [port]`
|
|
1341
|
+
*
|
|
1342
|
+
* CLI examples:
|
|
1343
|
+
* ```
|
|
1344
|
+
* share port mybox 8080
|
|
1345
|
+
* ```
|
|
1346
|
+
*
|
|
1347
|
+
* Tag-scoped API keys may run this command.
|
|
1348
|
+
*/
|
|
1349
|
+
sharePort(port?: string, options?: CallOptions): Promise<CommandResult<"share port">>;
|
|
1350
|
+
/**
|
|
1351
|
+
* Make the HTTP proxy publicly accessible
|
|
1352
|
+
*
|
|
1353
|
+
* Usage: `share set-public <vm>`
|
|
1354
|
+
*
|
|
1355
|
+
* Tag-scoped API keys may run this command.
|
|
1356
|
+
*/
|
|
1357
|
+
shareSetPublic(options?: CallOptions): Promise<CommandResult<"share set-public">>;
|
|
1358
|
+
/**
|
|
1359
|
+
* Restrict the HTTP proxy to authenticated users
|
|
1360
|
+
*
|
|
1361
|
+
* Usage: `share set-private <vm>`
|
|
1362
|
+
*
|
|
1363
|
+
* Tag-scoped API keys may run this command.
|
|
1364
|
+
*/
|
|
1365
|
+
shareSetPrivate(options?: CallOptions): Promise<CommandResult<"share set-private">>;
|
|
1366
|
+
/**
|
|
1367
|
+
* Share VM with a user via email, or grant shell access with --root
|
|
1368
|
+
*
|
|
1369
|
+
* Usage: `share add <vm> <email|team> [--root] [--message='...']`
|
|
1370
|
+
*
|
|
1371
|
+
* CLI examples:
|
|
1372
|
+
* ```
|
|
1373
|
+
* share add mybox user@example.com
|
|
1374
|
+
* share add mybox user@example.com --message='Check this out'
|
|
1375
|
+
* share add mybox team
|
|
1376
|
+
* share add mybox teammate@example.com --root
|
|
1377
|
+
* share add mybox team --root
|
|
1378
|
+
* ```
|
|
1379
|
+
*
|
|
1380
|
+
* Tag-scoped API keys may run this command.
|
|
1381
|
+
*/
|
|
1382
|
+
shareAdd(emailOrTeam: string, options?: ShareAddOptions): Promise<CommandResult<"share add">>;
|
|
1383
|
+
/**
|
|
1384
|
+
* Revoke a user's access to a VM, or downgrade shell access to web with --root
|
|
1385
|
+
*
|
|
1386
|
+
* Usage: `share remove <vm> <email|team> [--root]`
|
|
1387
|
+
*
|
|
1388
|
+
* CLI examples:
|
|
1389
|
+
* ```
|
|
1390
|
+
* share remove mybox user@example.com
|
|
1391
|
+
* share remove mybox team
|
|
1392
|
+
* share remove mybox teammate@example.com --root
|
|
1393
|
+
* share remove mybox team --root
|
|
1394
|
+
* ```
|
|
1395
|
+
*
|
|
1396
|
+
* Tag-scoped API keys may run this command.
|
|
1397
|
+
*/
|
|
1398
|
+
shareRemove(emailOrTeam: string, options?: ShareRemoveOptions): Promise<CommandResult<"share remove">>;
|
|
1399
|
+
/**
|
|
1400
|
+
* Create a shareable link for a VM
|
|
1401
|
+
*
|
|
1402
|
+
* Usage: `share add-link <vm>`
|
|
1403
|
+
*
|
|
1404
|
+
* Tag-scoped API keys may run this command.
|
|
1405
|
+
*/
|
|
1406
|
+
shareAddLink(options?: ShareAddLinkOptions): Promise<CommandResult<"share add-link">>;
|
|
1407
|
+
/**
|
|
1408
|
+
* Revoke a shareable link
|
|
1409
|
+
*
|
|
1410
|
+
* Usage: `share remove-link <vm> <token>`
|
|
1411
|
+
*
|
|
1412
|
+
* Tag-scoped API keys may run this command.
|
|
1413
|
+
*/
|
|
1414
|
+
shareRemoveLink(token: string, options?: CallOptions): Promise<CommandResult<"share remove-link">>;
|
|
1415
|
+
/**
|
|
1416
|
+
* Enable or disable inbound email for a VM
|
|
1417
|
+
*
|
|
1418
|
+
* Usage: `share receive-email <vm> [on|off] [--reply-policy=all|known|owner|none]`
|
|
1419
|
+
*
|
|
1420
|
+
* CLI examples:
|
|
1421
|
+
* ```
|
|
1422
|
+
* share receive-email mybox on
|
|
1423
|
+
* share receive-email mybox off
|
|
1424
|
+
* share receive-email mybox --reply-policy=known
|
|
1425
|
+
* share receive-email mybox
|
|
1426
|
+
* ```
|
|
1427
|
+
*
|
|
1428
|
+
* Tag-scoped API keys may run this command.
|
|
1429
|
+
*/
|
|
1430
|
+
shareReceiveEmail(onOrOff?: "on" | "off", options?: ShareReceiveEmailOptions): Promise<CommandResult<"share receive-email">>;
|
|
1431
|
+
/**
|
|
1432
|
+
* Install or upgrade Shelley to the current version
|
|
1433
|
+
*
|
|
1434
|
+
* Usage: `shelley install <vm>`
|
|
1435
|
+
*
|
|
1436
|
+
* Tag-scoped API keys may run this command.
|
|
1437
|
+
*/
|
|
1438
|
+
shelleyInstall(options?: CallOptions): Promise<CommandResult<"shelley install">>;
|
|
1439
|
+
/**
|
|
1440
|
+
* Allow exe.dev support to log in to a VM
|
|
1441
|
+
*
|
|
1442
|
+
* Usage: `grant-support-root <vmname> on|off`
|
|
1443
|
+
*
|
|
1444
|
+
* Tag-scoped API keys may run this command.
|
|
1445
|
+
*/
|
|
1446
|
+
grantSupportRoot(onOrOff: "on" | "off", options?: CallOptions): Promise<CommandResult<"grant-support-root">>;
|
|
1447
|
+
/**
|
|
1448
|
+
* Show vCPU, disk, IO, and network (RX/TX) metrics for a VM
|
|
1449
|
+
*
|
|
1450
|
+
* Usage: `stat <vm-name> [--range=24h|7d|30d]`
|
|
1451
|
+
*
|
|
1452
|
+
* CLI examples:
|
|
1453
|
+
* ```
|
|
1454
|
+
* stat my-vm # last 24 hours (default)
|
|
1455
|
+
* stat my-vm --range=7d # last 7 days
|
|
1456
|
+
* stat my-vm --range=30d # last 30 days
|
|
1457
|
+
* ```
|
|
1458
|
+
*
|
|
1459
|
+
* Tag-scoped API keys may run this command.
|
|
1460
|
+
*/
|
|
1461
|
+
stat(options?: StatOptions): Promise<CommandResult<"stat">>;
|
|
1462
|
+
}
|
|
1463
|
+
/** Readiness failed after a VM was obtained/created. The VM is not deleted. */
|
|
1464
|
+
export declare class VMReadyError extends Error {
|
|
1465
|
+
readonly vm: VM;
|
|
1466
|
+
constructor(vm: VM, cause: unknown);
|
|
1467
|
+
}
|
|
1468
|
+
//# sourceMappingURL=commands.gen.d.ts.map
|