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 { MultiRegionAccessPoint } from "./MultiRegionAccessPoint.ts";
5
6/**
7 * Runtime binding for `s3:GetMultiRegionAccessPointRoutes`.
8 *
9 * Reads the bound {@link MultiRegionAccessPoint}'s per-region routing
10 * configuration (each region's `TrafficDialPercentage`) — the observe half
11 * of an active/passive failover controller. Requests are routed to the
12 * `us-west-2` MRAP control plane. Provide the implementation with
13 * `Effect.provide(AWS.S3Control.GetMultiRegionAccessPointRoutesHttp)`.
14 * ### Controlling Multi-Region Failover
15 * **Example:** Read the Current Routes
16 * ```typescript
17 * // init — bind the operation to the Multi-Region Access Point
18 * const getRoutes =
19 * yield* AWS.S3Control.GetMultiRegionAccessPointRoutes(mrap);
20 *
21 * // runtime
22 * const { Routes } = yield* getRoutes();
23 * // Routes?.map((r) => `${r.Region}: ${r.TrafficDialPercentage}%`)
24 * ```
25 *
26 * @binding
27 */
28export interface GetMultiRegionAccessPointRoutes extends Binding.Service<
29 GetMultiRegionAccessPointRoutes,
30 "AWS.S3Control.GetMultiRegionAccessPointRoutes",
31 (
32 mrap: MultiRegionAccessPoint,
33 ) => Effect.Effect<
34 () => Effect.Effect<
35 s3control.GetMultiRegionAccessPointRoutesResult,
36 s3control.GetMultiRegionAccessPointRoutesError
37 >
38 >
39> {}
40export const GetMultiRegionAccessPointRoutes =
41 Binding.Service<GetMultiRegionAccessPointRoutes>(
42 "AWS.S3Control.GetMultiRegionAccessPointRoutes",
43 );