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 * `ListImageSetVersions` request with `datastoreId` injected from the bound
8 * data store.
9 */
10export interface ListImageSetVersionsRequest extends Omit<
11 medicalimaging.ListImageSetVersionsRequest,
12 "datastoreId"
13> {}
14
15/**
16 * Runtime binding for the `ListImageSetVersions` operation (IAM action
17 * `medical-imaging:ListImageSetVersions`), scoped to one {@link Datastore}.
18 *
19 * Lists every version of an image set — each {@link UpdateImageSetMetadata}
20 * call produces a new version, and older versions remain readable and
21 * revertible. Provide the implementation with
22 * `Effect.provide(AWS.MedicalImaging.ListImageSetVersionsHttp)`.
23 *
24 * ### Reading Image Sets
25 * **Example:** List an Image Set's Versions
26 * ```typescript
27 * const listVersions = yield* MedicalImaging.ListImageSetVersions(datastore);
28 *
29 * const versions = yield* listVersions({ imageSetId });
30 * // versions.imageSetPropertiesList[i].versionId
31 * ```
32 *
33 * @binding
34 */
35export interface ListImageSetVersions extends Binding.Service<
36 ListImageSetVersions,
37 "AWS.MedicalImaging.ListImageSetVersions",
38 (
39 datastore: Datastore,
40 ) => Effect.Effect<
41 (
42 request: ListImageSetVersionsRequest,
43 ) => Effect.Effect<
44 medicalimaging.ListImageSetVersionsResponse,
45 medicalimaging.ListImageSetVersionsError
46 >
47 >
48> {}
49export const ListImageSetVersions = Binding.Service<ListImageSetVersions>(
50 "AWS.MedicalImaging.ListImageSetVersions",
51);