b859796754
PCL, or Pulumi Configuration Language, is the core intermediate language that allows several parts of Pulumi to work in a language-agnostic manner. This change documents some of the processes and functionality that we expose for working with PCL programs, incorporating some existing documentation on extensions we make to e.g. HCL's type system. |
||
---|---|---|
.. | ||
README.md | ||
binder.go | ||
binder_component.go | ||
binder_nodes.go | ||
binder_resource.go | ||
binder_resource_test.go | ||
binder_schema.go | ||
binder_schema_test.go | ||
binder_test.go | ||
binding.md | ||
component.go | ||
config.go | ||
diagnostics.go | ||
functions.go | ||
functions_test.go | ||
intrinsics.go | ||
invoke.go | ||
local.go | ||
output.go | ||
program.go | ||
resource.go | ||
rewrite_apply.go | ||
rewrite_apply_test.go | ||
rewrite_convert.go | ||
rewrite_convert_test.go | ||
rewrite_properties.go | ||
type.go | ||
utilities.go | ||
utilities_test.go |
README.md
(pcl)=
Pulumi Configuration Language (PCL)
Pulumi Configuration Language (PCL) is an internal representation of Pulumi programs which supports all core concepts of the Pulumi programming model in a minimal form. Although not exposed directly to users today, this intermediate representation is used to support a variety of program conversion tasks, from and to various supported Pulumi languages.
Pulumi supports a number of operations pertaining to PCL programs:
-
Lexing and parsing, in which PCL source is parsed into an abstract syntax tree (AST).
-
Type checking and binding, in which a PCL AST is verified to be well-formed (describing resources, outputs, and so on), associated with ("bound to") a set of Pulumi schema, and type checked and resolved.
-
Code generation ("programgen"), in which a PCL program is converted into a program written in a supported target language. Much of this underpins the core of tools such as
pulumi convert
.
:::{toctree} :maxdepth: 1 :titlesonly:
Syntax and type checking </pkg/codegen/hcl2/README> Binding </pkg/codegen/pcl/binding> :::