1import type * as smsvoice from "@distilled.cloud/aws/pinpoint-sms-voice-v2";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { OptOutList } from "./OptOutList.ts";
5
6/**
7 * The `OptOutListName` is injected by the binding from the bound opt-out
8 * list; the caller supplies the destination number to opt back in.
9 */
10export interface DeleteOptedOutNumberRequest extends Omit<
11 smsvoice.DeleteOptedOutNumberRequest,
12 "OptOutListName"
13> {}
14
15/**
16 * Runtime binding for `sms-voice:DeleteOptedOutNumber`.
17 *
18 * Removes a destination phone number from the bound opt-out list, opting
19 * the end user back in to receiving messages. Numbers that opted
20 * themselves out by replying with a keyword can only be removed once
21 * every 30 days. The deploy-time half grants
22 * `sms-voice:DeleteOptedOutNumber` on the list. Provide the
23 * implementation with
24 * `Effect.provide(AWS.PinpointSMSVoiceV2.DeleteOptedOutNumberHttp)`.
25 * ### Managing Opt-Outs
26 * **Example:** Opt a Number Back In
27 * ```typescript
28 * // init
29 * const deleteOptedOut =
30 * yield* AWS.PinpointSMSVoiceV2.DeleteOptedOutNumber(optOuts);
31 *
32 * // runtime
33 * yield* deleteOptedOut({ OptedOutNumber: "+12065550100" });
34 * ```
35 *
36 * @binding
37 */
38export interface DeleteOptedOutNumber extends Binding.Service<
39 DeleteOptedOutNumber,
40 "AWS.PinpointSMSVoiceV2.DeleteOptedOutNumber",
41 (
42 optOutList: OptOutList,
43 ) => Effect.Effect<
44 (
45 request: DeleteOptedOutNumberRequest,
46 ) => Effect.Effect<
47 smsvoice.DeleteOptedOutNumberResult,
48 smsvoice.DeleteOptedOutNumberError
49 >
50 >
51> {}
52export const DeleteOptedOutNumber = Binding.Service<DeleteOptedOutNumber>(
53 "AWS.PinpointSMSVoiceV2.DeleteOptedOutNumber",
54);