1import type * as microvms from "@distilled.cloud/aws/lambda-microvms";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { MicrovmImage } from "./MicrovmImage.ts";
5
6export interface TerminateMicrovmRequest
7 extends microvms.TerminateMicrovmRequest {}
8
9/**
10 * Runtime binding for `TerminateMicrovm`.
11 *
12 * Bind it to a {@link MicrovmImage} to get a callable that terminates a running
13 * MicroVM by `microvmIdentifier`. Idempotent.
14 * ### Lifecycle
15 * **Example:** Terminate a MicroVM
16 * ```typescript
17 * const terminateMicrovm = yield* AWS.Lambda.TerminateMicrovm(Sandbox);
18 * yield* terminateMicrovm({ microvmIdentifier: id });
19 * ```
20 *
21 * @binding
22 */
23export interface TerminateMicrovm extends Binding.Service<
24 TerminateMicrovm,
25 "AWS.Lambda.TerminateMicrovm",
26 (
27 image: MicrovmImage,
28 ) => Effect.Effect<
29 (
30 request: TerminateMicrovmRequest,
31 ) => Effect.Effect<
32 microvms.TerminateMicrovmResponse,
33 microvms.TerminateMicrovmError
34 >
35 >
36> {}
37export const TerminateMicrovm = Binding.Service<TerminateMicrovm>(
38 "AWS.Lambda.TerminateMicrovm",
39);