1import { Region as AwsRegion } from "@distilled.cloud/aws/Region";
2import * as Effect from "effect/Effect";
3
4// The AWS Price List Query API is only served from us-east-1 (and ap-south-1),
5// regardless of where the calling function runs. Pin every pricing call to
6// us-east-1 so a Lambda deployed in any region resolves a valid endpoint.
7//
8// NOTE: the distilled Region service value is `Effect<RegionName>`, not a raw
9// string — providing a bare string makes the client `yield*` a string and
10// crash. Wrap in Effect.succeed (same as CloudFront KVS / ACM / WAFv2).
11export const PRICING_REGION = "us-east-1" as const;
12
13export const withPricingRegion = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
14 effect.pipe(Effect.provideService(AwsRegion, Effect.succeed(PRICING_REGION)));