1import type * as aa from "@distilled.cloud/aws/accessanalyzer";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `access-analyzer:ValidatePolicy`.
7 *
8 * Validates a policy document against IAM policy grammar and best practices,
9 * returning findings with fix suggestions. Provide the implementation with
10 * `Effect.provide(AWS.AccessAnalyzer.ValidatePolicyHttp)`.
11 * ### Validating Policies
12 * **Example:** Validate an Identity Policy
13 * ```typescript
14 * // init — account-level, no resource argument
15 * const validatePolicy = yield* AWS.AccessAnalyzer.ValidatePolicy();
16 *
17 * // runtime
18 * const result = yield* validatePolicy({
19 * policyDocument: JSON.stringify(policy),
20 * policyType: "IDENTITY_POLICY",
21 * });
22 * ```
23 *
24 * @binding
25 */
26export interface ValidatePolicy extends Binding.Service<
27 ValidatePolicy,
28 "AWS.AccessAnalyzer.ValidatePolicy",
29 () => Effect.Effect<
30 (
31 request: aa.ValidatePolicyRequest,
32 ) => Effect.Effect<aa.ValidatePolicyResponse, aa.ValidatePolicyError>
33 >
34> {}
35
36export const ValidatePolicy = Binding.Service<ValidatePolicy>(
37 "AWS.AccessAnalyzer.ValidatePolicy",
38);