1import type * as SVC from "@distilled.cloud/aws/codebuild";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Project } from "./Project.ts";
5
6/**
7 * Runtime binding for `codebuild:StartSandbox` — launches an interactive
8 * sandbox environment for the bound project. Run commands in it with
9 * {@link StartCommandExecution}; stop it with {@link StopSandbox}.
10 * ### Sandboxes
11 * **Example:** Start a Sandbox
12 * ```typescript
13 * const startSandbox = yield* AWS.CodeBuild.StartSandbox(project);
14 *
15 * const { sandbox } = yield* startSandbox();
16 * ```
17 *
18 * @binding
19 */
20export interface StartSandbox extends Binding.Service<
21 StartSandbox,
22 "AWS.CodeBuild.StartSandbox",
23 <P extends Project>(
24 project: P,
25 ) => Effect.Effect<
26 (
27 request?: Omit<SVC.StartSandboxInput, "projectName">,
28 ) => Effect.Effect<SVC.StartSandboxOutput, SVC.StartSandboxError>
29 >
30> {}
31export const StartSandbox = Binding.Service<StartSandbox>(
32 "AWS.CodeBuild.StartSandbox",
33);