diff --git a/internal/builtin/providers/terraform/resource_data.go b/internal/builtin/providers/terraform/resource_data.go index 6fdba7ea5c..a17c60fc0b 100644 --- a/internal/builtin/providers/terraform/resource_data.go +++ b/internal/builtin/providers/terraform/resource_data.go @@ -75,7 +75,7 @@ func planDataStoreResourceChange(req providers.PlanResourceChangeRequest) (resp case req.PriorState.IsNull(): // Create // Set the id value to unknown. - planned["id"] = cty.UnknownVal(cty.String) + planned["id"] = cty.UnknownVal(cty.String).RefineNotNull() // Output type must always match the input, even when it's null. if input.IsNull() { @@ -90,7 +90,7 @@ func planDataStoreResourceChange(req providers.PlanResourceChangeRequest) (resp case !req.PriorState.GetAttr("triggers_replace").RawEquals(trigger): // trigger changed, so we need to replace the entire instance resp.RequiresReplace = append(resp.RequiresReplace, cty.GetAttrPath("triggers_replace")) - planned["id"] = cty.UnknownVal(cty.String) + planned["id"] = cty.UnknownVal(cty.String).RefineNotNull() // We need to check the input for the replacement instance to compute a // new output. diff --git a/internal/builtin/providers/terraform/resource_data_test.go b/internal/builtin/providers/terraform/resource_data_test.go index 28a038333f..3adb4484d1 100644 --- a/internal/builtin/providers/terraform/resource_data_test.go +++ b/internal/builtin/providers/terraform/resource_data_test.go @@ -124,7 +124,7 @@ func TestManagedDataPlan(t *testing.T) { "input": cty.NullVal(cty.DynamicPseudoType), "output": cty.NullVal(cty.DynamicPseudoType), "triggers_replace": cty.NullVal(cty.DynamicPseudoType), - "id": cty.UnknownVal(cty.String), + "id": cty.UnknownVal(cty.String).RefineNotNull(), }), }, @@ -140,7 +140,7 @@ func TestManagedDataPlan(t *testing.T) { "input": cty.NullVal(cty.String), "output": cty.NullVal(cty.String), "triggers_replace": cty.NullVal(cty.DynamicPseudoType), - "id": cty.UnknownVal(cty.String), + "id": cty.UnknownVal(cty.String).RefineNotNull(), }), }, @@ -156,7 +156,7 @@ func TestManagedDataPlan(t *testing.T) { "input": cty.StringVal("input"), "output": cty.UnknownVal(cty.String), "triggers_replace": cty.NullVal(cty.DynamicPseudoType), - "id": cty.UnknownVal(cty.String), + "id": cty.UnknownVal(cty.String).RefineNotNull(), }), }, @@ -198,7 +198,7 @@ func TestManagedDataPlan(t *testing.T) { "input": cty.StringVal("input"), "output": cty.UnknownVal(cty.String), "triggers_replace": cty.StringVal("new-value"), - "id": cty.UnknownVal(cty.String), + "id": cty.UnknownVal(cty.String).RefineNotNull(), }), }, @@ -225,7 +225,7 @@ func TestManagedDataPlan(t *testing.T) { "triggers_replace": cty.MapVal(map[string]cty.Value{ "key": cty.StringVal("new value"), }), - "id": cty.UnknownVal(cty.String), + "id": cty.UnknownVal(cty.String).RefineNotNull(), }), }, } {