1import type * as location from "@distilled.cloud/aws/location";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Tracker } from "./Tracker.ts";
5
6/**
7 * `BatchDeleteDevicePositionHistory` request with `TrackerName` injected from the bound
8 * resource.
9 */
10export interface BatchDeleteDevicePositionHistoryRequest extends Omit<
11 location.BatchDeleteDevicePositionHistoryRequest,
12 "TrackerName"
13> {}
14
15/**
16 * Deletes the complete position history of up to 100 devices from the tracker.
17 *
18 * Runtime binding for the `BatchDeleteDevicePositionHistory` operation (IAM action
19 * `geo:BatchDeleteDevicePositionHistory`), scoped to one {@link Tracker}. Provide the implementation with
20 * `Effect.provide(AWS.Location.BatchDeleteDevicePositionHistoryHttp)`.
21 *
22 * ### Updating Device Positions
23 * **Example:** Purge a Device's Position History
24 * ```typescript
25 * const deleteHistory = yield* Location.BatchDeleteDevicePositionHistory(tracker);
26 *
27 * yield* deleteHistory({ DeviceIds: ["vehicle-1"] });
28 * ```
29 *
30 * @binding
31 */
32export interface BatchDeleteDevicePositionHistory extends Binding.Service<
33 BatchDeleteDevicePositionHistory,
34 "AWS.Location.BatchDeleteDevicePositionHistory",
35 (
36 tracker: Tracker,
37 ) => Effect.Effect<
38 (
39 request: BatchDeleteDevicePositionHistoryRequest,
40 ) => Effect.Effect<
41 location.BatchDeleteDevicePositionHistoryResponse,
42 location.BatchDeleteDevicePositionHistoryError
43 >
44 >
45> {}
46export const BatchDeleteDevicePositionHistory =
47 Binding.Service<BatchDeleteDevicePositionHistory>(
48 "AWS.Location.BatchDeleteDevicePositionHistory",
49 );