From 863aaadcd5b6fb0aee573c68982726c8d9417f08 Mon Sep 17 00:00:00 2001 From: Ben Date: Tue, 15 Aug 2023 17:53:56 +0000 Subject: [PATCH] docs: add conditional example to optional vs required parameters --- docs/templates/parameters.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/templates/parameters.md b/docs/templates/parameters.md index c74413d48b392..ba6b49b6570f5 100644 --- a/docs/templates/parameters.md +++ b/docs/templates/parameters.md @@ -133,6 +133,21 @@ data "coder_parameter" "dotfiles_url" { } ``` +Terraform [conditional expressions](https://developer.hashicorp.com/terraform/language/expressions/conditionals) can be used to determine whether the user specified a value for an optional parameter: + +```hcl +resource "coder_agent" "main" { + # ... + startup_script_timeout = 180 + startup_script = <<-EOT + set -e + + echo "The optional parameter value is: ${data.coder_parameter.optional.value == "" ? "[empty]" : data.coder_parameter.optional.value}" + + EOT +} +``` + ## Mutability Immutable parameters can be only set before workspace creation, or during update on the first usage to set the initial value for required parameters. The idea is to prevent users from modifying fragile or persistent workspace resources like volumes, regions, etc.: