// Copyright (c) The OpenTofu Authors // SPDX-License-Identifier: MPL-2.0 // Copyright (c) 2023 HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0 package renderers import ( "fmt" "github.com/opentofu/opentofu/internal/command/jsonformat/computed" "github.com/opentofu/opentofu/internal/plans" ) var _ computed.DiffRenderer = (*unknownRenderer)(nil) func Unknown(before computed.Diff) computed.DiffRenderer { return &unknownRenderer{ before: before, } } type unknownRenderer struct { NoWarningsRenderer before computed.Diff } func (renderer unknownRenderer) RenderHuman(diff computed.Diff, indent int, opts computed.RenderHumanOpts) string { if diff.Action == plans.Create { return fmt.Sprintf("(known after apply)%s", forcesReplacement(diff.Replace, opts)) } // Never render null suffix for children of unknown changes. opts.OverrideNullSuffix = true return fmt.Sprintf("%s -> (known after apply)%s", renderer.before.RenderHuman(indent, opts), forcesReplacement(diff.Replace, opts)) }