code: func (gat *GetAllTarget) UnmarshalJSON(d []byte) error {
  	switch {
  	case bytes.Equal(d, projectJSON):
  		*gat = GetAllProject
  	case bytes.Equal(d, refJSON):
  		*gat = GetAllRef
  	default:
  		return errors.Reason("unknown GetAllTarget: %q", d).Err()
  	}
  	return nil
  }
docs: // UnmarshalJSON implements json.Unmarshaler.