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 DeletePolicy}.
7 */
8export interface DeletePolicyRequest extends fms.DeletePolicyRequest {}
9
10/**
11 * Runtime binding for `fms:DeletePolicy`.
12 *
13 * Permanently deletes the specified Firewall Manager policy, optionally cleaning up the resources it created in member accounts. Provide the
14 * implementation with `Effect.provide(AWS.FMS.DeletePolicyHttp)`.
15 * ### Managing Policies
16 * **Example:** Delete a Policy
17 * ```typescript
18 * // init — account-level binding takes no resource
19 * const deletePolicy = yield* AWS.FMS.DeletePolicy();
20 *
21 * // runtime
22 * yield* deletePolicy({ PolicyId: policyId, DeleteAllPolicyResources: true });
23 * ```
24 *
25 * @binding
26 */
27export interface DeletePolicy extends Binding.Service<
28 DeletePolicy,
29 "AWS.FMS.DeletePolicy",
30 () => Effect.Effect<
31 (
32 request: DeletePolicyRequest,
33 ) => Effect.Effect<fms.DeletePolicyResponse, fms.DeletePolicyError>
34 >
35> {}
36
37export const DeletePolicy = Binding.Service<DeletePolicy>(
38 "AWS.FMS.DeletePolicy",
39);