1import type * as fms from "@distilled.cloud/aws/fms";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Request for {@link GetComplianceDetail}.
7 */
8export interface GetComplianceDetailRequest
9 extends fms.GetComplianceDetailRequest {}
10
11/**
12 * Runtime binding for `fms:GetComplianceDetail`.
13 *
14 * Returns detailed compliance information about the specified member account — the resources that are in and out of compliance with the specified policy. Provide the
15 * implementation with `Effect.provide(AWS.FMS.GetComplianceDetailHttp)`.
16 * ### Compliance and Protection Status
17 * **Example:** Read a Member Account's Compliance Detail
18 * ```typescript
19 * // init — account-level binding takes no resource
20 * const getComplianceDetail = yield* AWS.FMS.GetComplianceDetail();
21 *
22 * // runtime
23 * const result = yield* getComplianceDetail({
24 * PolicyId: policyId,
25 * MemberAccount: accountId,
26 * });
27 * console.log(result.PolicyComplianceDetail?.Violators?.length);
28 * ```
29 *
30 * @binding
31 */
32export interface GetComplianceDetail extends Binding.Service<
33 GetComplianceDetail,
34 "AWS.FMS.GetComplianceDetail",
35 () => Effect.Effect<
36 (
37 request: GetComplianceDetailRequest,
38 ) => Effect.Effect<
39 fms.GetComplianceDetailResponse,
40 fms.GetComplianceDetailError
41 >
42 >
43> {}
44
45export const GetComplianceDetail = Binding.Service<GetComplianceDetail>(
46 "AWS.FMS.GetComplianceDetail",
47);