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:CheckNoPublicAccess`.
7 *
8 * Custom policy check: verifies a resource policy cannot grant public access
9 * for the given resource type. Provide the implementation with
10 * `Effect.provide(AWS.AccessAnalyzer.CheckNoPublicAccessHttp)`.
11 * ### Custom Policy Checks
12 * **Example:** Assert a Bucket Policy Is Not Public
13 * ```typescript
14 * const checkNoPublicAccess =
15 * yield* AWS.AccessAnalyzer.CheckNoPublicAccess();
16 * const result = yield* checkNoPublicAccess({
17 * policyDocument: JSON.stringify(bucketPolicy),
18 * resourceType: "AWS::S3::Bucket",
19 * });
20 * ```
21 *
22 * @binding
23 */
24export interface CheckNoPublicAccess extends Binding.Service<
25 CheckNoPublicAccess,
26 "AWS.AccessAnalyzer.CheckNoPublicAccess",
27 () => Effect.Effect<
28 (
29 request: aa.CheckNoPublicAccessRequest,
30 ) => Effect.Effect<
31 aa.CheckNoPublicAccessResponse,
32 aa.CheckNoPublicAccessError
33 >
34 >
35> {}
36
37export const CheckNoPublicAccess = Binding.Service<CheckNoPublicAccess>(
38 "AWS.AccessAnalyzer.CheckNoPublicAccess",
39);