1import type * as mm from "@distilled.cloud/aws/mailmanager";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { AddressList } from "./AddressList.ts";
5
6/**
7 * Runtime binding for `ses:GetMemberOfAddressList`.
8 *
9 * Fetches a single member of the bound address list (address +
10 * registration timestamp), failing with `ResourceNotFoundException` when
11 * the address is not on the list. The address list id is injected from
12 * the binding. Provide the implementation with
13 * `Effect.provide(AWS.MailManager.GetMemberOfAddressListHttp)`.
14 * ### Managing Address List Members
15 * **Example:** Check Whether a Sender Is Blocked
16 * ```typescript
17 * const getMember = yield* MailManager.GetMemberOfAddressList(blockList);
18 *
19 * // runtime
20 * const blocked = yield* getMember({ Address: sender }).pipe(
21 * Effect.map(() => true),
22 * Effect.catchTag("ResourceNotFoundException", () => Effect.succeed(false)),
23 * );
24 * ```
25 *
26 * @binding
27 */
28export interface GetMemberOfAddressList extends Binding.Service<
29 GetMemberOfAddressList,
30 "AWS.MailManager.GetMemberOfAddressList",
31 (
32 list: AddressList,
33 ) => Effect.Effect<
34 (
35 request: Omit<mm.GetMemberOfAddressListRequest, "AddressListId">,
36 ) => Effect.Effect<
37 mm.GetMemberOfAddressListResponse,
38 mm.GetMemberOfAddressListError
39 >
40 >
41> {}
42export const GetMemberOfAddressList = Binding.Service<GetMemberOfAddressList>(
43 "AWS.MailManager.GetMemberOfAddressList",
44);