1import type * as servicecatalog from "@distilled.cloud/aws/service-catalog";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `servicecatalog:DescribeProvisioningParameters`.
7 *
8 * Gets the template parameters, constraints, and usage instructions needed to provision a product — call it before `ProvisionProduct` to build the parameter form.
9 *
10 * Account-level operation — which products the caller can see and act on
11 * is governed by portfolio principal associations, so the binding takes no
12 * resource argument. Provide the implementation with
13 * `Effect.provide(AWS.ServiceCatalog.DescribeProvisioningParametersHttp)`.
14 * ### Browsing the Catalog
15 * **Example:** Read a Product's Template Parameters
16 * ```typescript
17 * // init — account-level binding, no resource argument
18 * const describeProvisioningParameters = yield* AWS.ServiceCatalog.DescribeProvisioningParameters();
19 *
20 * // runtime
21 * const { ProvisioningArtifactParameters } =
22 * yield* describeProvisioningParameters({
23 * ProductId: "prod-abc123",
24 * ProvisioningArtifactId: "pa-abc123",
25 * });
26 * ```
27 *
28 * @binding
29 */
30export interface DescribeProvisioningParameters extends Binding.Service<
31 DescribeProvisioningParameters,
32 "AWS.ServiceCatalog.DescribeProvisioningParameters",
33 () => Effect.Effect<
34 (
35 request?: servicecatalog.DescribeProvisioningParametersInput,
36 ) => Effect.Effect<
37 servicecatalog.DescribeProvisioningParametersOutput,
38 servicecatalog.DescribeProvisioningParametersError
39 >
40 >
41> {}
42export const DescribeProvisioningParameters =
43 Binding.Service<DescribeProvisioningParameters>(
44 "AWS.ServiceCatalog.DescribeProvisioningParameters",
45 );