1import type * as parametermanager from "@distilled.cloud/gcp/parametermanager_v1";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { RuntimeContext } from "../../RuntimeContext.ts";
5import type { ParametersVersion } from "./ParametersVersion.ts";
6
7export interface GetParameterVersionRequest {
8 /**
9 * View of the ParameterVersion. `FULL` (the default) includes payload.
10 * `BASIC` returns metadata only.
11 * @default "FULL"
12 */
13 view?:
14 | parametermanager.GetProjectsLocationsParametersVersionsViewEnum
15 | (string & {});
16}
17
18/**
19 * Runtime binding for Parameter Manager `parameters.versions.get`.
20 *
21 * Bind this operation to a {@link ParametersVersion} in a Function/Action
22 * init phase. Provide {@link GetParameterVersionHttp}.
23 *
24 * Grants `roles/parametermanager.parameterViewer` on the project under an
25 * IAM Condition matching only this version: Parameter Manager has no
26 * resource-level IAM.
27 *
28 * ### Reading a Parameter Version
29 * **Example:** Get payload
30 * ```typescript
31 * const getVersion = yield* GCP.ParameterManager.GetParameterVersion(version);
32 * const live = yield* getVersion();
33 * ```
34 *
35 * **Example:** Metadata only
36 * ```typescript
37 * const getVersion = yield* GCP.ParameterManager.GetParameterVersion(version);
38 * const live = yield* getVersion({ view: "BASIC" });
39 * ```
40 *
41 * @binding
42 * @category ParameterManager
43 */
44export interface GetParameterVersion extends Binding.Service<
45 GetParameterVersion,
46 "GCP.ParameterManager.GetParameterVersion",
47 (
48 version: ParametersVersion,
49 ) => Effect.Effect<
50 (
51 request?: GetParameterVersionRequest,
52 ) => Effect.Effect<
53 parametermanager.ParameterVersion,
54 parametermanager.GetProjectsLocationsParametersVersionsError,
55 RuntimeContext
56 >
57 >
58> {}
59
60export const GetParameterVersion = Binding.Service<GetParameterVersion>(
61 "GCP.ParameterManager.GetParameterVersion",
62);