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:ListComponentVersions`.
7 *
8 * Enumerates every registered version of a component, newest first. The
9 * caller supplies the component's base ARN
10 * (`arn:aws:greengrass:…:components:{name}`, without the `:versions:`
11 * suffix). Provide the implementation with
12 * `Effect.provide(AWS.GreengrassV2.ListComponentVersionsHttp)`.
13 * ### Reading Components
14 * **Example:** List A Component's Versions
15 * ```typescript
16 * // init — account-level binding, no resource argument
17 * const listComponentVersions = yield* AWS.GreengrassV2.ListComponentVersions();
18 *
19 * // runtime
20 * const { componentVersions } = yield* listComponentVersions({
21 * arn: componentBaseArn,
22 * });
23 * ```
24 *
25 * @binding
26 */
27export interface ListComponentVersions extends Binding.Service<
28 ListComponentVersions,
29 "AWS.GreengrassV2.ListComponentVersions",
30 () => Effect.Effect<
31 (
32 request: greengrassv2.ListComponentVersionsRequest,
33 ) => Effect.Effect<
34 greengrassv2.ListComponentVersionsResponse,
35 greengrassv2.ListComponentVersionsError
36 >
37 >
38> {}
39export const ListComponentVersions = Binding.Service<ListComponentVersions>(
40 "AWS.GreengrassV2.ListComponentVersions",
41);