From ee9deb0a6ee1b13ea981a7931a973a27e5d3ad64 Mon Sep 17 00:00:00 2001 From: Ben Potter Date: Tue, 15 Aug 2023 13:24:05 -0500 Subject: [PATCH] docs: add conditional example to optional vs required parameters (#9115) --- docs/templates/parameters.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/templates/parameters.md b/docs/templates/parameters.md index c74413d48b..ba6b49b657 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.: