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:GetSafetyLever`.
7 *
8 * Reads the account's safety lever — the emergency switch that, when
9 * `engaged`, stops all running experiments and prevents new ones from
10 * starting. The account's lever has the well-known id `default`. Provide the
11 * implementation with `Effect.provide(AWS.FIS.GetSafetyLeverHttp)`.
12 * ### The Safety Lever
13 * **Example:** Check Whether Experiments Are Halted
14 * ```typescript
15 * // init — account-level binding, no resource argument
16 * const getSafetyLever = yield* AWS.FIS.GetSafetyLever();
17 *
18 * // runtime
19 * const { safetyLever } = yield* getSafetyLever({ id: "default" });
20 * console.log(safetyLever?.state?.status); // "disengaged"
21 * ```
22 *
23 * @binding
24 */
25export interface GetSafetyLever extends Binding.Service<
26 GetSafetyLever,
27 "AWS.FIS.GetSafetyLever",
28 () => Effect.Effect<
29 (
30 request: fis.GetSafetyLeverRequest,
31 ) => Effect.Effect<fis.GetSafetyLeverResponse, fis.GetSafetyLeverError>
32 >
33> {}
34export const GetSafetyLever = Binding.Service<GetSafetyLever>(
35 "AWS.FIS.GetSafetyLever",
36);