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 GetViolationDetails}.
7 */
8export interface GetViolationDetailsRequest
9 extends fms.GetViolationDetailsRequest {}
10
11/**
12 * Runtime binding for `fms:GetViolationDetails`.
13 *
14 * Returns violation details for the specified resource covered by a Firewall Manager network ACL, security group, Network Firewall, DNS Firewall, or third-party firewall policy. Provide the
15 * implementation with `Effect.provide(AWS.FMS.GetViolationDetailsHttp)`.
16 * ### Compliance and Protection Status
17 * **Example:** Read a Resource's Violation Details
18 * ```typescript
19 * // init — account-level binding takes no resource
20 * const getViolationDetails = yield* AWS.FMS.GetViolationDetails();
21 *
22 * // runtime
23 * const result = yield* getViolationDetails({
24 * PolicyId: policyId,
25 * MemberAccount: accountId,
26 * ResourceId: instanceId,
27 * ResourceType: "AWS::EC2::Instance",
28 * });
29 * console.log(result.ViolationDetail?.ResourceViolations.length);
30 * ```
31 *
32 * @binding
33 */
34export interface GetViolationDetails extends Binding.Service<
35 GetViolationDetails,
36 "AWS.FMS.GetViolationDetails",
37 () => Effect.Effect<
38 (
39 request: GetViolationDetailsRequest,
40 ) => Effect.Effect<
41 fms.GetViolationDetailsResponse,
42 fms.GetViolationDetailsError
43 >
44 >
45> {}
46
47export const GetViolationDetails = Binding.Service<GetViolationDetails>(
48 "AWS.FMS.GetViolationDetails",
49);