github.com/opentofu/opentofu@v1.7.1/internal/command/jsonformat/computed/renderers/unknown.go (about) 1 // Copyright (c) The OpenTofu Authors 2 // SPDX-License-Identifier: MPL-2.0 3 // Copyright (c) 2023 HashiCorp, Inc. 4 // SPDX-License-Identifier: MPL-2.0 5 6 package renderers 7 8 import ( 9 "fmt" 10 11 "github.com/opentofu/opentofu/internal/command/jsonformat/computed" 12 13 "github.com/opentofu/opentofu/internal/plans" 14 ) 15 16 var _ computed.DiffRenderer = (*unknownRenderer)(nil) 17 18 func Unknown(before computed.Diff) computed.DiffRenderer { 19 return &unknownRenderer{ 20 before: before, 21 } 22 } 23 24 type unknownRenderer struct { 25 NoWarningsRenderer 26 27 before computed.Diff 28 } 29 30 func (renderer unknownRenderer) RenderHuman(diff computed.Diff, indent int, opts computed.RenderHumanOpts) string { 31 if diff.Action == plans.Create { 32 return fmt.Sprintf("(known after apply)%s", forcesReplacement(diff.Replace, opts)) 33 } 34 35 // Never render null suffix for children of unknown changes. 36 opts.OverrideNullSuffix = true 37 return fmt.Sprintf("%s -> (known after apply)%s", renderer.before.RenderHuman(indent, opts), forcesReplacement(diff.Replace, opts)) 38 }