Skip to main content
The Fn class provides access to all built-in Terraform functions.

Numeric Functions

MethodSignatureReturn Type
absFn.abs(num: number)number
ceilFn.ceil(num: number)number
floorFn.floor(num: number)number
logFn.log(num: number, base: number)number
maxFn.max(...nums: number[])number
minFn.min(...nums: number[])number
parseintFn.parseint(str: string, base: number)number
powFn.pow(num: number, power: number)number
signumFn.signum(num: number)number

String Functions

MethodSignatureReturn Type
chompFn.chomp(str: string)string
formatFn.format(format: string, ...args: any[])string
formatlistFn.formatlist(format: string, ...args: any[])string[]
indentFn.indent(num: number, str: string)string
joinFn.join(sep: string, list: string[])string
lowerFn.lower(str: string)string
replaceFn.replace(str: string, substr: string, replace: string)string
splitFn.split(sep: string, str: string)string[]
strrevFn.strrev(str: string)string
substrFn.substr(str: string, offset: number, length: number)string
trimFn.trim(str: string, cutset: string)string
trimprefixFn.trimprefix(str: string, prefix: string)string
trimsuffixFn.trimsuffix(str: string, suffix: string)string
trimspaceFn.trimspace(str: string)string
upperFn.upper(str: string)string

Collection Functions

MethodSignatureReturn Type
alltrueFn.alltrue(list: any[])boolean
anytrueFn.anytrue(list: any[])boolean
chunklistFn.chunklist(list: any[], size: number)any[][]
coalesceFn.coalesce(...args: any[])any
coalescelistFn.coalescelist(...args: any[][])any[]
compactFn.compact(list: string[])string[]
concatFn.concat(...lists: any[][])any[]
containsFn.contains(list: any[], value: any)boolean
distinctFn.distinct(list: any[])any[]
elementFn.element(list: any[], index: number)any
flattenFn.flatten(list: any[])any[]
indexFn.index(list: any[], value: any)number
keysFn.keys(map: Record<string, any>)string[]
lengthFn.length(list: any)number
lookupFn.lookup(map: Record<string, any>, key: string, default?: any)any
matchkeysFn.matchkeys(values: any[], keys: any[], search: any[])any[]
mergeFn.merge(...maps: Record<string, any>[])Record<string, any>
oneFn.one(list: any[])any
rangeFn.range(start: number, end?: number, step?: number)number[]
reverseFn.reverse(list: any[])any[]
setintersectionFn.setintersection(...sets: any[][])any[]
setproductFn.setproduct(...lists: any[][])any[]
setsubtractFn.setsubtract(a: any[], b: any[])any[]
setunionFn.setunion(...sets: any[][])any[]
sliceFn.slice(list: any[], start: number, end: number)any[]
sortFn.sort(list: string[])string[]
sumFn.sum(list: number[])number
transposeFn.transpose(map: Record<string, string[]>)Record<string, string[]>
valuesFn.values(map: Record<string, any>)any[]
zipmapFn.zipmap(keys: string[], values: any[])Record<string, any>

Encoding Functions

MethodSignatureReturn Type
base64decodeFn.base64decode(str: string)string
base64encodeFn.base64encode(str: string)string
base64gzipFn.base64gzip(str: string)string
csvdecodeFn.csvdecode(str: string)any[]
jsondecodeFn.jsondecode(str: string)any
jsonencodeFn.jsonencode(val: any)string
textdecodebase64Fn.textdecodebase64(str: string, encoding: string)string
textencodebase64Fn.textencodebase64(str: string, encoding: string)string
urlencodeFn.urlencode(str: string)string
yamldecodeFn.yamldecode(str: string)any
yamlencodeFn.yamlencode(val: any)string

Filesystem Functions

MethodSignatureReturn Type
abspathFn.abspath(path: string)string
dirnameFn.dirname(path: string)string
fileFn.file(path: string)string
filebase64Fn.filebase64(path: string)string
fileexistsFn.fileexists(path: string)boolean
filesetFn.fileset(path: string, pattern: string)string[]
filebase64sha256Fn.filebase64sha256(path: string)string
filebase64sha512Fn.filebase64sha512(path: string)string
filemd5Fn.filemd5(path: string)string
filesha1Fn.filesha1(path: string)string
filesha256Fn.filesha256(path: string)string
filesha512Fn.filesha512(path: string)string
basenameFn.basename(path: string)string
pathexpandFn.pathexpand(path: string)string

Date and Time Functions

MethodSignatureReturn Type
formatdateFn.formatdate(format: string, time: string)string
timeaddFn.timeadd(time: string, duration: string)string
timestampFn.timestamp()string

Hash and Crypto Functions

MethodSignatureReturn Type
base64sha256Fn.base64sha256(str: string)string
base64sha512Fn.base64sha512(str: string)string
bcryptFn.bcrypt(str: string, cost?: number)string
md5Fn.md5(str: string)string
rsadecryptFn.rsadecrypt(str: string, key: string)string
sha1Fn.sha1(str: string)string
sha256Fn.sha256(str: string)string
sha512Fn.sha512(str: string)string
uuidFn.uuid()string
uuidv5Fn.uuidv5(namespace: string, name: string)string

IP Network Functions

MethodSignatureReturn Type
cidrhostFn.cidrhost(prefix: string, hostnum: number)string
cidrnetmaskFn.cidrnetmask(prefix: string)string
cidrsubnetFn.cidrsubnet(prefix: string, newbits: number, netnum: number)string
cidrsubnetsFn.cidrsubnets(prefix: string, ...newbits: number[])string[]

Type Conversion Functions

MethodSignatureReturn Type
canFn.can(exp: any)boolean
nonsensitiveFn.nonsensitive(val: any)any
sensitiveFn.sensitive(val: any)any
toboolFn.tobool(val: any)boolean
tolistFn.tolist(val: any)any[]
tomapFn.tomap(val: any)Record<string, any>
tonumberFn.tonumber(val: any)number
tosetFn.toset(val: any)any[]
tostringFn.tostring(val: any)string
tryFn.try(...exps: any[])any
typeFn.type(val: any)string