1import { CreateBillingPortalSession as createBillingPortalSessionOp } from "@distilled.cloud/stripe/stripe";
2import * as Layer from "effect/Layer";
3import { CreateBillingPortalSession } from "./CreateBillingPortalSession.ts";
4import { makeHttpStripeAccountBinding } from "./StripeHttp.ts";
5
6/**
7 * HTTP implementation of {@link CreateBillingPortalSession}. Provide it on
8 * the Function or Worker Effect.
9 *
10 * @layer
11 * @product Billing
12 * @provides Stripe.CreateBillingPortalSession
13 */
14export const CreateBillingPortalSessionHttp = Layer.effect(
15 CreateBillingPortalSession,
16 makeHttpStripeAccountBinding({
17 tag: "Stripe.CreateBillingPortalSession",
18 operation: createBillingPortalSessionOp,
19 permissions: ["billing_portal_write"],
20 }),
21);