From 11fc61ae304a35ce94e9c130cf96ca68918562b2 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 18 Jul 2023 10:27:06 +0200 Subject: [PATCH] feat: ephemeral parameters must be optional --- examples/resources/coder_parameter/resource.tf | 1 + provider/parameter.go | 4 ++++ provider/parameter_test.go | 14 ++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/examples/resources/coder_parameter/resource.tf b/examples/resources/coder_parameter/resource.tf index bb986183..3c674f1c 100644 --- a/examples/resources/coder_parameter/resource.tf +++ b/examples/resources/coder_parameter/resource.tf @@ -75,6 +75,7 @@ data "coder_parameter" "fairy_tale" { name = "Fairy Tale" type = "string" mutable = true + default = "Hansel and Gretel" ephemeral = true } diff --git a/provider/parameter.go b/provider/parameter.go index 5791a323..339bb017 100644 --- a/provider/parameter.go +++ b/provider/parameter.go @@ -134,6 +134,10 @@ func parameterDataSource() *schema.Resource { return diag.Errorf("parameter can't be immutable and ephemeral") } + if !parameter.Optional && parameter.Ephemeral { + return diag.Errorf("ephemeral parameter requires the default property") + } + if len(parameter.Validation) == 1 { validation := ¶meter.Validation[0] err = validation.Valid(parameter.Type, value) diff --git a/provider/parameter_test.go b/provider/parameter_test.go index 4e21cea8..48cf4829 100644 --- a/provider/parameter_test.go +++ b/provider/parameter_test.go @@ -31,6 +31,7 @@ func TestParameter(t *testing.T) { EOT mutable = true icon = "/icon/region.svg" + default = "us-east1-a" option { name = "US Central" value = "us-central1-a" @@ -65,6 +66,7 @@ func TestParameter(t *testing.T) { "option.1.icon": "/icon/east.svg", "option.1.description": "Select for east!", "order": "5", + "default": "us-east1-a", "ephemeral": "true", } { require.Equal(t, value, attrs[key]) @@ -558,11 +560,23 @@ data "coder_parameter" "region" { data "coder_parameter" "region" { name = "Region" type = "string" + default = "abc" mutable = false ephemeral = true } `, ExpectError: regexp.MustCompile("parameter can't be immutable and ephemeral"), + }, { + Name: "RequiredEphemeralError", + Config: ` + data "coder_parameter" "region" { + name = "Region" + type = "string" + mutable = true + ephemeral = true + } + `, + ExpectError: regexp.MustCompile("ephemeral parameter requires the default property"), }} { tc := tc t.Run(tc.Name, func(t *testing.T) { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy