1import type * as config from "@distilled.cloud/aws/config-service";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `config:DescribeComplianceByConfigRule` — read
7 * whether your Config rules are compliant (and how many resources violate
8 * each noncompliant rule).
9 *
10 * Provide `Config.DescribeComplianceByConfigRuleHttp` on the hosting Lambda Function to
11 * satisfy the requirement.
12 * ### Reading Compliance
13 * **Example:** Check Rule Compliance
14 * ```typescript
15 * // init — grants config:DescribeComplianceByConfigRule
16 * const describeComplianceByConfigRule = yield* AWS.Config.DescribeComplianceByConfigRule();
17 *
18 * // runtime
19 * const result = yield* describeComplianceByConfigRule();
20 * for (const rule of result.ComplianceByConfigRules ?? []) {
21 * console.log(rule.ConfigRuleName, rule.Compliance?.ComplianceType);
22 * }
23 * ```
24 *
25 * @binding
26 */
27export interface DescribeComplianceByConfigRule extends Binding.Service<
28 DescribeComplianceByConfigRule,
29 "AWS.Config.DescribeComplianceByConfigRule",
30 () => Effect.Effect<
31 (
32 request?: config.DescribeComplianceByConfigRuleRequest,
33 ) => Effect.Effect<
34 config.DescribeComplianceByConfigRuleResponse,
35 config.DescribeComplianceByConfigRuleError
36 >
37 >
38> {}
39
40export const DescribeComplianceByConfigRule =
41 Binding.Service<DescribeComplianceByConfigRule>(
42 "AWS.Config.DescribeComplianceByConfigRule",
43 );