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 PutResourceSet}.
7 */
8export interface PutResourceSetRequest extends fms.PutResourceSetRequest {}
9
10/**
11 * Runtime binding for `fms:PutResourceSet`.
12 *
13 * Creates or updates a Firewall Manager resource set — a collection of resources that a Firewall Manager policy can protect as a unit. Provide the
14 * implementation with `Effect.provide(AWS.FMS.PutResourceSetHttp)`.
15 * ### Resource Sets
16 * **Example:** Create a Resource Set
17 * ```typescript
18 * // init — account-level binding takes no resource
19 * const putResourceSet = yield* AWS.FMS.PutResourceSet();
20 *
21 * // runtime
22 * const result = yield* putResourceSet({
23 * ResourceSet: {
24 * Name: "edge-resources",
25 * ResourceTypeList: ["AWS::NetworkFirewall::Firewall"],
26 * },
27 * });
28 * console.log(result.ResourceSet.Id);
29 * ```
30 *
31 * @binding
32 */
33export interface PutResourceSet extends Binding.Service<
34 PutResourceSet,
35 "AWS.FMS.PutResourceSet",
36 () => Effect.Effect<
37 (
38 request: PutResourceSetRequest,
39 ) => Effect.Effect<fms.PutResourceSetResponse, fms.PutResourceSetError>
40 >
41> {}
42
43export const PutResourceSet = Binding.Service<PutResourceSet>(
44 "AWS.FMS.PutResourceSet",
45);