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 ListMicrovmsRequest extends Omit<
7 microvms.ListMicrovmsRequest,
8 "imageIdentifier"
9> {}
10
11/**
12 * Runtime binding for `ListMicrovms`.
13 *
14 * Bind it to a {@link MicrovmImage} to get a callable that lists the MicroVMs
15 * launched from that image (the `imageIdentifier` filter is injected).
16 * ### Inspecting MicroVMs
17 * **Example:** List MicroVMs
18 * ```typescript
19 * const listMicrovms = yield* AWS.Lambda.ListMicrovms(Sandbox);
20 * const { items } = yield* listMicrovms({});
21 * ```
22 *
23 * @binding
24 */
25export interface ListMicrovms extends Binding.Service<
26 ListMicrovms,
27 "AWS.Lambda.ListMicrovms",
28 (
29 image: MicrovmImage,
30 ) => Effect.Effect<
31 (
32 request: ListMicrovmsRequest,
33 ) => Effect.Effect<
34 microvms.ListMicrovmsResponse,
35 microvms.ListMicrovmsError
36 >
37 >
38> {}
39export const ListMicrovms = Binding.Service<ListMicrovms>(
40 "AWS.Lambda.ListMicrovms",
41);