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