1import type * as efs from "@distilled.cloud/aws/efs";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DeleteAccessPoint` operation (IAM action
7 * `elasticfilesystem:DeleteAccessPoint`).
8 *
9 * Deletes an access point by ID — the teardown half of the runtime
10 * multi-tenant pattern built with {@link CreateAccessPoint}. The action
11 * authorizes on the access point's own ARN, which for runtime-created
12 * access points is unknowable at deploy time, so the grant is on `*`.
13 * Deleting an already-deleted access point surfaces the typed
14 * `AccessPointNotFound`. Provide the implementation with
15 * `Effect.provide(AWS.EFS.DeleteAccessPointHttp)`.
16 * ### Managing Access Points at Runtime
17 * **Example:** Delete a tenant's access point
18 * ```typescript
19 * const deleteAccessPoint = yield* AWS.EFS.DeleteAccessPoint();
20 *
21 * yield* deleteAccessPoint({ AccessPointId: accessPointId }).pipe(
22 * Effect.catchTag("AccessPointNotFound", () => Effect.void),
23 * );
24 * ```
25 *
26 * @binding
27 */
28export interface DeleteAccessPoint extends Binding.Service<
29 DeleteAccessPoint,
30 "AWS.EFS.DeleteAccessPoint",
31 () => Effect.Effect<
32 (
33 request: efs.DeleteAccessPointRequest,
34 ) => Effect.Effect<
35 efs.DeleteAccessPointResponse,
36 efs.DeleteAccessPointError
37 >
38 >
39> {}
40export const DeleteAccessPoint = Binding.Service<DeleteAccessPoint>(
41 "AWS.EFS.DeleteAccessPoint",
42);