1import type * as fms from "@distilled.cloud/aws/fms";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Request for {@link PutNotificationChannel}.
7 */
8export interface PutNotificationChannelRequest
9 extends fms.PutNotificationChannelRequest {}
10
11/**
12 * Runtime binding for `fms:PutNotificationChannel`.
13 *
14 * Designates the SNS topic and IAM role that Firewall Manager uses to record SNS logs — the channel through which Firewall Manager notifications flow. Provide the
15 * implementation with `Effect.provide(AWS.FMS.PutNotificationChannelHttp)`.
16 * ### Notification Channel
17 * **Example:** Set the Notification Channel
18 * ```typescript
19 * // init — account-level binding takes no resource
20 * const putNotificationChannel = yield* AWS.FMS.PutNotificationChannel();
21 *
22 * // runtime
23 * yield* putNotificationChannel({
24 * SnsTopicArn: topicArn,
25 * SnsRoleName: roleArn,
26 * });
27 * ```
28 *
29 * @binding
30 */
31export interface PutNotificationChannel extends Binding.Service<
32 PutNotificationChannel,
33 "AWS.FMS.PutNotificationChannel",
34 () => Effect.Effect<
35 (
36 request: PutNotificationChannelRequest,
37 ) => Effect.Effect<
38 fms.PutNotificationChannelResponse,
39 fms.PutNotificationChannelError
40 >
41 >
42> {}
43
44export const PutNotificationChannel = Binding.Service<PutNotificationChannel>(
45 "AWS.FMS.PutNotificationChannel",
46);