1import type * as greengrassv2 from "@distilled.cloud/aws/greengrassv2";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `greengrass:ListInstalledComponents`.
7 *
8 * Enumerates the components actually installed on a core device (name,
9 * version, lifecycle state such as `RUNNING` or `BROKEN`, and last status
10 * report) — the ground truth for "what is this device really running". The
11 * caller supplies the core device thing name at runtime. Provide the
12 * implementation with
13 * `Effect.provide(AWS.GreengrassV2.ListInstalledComponentsHttp)`.
14 * ### Managing Core Devices
15 * **Example:** Audit A Device's Installed Components
16 * ```typescript
17 * // init — account-level binding, no resource argument
18 * const listInstalledComponents = yield* AWS.GreengrassV2.ListInstalledComponents();
19 *
20 * // runtime
21 * const { installedComponents } = yield* listInstalledComponents({
22 * coreDeviceThingName: "MyCore",
23 * });
24 * ```
25 *
26 * @binding
27 */
28export interface ListInstalledComponents extends Binding.Service<
29 ListInstalledComponents,
30 "AWS.GreengrassV2.ListInstalledComponents",
31 () => Effect.Effect<
32 (
33 request: greengrassv2.ListInstalledComponentsRequest,
34 ) => Effect.Effect<
35 greengrassv2.ListInstalledComponentsResponse,
36 greengrassv2.ListInstalledComponentsError
37 >
38 >
39> {}
40export const ListInstalledComponents = Binding.Service<ListInstalledComponents>(
41 "AWS.GreengrassV2.ListInstalledComponents",
42);