1import type * as apprunner from "@distilled.cloud/aws/apprunner";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Service } from "./Service.ts";
5
6export interface DisassociateCustomDomainRequest extends Omit<
7 apprunner.DisassociateCustomDomainRequest,
8 "ServiceArn"
9> {}
10
11/**
12 * Disassociate a custom domain from an App Runner {@link Service} from a
13 * Lambda (or other AWS runtime) — the teardown half of the multi-tenant
14 * SaaS domain flow when a customer removes their domain.
15 *
16 * Provide `AppRunner.DisassociateCustomDomainHttp` on the hosting
17 * function's Effect to implement the binding.
18 *
19 * ### Custom Domains
20 * **Example:** Remove a customer domain
21 * ```typescript
22 * const disassociateCustomDomain =
23 * yield* AppRunner.DisassociateCustomDomain(service);
24 * yield* disassociateCustomDomain({ DomainName: "app.customer.com" });
25 * ```
26 *
27 * @binding
28 */
29export interface DisassociateCustomDomain extends Binding.Service<
30 DisassociateCustomDomain,
31 "AWS.AppRunner.DisassociateCustomDomain",
32 (
33 service: Service,
34 ) => Effect.Effect<
35 (
36 request: DisassociateCustomDomainRequest,
37 ) => Effect.Effect<
38 apprunner.DisassociateCustomDomainResponse,
39 apprunner.DisassociateCustomDomainError
40 >
41 >
42> {}
43export const DisassociateCustomDomain =
44 Binding.Service<DisassociateCustomDomain>(
45 "AWS.AppRunner.DisassociateCustomDomain",
46 );