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 ListWhatsAppMessageTemplates}. The linked WABA `id` is injected by
8 * the binding from the bound {@link LinkedWhatsAppBusinessAccount}.
9 */
10export interface ListWhatsAppMessageTemplatesRequest extends Omit<
11 socialmessaging.ListWhatsAppMessageTemplatesInput,
12 "id"
13> {}
14
15/**
16 * Runtime binding for `social-messaging:ListWhatsAppMessageTemplates`.
17 *
18 * Lists the WhatsApp message templates of the bound account, with their
19 * Meta review status and quality score.
20 *
21 * The deploy-time half grants `social-messaging:ListWhatsAppMessageTemplates` 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.ListWhatsAppMessageTemplatesHttp)`.
26 * ### Managing Message Templates
27 * **Example:** List Templates
28 * ```typescript
29 * // init — bind the operation to the linked WABA
30 * const listTemplates = yield* AWS.SocialMessaging.ListWhatsAppMessageTemplates(account);
31 *
32 * // runtime
33 * const { templates } = yield* listTemplates({ maxResults: 25 });
34 * ```
35 *
36 * @binding
37 */
38export interface ListWhatsAppMessageTemplates extends Binding.Service<
39 ListWhatsAppMessageTemplates,
40 "AWS.SocialMessaging.ListWhatsAppMessageTemplates",
41 (
42 account: LinkedWhatsAppBusinessAccount,
43 ) => Effect.Effect<
44 (
45 request?: ListWhatsAppMessageTemplatesRequest,
46 ) => Effect.Effect<
47 socialmessaging.ListWhatsAppMessageTemplatesOutput,
48 socialmessaging.ListWhatsAppMessageTemplatesError
49 >
50 >
51> {}
52export const ListWhatsAppMessageTemplates =
53 Binding.Service<ListWhatsAppMessageTemplates>(
54 "AWS.SocialMessaging.ListWhatsAppMessageTemplates",
55 );