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 * `CopyImageSet` request with `datastoreId` injected from the bound data
8 * store.
9 */
10export interface CopyImageSetRequest extends Omit<
11 medicalimaging.CopyImageSetRequest,
12 "datastoreId"
13> {}
14
15/**
16 * Runtime binding for the `CopyImageSet` operation (IAM action
17 * `medical-imaging:CopyImageSet`), scoped to one {@link Datastore}.
18 *
19 * Copies an image set into a new one (omit `destinationImageSet`) or merges
20 * it into an existing destination image set within the same data store.
21 * Provide the implementation with
22 * `Effect.provide(AWS.MedicalImaging.CopyImageSetHttp)`.
23 *
24 * ### Updating Image Sets
25 * **Example:** Copy an Image Set
26 * ```typescript
27 * const copyImageSet = yield* MedicalImaging.CopyImageSet(datastore);
28 *
29 * const copy = yield* copyImageSet({
30 * sourceImageSetId,
31 * copyImageSetInformation: {
32 * sourceImageSet: { latestVersionId: "1" },
33 * },
34 * });
35 * // copy.destinationImageSetProperties.imageSetId
36 * ```
37 *
38 * @binding
39 */
40export interface CopyImageSet extends Binding.Service<
41 CopyImageSet,
42 "AWS.MedicalImaging.CopyImageSet",
43 (
44 datastore: Datastore,
45 ) => Effect.Effect<
46 (
47 request: CopyImageSetRequest,
48 ) => Effect.Effect<
49 medicalimaging.CopyImageSetResponse,
50 medicalimaging.CopyImageSetError
51 >
52 >
53> {}
54export const CopyImageSet = Binding.Service<CopyImageSet>(
55 "AWS.MedicalImaging.CopyImageSet",
56);