1import * as xray from "@distilled.cloud/aws/xray";
2import * as Layer from "effect/Layer";
3import { makeXRayHttpBinding } from "./BindingHttp.ts";
4import { GetTraceSegmentDestination } from "./GetTraceSegmentDestination.ts";
5
6/**
7 * HTTP implementation of the `XRay.GetTraceSegmentDestination` binding.
8 *
9 * At deploy time it grants `xray:GetTraceSegmentDestination` on `*` to the host Lambda
10 * Function (the action does not support resource-level permissions); at
11 * runtime it calls the X-Ray API with the function's execution role
12 * credentials.
13 *
14 * @example Provide on the Function effect
15 * ```typescript
16 * import * as XRay from "alchemy/AWS/XRay";
17 *
18 * Effect.gen(function* () {
19 * const getTraceSegmentDestination = yield* XRay.GetTraceSegmentDestination();
20 * // ...
21 * }).pipe(Effect.provide(XRay.GetTraceSegmentDestinationHttp));
22 * ```
23 */
24export const GetTraceSegmentDestinationHttp = Layer.effect(
25 GetTraceSegmentDestination,
26 makeXRayHttpBinding({
27 tag: "AWS.XRay.GetTraceSegmentDestination",
28 operation: xray.getTraceSegmentDestination,
29 actions: ["xray:GetTraceSegmentDestination"],
30 }),
31);