1import type * as efs from "@distilled.cloud/aws/efs";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { FileSystem } from "./FileSystem.ts";
5
6/**
7 * `DescribeAccessPoints` request with `FileSystemId` injected from the bound
8 * {@link FileSystem}.
9 */
10export interface DescribeAccessPointsRequest extends Omit<
11 efs.DescribeAccessPointsRequest,
12 "FileSystemId"
13> {}
14
15/**
16 * Runtime binding for the `DescribeAccessPoints` operation (IAM action
17 * `elasticfilesystem:DescribeAccessPoints` on the file system ARN).
18 *
19 * Lists the bound {@link FileSystem}'s access points — e.g. to enumerate the
20 * per-tenant entry points created at runtime with
21 * {@link CreateAccessPoint}. Provide the implementation with
22 * `Effect.provide(AWS.EFS.DescribeAccessPointsHttp)`.
23 * ### Managing Access Points at Runtime
24 * **Example:** List the file system's access points
25 * ```typescript
26 * const describeAccessPoints = yield* AWS.EFS.DescribeAccessPoints(files);
27 *
28 * const { AccessPoints } = yield* describeAccessPoints();
29 * for (const accessPoint of AccessPoints ?? []) {
30 * yield* Effect.log(`${accessPoint.Name}: ${accessPoint.AccessPointId}`);
31 * }
32 * ```
33 *
34 * @binding
35 */
36export interface DescribeAccessPoints extends Binding.Service<
37 DescribeAccessPoints,
38 "AWS.EFS.DescribeAccessPoints",
39 (
40 fileSystem: FileSystem,
41 ) => Effect.Effect<
42 (
43 request?: DescribeAccessPointsRequest,
44 ) => Effect.Effect<
45 efs.DescribeAccessPointsResponse,
46 efs.DescribeAccessPointsError
47 >
48 >
49> {}
50export const DescribeAccessPoints = Binding.Service<DescribeAccessPoints>(
51 "AWS.EFS.DescribeAccessPoints",
52);