1import type * as medicalimaging from "@distilled.cloud/aws/medical-imaging";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Datastore } from "./Datastore.ts";
5
6/**
7 * `DeleteImageSet` request with `datastoreId` injected from the bound data
8 * store.
9 */
10export interface DeleteImageSetRequest extends Omit<
11 medicalimaging.DeleteImageSetRequest,
12 "datastoreId"
13> {}
14
15/**
16 * Runtime binding for the `DeleteImageSet` operation (IAM action
17 * `medical-imaging:DeleteImageSet`), scoped to one {@link Datastore}.
18 *
19 * Deletes an image set (asynchronously — the response reports
20 * `imageSetWorkflowStatus: "DELETING"`). A data store must contain no image
21 * sets before it can be deleted. Provide the implementation with
22 * `Effect.provide(AWS.MedicalImaging.DeleteImageSetHttp)`.
23 *
24 * ### Updating Image Sets
25 * **Example:** Delete an Image Set
26 * ```typescript
27 * const deleteImageSet = yield* MedicalImaging.DeleteImageSet(datastore);
28 *
29 * const deleted = yield* deleteImageSet({ imageSetId });
30 * // deleted.imageSetWorkflowStatus === "DELETING"
31 * ```
32 *
33 * @binding
34 */
35export interface DeleteImageSet extends Binding.Service<
36 DeleteImageSet,
37 "AWS.MedicalImaging.DeleteImageSet",
38 (
39 datastore: Datastore,
40 ) => Effect.Effect<
41 (
42 request: DeleteImageSetRequest,
43 ) => Effect.Effect<
44 medicalimaging.DeleteImageSetResponse,
45 medicalimaging.DeleteImageSetError
46 >
47 >
48> {}
49export const DeleteImageSet = Binding.Service<DeleteImageSet>(
50 "AWS.MedicalImaging.DeleteImageSet",
51);