code: func (vol *VolumeResource) UnmarshalJSON(b []byte) error {
  	temp := &volumeResourceJSON{}
  
  	if err := json.Unmarshal(b, &temp); err != nil {
  		return err
  	}
  
  	vol.Name = temp.Name
  	vol.VolumeConfig = temp.VolumeConfig
  	if temp.DesiredStatus != nil {
  		vol.SetDesiredStatus(resourcestatus.ResourceStatus(*temp.DesiredStatus))
  	}
  	if temp.KnownStatus != nil {
  		vol.SetKnownStatus(resourcestatus.ResourceStatus(*temp.KnownStatus))
  	}
  	return nil
  }
docs: // UnmarshalJSON unmarshals VolumeResource object using duplicate struct VolumeResourceJSON