code: func (u *UnknownResource) UnmarshalJSON(raw []byte) error {
  	var h ResourceHeader
  	if err := json.Unmarshal(raw, &h); err != nil {
  		return trace.Wrap(err)
  	}
  	u.Raw = make([]byte, len(raw))
  	u.ResourceHeader = h
  	copy(u.Raw, raw)
  	return nil
  }
docs: // UnmarshalJSON unmarshals header and captures raw state