1import type * as sdb from "@distilled.cloud/aws/simpledb";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { RuntimeContext } from "../../RuntimeContext.ts";
5import type { Domain } from "./Domain.ts";
6
7export interface BatchDeleteAttributesRequest extends Omit<
8 sdb.BatchDeleteAttributesRequest,
9 "DomainName"
10> {}
11
12/**
13 * Runtime binding for `sdb:BatchDeleteAttributes`.
14 *
15 * Bind this operation to a {@link Domain} inside a function runtime to get a
16 * callable that automatically injects the domain name. Deletes attributes
17 * (or whole items, when an entry lists no attributes) on up to 25 items in a
18 * single call.
19 * ### Deleting Items
20 * **Example:** Batch Delete Whole Items
21 * ```typescript
22 * const batchDeleteAttributes =
23 * yield* AWS.SimpleDB.BatchDeleteAttributes(domain);
24 *
25 * yield* batchDeleteAttributes({
26 * Items: [{ ItemName: "user#1" }, { ItemName: "user#2" }],
27 * });
28 * ```
29 *
30 * @binding
31 */
32export interface BatchDeleteAttributes extends Binding.Service<
33 BatchDeleteAttributes,
34 "AWS.SimpleDB.BatchDeleteAttributes",
35 (
36 domain: Domain,
37 ) => Effect.Effect<
38 (
39 request: BatchDeleteAttributesRequest,
40 ) => Effect.Effect<
41 sdb.BatchDeleteAttributesResponse,
42 sdb.BatchDeleteAttributesError,
43 RuntimeContext
44 >
45 >
46> {}
47export const BatchDeleteAttributes = Binding.Service<BatchDeleteAttributes>(
48 "AWS.SimpleDB.BatchDeleteAttributes",
49);