github.com/terramate-io/tf@v0.0.0-20230830114523-fce866b4dfcd/command/jsonformat/computed/renderers/unknown.go (about)

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