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:CheckAccessNotGranted`.
7 *
8 * Custom policy check: verifies a policy does not grant the specified actions
9 * or resource access. Provide the implementation with
10 * `Effect.provide(AWS.AccessAnalyzer.CheckAccessNotGrantedHttp)`.
11 * ### Custom Policy Checks
12 * **Example:** Assert a Policy Cannot Delete Buckets
13 * ```typescript
14 * const checkAccessNotGranted =
15 * yield* AWS.AccessAnalyzer.CheckAccessNotGranted();
16 * const result = yield* checkAccessNotGranted({
17 * policyDocument: JSON.stringify(policy),
18 * policyType: "IDENTITY_POLICY",
19 * access: [{ actions: ["s3:DeleteBucket"] }],
20 * });
21 * // result.result === "PASS" | "FAIL"
22 * ```
23 *
24 * @binding
25 */
26export interface CheckAccessNotGranted extends Binding.Service<
27 CheckAccessNotGranted,
28 "AWS.AccessAnalyzer.CheckAccessNotGranted",
29 () => Effect.Effect<
30 (
31 request: aa.CheckAccessNotGrantedRequest,
32 ) => Effect.Effect<
33 aa.CheckAccessNotGrantedResponse,
34 aa.CheckAccessNotGrantedError
35 >
36 >
37> {}
38
39export const CheckAccessNotGranted = Binding.Service<CheckAccessNotGranted>(
40 "AWS.AccessAnalyzer.CheckAccessNotGranted",
41);