1import type * as cloudformation from "@distilled.cloud/aws/cloudformation";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `ValidateTemplate` operation (IAM action
7 * `cloudformation:ValidateTemplate` on `*` — validation is not
8 * resource-scoped).
9 *
10 * Validates a template body or URL and reports its parameters, capabilities,
11 * and declaration errors — e.g. a platform service that lints user-submitted
12 * templates before deploying them. Provide the implementation with
13 * `Effect.provide(AWS.CloudFormation.ValidateTemplateHttp)`.
14 * ### Validating Templates
15 * **Example:** Validate a Template Body
16 * ```typescript
17 * const validateTemplate = yield* AWS.CloudFormation.ValidateTemplate();
18 *
19 * const { Parameters, Capabilities } = yield* validateTemplate({
20 * TemplateBody: templateJson,
21 * });
22 * ```
23 *
24 * @binding
25 */
26export interface ValidateTemplate extends Binding.Service<
27 ValidateTemplate,
28 "AWS.CloudFormation.ValidateTemplate",
29 () => Effect.Effect<
30 (
31 request: cloudformation.ValidateTemplateInput,
32 ) => Effect.Effect<
33 cloudformation.ValidateTemplateOutput,
34 cloudformation.ValidateTemplateError
35 >
36 >
37> {}
38export const ValidateTemplate = Binding.Service<ValidateTemplate>(
39 "AWS.CloudFormation.ValidateTemplate",
40);