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:RevokeRevision`.
8 *
9 * Revokes the bound revision from subscribers with a required
10 * revocation comment — the remediation path when bad or sensitive data
11 * was published. The data set and revision ids are injected from the
12 * binding.
13 * Provide the implementation with
14 * `Effect.provide(AWS.DataExchange.RevokeRevisionHttp)`.
15 * ### Managing Assets
16 * **Example:** Revoke A Published Revision
17 * ```typescript
18 * const revokeRevision = yield* AWS.DataExchange.RevokeRevision(revision);
19 *
20 * // runtime
21 * yield* revokeRevision({
22 * RevocationComment: "Published with corrupted price data",
23 * });
24 * ```
25 *
26 * @binding
27 */
28export interface RevokeRevision extends Binding.Service<
29 RevokeRevision,
30 "AWS.DataExchange.RevokeRevision",
31 (
32 revision: Revision,
33 ) => Effect.Effect<
34 (
35 request: Omit<
36 dataexchange.RevokeRevisionRequest,
37 "DataSetId" | "RevisionId"
38 >,
39 ) => Effect.Effect<
40 dataexchange.RevokeRevisionResponse,
41 dataexchange.RevokeRevisionError
42 >
43 >
44> {}
45export const RevokeRevision = Binding.Service<RevokeRevision>(
46 "AWS.DataExchange.RevokeRevision",
47);