functions Flowpipe supports the following Terraform-compatible HCL functions:
Numeric Functions Function Description abs Returns the absolute value of a number. ceil Returns the smallest integer value greater than or equal to a given number. floor Returns the largest integer value less than or equal to a given number. log Returns the natural logarithm of a number. max Returns the maximum value from a list of numbers. min Returns the minimum value from a list of numbers. parseint Parses a string as an integer. pow Returns the result of raising a number to the power of another. signum Returns -1, 0, or 1 depending on the sign of a number. sum Returns the sum of a list of numbers.
String Functions Function Description chomp Removes trailing newline characters from a string. endswith Checks if a string ends with a specified suffix. format Formats a string using printf-style formatting. formatlist Formats a list of values into a string using printf-style formatting. indent Indents a string by a specified number of spaces. join Joins elements of a list into a string with a delimiter. lower Converts a string to lowercase. regex Searches a string using a regular expression. regexall Searches a string using a regular expression and returns all matches. replace Replaces occurrences of a substring with another string. split Splits a string into a list of substrings. startswith Checks if a string starts with a specified prefix. strcontains Checks if a string contains another substring. strrev Reverses a string. substr Returns a substring from a string. title Converts the first character of each word in a string to uppercase. trim Trim whitespace from a string trimprefix Trim a prefix from a string trimspace Trim leading and trailing whitespace trimsuffix Trim a suffix from a string upper Converts a string to uppercase.
Collection Functions Function Description alltrue Returns true if all elements in a list are true. anytrue Returns true if any element in a list is true. chunklist Splits a list into chunks of a specified size. coalesce Returns the first non-null value in a list. coalescelist Returns the first non-empty list in a list of lists. compact Removes null and empty string elements from a list. concat Concatenates multiple lists into one list. contains Checks if a value is in a list, set, or map. distinct Returns a new list with duplicate elements removed. element Returns the element at a specified index in a list. flatten Flattens a list of lists into a single list. index Returns the index of a value in a list. keys Returns the keys of a map as a list. length Returns the length of a string, list, or map. list Creates a list from the arguments. lookup Looks up a value in a map using a key. map Creates a map from a list of key-value pairs. matchkeys Returns a map with only the specified keys. merge Merges maps together. one Returns true if only one element in a list is true. range Generates a sequence of numbers. reverse Reverses the order of elements in a list. setintersection Returns the intersection of two sets. setproduct Returns the Cartesian product of two or more sets. setsubtract Returns the difference of two sets. setunion Returns the union of two or more sets. slice Extracts a subsequence from a list. sort Sorts a list of strings or numbers. sum Returns the sum of a list of numbers. transpose Transpose a list of lists values Returns the values of a map as a list. zipmap Creates a map from two lists.
Encoding Functions Filesystem Functions Function Description abspath Returns the absolute path of a file or directory. basename Returns the last element of a path. dirname Returns the directory part of a path. pathexpand Expands the tilde (~) in a file path. file Reads the contents of a file. fileexists Returns true if a file exists. fileset Returns a set of files matching a glob pattern. filebase64 Reads the contents of a file and base64-encodes it.
Date and Time Functions Function Description formatdate Formats a timestamp into a string. timeadd Adds a duration to a timestamp. timecmp Compares two timestamps. timestamp Returns the current timestamp.
Hash and Crypto Functions Function Description base64sha256 Computes the SHA-256 hash of a string and base64-encodes the result. base64sha512 Computes the SHA-512 hash of a string and base64-encodes the result. bcrypt Hashes a string using the bcrypt algorithm. filebase64sha256 Reads the contents of a file, calculates the SHA256 hash, and base64-encodes it. filebase64sha512 Reads the contents of a file, calculates the SHA512 hash, and base64-encodes it. filemd5 Reads the contents of a file and calculates the MD5 hash. filesha1 Reads the contents of a file and calculates the SHA1 hash. filesha256 Reads the contents of a file and calculates the SHA256 hash. filesha512 Reads the contents of a file and calculates the SHA512 hash. md5 Computes the MD5 hash of a string. rsadecrypt Decrypts data using an RSA private key. sha1 Computes the SHA-1 hash of a string. sha256 Computes the SHA-256 hash of a string. sha512 Computes the SHA-512 hash of a string. uuid Generates a random UUID. uuidv5 Generates a UUID using a name and namespace.
IP Network Functions Function Description cidrhost Calculates the IP address of a host in a CIDR block. cidrnetmask Calculates the network mask of a CIDR block. cidrsubnet Calculates a subnet address within a CIDR block. cidrsubnets Splits a CIDR block into multiple subnets.
Type Conversion Functions Function Description can Checks if a value has a specific attribute or method. nonsensitive Marks a value as non-sensitive, allowing it to be displayed in logs. sensitive Marks a value as sensitive to avoid exposing sensitive information. tobool Converts a value to a boolean. tolist Converts a value to a list. tomap Converts a value to a map. tonumber Converts a string to a number. toset Converts a list to a set. tostring Converts a value to a string. try Attempts to evaluate an expression and returns a default value on failure.
Flowpipe Functions Function Description env Gets the value of an environment variable. error_message Given a reference to a step, returns a string containing the first error message. is_error Given a reference to a step, returns `true`` if there are any errors.
env env
returns the value of an environment variable. Be careful when using environment variables, as they are global variables. When writing mod, you should generally use variables or pipeline parameters for passing data into the mod, though you may use env
to set a default value.
param "region" {
default = env("AWS_REGION")
}
error_message Given a reference to a step, error_message
will return a string containing the first error message, if any. If there are no errors, it will return an empty string.
step "http" "my_request" {
url = "https://myapi.local/subscribe"
method = "post"
body = jsonencode({
name = param.subscriber
})
error {
ignore = true
}
}
output "error_message" {
value = err_message(step.http.my_request)
}
is_error Given a reference to a step, is_error
returns a boolean true if there are 1 or more errors, or false if there are no errors.
step "http" "my_request" {
url = "https://myapi.local/subscribe"
method = "post"
body = jsonencode({
name = param.subscriber
})
error {
ignore = true
}
}
step "email" "send_it" {
to = param.subscriber
subject = "You have been subscribed"
body = step.http.my_request.response_body
if = !is_error(step.http.my_request)
}