oblien 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,338 @@
1
+ /**
2
+ * Namespace operations — CRUD, lifecycle actions, activity, and usage.
3
+ *
4
+ * ```ts
5
+ * import Oblien from 'oblien';
6
+ * const client = new Oblien({ clientId, clientSecret });
7
+ *
8
+ * // Create
9
+ * const ns = await client.namespaces.create({ name: 'production' });
10
+ *
11
+ * // List
12
+ * const { data } = await client.namespaces.list({ status: 'active' });
13
+ *
14
+ * // Suspend / Activate
15
+ * await client.namespaces.suspend(ns.data.id);
16
+ * await client.namespaces.activate(ns.data.id);
17
+ *
18
+ * // Delete
19
+ * await client.namespaces.delete(ns.data.id, { deleteWorkspaces: true });
20
+ * ```
21
+ */
22
+ export class Namespace {
23
+ /** @internal */
24
+ _http;
25
+ _base = '/namespaces';
26
+ constructor(client) {
27
+ this._http = client._http;
28
+ }
29
+ // ── CRUD ──────────────────────────────────────────────────────────
30
+ /**
31
+ * Create a new namespace.
32
+ *
33
+ * ```ts
34
+ * const res = await client.namespaces.create({
35
+ * name: 'my-project',
36
+ * type: 'production',
37
+ * tags: ['api', 'v2'],
38
+ * });
39
+ * console.log(res.data.slug); // 'my-project'
40
+ * ```
41
+ */
42
+ async create(params) {
43
+ return this._http.request({
44
+ method: 'POST',
45
+ path: this._base,
46
+ body: params,
47
+ });
48
+ }
49
+ /**
50
+ * List namespaces with optional filtering, search, and pagination.
51
+ *
52
+ * ```ts
53
+ * const { data, pagination } = await client.namespaces.list({
54
+ * status: 'active',
55
+ * search: 'prod',
56
+ * limit: 20,
57
+ * });
58
+ * ```
59
+ */
60
+ async list(params = {}) {
61
+ return this._http.request({
62
+ method: 'GET',
63
+ path: this._base,
64
+ query: params,
65
+ });
66
+ }
67
+ /**
68
+ * Get a namespace by ID or slug.
69
+ *
70
+ * ```ts
71
+ * const ns = await client.namespaces.get('my-project');
72
+ * console.log(ns.data.status); // 'active'
73
+ * ```
74
+ */
75
+ async get(idOrSlug) {
76
+ return this._http.request({
77
+ method: 'GET',
78
+ path: `${this._base}/${idOrSlug}`,
79
+ });
80
+ }
81
+ /**
82
+ * Update a namespace.
83
+ *
84
+ * ```ts
85
+ * await client.namespaces.update('ns_abc', {
86
+ * description: 'Production workloads',
87
+ * tags: ['production', 'critical'],
88
+ * });
89
+ * ```
90
+ */
91
+ async update(id, params) {
92
+ return this._http.request({
93
+ method: 'PUT',
94
+ path: `${this._base}/${id}`,
95
+ body: params,
96
+ });
97
+ }
98
+ /**
99
+ * Delete a namespace. Optionally delete all its workspaces.
100
+ *
101
+ * ```ts
102
+ * await client.namespaces.delete('ns_abc', { deleteWorkspaces: true });
103
+ * ```
104
+ */
105
+ async delete(id, params = {}) {
106
+ return this._http.request({
107
+ method: 'DELETE',
108
+ path: `${this._base}/${id}`,
109
+ body: params,
110
+ });
111
+ }
112
+ // ── Lifecycle actions ─────────────────────────────────────────────
113
+ /**
114
+ * Suspend a namespace — stops all running workspaces and sets status to `suspended`.
115
+ *
116
+ * ```ts
117
+ * await client.namespaces.suspend('ns_abc');
118
+ * ```
119
+ */
120
+ async suspend(id) {
121
+ return this._http.request({
122
+ method: 'POST',
123
+ path: `${this._base}/${id}/suspend`,
124
+ });
125
+ }
126
+ /**
127
+ * Activate a suspended namespace — sets status back to `active`.
128
+ *
129
+ * ```ts
130
+ * await client.namespaces.activate('ns_abc');
131
+ * ```
132
+ */
133
+ async activate(id) {
134
+ return this._http.request({
135
+ method: 'POST',
136
+ path: `${this._base}/${id}/activate`,
137
+ });
138
+ }
139
+ /**
140
+ * Stop all running workspaces in a namespace without changing namespace status.
141
+ *
142
+ * ```ts
143
+ * await client.namespaces.stopWorkspaces('ns_abc');
144
+ * ```
145
+ */
146
+ async stopWorkspaces(id) {
147
+ return this._http.request({
148
+ method: 'POST',
149
+ path: `${this._base}/${id}/stop-workspaces`,
150
+ });
151
+ }
152
+ // ── Activity & Usage ──────────────────────────────────────────────
153
+ /**
154
+ * Get namespace activity log.
155
+ *
156
+ * ```ts
157
+ * const { data } = await client.namespaces.activity('ns_abc', { limit: 20 });
158
+ * ```
159
+ */
160
+ async activity(id, params = {}) {
161
+ return this._http.request({
162
+ method: 'GET',
163
+ path: `${this._base}/${id}/activity`,
164
+ query: params,
165
+ });
166
+ }
167
+ /**
168
+ * Get namespace usage statistics.
169
+ *
170
+ * ```ts
171
+ * const { data } = await client.namespaces.usage('ns_abc', { days: 30 });
172
+ * ```
173
+ */
174
+ async usage(id, params = {}) {
175
+ return this._http.request({
176
+ method: 'GET',
177
+ path: `${this._base}/${id}/usage`,
178
+ query: params,
179
+ });
180
+ }
181
+ // ── Quotas & Overdraft ────────────────────────────────────────────
182
+ /**
183
+ * Set or update a namespace quota for a service.
184
+ *
185
+ * Configures spending limits with optional overdraft (grace zone beyond the
186
+ * hard limit). When usage exceeds `quotaLimit + overdraft`, the
187
+ * `onOverdraftAction` fires — either blocking new requests or stopping all
188
+ * running workspaces in the namespace.
189
+ *
190
+ * ```ts
191
+ * await client.namespaces.setQuota({
192
+ * namespace: 'production',
193
+ * service: 'sandbox',
194
+ * quotaLimit: 500,
195
+ * period: 'monthly',
196
+ * overdraft: 50,
197
+ * onOverdraftAction: 'stop_workspaces',
198
+ * });
199
+ * ```
200
+ */
201
+ async setQuota(params) {
202
+ return this._http.request({
203
+ method: 'POST',
204
+ path: '/credits/namespace-quota',
205
+ body: params,
206
+ });
207
+ }
208
+ /**
209
+ * Reset quota usage to zero for a namespace + service.
210
+ *
211
+ * ```ts
212
+ * await client.namespaces.resetQuota({ namespace: 'production', service: 'sandbox' });
213
+ * ```
214
+ */
215
+ async resetQuota(params) {
216
+ return this._http.request({
217
+ method: 'POST',
218
+ path: '/credits/reset-quota',
219
+ body: params,
220
+ });
221
+ }
222
+ /**
223
+ * List namespaces enriched with quota and spending data.
224
+ *
225
+ * Returns namespace entities merged with financial info — total spent,
226
+ * active quotas, and per-service breakdown.
227
+ *
228
+ * ```ts
229
+ * const res = await client.namespaces.listWithQuotas({ status: 'active', limit: 20 });
230
+ * ```
231
+ */
232
+ async listWithQuotas(params = {}) {
233
+ return this._http.request({
234
+ method: 'GET',
235
+ path: '/credits/namespaces',
236
+ query: params,
237
+ });
238
+ }
239
+ /**
240
+ * Get comprehensive namespace details — quotas, usage stats, service breakdown,
241
+ * daily timeline, and recent transactions.
242
+ *
243
+ * ```ts
244
+ * const details = await client.namespaces.getDetails('production', { days: 30 });
245
+ * ```
246
+ */
247
+ async getDetails(namespace, params = {}) {
248
+ return this._http.request({
249
+ method: 'GET',
250
+ path: `/credits/namespaces/${namespace}`,
251
+ query: params,
252
+ });
253
+ }
254
+ // ── Default Quotas ────────────────────────────────────────────────
255
+ /**
256
+ * Set a default quota configuration.
257
+ *
258
+ * Default quotas are automatically applied to new namespaces when
259
+ * `autoApply` is enabled. Useful for SaaS platforms that assign a standard
260
+ * spending limit to every customer namespace.
261
+ *
262
+ * ```ts
263
+ * await client.namespaces.setDefaultQuota({
264
+ * service: 'sandbox',
265
+ * quotaLimit: 100,
266
+ * period: 'monthly',
267
+ * overdraft: 10,
268
+ * onOverdraftAction: 'block',
269
+ * autoApply: true,
270
+ * });
271
+ * ```
272
+ */
273
+ async setDefaultQuota(params) {
274
+ return this._http.request({
275
+ method: 'POST',
276
+ path: '/credits/defaults',
277
+ body: { ...params, level: 'namespace' },
278
+ });
279
+ }
280
+ /**
281
+ * Get the default quota configuration for a service.
282
+ *
283
+ * ```ts
284
+ * const config = await client.namespaces.getDefaultQuota('sandbox');
285
+ * ```
286
+ */
287
+ async getDefaultQuota(service) {
288
+ return this._http.request({
289
+ method: 'GET',
290
+ path: '/credits/defaults',
291
+ query: { level: 'namespace', service },
292
+ });
293
+ }
294
+ /**
295
+ * Get all default quota configurations.
296
+ *
297
+ * ```ts
298
+ * const configs = await client.namespaces.getAllDefaultQuotas();
299
+ * ```
300
+ */
301
+ async getAllDefaultQuotas() {
302
+ return this._http.request({
303
+ method: 'GET',
304
+ path: '/credits/defaults/all',
305
+ query: { level: 'namespace' },
306
+ });
307
+ }
308
+ /**
309
+ * Delete a default quota configuration for a service.
310
+ *
311
+ * ```ts
312
+ * await client.namespaces.deleteDefaultQuota('sandbox');
313
+ * ```
314
+ */
315
+ async deleteDefaultQuota(service) {
316
+ return this._http.request({
317
+ method: 'DELETE',
318
+ path: '/credits/defaults',
319
+ body: { level: 'namespace', service },
320
+ });
321
+ }
322
+ /**
323
+ * Toggle auto-apply for a default quota. When enabled, the default quota
324
+ * is automatically assigned to new namespaces that don't have one yet.
325
+ *
326
+ * ```ts
327
+ * await client.namespaces.toggleDefaultQuotaAutoApply('sandbox', true);
328
+ * ```
329
+ */
330
+ async toggleDefaultQuotaAutoApply(service, autoApply) {
331
+ return this._http.request({
332
+ method: 'POST',
333
+ path: '/credits/defaults/toggle-auto-apply',
334
+ body: { level: 'namespace', service, autoApply },
335
+ });
336
+ }
337
+ }
338
+ //# sourceMappingURL=namespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,SAAS;IACpB,gBAAgB;IACP,KAAK,CAAa;IAEV,KAAK,GAAG,aAAa,CAAC;IAEvC,YAAY,MAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,qEAAqE;IAErE;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,MAA6B;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,CAAC,SAA8B,EAAE;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,KAAK,EAAE,MAA+D;SACvE,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,GAAG,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;SAClC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA6B;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;YAC3B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAgC,EAAE;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;YAC3B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IAErE;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,UAAU;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,WAAW;SACrC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,kBAAkB;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IAErE;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,SAAkC,EAAE;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,WAAW;YACpC,KAAK,EAAE,MAA+D;SACvE,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,SAA+B,EAAE;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,QAAQ;YACjC,KAAK,EAAE,MAA+D;SACvE,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IAErE;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,QAAQ,CAAC,MAA+B;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,MAAiC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,cAAc,CAAC,SAAwC,EAAE;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,MAA+D;SACvE,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,SAAiC,EAAE;QACrE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,uBAAuB,SAAS,EAAE;YACxC,KAAK,EAAE,MAA+D;SACvE,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IAErE;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;SACxC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,uBAAuB;YAC7B,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAe;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE;SACtC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,2BAA2B,CAAC,OAAe,EAAE,SAAkB;QACnE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,qCAAqC;YAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE;SACjD,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -5,4 +5,5 @@ export type { NetworkSpec, FirewallRule, PrivateLink } from './network.js';
5
5
  export type { ResourceSpec, LifecycleSpec } from './resources.js';
6
6
  export type { RuntimeOptions, FileListParams, FileEntry, FileListResponse, FileReadParams, FileReadResponse, FileWriteParams, FileWriteResponse, FileMkdirParams, FileStatParams, FileStatResponse, FileDeleteParams, ContentSearchParams, SearchMatch, ContentSearchResponse, FileSearchParams, FileSearchResponse, SearchStatusResponse, SearchInitResponse, ExecRunParams, ExecTask, ExecListResponse, ExecStreamEvent, TerminalCreateParams, TerminalSession, TerminalListResponse, TerminalScrollbackResponse, WatcherCreateParams, WatcherInfo, WatcherListResponse, WSOptions, WSMessage, WSTerminalResize, WSTerminalExit, WSTerminalEvent, WSWatcherChange, WSWatcherReady, WSWatcherOverflow, WSWatcherEvent, } from './runtime.js';
7
7
  export type { LifecycleStatus, MakeTemporaryParams, UpdateTtlParams, SshStatus, SshPasswordParams, SshKeyParams, PublicAccessPort, ExposePortParams, SnapshotParams, ArchiveCreateParams, ArchiveInfo, WorkloadCreateParams, WorkloadUpdateParams, WorkloadInfo, WorkloadListParams, UsageParams, UpdateResourcesParams, UpdateMetadataParams, ApiAccessStatus, RawTokenResponse, NetworkUpdateParams, NetworkConfig, LogsParams, LogFile, LogStreamEvent, StatsEvent, WorkloadStatsEvent, WorkloadLogEntry, ImagesListParams, } from './workspace-resources.js';
8
+ export type { NamespaceStatus, NamespaceType, NamespaceResourceLimits, NamespaceData, NamespaceCreateParams, NamespaceUpdateParams, NamespaceListParams, NamespaceListResponse, NamespaceActivity, NamespaceActivityParams, NamespaceUsageParams, NamespaceDeleteParams, QuotaPeriod, OverdraftAction, NamespaceQuota, SetNamespaceQuotaParams, ResetNamespaceQuotaParams, NamespaceListWithQuotasParams, NamespaceDetailsParams, DefaultQuotaConfig, SetDefaultQuotaParams, ToggleDefaultQuotaAutoApplyParams, DeleteDefaultQuotaParams, } from './namespace.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3E,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGlE,YAAY,EACV,cAAc,EACd,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EAEnB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,OAAO,EACP,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3E,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGlE,YAAY,EACV,cAAc,EACd,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EAEnB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,OAAO,EACP,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,169 @@
1
+ export type NamespaceStatus = 'active' | 'inactive' | 'suspended';
2
+ export type NamespaceType = 'default' | 'production' | 'staging' | 'development' | 'testing';
3
+ /** Per-namespace workspace resource caps. `null` = inherit from account plan. */
4
+ export interface NamespaceResourceLimits {
5
+ max_workspaces?: number | null;
6
+ max_vcpus?: number | null;
7
+ max_ram_mb?: number | null;
8
+ max_disk_gb?: number | null;
9
+ }
10
+ /** Namespace entity returned by the API. */
11
+ export interface NamespaceData {
12
+ id: string;
13
+ client_id: string;
14
+ name: string;
15
+ slug: string;
16
+ description?: string;
17
+ status: NamespaceStatus;
18
+ type: string;
19
+ is_default: boolean;
20
+ metadata?: Record<string, unknown>;
21
+ tags?: string[];
22
+ resource_limits?: NamespaceResourceLimits | null;
23
+ created_at: string;
24
+ updated_at: string;
25
+ last_active_at?: string;
26
+ }
27
+ /** Parameters for creating a namespace. */
28
+ export interface NamespaceCreateParams {
29
+ name: string;
30
+ slug?: string;
31
+ description?: string;
32
+ type?: NamespaceType;
33
+ isDefault?: boolean;
34
+ metadata?: Record<string, unknown>;
35
+ tags?: string[];
36
+ resource_limits?: NamespaceResourceLimits;
37
+ }
38
+ /** Parameters for updating a namespace. */
39
+ export interface NamespaceUpdateParams {
40
+ name?: string;
41
+ description?: string;
42
+ status?: NamespaceStatus;
43
+ type?: NamespaceType;
44
+ tags?: string[];
45
+ metadata?: Record<string, unknown>;
46
+ resource_limits?: NamespaceResourceLimits;
47
+ }
48
+ /** Parameters for listing namespaces. */
49
+ export interface NamespaceListParams {
50
+ limit?: number;
51
+ offset?: number;
52
+ status?: NamespaceStatus;
53
+ type?: NamespaceType;
54
+ search?: string;
55
+ sortBy?: 'created_at' | 'updated_at' | 'name';
56
+ sortOrder?: 'ASC' | 'DESC';
57
+ }
58
+ /** Response from listing namespaces. */
59
+ export interface NamespaceListResponse {
60
+ success: boolean;
61
+ data: NamespaceData[];
62
+ pagination: {
63
+ total: number;
64
+ limit: number;
65
+ offset: number;
66
+ };
67
+ }
68
+ /** Activity log entry. */
69
+ export interface NamespaceActivity {
70
+ id: number;
71
+ namespace_id: string;
72
+ user_id?: string;
73
+ action: string;
74
+ description?: string;
75
+ changes?: Record<string, unknown>;
76
+ ip_address?: string;
77
+ user_agent?: string;
78
+ created_at: string;
79
+ }
80
+ /** Parameters for fetching activity log. */
81
+ export interface NamespaceActivityParams {
82
+ limit?: number;
83
+ offset?: number;
84
+ }
85
+ /** Parameters for fetching usage. */
86
+ export interface NamespaceUsageParams {
87
+ service?: string;
88
+ days?: number;
89
+ }
90
+ /** Parameters for deleting a namespace. */
91
+ export interface NamespaceDeleteParams {
92
+ deleteWorkspaces?: boolean;
93
+ }
94
+ export type QuotaPeriod = 'daily' | 'monthly' | 'unlimited';
95
+ export type OverdraftAction = 'block' | 'stop_workspaces';
96
+ /** A namespace quota for a specific service. */
97
+ export interface NamespaceQuota {
98
+ id: number;
99
+ client_id: string;
100
+ namespace: string;
101
+ service: string;
102
+ quota_limit: number | null;
103
+ quota_used: number;
104
+ overdraft: number;
105
+ on_overdraft_action: OverdraftAction;
106
+ period: QuotaPeriod;
107
+ period_start?: string;
108
+ period_end?: string;
109
+ enabled: boolean;
110
+ created_at: string;
111
+ updated_at: string;
112
+ }
113
+ /** Parameters for setting a namespace quota. */
114
+ export interface SetNamespaceQuotaParams {
115
+ namespace: string;
116
+ service: string;
117
+ quotaLimit: number;
118
+ period?: QuotaPeriod;
119
+ overdraft?: number;
120
+ onOverdraftAction?: OverdraftAction;
121
+ }
122
+ /** Parameters for resetting quota usage. */
123
+ export interface ResetNamespaceQuotaParams {
124
+ namespace: string;
125
+ service: string;
126
+ }
127
+ /** Parameters for listing namespaces with quota/spending data. */
128
+ export interface NamespaceListWithQuotasParams {
129
+ limit?: number;
130
+ offset?: number;
131
+ search?: string;
132
+ status?: NamespaceStatus;
133
+ }
134
+ /** Parameters for getting detailed namespace quota info. */
135
+ export interface NamespaceDetailsParams {
136
+ days?: number;
137
+ }
138
+ /** Default quota configuration. */
139
+ export interface DefaultQuotaConfig {
140
+ id: number;
141
+ client_id: string;
142
+ level: 'namespace' | 'end_user';
143
+ service: string;
144
+ quota_limit: number;
145
+ overdraft: number;
146
+ on_overdraft_action: OverdraftAction;
147
+ period: QuotaPeriod;
148
+ auto_apply: boolean;
149
+ enabled: boolean;
150
+ }
151
+ /** Parameters for setting a default quota. */
152
+ export interface SetDefaultQuotaParams {
153
+ service: string;
154
+ quotaLimit: number;
155
+ period?: QuotaPeriod;
156
+ overdraft?: number;
157
+ onOverdraftAction?: OverdraftAction;
158
+ autoApply?: boolean;
159
+ }
160
+ /** Parameters for toggling auto-apply on a default quota. */
161
+ export interface ToggleDefaultQuotaAutoApplyParams {
162
+ service: string;
163
+ autoApply: boolean;
164
+ }
165
+ /** Parameters for deleting a default quota. */
166
+ export interface DeleteDefaultQuotaParams {
167
+ service: string;
168
+ }
169
+ //# sourceMappingURL=namespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/types/namespace.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAE7F,iFAAiF;AACjF,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C;AAED,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC;IAC9C,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,0BAA0B;AAC1B,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qCAAqC;AACrC,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAE1D,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,eAAe,CAAC;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,eAAe,CAAC;CACrC;AAED,4CAA4C;AAC5C,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kEAAkE;AAClE,MAAM,WAAW,6BAA6B;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,WAAW,GAAG,UAAU,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,eAAe,CAAC;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,8CAA8C;AAC9C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,6DAA6D;AAC7D,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ // ── Namespace types ─────────────────────────────────────────────────
2
+ export {};
3
+ //# sourceMappingURL=namespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/types/namespace.ts"],"names":[],"mappings":"AAAA,uEAAuE"}
@@ -0,0 +1,112 @@
1
+ import type { Workspace } from './workspace.js';
2
+ import { Runtime } from './runtime.js';
3
+ import type { LifecycleResource } from './resources/lifecycle.js';
4
+ import type { NetworkResource } from './resources/network.js';
5
+ import type { SshResource } from './resources/ssh.js';
6
+ import type { PublicAccessResource } from './resources/public-access.js';
7
+ import type { ResourcesResource } from './resources/resources.js';
8
+ import type { SnapshotsResource } from './resources/snapshots.js';
9
+ import type { WorkloadsResource } from './resources/workloads.js';
10
+ import type { MetricsResource } from './resources/metrics.js';
11
+ import type { UsageResource } from './resources/usage.js';
12
+ import type { MetadataResource } from './resources/metadata.js';
13
+ import type { ApiAccessResource } from './resources/api-access.js';
14
+ import type { LogsResource } from './resources/logs.js';
15
+ import type { ApiResponse, WorkspaceUpdateParams, WorkspaceData } from './types/index.js';
16
+ /** Strip the first arg (workspaceId) from a function's parameters. */
17
+ type DropFirst<F> = F extends (first: string, ...rest: infer R) => infer Ret ? (...args: R) => Ret : F;
18
+ /** Every method on T, but with the first string param pre-filled. */
19
+ type Scoped<T> = {
20
+ [K in keyof T]: DropFirst<T[K]>;
21
+ };
22
+ /**
23
+ * A scoped handle bound to a single workspace ID.
24
+ *
25
+ * Instead of passing the workspace ID to every method:
26
+ * ```ts
27
+ * await client.workspaces.start('ws_abc');
28
+ * await client.workspaces.runtime('ws_abc');
29
+ * ```
30
+ *
31
+ * You bind it once:
32
+ * ```ts
33
+ * const ws = client.workspace('ws_abc');
34
+ * await ws.start();
35
+ * const rt = await ws.runtime();
36
+ * await rt.exec.run(['ls']);
37
+ * ```
38
+ *
39
+ * The handle delegates to the underlying {@link Workspace} class,
40
+ * pre-filling the workspace ID on every call.
41
+ */
42
+ export declare class WorkspaceHandle {
43
+ /** The workspace ID this handle is bound to. */
44
+ readonly id: string;
45
+ /** @internal */
46
+ private readonly _ws;
47
+ /** Lifecycle — permanent/temporary mode, TTL, ping. */
48
+ readonly lifecycle: Scoped<LifecycleResource>;
49
+ /** Network — firewall, private links, outbound IP. */
50
+ readonly network: Scoped<NetworkResource>;
51
+ /** SSH access — enable, disable, set password/key. */
52
+ readonly ssh: Scoped<SshResource>;
53
+ /** Public port access — expose and revoke ports. */
54
+ readonly publicAccess: Scoped<PublicAccessResource>;
55
+ /** Resources — CPU, memory, disk allocation. */
56
+ readonly resources: Scoped<ResourcesResource>;
57
+ /** Snapshots and archives. */
58
+ readonly snapshots: Scoped<SnapshotsResource>;
59
+ /** Managed workloads (long-running processes). */
60
+ readonly workloads: Scoped<WorkloadsResource>;
61
+ /** Monitoring — live CPU/memory/disk/network stats, VM info. */
62
+ readonly metrics: Scoped<MetricsResource>;
63
+ /** Usage tracking. */
64
+ readonly usage: Scoped<UsageResource>;
65
+ /** Metadata key-values. */
66
+ readonly metadata: Scoped<MetadataResource>;
67
+ /** Internal API server management — enable, disable, rotate tokens. */
68
+ readonly apiAccess: Scoped<ApiAccessResource>;
69
+ /** Logs — boot and command logs. */
70
+ readonly logs: Scoped<LogsResource>;
71
+ constructor(workspace: Workspace, workspaceId: string);
72
+ /** Fetch the workspace data. */
73
+ get(): Promise<WorkspaceData>;
74
+ /** Update workspace settings. */
75
+ update(params: WorkspaceUpdateParams): Promise<WorkspaceData>;
76
+ /** Permanently delete the workspace. */
77
+ delete(): Promise<ApiResponse>;
78
+ /** Get aggregated workspace details. */
79
+ getDetails(): Promise<ApiResponse>;
80
+ /** Start the workspace. */
81
+ start(params?: {
82
+ force?: boolean;
83
+ }): Promise<ApiResponse>;
84
+ /** Stop the workspace. */
85
+ stop(): Promise<ApiResponse>;
86
+ /** Restart the workspace. */
87
+ restart(): Promise<ApiResponse>;
88
+ /** Pause the workspace (preserves memory state). */
89
+ pause(): Promise<ApiResponse>;
90
+ /** Resume a paused workspace. */
91
+ resume(): Promise<ApiResponse>;
92
+ /** Keep-alive ping — renews TTL for temporary workspaces. */
93
+ ping(params?: {
94
+ ttl_seconds?: number;
95
+ }): Promise<ApiResponse>;
96
+ /**
97
+ * Get a {@link Runtime} handle (smart enable-if-needed + token caching).
98
+ *
99
+ * ```ts
100
+ * const ws = client.workspace('ws_abc');
101
+ * const rt = await ws.runtime();
102
+ * await rt.exec.run(['ls', '-la']);
103
+ * ```
104
+ */
105
+ runtime(options?: {
106
+ force?: boolean;
107
+ }): Promise<Runtime>;
108
+ /** Invalidate the cached Runtime for this workspace. */
109
+ invalidateRuntime(): void;
110
+ }
111
+ export {};
112
+ //# sourceMappingURL=workspace-handle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-handle.d.ts","sourceRoot":"","sources":["../src/workspace-handle.ts"],"names":[],"mappings":"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"}