Intrinsic Functions
The AWS CloudFormation lexicon provides 13 intrinsic functions.
Tag? shows how an intrinsic is authored: a genuine tagged template (Sub\…`) or a plain function call (Ref(…)). **Folds?** shows whether [folding](/chant/concepts/typescript-as-data/#folded-vs-run) — the default chant build path — can reduce a use of this intrinsic today, without running the file — generated directly from this lexicon's registration, not restated by hand. A tagged template folds once it is registered. A plain call folds only where this lexicon has opted that intrinsic in one at a time (foldsAsCall), so a No` in this column means this intrinsic has not been opted in, not that calls in general cannot fold.
| Function | Description | Output Key | Tag? | Folds? |
|---|---|---|---|---|
Sub | Fn::Sub template string interpolation | Fn::Sub | Yes | Yes |
Ref | Reference a parameter or resource | Ref | No | Yes |
GetAtt | Fn::GetAtt — get resource attribute | Fn::GetAtt | No | Yes |
If | Fn::If — conditional value | Fn::If | No | Yes |
Join | Fn::Join — join values with delimiter | Fn::Join | No | Yes |
Select | Fn::Select — select value by index | Fn::Select | No | Yes |
Split | Fn::Split — split string by delimiter | Fn::Split | No | Yes |
Base64 | Fn::Base64 — encode to Base64 | Fn::Base64 | No | Yes |
GetAZs | Fn::GetAZs — list Availability Zones | Fn::GetAZs | No | Yes |
Equals | Fn::Equals — condition comparing two values | Fn::Equals | No | Yes |
And | Fn::And — condition conjunction | Fn::And | No | Yes |
Or | Fn::Or — condition disjunction | Fn::Or | No | Yes |
Not | Fn::Not — condition negation | Fn::Not | No | Yes |