code: func (r *Resource) Copy() *Resource {
  	n := &Resource{
  		Mode:         r.Mode,
  		Name:         r.Name,
  		Type:         r.Type,
  		RawCount:     r.RawCount.Copy(),
  		RawConfig:    r.RawConfig.Copy(),
  		Provisioners: make([]*Provisioner, 0, len(r.Provisioners)),
  		Provider:     r.Provider,
  		DependsOn:    make([]string, len(r.DependsOn)),
  		Lifecycle:    *r.Lifecycle.Copy(),
  	}
  	for _, p := range r.Provisioners {
  		n.Provisioners = append(n.Provisioners, p.Copy())
  	}
  	copy(n.DependsOn, r.DependsOn)
  	return n
  }
docs: // Copy returns a copy of this Resource. Helpful for avoiding shared
  // config pointers across multiple pieces of the graph that need to do
  // interpolation.