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  }