1import type * as ssm from "@distilled.cloud/aws/ssm-contacts";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { ContactChannel } from "./ContactChannel.ts";
5
6/**
7 * Runtime binding for `ssm-contacts:DeactivateContactChannel`.
8 *
9 * Deactivate the bound contact channel so Incident Manager stops paging
10 * through it — e.g. while the owner is on leave. The channel's ARN is
11 * injected as `ContactChannelId`.
12 * Provide the implementation with
13 * `Effect.provide(AWS.SSMContacts.DeactivateContactChannelHttp)`.
14 * ### Activating Contact Channels
15 * **Example:** Deactivate a Channel
16 * ```typescript
17 * const deactivateContactChannel = yield* AWS.SSMContacts.DeactivateContactChannel(email);
18 *
19 * yield* deactivateContactChannel();
20 * ```
21 *
22 * @binding
23 */
24export interface DeactivateContactChannel extends Binding.Service<
25 DeactivateContactChannel,
26 "AWS.SSMContacts.DeactivateContactChannel",
27 (
28 channel: ContactChannel,
29 ) => Effect.Effect<
30 () => Effect.Effect<
31 ssm.DeactivateContactChannelResult,
32 ssm.DeactivateContactChannelError
33 >
34 >
35> {}
36export const DeactivateContactChannel =
37 Binding.Service<DeactivateContactChannel>(
38 "AWS.SSMContacts.DeactivateContactChannel",
39 );