code: func (obj *ResourceInstanceObject) DeepCopy() *ResourceInstanceObject {
  	if obj == nil {
  		return nil
  	}
  
  	var private []byte
  	if obj.Private != nil {
  		private := make([]byte, len(obj.Private))
  		copy(private, obj.Private)
  	}
  
  	// Some addrs.Referencable implementations are technically mutable, but
  	// we treat them as immutable by convention and so we don't deep-copy here.
  	dependencies := make([]addrs.Referenceable, len(obj.Dependencies))
  	copy(dependencies, obj.Dependencies)
  
  	return &ResourceInstanceObject{
  		Value:        obj.Value,
  		Status:       obj.Status,
  		Private:      private,
  		Dependencies: dependencies,
  	}
  }
docs: // DeepCopy returns a new resource instance object that contains equivalent data
  // to the receiver but shares no backing memory in common.
  //
  // As with all methods on ResourceInstanceObject, this method is not safe to use
  // concurrently with writing to any portion of the recieving data structure. It
  // is the caller's responsibility to ensure mutual exclusion for the duration
  // of the operation, but may then freely modify the receiver and the returned
  // copy independently once this method returns.