From 03e7470ae6707f046cb518fc56fca06982729242 Mon Sep 17 00:00:00 2001 From: shakhovski Date: Mon, 17 Jan 2022 23:01:44 +0300 Subject: [PATCH] Remove all or none of object keys in set --- helper/schema/schema.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/helper/schema/schema.go b/helper/schema/schema.go index 8d5c22e04e3..9853fe019b4 100644 --- a/helper/schema/schema.go +++ b/helper/schema/schema.go @@ -1335,12 +1335,21 @@ func (m schemaMap) diffSet( switch t := schema.Elem.(type) { case *Resource: // This is a complex resource + var subKs []string + newRemoved := true for k2, schema := range t.Schema { subK := fmt.Sprintf("%s.%s.%s", k, code, k2) err := m.diff(subK, schema, diff, d, true) if err != nil { return err } + subKs = append(subKs, subK) + if !diff.Attributes[subK].NewRemoved { + newRemoved = false + } + } + for _, subK := range subKs { + diff.Attributes[subK].NewRemoved = newRemoved } case *Schema: // Copy the schema so that we can set Computed/ForceNew from