code: func ParseKindArg(arg string) (*GroupVersionKind, GroupKind) {
  	var gvk *GroupVersionKind
  	if strings.Count(arg, ".") >= 2 {
  		s := strings.SplitN(arg, ".", 3)
  		gvk = &GroupVersionKind{Group: s[2], Version: s[1], Kind: s[0]}
  	}
  
  	return gvk, ParseGroupKind(arg)
  }
docs: // ParseKindArg takes the common style of string which may be either `Kind.group.com` or `Kind.version.group.com`
  // and parses it out into both possibilities. This code takes no responsibility for knowing which representation was intended
  // but with a knowledge of all GroupKinds, calling code can take a very good guess. If there are only two segments, then
  // `*GroupVersionResource` is nil.
  // `Kind.group.com` -> `group=com, version=group, kind=Kind` and `group=group.com, kind=Kind`