code: func (d *UnstructuredObjectTyper) ObjectKinds(obj runtime.Object) (gvks []schema.GroupVersionKind, unversionedType bool, err error) {
  	if _, ok := obj.(runtime.Unstructured); ok {
  		gvk := obj.GetObjectKind().GroupVersionKind()
  		if len(gvk.Kind) == 0 {
  			return nil, false, runtime.NewMissingKindErr("object has no kind field ")
  		}
  		if len(gvk.Version) == 0 {
  			return nil, false, runtime.NewMissingVersionErr("object has no apiVersion field")
  		}
  		return []schema.GroupVersionKind{gvk}, false, nil
  	}
  
  	return nil, false, runtime.NewNotRegisteredErrForType("crdserverscheme.UnstructuredObjectTyper", reflect.TypeOf(obj))
  }
docs: // ObjectKinds returns a slice of one element with the group,version,kind of the
  // provided object, or an error if the object is not runtime.Unstructured or
  // has no group,version,kind information. unversionedType will always be false
  // because runtime.Unstructured object should always have group,version,kind
  // information set.