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 ResumeMicrovmRequest extends microvms.ResumeMicrovmRequest {}
7
8/**
9 * Runtime binding for `ResumeMicrovm`.
10 *
11 * Bind it to a {@link MicrovmImage} to get a callable that resumes a suspended
12 * MicroVM by `microvmIdentifier`, restoring it to `RUNNING`.
13 * ### Lifecycle
14 * **Example:** Resume a MicroVM
15 * ```typescript
16 * const resumeMicrovm = yield* AWS.Lambda.ResumeMicrovm(Sandbox);
17 * yield* resumeMicrovm({ microvmIdentifier: id });
18 * ```
19 *
20 * @binding
21 */
22export interface ResumeMicrovm extends Binding.Service<
23 ResumeMicrovm,
24 "AWS.Lambda.ResumeMicrovm",
25 (
26 image: MicrovmImage,
27 ) => Effect.Effect<
28 (
29 request: ResumeMicrovmRequest,
30 ) => Effect.Effect<
31 microvms.ResumeMicrovmResponse,
32 microvms.ResumeMicrovmError
33 >
34 >
35> {}
36export const ResumeMicrovm = Binding.Service<ResumeMicrovm>(
37 "AWS.Lambda.ResumeMicrovm",
38);