1import type * as SSM from "@distilled.cloud/aws/ssm";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Parameter } from "./Parameter.ts";
5
6export interface UnlabelParameterVersionRequest extends Omit<
7 SSM.UnlabelParameterVersionRequest,
8 "Name"
9> {}
10
11/**
12 * Runtime binding for `ssm:UnlabelParameterVersion`.
13 *
14 * Bind this operation to a `Parameter` inside a function runtime to get a
15 * callable that removes labels from a specific version of the bound
16 * parameter — the counterpart to `LabelParameterVersion` when moving a label
17 * during a rollout or rollback.
18 * ### Labeling Parameter Versions
19 * **Example:** Remove a Label From a Version
20 * ```typescript
21 * const unlabel = yield* SSM.UnlabelParameterVersion(config);
22 *
23 * const result = yield* unlabel({
24 * ParameterVersion: 3,
25 * Labels: ["current"],
26 * });
27 * yield* Effect.log(`removed: ${result.RemovedLabels?.join(", ")}`);
28 * ```
29 *
30 * @binding
31 */
32export interface UnlabelParameterVersion extends Binding.Service<
33 UnlabelParameterVersion,
34 "AWS.SSM.UnlabelParameterVersion",
35 <P extends Parameter>(
36 parameter: P,
37 ) => Effect.Effect<
38 (
39 request: UnlabelParameterVersionRequest,
40 ) => Effect.Effect<
41 SSM.UnlabelParameterVersionResult,
42 SSM.UnlabelParameterVersionError
43 >
44 >
45> {}
46export const UnlabelParameterVersion = Binding.Service<UnlabelParameterVersion>(
47 "AWS.SSM.UnlabelParameterVersion",
48);