1import type * as config from "@distilled.cloud/aws/config-service";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { ConfigRule } from "./ConfigRule.ts";
5
6/**
7 * Runtime binding for `config:StartConfigRulesEvaluation` — run an
8 * on-demand evaluation of the bound {@link ConfigRule} against the last
9 * known configuration state of your resources; the rule name is injected
10 * automatically.
11 *
12 * Provide `Config.StartConfigRulesEvaluationHttp` on the hosting Lambda
13 * Function to satisfy the requirement.
14 * ### Rule Evaluation Status
15 * **Example:** Re-Evaluate a Rule On Demand
16 * ```typescript
17 * // init — grants config:StartConfigRulesEvaluation
18 * const startRulesEvaluation =
19 * yield* AWS.Config.StartConfigRulesEvaluation(rule);
20 *
21 * // runtime
22 * yield* startRulesEvaluation();
23 * ```
24 *
25 * @binding
26 */
27export interface StartConfigRulesEvaluation extends Binding.Service<
28 StartConfigRulesEvaluation,
29 "AWS.Config.StartConfigRulesEvaluation",
30 (
31 rule: ConfigRule,
32 ) => Effect.Effect<
33 () => Effect.Effect<
34 config.StartConfigRulesEvaluationResponse,
35 config.StartConfigRulesEvaluationError
36 >
37 >
38> {}
39
40export const StartConfigRulesEvaluation =
41 Binding.Service<StartConfigRulesEvaluation>(
42 "AWS.Config.StartConfigRulesEvaluation",
43 );