1import type * as s3control from "@distilled.cloud/aws/s3-control";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { AccessPoint } from "./AccessPoint.ts";
5
6/**
7 * Runtime binding for `s3:GetAccessPoint`.
8 *
9 * Reads the bound {@link AccessPoint}'s live configuration — bucket,
10 * network origin, public-access-block flags, alias and endpoints — e.g. an
11 * operational dashboard or a controller that verifies the access point is
12 * still wired to the expected bucket. The access point name and owning
13 * account are injected from the binding. Provide the implementation with
14 * `Effect.provide(AWS.S3Control.GetAccessPointHttp)`.
15 * ### Observing an Access Point
16 * **Example:** Read the Access Point's Configuration
17 * ```typescript
18 * // init — bind the operation to the access point
19 * const getAccessPoint = yield* AWS.S3Control.GetAccessPoint(accessPoint);
20 *
21 * // runtime
22 * const live = yield* getAccessPoint();
23 * // live.Bucket, live.NetworkOrigin, live.Endpoints
24 * ```
25 *
26 * @binding
27 */
28export interface GetAccessPoint extends Binding.Service<
29 GetAccessPoint,
30 "AWS.S3Control.GetAccessPoint",
31 (
32 accessPoint: AccessPoint,
33 ) => Effect.Effect<
34 () => Effect.Effect<
35 s3control.GetAccessPointResult,
36 s3control.GetAccessPointError
37 >
38 >
39> {}
40export const GetAccessPoint = Binding.Service<GetAccessPoint>(
41 "AWS.S3Control.GetAccessPoint",
42);