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 * `UpdateImageSetMetadata` request with `datastoreId` injected from the
8 * bound data store.
9 */
10export interface UpdateImageSetMetadataRequest extends Omit<
11 medicalimaging.UpdateImageSetMetadataRequest,
12 "datastoreId"
13> {}
14
15/**
16 * Runtime binding for the `UpdateImageSetMetadata` operation (IAM action
17 * `medical-imaging:UpdateImageSetMetadata`), scoped to one
18 * {@link Datastore}.
19 *
20 * Adds, updates, or removes DICOM attributes on an image set (each update
21 * produces a new version), or reverts the image set to a previous version
22 * via `revertToVersionId`. Provide the implementation with
23 * `Effect.provide(AWS.MedicalImaging.UpdateImageSetMetadataHttp)`.
24 *
25 * ### Updating Image Sets
26 * **Example:** Revert an Image Set to a Previous Version
27 * ```typescript
28 * const updateMetadata = yield* MedicalImaging.UpdateImageSetMetadata(datastore);
29 *
30 * const updated = yield* updateMetadata({
31 * imageSetId,
32 * latestVersionId,
33 * updateImageSetMetadataUpdates: { revertToVersionId: "1" },
34 * });
35 * // updated.latestVersionId
36 * ```
37 *
38 * @binding
39 */
40export interface UpdateImageSetMetadata extends Binding.Service<
41 UpdateImageSetMetadata,
42 "AWS.MedicalImaging.UpdateImageSetMetadata",
43 (
44 datastore: Datastore,
45 ) => Effect.Effect<
46 (
47 request: UpdateImageSetMetadataRequest,
48 ) => Effect.Effect<
49 medicalimaging.UpdateImageSetMetadataResponse,
50 medicalimaging.UpdateImageSetMetadataError
51 >
52 >
53> {}
54export const UpdateImageSetMetadata = Binding.Service<UpdateImageSetMetadata>(
55 "AWS.MedicalImaging.UpdateImageSetMetadata",
56);