sandbox0 0.7.6 → 0.7.8
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/README.md +47 -0
- package/dist/apispec/src/apis/ObservabilityApi.d.ts +27 -16
- package/dist/apispec/src/apis/ObservabilityApi.d.ts.map +1 -1
- package/dist/apispec/src/apis/ObservabilityApi.js +54 -25
- package/dist/apispec/src/apis/SandboxRootfsApi.d.ts +6 -2
- package/dist/apispec/src/apis/SandboxRootfsApi.d.ts.map +1 -1
- package/dist/apispec/src/apis/SandboxRootfsApi.js +6 -2
- package/dist/apispec/src/apis/index.d.ts +0 -1
- package/dist/apispec/src/apis/index.d.ts.map +1 -1
- package/dist/apispec/src/apis/index.js +0 -1
- package/dist/apispec/src/models/CreateSandboxRootFSSnapshotRequest.d.ts +2 -0
- package/dist/apispec/src/models/CreateSandboxRootFSSnapshotRequest.d.ts.map +1 -1
- package/dist/apispec/src/models/CreateSandboxVolumeS3Config.d.ts +6 -6
- package/dist/apispec/src/models/CreateSandboxVolumeS3Config.d.ts.map +1 -1
- package/dist/apispec/src/models/CreateSandboxVolumeS3Config.js +6 -2
- package/dist/apispec/src/models/ForkSandboxRequest.d.ts +2 -0
- package/dist/apispec/src/models/ForkSandboxRequest.d.ts.map +1 -1
- package/dist/apispec/src/models/SandboxObservabilityWatchLine.d.ts +0 -1
- package/dist/apispec/src/models/SandboxObservabilityWatchLine.d.ts.map +1 -1
- package/dist/apispec/src/models/SandboxObservabilityWatchLine.js +0 -1
- package/dist/apispec/src/models/SandboxObservabilityWatchLineData.d.ts +1 -2
- package/dist/apispec/src/models/SandboxObservabilityWatchLineData.d.ts.map +1 -1
- package/dist/apispec/src/models/SandboxObservabilityWatchLineData.js +0 -7
- package/dist/apispec/src/models/SandboxRuntimeMetricDescriptor.d.ts +60 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricDescriptor.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricDescriptor.js +62 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricFreshness.d.ts +46 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricFreshness.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricFreshness.js +48 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricFreshnessStatus.d.ts +27 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricFreshnessStatus.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricFreshnessStatus.js +44 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricGap.d.ts +61 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricGap.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricGap.js +59 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricGapReason.d.ts +29 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricGapReason.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricGapReason.js +46 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricKind.d.ts +26 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricKind.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricKind.js +43 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricName.d.ts +38 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricName.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricName.js +55 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricPoint.d.ts +39 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricPoint.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricPoint.js +47 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricSegment.d.ts +34 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricSegment.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricSegment.js +44 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricSeries.d.ts +70 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricSeries.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricSeries.js +66 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricStatistic.d.ts +30 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricStatistic.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricStatistic.js +47 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricUnit.d.ts +31 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricUnit.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricUnit.js +48 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricsCatalogResponse.d.ts +34 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricsCatalogResponse.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricsCatalogResponse.js +44 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricsResponse.d.ts +72 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricsResponse.d.ts.map +1 -0
- package/dist/apispec/src/models/SandboxRuntimeMetricsResponse.js +70 -0
- package/dist/apispec/src/models/SuccessSandboxRuntimeMetricsCatalogResponse.d.ts +40 -0
- package/dist/apispec/src/models/SuccessSandboxRuntimeMetricsCatalogResponse.d.ts.map +1 -0
- package/dist/apispec/src/models/SuccessSandboxRuntimeMetricsCatalogResponse.js +46 -0
- package/dist/apispec/src/models/SuccessSandboxRuntimeMetricsResponse.d.ts +40 -0
- package/dist/apispec/src/models/SuccessSandboxRuntimeMetricsResponse.d.ts.map +1 -0
- package/dist/apispec/src/models/SuccessSandboxRuntimeMetricsResponse.js +46 -0
- package/dist/apispec/src/models/index.d.ts +16 -3
- package/dist/apispec/src/models/index.d.ts.map +1 -1
- package/dist/apispec/src/models/index.js +16 -3
- package/dist/client.d.ts +3 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +10 -26
- package/dist/errors.d.ts +15 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +34 -0
- package/dist/index.d.ts +25 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/models.d.ts +25 -11
- package/dist/models.d.ts.map +1 -1
- package/dist/resources/sandboxes.d.ts +13 -1
- package/dist/resources/sandboxes.d.ts.map +1 -1
- package/dist/resources/sandboxes.js +106 -2
- package/dist/sandbox_observability.d.ts +3 -5
- package/dist/sandbox_observability.d.ts.map +1 -1
- package/dist/sandbox_observability.js +4 -10
- package/package.json +1 -1
- package/dist/apispec/src/apis/AuditApi.d.ts +0 -40
- package/dist/apispec/src/apis/AuditApi.d.ts.map +0 -1
- package/dist/apispec/src/apis/AuditApi.js +0 -79
- package/dist/apispec/src/models/ContextStatsResponse.d.ts +0 -64
- package/dist/apispec/src/models/ContextStatsResponse.d.ts.map +0 -1
- package/dist/apispec/src/models/ContextStatsResponse.js +0 -52
- package/dist/apispec/src/models/LifecyclePolicy.d.ts +0 -52
- package/dist/apispec/src/models/LifecyclePolicy.d.ts.map +0 -1
- package/dist/apispec/src/models/LifecyclePolicy.js +0 -48
- package/dist/apispec/src/models/PreStopHook.d.ts +0 -39
- package/dist/apispec/src/models/PreStopHook.d.ts.map +0 -1
- package/dist/apispec/src/models/PreStopHook.js +0 -43
- package/dist/apispec/src/models/PutTeamQuotaRequest.d.ts +0 -33
- package/dist/apispec/src/models/PutTeamQuotaRequest.d.ts.map +0 -1
- package/dist/apispec/src/models/PutTeamQuotaRequest.js +0 -43
- package/dist/apispec/src/models/SandboxObservabilityMetricSample.d.ts +0 -101
- package/dist/apispec/src/models/SandboxObservabilityMetricSample.d.ts.map +0 -1
- package/dist/apispec/src/models/SandboxObservabilityMetricSample.js +0 -81
- package/dist/apispec/src/models/SandboxObservabilityMetricsResponse.d.ts +0 -46
- package/dist/apispec/src/models/SandboxObservabilityMetricsResponse.d.ts.map +0 -1
- package/dist/apispec/src/models/SandboxObservabilityMetricsResponse.js +0 -48
- package/dist/apispec/src/models/SandboxProbeSet.d.ts +0 -46
- package/dist/apispec/src/models/SandboxProbeSet.d.ts.map +0 -1
- package/dist/apispec/src/models/SandboxProbeSet.js +0 -46
- package/dist/apispec/src/models/SandboxProbeSpec.d.ts +0 -66
- package/dist/apispec/src/models/SandboxProbeSpec.d.ts.map +0 -1
- package/dist/apispec/src/models/SandboxProbeSpec.js +0 -54
- package/dist/apispec/src/models/SuccessContextStatsResponse.d.ts +0 -40
- package/dist/apispec/src/models/SuccessContextStatsResponse.d.ts.map +0 -1
- package/dist/apispec/src/models/SuccessContextStatsResponse.js +0 -46
- package/dist/apispec/src/models/SuccessSandboxObservabilityMetricsResponse.d.ts +0 -40
- package/dist/apispec/src/models/SuccessSandboxObservabilityMetricsResponse.d.ts.map +0 -1
- package/dist/apispec/src/models/SuccessSandboxObservabilityMetricsResponse.js +0 -46
package/dist/errors.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { runtime } from "./apispec_compat.js";
|
|
2
|
+
export const CLAIM_START_THROTTLED_CODE = "claim_start_throttled";
|
|
2
3
|
export class APIError extends Error {
|
|
3
4
|
statusCode;
|
|
4
5
|
code;
|
|
5
6
|
details;
|
|
6
7
|
requestId;
|
|
7
8
|
body;
|
|
9
|
+
retryAfter;
|
|
8
10
|
constructor(params) {
|
|
9
11
|
super(params.message);
|
|
10
12
|
this.name = "APIError";
|
|
@@ -13,6 +15,19 @@ export class APIError extends Error {
|
|
|
13
15
|
this.details = params.details;
|
|
14
16
|
this.requestId = params.requestId;
|
|
15
17
|
this.body = params.body;
|
|
18
|
+
this.retryAfter = params.retryAfter;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class SandboxWaitTimeoutError extends Error {
|
|
22
|
+
sandboxId;
|
|
23
|
+
timeoutMs;
|
|
24
|
+
lastSandbox;
|
|
25
|
+
constructor(params) {
|
|
26
|
+
super(`timed out waiting for sandbox ${params.sandboxId} after ${params.timeoutMs}ms`);
|
|
27
|
+
this.name = "SandboxWaitTimeoutError";
|
|
28
|
+
this.sandboxId = params.sandboxId;
|
|
29
|
+
this.timeoutMs = params.timeoutMs;
|
|
30
|
+
this.lastSandbox = params.lastSandbox;
|
|
16
31
|
}
|
|
17
32
|
}
|
|
18
33
|
function getRequestId(response) {
|
|
@@ -20,9 +35,27 @@ function getRequestId(response) {
|
|
|
20
35
|
response.headers.get("x-requestid") ??
|
|
21
36
|
undefined);
|
|
22
37
|
}
|
|
38
|
+
function getRetryAfter(response) {
|
|
39
|
+
const value = response.headers.get("retry-after");
|
|
40
|
+
if (!value) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
const trimmed = value.trim();
|
|
44
|
+
if (!/^\d+$/.test(trimmed)) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const seconds = Number.parseInt(trimmed, 10);
|
|
48
|
+
return Number.isFinite(seconds) && seconds >= 0 ? seconds : undefined;
|
|
49
|
+
}
|
|
50
|
+
export function isClaimStartThrottled(error) {
|
|
51
|
+
return error instanceof APIError
|
|
52
|
+
&& error.statusCode === 429
|
|
53
|
+
&& error.code === CLAIM_START_THROTTLED_CODE;
|
|
54
|
+
}
|
|
23
55
|
export async function apiErrorFromResponse(response) {
|
|
24
56
|
const statusCode = response.status;
|
|
25
57
|
const requestId = getRequestId(response);
|
|
58
|
+
const retryAfter = getRetryAfter(response);
|
|
26
59
|
let bodyText = "";
|
|
27
60
|
let code = "unexpected_response";
|
|
28
61
|
let message = response.statusText || "request failed";
|
|
@@ -50,6 +83,7 @@ export async function apiErrorFromResponse(response) {
|
|
|
50
83
|
details,
|
|
51
84
|
requestId,
|
|
52
85
|
body: bodyText || undefined,
|
|
86
|
+
retryAfter,
|
|
53
87
|
});
|
|
54
88
|
}
|
|
55
89
|
export async function wrapApiCall(fn) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { Client, type ClientOptions, DEFAULT_BASE_URL } from "./client.js";
|
|
2
2
|
export { Sandbox } from "./sandbox.js";
|
|
3
|
-
export { APIError } from "./errors.js";
|
|
3
|
+
export { APIError, SandboxWaitTimeoutError } from "./errors.js";
|
|
4
4
|
export { verifyWebhookSignature } from "./webhook_signature.js";
|
|
5
5
|
export * from "./template_helpers.js";
|
|
6
6
|
export * from "./models.js";
|
|
@@ -12,4 +12,28 @@ import "./sandbox_files.js";
|
|
|
12
12
|
import "./sandbox_network.js";
|
|
13
13
|
import "./sandbox_services.js";
|
|
14
14
|
import "./sandbox_observability.js";
|
|
15
|
+
export declare const SandboxRuntimeMetricName: {
|
|
16
|
+
readonly SandboxCpuUtilization: "sandbox.cpu.utilization";
|
|
17
|
+
readonly SandboxCpuUsage: "sandbox.cpu.usage";
|
|
18
|
+
readonly SandboxCpuTime: "sandbox.cpu.time";
|
|
19
|
+
readonly SandboxCpuLimit: "sandbox.cpu.limit";
|
|
20
|
+
readonly SandboxMemoryUsage: "sandbox.memory.usage";
|
|
21
|
+
readonly SandboxMemoryWorkingSet: "sandbox.memory.working_set";
|
|
22
|
+
readonly SandboxMemoryAvailable: "sandbox.memory.available";
|
|
23
|
+
readonly SandboxMemoryLimit: "sandbox.memory.limit";
|
|
24
|
+
readonly SandboxMemoryUtilization: "sandbox.memory.utilization";
|
|
25
|
+
readonly SandboxNetworkIo: "sandbox.network.io";
|
|
26
|
+
readonly SandboxNetworkErrors: "sandbox.network.errors";
|
|
27
|
+
readonly SandboxProcessCount: "sandbox.process.count";
|
|
28
|
+
readonly SandboxRootfsWritableUsage: "sandbox.rootfs.writable.usage";
|
|
29
|
+
readonly SandboxRootfsWritableInodes: "sandbox.rootfs.writable.inodes";
|
|
30
|
+
};
|
|
31
|
+
export declare const SandboxRuntimeMetricStatistic: {
|
|
32
|
+
readonly Auto: "auto";
|
|
33
|
+
readonly Average: "average";
|
|
34
|
+
readonly Minimum: "minimum";
|
|
35
|
+
readonly Maximum: "maximum";
|
|
36
|
+
readonly Last: "last";
|
|
37
|
+
readonly Rate: "rate";
|
|
38
|
+
};
|
|
15
39
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AAEjC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;CAA2C,CAAC;AACjF,eAAO,MAAM,6BAA6B;;;;;;;CAAgD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
export { Client, DEFAULT_BASE_URL } from "./client.js";
|
|
2
2
|
export { Sandbox } from "./sandbox.js";
|
|
3
|
-
export { APIError } from "./errors.js";
|
|
3
|
+
export { APIError, SandboxWaitTimeoutError } from "./errors.js";
|
|
4
4
|
export { verifyWebhookSignature } from "./webhook_signature.js";
|
|
5
5
|
export * from "./template_helpers.js";
|
|
6
6
|
export * from "./models.js";
|
|
7
7
|
export * from "./sessions.js";
|
|
8
8
|
export { apis, models, runtime } from "./apispec_compat.js";
|
|
9
9
|
export * as apispec from "./apispec_compat.js";
|
|
10
|
+
import { models as generatedModels } from "./apispec_compat.js";
|
|
10
11
|
import "./sandbox_contexts.js";
|
|
11
12
|
import "./sandbox_files.js";
|
|
12
13
|
import "./sandbox_network.js";
|
|
13
14
|
import "./sandbox_services.js";
|
|
14
15
|
import "./sandbox_observability.js";
|
|
16
|
+
export const SandboxRuntimeMetricName = generatedModels.SandboxRuntimeMetricName;
|
|
17
|
+
export const SandboxRuntimeMetricStatistic = generatedModels.SandboxRuntimeMetricStatistic;
|
package/dist/models.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ObservabilityEventSource, SandboxAppServiceView, SandboxObservabilityEventType, SandboxObservabilityEventsResponse, SandboxObservabilityLogStream, SandboxObservabilityLogsResponse,
|
|
1
|
+
import type { ObservabilityEventSource, SandboxAppServiceView, SandboxObservabilityEventType, SandboxObservabilityEventsResponse, SandboxObservabilityLogStream, SandboxObservabilityLogsResponse, SandboxObservabilityOutcome, SandboxObservabilityWatchLine, SandboxRuntimeMetricName, SandboxRuntimeMetricStatistic, SandboxRuntimeMetricsCatalogResponse, SandboxRuntimeMetricsResponse, Sandbox, SandboxSummary } from "./apispec/src/models/index.js";
|
|
2
2
|
export interface RunResult {
|
|
3
3
|
sandboxId: string;
|
|
4
4
|
contextId: string;
|
|
@@ -71,15 +71,19 @@ export interface SandboxObservabilityLogWatchOptions extends SandboxObservabilit
|
|
|
71
71
|
contextId?: string;
|
|
72
72
|
stream?: SandboxObservabilityLogStream;
|
|
73
73
|
}
|
|
74
|
-
export interface
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
export interface SandboxMetricsOptions {
|
|
75
|
+
/** Defaults to one hour before endTime. */
|
|
76
|
+
startTime?: Date;
|
|
77
|
+
/** Defaults to the current time. */
|
|
78
|
+
endTime?: Date;
|
|
79
|
+
/** Canonical sandbox-wide metrics to return. */
|
|
80
|
+
metrics?: readonly SandboxRuntimeMetricName[];
|
|
81
|
+
/** Requested bucket width. The server may increase it to honor maxPoints. */
|
|
82
|
+
stepSeconds?: number;
|
|
83
|
+
/** Defaults to average for gauges and rate for counters. */
|
|
84
|
+
statistic?: SandboxRuntimeMetricStatistic;
|
|
85
|
+
/** Maximum points per series. Defaults to 240 and cannot exceed 1000. */
|
|
86
|
+
maxPoints?: number;
|
|
83
87
|
}
|
|
84
88
|
export interface SandboxObservabilityWatchStream extends AsyncIterable<SandboxObservabilityWatchLine> {
|
|
85
89
|
body: ReadableStream<Uint8Array>;
|
|
@@ -87,7 +91,8 @@ export interface SandboxObservabilityWatchStream extends AsyncIterable<SandboxOb
|
|
|
87
91
|
}
|
|
88
92
|
export type SandboxObservabilityEvents = SandboxObservabilityEventsResponse;
|
|
89
93
|
export type SandboxObservabilityLogs = SandboxObservabilityLogsResponse;
|
|
90
|
-
export type
|
|
94
|
+
export type SandboxMetrics = SandboxRuntimeMetricsResponse;
|
|
95
|
+
export type SandboxMetricsCatalog = SandboxRuntimeMetricsCatalogResponse;
|
|
91
96
|
export type SandboxStatusFilter = SandboxSummary["status"];
|
|
92
97
|
export interface SandboxListOptions {
|
|
93
98
|
status?: SandboxStatusFilter;
|
|
@@ -101,4 +106,13 @@ export interface SandboxListResult {
|
|
|
101
106
|
count: number;
|
|
102
107
|
hasMore: boolean;
|
|
103
108
|
}
|
|
109
|
+
export interface SandboxLifecycleWaitOptions {
|
|
110
|
+
/** Maximum polling duration. Defaults to 60 seconds. */
|
|
111
|
+
timeoutMs?: number;
|
|
112
|
+
/** Delay between observations. Defaults to 500 milliseconds. */
|
|
113
|
+
pollIntervalMs?: number;
|
|
114
|
+
/** Stops waiting locally. It does not roll back a lifecycle request already accepted by the server. */
|
|
115
|
+
signal?: AbortSignal;
|
|
116
|
+
}
|
|
117
|
+
export type SandboxLifecyclePredicate = (sandbox: Sandbox) => boolean | Promise<boolean>;
|
|
104
118
|
//# sourceMappingURL=models.d.ts.map
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,kCAAkC,EAClC,6BAA6B,EAC7B,gCAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ClaimMountRequest, CreateSandboxRootFSSnapshotRequest, ForkSandboxRequest, ForkSandboxResponse, PauseSandboxResponse, RestoreSandboxRootFSRequest, RestoreSandboxRootFSResponse, SandboxRefreshRequest, RefreshResponse, ResumeSandboxResponse, Sandbox, SandboxConfig, SandboxRootFSSnapshot, SandboxStatus, SandboxUpdateRequest, SuccessMessageResponse, SuccessDeletedResponse } from "../apispec/src/models/index.js";
|
|
2
|
-
import type { SandboxListOptions, SandboxListResult } from "../models.js";
|
|
2
|
+
import type { SandboxLifecyclePredicate, SandboxLifecycleWaitOptions, SandboxListOptions, SandboxListResult } from "../models.js";
|
|
3
3
|
import type { Client } from "../client.js";
|
|
4
4
|
import { Sandbox as SandboxHandle } from "../sandbox.js";
|
|
5
5
|
import { SandboxSession } from "../sessions.js";
|
|
@@ -16,12 +16,24 @@ export declare class Sandboxes {
|
|
|
16
16
|
list(options?: SandboxListOptions): Promise<SandboxListResult>;
|
|
17
17
|
open(template: string, options?: SandboxConfig | ClaimSandboxOptions): Promise<SandboxSession>;
|
|
18
18
|
get(sandboxId: string): Promise<Sandbox>;
|
|
19
|
+
private getWithSignal;
|
|
20
|
+
/**
|
|
21
|
+
* Polls committed sandbox details until the predicate matches.
|
|
22
|
+
*
|
|
23
|
+
* Abort stops the local wait but cannot undo a lifecycle request that the
|
|
24
|
+
* server has already accepted.
|
|
25
|
+
*/
|
|
26
|
+
waitForLifecycle(sandboxId: string, predicate: SandboxLifecyclePredicate, options?: SandboxLifecycleWaitOptions): Promise<Sandbox>;
|
|
19
27
|
update(sandboxId: string, request: SandboxUpdateRequest): Promise<Sandbox>;
|
|
20
28
|
updateMemory(sandboxId: string, memory: string): Promise<Sandbox>;
|
|
21
29
|
delete(sandboxId: string): Promise<SuccessMessageResponse>;
|
|
22
30
|
status(sandboxId: string): Promise<SandboxStatus>;
|
|
23
31
|
pause(sandboxId: string): Promise<PauseSandboxResponse>;
|
|
32
|
+
/** Requests a pause and waits for its durable checkpoint to commit. */
|
|
33
|
+
pauseAndWait(sandboxId: string, options?: SandboxLifecycleWaitOptions): Promise<Sandbox>;
|
|
24
34
|
resume(sandboxId: string): Promise<ResumeSandboxResponse>;
|
|
35
|
+
/** Requests a resume and waits for the committed running generation. */
|
|
36
|
+
resumeAndWait(sandboxId: string, options?: SandboxLifecycleWaitOptions): Promise<Sandbox>;
|
|
25
37
|
refresh(sandboxId: string, request?: SandboxRefreshRequest): Promise<RefreshResponse>;
|
|
26
38
|
createRootFSSnapshot(sandboxId: string, request?: CreateSandboxRootFSSnapshotRequest): Promise<SandboxRootFSSnapshot>;
|
|
27
39
|
listRootFSSnapshots(sandboxId: string): Promise<SandboxRootFSSnapshot[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandboxes.d.ts","sourceRoot":"","sources":["../../src/resources/sandboxes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,kCAAkC,EAClC,kBAAkB,EAClB,mBAAmB,EAEnB,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,OAAO,EACP,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sandboxes.d.ts","sourceRoot":"","sources":["../../src/resources/sandboxes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ensureData, ensureModel } from "../response.js";
|
|
2
|
-
import { wrapApiCall } from "../errors.js";
|
|
2
|
+
import { SandboxWaitTimeoutError, wrapApiCall } from "../errors.js";
|
|
3
3
|
import { Sandbox as SandboxHandle } from "../sandbox.js";
|
|
4
4
|
import { SandboxSession } from "../sessions.js";
|
|
5
|
+
const DEFAULT_LIFECYCLE_TIMEOUT_MS = 60_000;
|
|
6
|
+
const DEFAULT_LIFECYCLE_POLL_INTERVAL_MS = 500;
|
|
5
7
|
function isClaimSandboxOptions(value) {
|
|
6
8
|
return !!value && typeof value === "object" && ("config" in value ||
|
|
7
9
|
"mounts" in value ||
|
|
@@ -74,9 +76,39 @@ export class Sandboxes {
|
|
|
74
76
|
});
|
|
75
77
|
}
|
|
76
78
|
async get(sandboxId) {
|
|
77
|
-
|
|
79
|
+
return this.getWithSignal(sandboxId);
|
|
80
|
+
}
|
|
81
|
+
async getWithSignal(sandboxId, signal) {
|
|
82
|
+
const response = await wrapApiCall(() => this.client.apispec.sandboxes.apiV1SandboxesIdGet({ id: sandboxId }, signal ? { signal } : undefined));
|
|
78
83
|
return ensureData(response, "get sandbox returned empty response");
|
|
79
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Polls committed sandbox details until the predicate matches.
|
|
87
|
+
*
|
|
88
|
+
* Abort stops the local wait but cannot undo a lifecycle request that the
|
|
89
|
+
* server has already accepted.
|
|
90
|
+
*/
|
|
91
|
+
async waitForLifecycle(sandboxId, predicate, options = {}) {
|
|
92
|
+
const timeoutMs = options.timeoutMs ?? DEFAULT_LIFECYCLE_TIMEOUT_MS;
|
|
93
|
+
const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_LIFECYCLE_POLL_INTERVAL_MS;
|
|
94
|
+
validateWaitDuration("timeoutMs", timeoutMs, true);
|
|
95
|
+
validateWaitDuration("pollIntervalMs", pollIntervalMs, false);
|
|
96
|
+
const startedAt = Date.now();
|
|
97
|
+
let lastSandbox;
|
|
98
|
+
while (true) {
|
|
99
|
+
throwIfAborted(options.signal);
|
|
100
|
+
lastSandbox = await this.getWithSignal(sandboxId, options.signal);
|
|
101
|
+
throwIfAborted(options.signal);
|
|
102
|
+
if (await predicate(lastSandbox)) {
|
|
103
|
+
return lastSandbox;
|
|
104
|
+
}
|
|
105
|
+
const remainingMs = timeoutMs - (Date.now() - startedAt);
|
|
106
|
+
if (remainingMs <= 0) {
|
|
107
|
+
throw new SandboxWaitTimeoutError({ sandboxId, timeoutMs, lastSandbox });
|
|
108
|
+
}
|
|
109
|
+
await sleepWithSignal(Math.min(pollIntervalMs, remainingMs), options.signal);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
80
112
|
async update(sandboxId, request) {
|
|
81
113
|
const response = await wrapApiCall(() => this.client.apispec.sandboxes.apiV1SandboxesIdPut({
|
|
82
114
|
id: sandboxId,
|
|
@@ -103,10 +135,29 @@ export class Sandboxes {
|
|
|
103
135
|
const response = await wrapApiCall(() => this.client.apispec.sandboxes.apiV1SandboxesIdPausePost({ id: sandboxId }));
|
|
104
136
|
return ensureData(response, "pause sandbox returned empty response");
|
|
105
137
|
}
|
|
138
|
+
/** Requests a pause and waits for its durable checkpoint to commit. */
|
|
139
|
+
async pauseAndWait(sandboxId, options) {
|
|
140
|
+
throwIfAborted(options?.signal);
|
|
141
|
+
await this.pause(sandboxId);
|
|
142
|
+
return this.waitForLifecycle(sandboxId, (sandbox) => sandbox.status === "paused" && sandbox.paused, options);
|
|
143
|
+
}
|
|
106
144
|
async resume(sandboxId) {
|
|
107
145
|
const response = await wrapApiCall(() => this.client.apispec.sandboxes.apiV1SandboxesIdResumePost({ id: sandboxId }));
|
|
108
146
|
return ensureData(response, "resume sandbox returned empty response");
|
|
109
147
|
}
|
|
148
|
+
/** Requests a resume and waits for the committed running generation. */
|
|
149
|
+
async resumeAndWait(sandboxId, options) {
|
|
150
|
+
throwIfAborted(options?.signal);
|
|
151
|
+
const before = await this.getWithSignal(sandboxId, options?.signal);
|
|
152
|
+
throwIfAborted(options?.signal);
|
|
153
|
+
await this.resume(sandboxId);
|
|
154
|
+
const minimumRuntimeGeneration = before.paused || before.status === "paused"
|
|
155
|
+
? before.runtimeGeneration + 1
|
|
156
|
+
: before.runtimeGeneration;
|
|
157
|
+
return this.waitForLifecycle(sandboxId, (sandbox) => (sandbox.status === "running"
|
|
158
|
+
&& !sandbox.paused
|
|
159
|
+
&& sandbox.runtimeGeneration >= minimumRuntimeGeneration), options);
|
|
160
|
+
}
|
|
110
161
|
async refresh(sandboxId, request) {
|
|
111
162
|
const params = request
|
|
112
163
|
? { id: sandboxId, sandboxRefreshRequest: request }
|
|
@@ -156,3 +207,56 @@ export class Sandboxes {
|
|
|
156
207
|
return new SandboxHandle({ id: sandboxId, client: this.client });
|
|
157
208
|
}
|
|
158
209
|
}
|
|
210
|
+
function validateWaitDuration(name, value, allowZero) {
|
|
211
|
+
if (!Number.isFinite(value) || (allowZero ? value < 0 : value <= 0)) {
|
|
212
|
+
const requirement = allowZero ? "a finite number >= 0" : "a finite number > 0";
|
|
213
|
+
throw new RangeError(`${name} must be ${requirement}`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function throwIfAborted(signal) {
|
|
217
|
+
if (!signal?.aborted) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
throw abortReason(signal);
|
|
221
|
+
}
|
|
222
|
+
function abortReason(signal) {
|
|
223
|
+
if (signal.reason !== undefined) {
|
|
224
|
+
return signal.reason;
|
|
225
|
+
}
|
|
226
|
+
const error = new Error("sandbox lifecycle wait was aborted");
|
|
227
|
+
error.name = "AbortError";
|
|
228
|
+
return error;
|
|
229
|
+
}
|
|
230
|
+
function sleepWithSignal(durationMs, signal) {
|
|
231
|
+
return new Promise((resolve, reject) => {
|
|
232
|
+
if (signal?.aborted) {
|
|
233
|
+
reject(abortReason(signal));
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
let settled = false;
|
|
237
|
+
let timer;
|
|
238
|
+
const onAbort = () => {
|
|
239
|
+
if (settled) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
settled = true;
|
|
243
|
+
if (timer !== undefined) {
|
|
244
|
+
clearTimeout(timer);
|
|
245
|
+
}
|
|
246
|
+
signal?.removeEventListener("abort", onAbort);
|
|
247
|
+
reject(signal ? abortReason(signal) : new Error("sandbox lifecycle wait was aborted"));
|
|
248
|
+
};
|
|
249
|
+
timer = setTimeout(() => {
|
|
250
|
+
if (settled) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
settled = true;
|
|
254
|
+
signal?.removeEventListener("abort", onAbort);
|
|
255
|
+
resolve();
|
|
256
|
+
}, durationMs);
|
|
257
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
258
|
+
if (signal?.aborted) {
|
|
259
|
+
onAbort();
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import type { SandboxObservabilityEventOptions, SandboxObservabilityEventWatchOptions, SandboxObservabilityEvents, SandboxObservabilityLogOptions, SandboxObservabilityLogWatchOptions, SandboxObservabilityLogs,
|
|
1
|
+
import type { SandboxObservabilityEventOptions, SandboxObservabilityEventWatchOptions, SandboxObservabilityEvents, SandboxObservabilityLogOptions, SandboxObservabilityLogWatchOptions, SandboxObservabilityLogs, SandboxObservabilityWatchStream, SandboxMetrics, SandboxMetricsCatalog, SandboxMetricsOptions } from "./models.js";
|
|
2
2
|
declare module "./sandbox" {
|
|
3
3
|
interface Sandbox {
|
|
4
4
|
listObservabilityEvents(options?: SandboxObservabilityEventOptions): Promise<SandboxObservabilityEvents>;
|
|
5
5
|
watchObservabilityEvents(options?: SandboxObservabilityEventWatchOptions): Promise<SandboxObservabilityWatchStream>;
|
|
6
|
-
listAuditEvents(options?: SandboxObservabilityEventOptions): Promise<SandboxObservabilityEvents>;
|
|
7
|
-
watchAuditEvents(options?: SandboxObservabilityEventWatchOptions): Promise<SandboxObservabilityWatchStream>;
|
|
8
6
|
listLogs(options?: SandboxObservabilityLogOptions): Promise<SandboxObservabilityLogs>;
|
|
9
7
|
watchLogs(options?: SandboxObservabilityLogWatchOptions): Promise<SandboxObservabilityWatchStream>;
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
getMetrics(options?: SandboxMetricsOptions): Promise<SandboxMetrics>;
|
|
9
|
+
getMetricsCatalog(): Promise<SandboxMetricsCatalog>;
|
|
12
10
|
}
|
|
13
11
|
}
|
|
14
12
|
//# sourceMappingURL=sandbox_observability.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox_observability.d.ts","sourceRoot":"","sources":["../src/sandbox_observability.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gCAAgC,EAChC,qCAAqC,EACrC,0BAA0B,EAC1B,8BAA8B,EAC9B,mCAAmC,EACnC,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"sandbox_observability.d.ts","sourceRoot":"","sources":["../src/sandbox_observability.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gCAAgC,EAChC,qCAAqC,EACrC,0BAA0B,EAC1B,8BAA8B,EAC9B,mCAAmC,EACnC,wBAAwB,EACxB,+BAA+B,EAC/B,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAOlB,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,OAAO;QACf,uBAAuB,CACrB,OAAO,CAAC,EAAE,gCAAgC,GACzC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACvC,wBAAwB,CACtB,OAAO,CAAC,EAAE,qCAAqC,GAC9C,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,8BAA8B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACtF,SAAS,CACP,OAAO,CAAC,EAAE,mCAAmC,GAC5C,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC5C,UAAU,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QACrE,iBAAiB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;KACrD;CACF"}
|
|
@@ -8,21 +8,15 @@ Sandbox.prototype.listObservabilityEvents = async function (options) {
|
|
|
8
8
|
Sandbox.prototype.watchObservabilityEvents = async function (options) {
|
|
9
9
|
return getClient(this).watchSandboxObservabilityEvents(this.id, options);
|
|
10
10
|
};
|
|
11
|
-
Sandbox.prototype.listAuditEvents = async function (options) {
|
|
12
|
-
return getClient(this).listSandboxAuditEvents(this.id, options);
|
|
13
|
-
};
|
|
14
|
-
Sandbox.prototype.watchAuditEvents = async function (options) {
|
|
15
|
-
return getClient(this).watchSandboxAuditEvents(this.id, options);
|
|
16
|
-
};
|
|
17
11
|
Sandbox.prototype.listLogs = async function (options) {
|
|
18
12
|
return getClient(this).listSandboxObservabilityLogs(this.id, options);
|
|
19
13
|
};
|
|
20
14
|
Sandbox.prototype.watchLogs = async function (options) {
|
|
21
15
|
return getClient(this).watchSandboxObservabilityLogs(this.id, options);
|
|
22
16
|
};
|
|
23
|
-
Sandbox.prototype.
|
|
24
|
-
return getClient(this).
|
|
17
|
+
Sandbox.prototype.getMetrics = async function (options) {
|
|
18
|
+
return getClient(this).getSandboxMetrics(this.id, options);
|
|
25
19
|
};
|
|
26
|
-
Sandbox.prototype.
|
|
27
|
-
return getClient(this).
|
|
20
|
+
Sandbox.prototype.getMetricsCatalog = async function () {
|
|
21
|
+
return getClient(this).getSandboxMetricsCatalog(this.id);
|
|
28
22
|
};
|
package/package.json
CHANGED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sandbox0 API
|
|
3
|
-
* Public HTTP APIs exposed by Sandbox0 regional gateways and the global gateway.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 0.1.0
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
import * as runtime from '../runtime.js';
|
|
13
|
-
import type { ObservabilityEventSource, SandboxObservabilityEventType, SandboxObservabilityOutcome, SuccessSandboxObservabilityEventsResponse } from '../models/index.js';
|
|
14
|
-
export interface ApiV1SandboxesIdAuditEventsGetRequest {
|
|
15
|
-
id: string;
|
|
16
|
-
startTime?: Date;
|
|
17
|
-
endTime?: Date;
|
|
18
|
-
limit?: number;
|
|
19
|
-
cursor?: string;
|
|
20
|
-
watch?: boolean;
|
|
21
|
-
source?: ObservabilityEventSource;
|
|
22
|
-
eventType?: SandboxObservabilityEventType;
|
|
23
|
-
outcome?: SandboxObservabilityOutcome;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
*/
|
|
28
|
-
export declare class AuditApi extends runtime.BaseAPI {
|
|
29
|
-
/**
|
|
30
|
-
* Queries the audit-focused projection for a sandbox. Network audit events are included in scope; file audit is intentionally not included.
|
|
31
|
-
* Query historical sandbox audit events
|
|
32
|
-
*/
|
|
33
|
-
apiV1SandboxesIdAuditEventsGetRaw(requestParameters: ApiV1SandboxesIdAuditEventsGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SuccessSandboxObservabilityEventsResponse>>;
|
|
34
|
-
/**
|
|
35
|
-
* Queries the audit-focused projection for a sandbox. Network audit events are included in scope; file audit is intentionally not included.
|
|
36
|
-
* Query historical sandbox audit events
|
|
37
|
-
*/
|
|
38
|
-
apiV1SandboxesIdAuditEventsGet(requestParameters: ApiV1SandboxesIdAuditEventsGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SuccessSandboxObservabilityEventsResponse>;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=AuditApi.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuditApi.d.ts","sourceRoot":"","sources":["../../../../src/apispec/src/apis/AuditApi.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAEV,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAE3B,yCAAyC,EAC1C,MAAM,iBAAiB,CAAC;AAgBzB,MAAM,WAAW,qCAAqC;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,SAAS,CAAC,EAAE,6BAA6B,CAAC;IAC1C,OAAO,CAAC,EAAE,2BAA2B,CAAC;CACzC;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,OAAO,CAAC,OAAO;IAEzC;;;OAGG;IACG,iCAAiC,CAAC,iBAAiB,EAAE,qCAAqC,EAAE,aAAa,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC;IAkEtO;;;OAGG;IACG,8BAA8B,CAAC,iBAAiB,EAAE,qCAAqC,EAAE,aAAa,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,yCAAyC,CAAC;CAKjN"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/* tslint:disable */
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
/**
|
|
4
|
-
* Sandbox0 API
|
|
5
|
-
* Public HTTP APIs exposed by Sandbox0 regional gateways and the global gateway.
|
|
6
|
-
*
|
|
7
|
-
* The version of the OpenAPI document: 0.1.0
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
-
* https://openapi-generator.tech
|
|
12
|
-
* Do not edit the class manually.
|
|
13
|
-
*/
|
|
14
|
-
import * as runtime from '../runtime.js';
|
|
15
|
-
import { SuccessSandboxObservabilityEventsResponseFromJSON, } from '../models/index.js';
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
export class AuditApi extends runtime.BaseAPI {
|
|
20
|
-
/**
|
|
21
|
-
* Queries the audit-focused projection for a sandbox. Network audit events are included in scope; file audit is intentionally not included.
|
|
22
|
-
* Query historical sandbox audit events
|
|
23
|
-
*/
|
|
24
|
-
async apiV1SandboxesIdAuditEventsGetRaw(requestParameters, initOverrides) {
|
|
25
|
-
if (requestParameters['id'] == null) {
|
|
26
|
-
throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling apiV1SandboxesIdAuditEventsGet().');
|
|
27
|
-
}
|
|
28
|
-
const queryParameters = {};
|
|
29
|
-
if (requestParameters['startTime'] != null) {
|
|
30
|
-
queryParameters['start_time'] = requestParameters['startTime'].toISOString();
|
|
31
|
-
}
|
|
32
|
-
if (requestParameters['endTime'] != null) {
|
|
33
|
-
queryParameters['end_time'] = requestParameters['endTime'].toISOString();
|
|
34
|
-
}
|
|
35
|
-
if (requestParameters['limit'] != null) {
|
|
36
|
-
queryParameters['limit'] = requestParameters['limit'];
|
|
37
|
-
}
|
|
38
|
-
if (requestParameters['cursor'] != null) {
|
|
39
|
-
queryParameters['cursor'] = requestParameters['cursor'];
|
|
40
|
-
}
|
|
41
|
-
if (requestParameters['watch'] != null) {
|
|
42
|
-
queryParameters['watch'] = requestParameters['watch'];
|
|
43
|
-
}
|
|
44
|
-
if (requestParameters['source'] != null) {
|
|
45
|
-
queryParameters['source'] = requestParameters['source'];
|
|
46
|
-
}
|
|
47
|
-
if (requestParameters['eventType'] != null) {
|
|
48
|
-
queryParameters['event_type'] = requestParameters['eventType'];
|
|
49
|
-
}
|
|
50
|
-
if (requestParameters['outcome'] != null) {
|
|
51
|
-
queryParameters['outcome'] = requestParameters['outcome'];
|
|
52
|
-
}
|
|
53
|
-
const headerParameters = {};
|
|
54
|
-
if (this.configuration && this.configuration.accessToken) {
|
|
55
|
-
const token = this.configuration.accessToken;
|
|
56
|
-
const tokenString = await token("bearerAuth", []);
|
|
57
|
-
if (tokenString) {
|
|
58
|
-
headerParameters["Authorization"] = `Bearer ${tokenString}`;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
let urlPath = `/api/v1/sandboxes/{id}/audit/events`;
|
|
62
|
-
urlPath = urlPath.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id'])));
|
|
63
|
-
const response = await this.request({
|
|
64
|
-
path: urlPath,
|
|
65
|
-
method: 'GET',
|
|
66
|
-
headers: headerParameters,
|
|
67
|
-
query: queryParameters,
|
|
68
|
-
}, initOverrides);
|
|
69
|
-
return new runtime.JSONApiResponse(response, (jsonValue) => SuccessSandboxObservabilityEventsResponseFromJSON(jsonValue));
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Queries the audit-focused projection for a sandbox. Network audit events are included in scope; file audit is intentionally not included.
|
|
73
|
-
* Query historical sandbox audit events
|
|
74
|
-
*/
|
|
75
|
-
async apiV1SandboxesIdAuditEventsGet(requestParameters, initOverrides) {
|
|
76
|
-
const response = await this.apiV1SandboxesIdAuditEventsGetRaw(requestParameters, initOverrides);
|
|
77
|
-
return await response.value();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sandbox0 API
|
|
3
|
-
* Public HTTP APIs exposed by Sandbox0 regional gateways and the global gateway.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 0.1.0
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
import type { ResourceUsage } from './ResourceUsage.js';
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* @export
|
|
16
|
-
* @interface ContextStatsResponse
|
|
17
|
-
*/
|
|
18
|
-
export interface ContextStatsResponse {
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
* @type {string}
|
|
22
|
-
* @memberof ContextStatsResponse
|
|
23
|
-
*/
|
|
24
|
-
contextId?: string;
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
* @type {string}
|
|
28
|
-
* @memberof ContextStatsResponse
|
|
29
|
-
*/
|
|
30
|
-
type?: string;
|
|
31
|
-
/**
|
|
32
|
-
* Alias for the REPL or CLI tool (e.g., python, node, bash, redis-cli)
|
|
33
|
-
* @type {string}
|
|
34
|
-
* @memberof ContextStatsResponse
|
|
35
|
-
*/
|
|
36
|
-
alias?: string;
|
|
37
|
-
/**
|
|
38
|
-
*
|
|
39
|
-
* @type {boolean}
|
|
40
|
-
* @memberof ContextStatsResponse
|
|
41
|
-
*/
|
|
42
|
-
running?: boolean;
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
45
|
-
* @type {boolean}
|
|
46
|
-
* @memberof ContextStatsResponse
|
|
47
|
-
*/
|
|
48
|
-
paused?: boolean;
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* @type {ResourceUsage}
|
|
52
|
-
* @memberof ContextStatsResponse
|
|
53
|
-
*/
|
|
54
|
-
usage?: ResourceUsage;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Check if a given object implements the ContextStatsResponse interface.
|
|
58
|
-
*/
|
|
59
|
-
export declare function instanceOfContextStatsResponse(value: object): value is ContextStatsResponse;
|
|
60
|
-
export declare function ContextStatsResponseFromJSON(json: any): ContextStatsResponse;
|
|
61
|
-
export declare function ContextStatsResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContextStatsResponse;
|
|
62
|
-
export declare function ContextStatsResponseToJSON(json: any): ContextStatsResponse;
|
|
63
|
-
export declare function ContextStatsResponseToJSONTyped(value?: ContextStatsResponse | null, ignoreDiscriminator?: boolean): any;
|
|
64
|
-
//# sourceMappingURL=ContextStatsResponse.d.ts.map
|