1import type * as imagebuilder from "@distilled.cloud/aws/imagebuilder";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `imagebuilder:ListImages`.
7 *
8 * Enumerates the image versions you have access to (owned, shared, or
9 * Amazon-managed) — e.g. to discover the latest parent image version.
10 * Newly created images can take up to two minutes to appear. Provide the
11 * implementation with `Effect.provide(AWS.ImageBuilder.ListImagesHttp)`.
12 * ### Observing Builds
13 * **Example:** List Your Account's Images
14 * ```typescript
15 * // init — account-level binding, no resource argument
16 * const listImages = yield* AWS.ImageBuilder.ListImages();
17 *
18 * // runtime
19 * const { imageVersionList } = yield* listImages({ owner: "Self" });
20 * yield* Effect.log(`account has ${imageVersionList?.length ?? 0} images`);
21 * ```
22 *
23 * @binding
24 */
25export interface ListImages extends Binding.Service<
26 ListImages,
27 "AWS.ImageBuilder.ListImages",
28 () => Effect.Effect<
29 (
30 request?: imagebuilder.ListImagesRequest,
31 ) => Effect.Effect<
32 imagebuilder.ListImagesResponse,
33 imagebuilder.ListImagesError
34 >
35 >
36> {}
37export const ListImages = Binding.Service<ListImages>(
38 "AWS.ImageBuilder.ListImages",
39);