input block declares typed fields that parameterize a stack. At deploy time, values are provided via Pulumi config (pulumi config set key value). In the generated Python program, inputs become pulumi.Config() calls.
Syntax
Example
Referencing inputs
Input fields are accessed via theinput.fieldName qualified form — bare field names are not in scope:
input.blockName.fieldName:
Optional fields (with default)
A field with a default value is optional at deploy time. The default is used when the config key is not set:Required fields (no default)
A field without a default must be provided viapulumi config set before deploying:
Supported types
All XCL types are valid for input fields. See Types for the full list. Primitive types map to typed Pulumi config accessors:string→config.get()/config.require()bool→config.get_bool()/config.require_bool()number→config.get_float()/config.require_float()int→config.get_int()/config.require_int()any,list(T),map(T),object(...),tuple(...)→config.require_object()
Default value type checking
The typechecker verifies that default values are compatible with the declared type:Reserved field names
The following names cannot be used as input field names (they are reserved reference namespaces):stack, input, output, locals, module, provider, import, space, root, for, when, match, default, count, each
Error: "count" is a reserved reference namespace - choose a different name
Multiple input blocks
A stack may have multipleinput blocks (typically one per .xcl file). All fields across all input blocks share a flat namespace — duplicate field names across blocks are an error:

