code: func (is *ResourceInstance) DeepCopy() *ResourceInstance {
  	if is == nil {
  		return nil
  	}
  
  	deposed := make(map[DeposedKey]*ResourceInstanceObjectSrc, len(is.Deposed))
  	for k, obj := range is.Deposed {
  		deposed[k] = obj.DeepCopy()
  	}
  
  	return &ResourceInstance{
  		Current: is.Current.DeepCopy(),
  		Deposed: deposed,
  	}
  }
docs: // DeepCopy returns a new resource instance state that contains equivalent data
  // to the receiver but shares no backing memory in common.
  //
  // As with all methods on ResourceInstance, 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.