1import type * as notifications from "@distilled.cloud/aws/notifications";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Request for {@link ListNotificationEvents}.
7 */
8export interface ListNotificationEventsRequest
9 extends notifications.ListNotificationEventsRequest {}
10
11/**
12 * Runtime binding for `notifications:ListNotificationEvents`.
13 *
14 * List the account's notification events, optionally filtered by time
15 * range, EventBridge source, or aggregate parent event. Provide the
16 * implementation with
17 * `Effect.provide(AWS.Notifications.ListNotificationEventsHttp)`.
18 * ### Reading Notification Events
19 * **Example:** List Recent Notification Events
20 * ```typescript
21 * // init — account-level binding takes no resource
22 * const listNotificationEvents = yield* AWS.Notifications.ListNotificationEvents();
23 *
24 * // runtime
25 * const result = yield* listNotificationEvents({ source: "aws.s3" });
26 * const headlines = result.notificationEvents.map(
27 * (e) => e.notificationEvent.messageComponents.headline,
28 * );
29 * ```
30 *
31 * @binding
32 */
33export interface ListNotificationEvents extends Binding.Service<
34 ListNotificationEvents,
35 "AWS.Notifications.ListNotificationEvents",
36 () => Effect.Effect<
37 (
38 request?: ListNotificationEventsRequest,
39 ) => Effect.Effect<
40 notifications.ListNotificationEventsResponse,
41 notifications.ListNotificationEventsError
42 >
43 >
44> {}
45
46export const ListNotificationEvents = Binding.Service<ListNotificationEvents>(
47 "AWS.Notifications.ListNotificationEvents",
48);