1import type * as socialmessaging from "@distilled.cloud/aws/socialmessaging";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { LinkedWhatsAppBusinessAccount } from "./LinkedWhatsAppBusinessAccount.ts";
5
6/**
7 * Request for {@link UpdateWhatsAppMessageTemplate}. The linked WABA `id` is injected by
8 * the binding from the bound {@link LinkedWhatsAppBusinessAccount}.
9 */
10export interface UpdateWhatsAppMessageTemplateRequest extends Omit<
11 socialmessaging.UpdateWhatsAppMessageTemplateInput,
12 "id"
13> {}
14
15/**
16 * Runtime binding for `social-messaging:UpdateWhatsAppMessageTemplate`.
17 *
18 * Updates an existing WhatsApp message template on the bound account — its
19 * category or component JSON. Edits re-enter Meta review.
20 *
21 * The deploy-time half grants `social-messaging:UpdateWhatsAppMessageTemplate` on the
22 * bound WABA's ARN and the runtime half injects the linked account id
23 * into every request.
24 * Provide the implementation with
25 * `Effect.provide(AWS.SocialMessaging.UpdateWhatsAppMessageTemplateHttp)`.
26 * ### Managing Message Templates
27 * **Example:** Update a Template
28 * ```typescript
29 * // init — bind the operation to the linked WABA
30 * const updateTemplate = yield* AWS.SocialMessaging.UpdateWhatsAppMessageTemplate(account);
31 *
32 * // runtime
33 * yield* updateTemplate({
34 * metaTemplateId: "1234567890",
35 * templateComponents: new TextEncoder().encode(
36 * JSON.stringify([{ type: "BODY", text: "Order {{1}} delivered." }]),
37 * ),
38 * });
39 * ```
40 *
41 * @binding
42 */
43export interface UpdateWhatsAppMessageTemplate extends Binding.Service<
44 UpdateWhatsAppMessageTemplate,
45 "AWS.SocialMessaging.UpdateWhatsAppMessageTemplate",
46 (
47 account: LinkedWhatsAppBusinessAccount,
48 ) => Effect.Effect<
49 (
50 request: UpdateWhatsAppMessageTemplateRequest,
51 ) => Effect.Effect<
52 socialmessaging.UpdateWhatsAppMessageTemplateOutput,
53 socialmessaging.UpdateWhatsAppMessageTemplateError
54 >
55 >
56> {}
57export const UpdateWhatsAppMessageTemplate =
58 Binding.Service<UpdateWhatsAppMessageTemplate>(
59 "AWS.SocialMessaging.UpdateWhatsAppMessageTemplate",
60 );