1import type * as location from "@distilled.cloud/aws/location";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { GeofenceCollection } from "./GeofenceCollection.ts";
5
6/**
7 * `BatchDeleteGeofence` request with `CollectionName` injected from the bound
8 * resource.
9 */
10export interface BatchDeleteGeofenceRequest extends Omit<
11 location.BatchDeleteGeofenceRequest,
12 "CollectionName"
13> {}
14
15/**
16 * Deletes up to 10 geofences from the collection in one call.
17 *
18 * Runtime binding for the `BatchDeleteGeofence` operation (IAM action
19 * `geo:BatchDeleteGeofence`), scoped to one {@link GeofenceCollection}. Provide the implementation with
20 * `Effect.provide(AWS.Location.BatchDeleteGeofenceHttp)`.
21 *
22 * ### Managing Geofences
23 * **Example:** Delete Geofences
24 * ```typescript
25 * const batchDelete = yield* Location.BatchDeleteGeofence(collection);
26 *
27 * yield* batchDelete({ GeofenceIds: ["warehouse"] });
28 * ```
29 *
30 * @binding
31 */
32export interface BatchDeleteGeofence extends Binding.Service<
33 BatchDeleteGeofence,
34 "AWS.Location.BatchDeleteGeofence",
35 (
36 collection: GeofenceCollection,
37 ) => Effect.Effect<
38 (
39 request: BatchDeleteGeofenceRequest,
40 ) => Effect.Effect<
41 location.BatchDeleteGeofenceResponse,
42 location.BatchDeleteGeofenceError
43 >
44 >
45> {}
46export const BatchDeleteGeofence = Binding.Service<BatchDeleteGeofence>(
47 "AWS.Location.BatchDeleteGeofence",
48);