1import type * as fis from "@distilled.cloud/aws/fis";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `fis:GetAction`.
7 *
8 * Reads a single FIS action from the service's action catalog — its
9 * description, parameters, and the targets it applies to (e.g.
10 * `aws:ec2:stop-instances`). Provide the implementation with
11 * `Effect.provide(AWS.FIS.GetActionHttp)`.
12 * ### Browsing the Action Catalog
13 * **Example:** Inspect an Action's Parameters
14 * ```typescript
15 * // init — account-level binding, no resource argument
16 * const getAction = yield* AWS.FIS.GetAction();
17 *
18 * // runtime
19 * const { action } = yield* getAction({ id: "aws:fis:wait" });
20 * console.log(Object.keys(action?.parameters ?? {}));
21 * ```
22 *
23 * @binding
24 */
25export interface GetAction extends Binding.Service<
26 GetAction,
27 "AWS.FIS.GetAction",
28 () => Effect.Effect<
29 (
30 request: fis.GetActionRequest,
31 ) => Effect.Effect<fis.GetActionResponse, fis.GetActionError>
32 >
33> {}
34export const GetAction = Binding.Service<GetAction>("AWS.FIS.GetAction");