1import type * as dataexchange from "@distilled.cloud/aws/dataexchange";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Revision } from "./Revision.ts";
5
6/**
7 * Runtime binding for `dataexchange:UpdateAsset`.
8 *
9 * Renames an asset of the bound revision (the asset name is the S3 key
10 * used when subscribers export it). The data set and revision ids are
11 * injected from the binding.
12 * Provide the implementation with
13 * `Effect.provide(AWS.DataExchange.UpdateAssetHttp)`.
14 * ### Managing Assets
15 * **Example:** Rename An Imported Asset
16 * ```typescript
17 * const updateAsset = yield* AWS.DataExchange.UpdateAsset(revision);
18 *
19 * // runtime
20 * yield* updateAsset({ AssetId: assetId, Name: "prices/2026-07-14.csv" });
21 * ```
22 *
23 * @binding
24 */
25export interface UpdateAsset extends Binding.Service<
26 UpdateAsset,
27 "AWS.DataExchange.UpdateAsset",
28 (
29 revision: Revision,
30 ) => Effect.Effect<
31 (
32 request: Omit<
33 dataexchange.UpdateAssetRequest,
34 "DataSetId" | "RevisionId"
35 >,
36 ) => Effect.Effect<
37 dataexchange.UpdateAssetResponse,
38 dataexchange.UpdateAssetError
39 >
40 >
41> {}
42export const UpdateAsset = Binding.Service<UpdateAsset>(
43 "AWS.DataExchange.UpdateAsset",
44);