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 BatchAssociateResource}.
7 */
8export interface BatchAssociateResourceRequest
9 extends fms.BatchAssociateResourceRequest {}
10
11/**
12 * Runtime binding for `fms:BatchAssociateResource`.
13 *
14 * Associates resources with the specified Firewall Manager resource set, reporting per-item failures. Provide the
15 * implementation with `Effect.provide(AWS.FMS.BatchAssociateResourceHttp)`.
16 * ### Resource Sets
17 * **Example:** Associate Resources into a Resource Set
18 * ```typescript
19 * // init — account-level binding takes no resource
20 * const batchAssociateResource = yield* AWS.FMS.BatchAssociateResource();
21 *
22 * // runtime
23 * const result = yield* batchAssociateResource({
24 * ResourceSetIdentifier: resourceSetId,
25 * Items: [firewallArn],
26 * });
27 * console.log(result.FailedItems.length);
28 * ```
29 *
30 * @binding
31 */
32export interface BatchAssociateResource extends Binding.Service<
33 BatchAssociateResource,
34 "AWS.FMS.BatchAssociateResource",
35 () => Effect.Effect<
36 (
37 request: BatchAssociateResourceRequest,
38 ) => Effect.Effect<
39 fms.BatchAssociateResourceResponse,
40 fms.BatchAssociateResourceError
41 >
42 >
43> {}
44
45export const BatchAssociateResource = Binding.Service<BatchAssociateResource>(
46 "AWS.FMS.BatchAssociateResource",
47);