code: func NewDefinitionNamer(schemes ...*runtime.Scheme) *DefinitionNamer {
  	ret := &DefinitionNamer{
  		typeGroupVersionKinds: map[string]groupVersionKinds{},
  	}
  	for _, s := range schemes {
  		for gvk, rtype := range s.AllKnownTypes() {
  			newGVK := gvkConvert(gvk)
  			exists := false
  			for _, existingGVK := range ret.typeGroupVersionKinds[typeName(rtype)] {
  				if newGVK == existingGVK {
  					exists = true
  					break
  				}
  			}
  			if !exists {
  				ret.typeGroupVersionKinds[typeName(rtype)] = append(ret.typeGroupVersionKinds[typeName(rtype)], newGVK)
  			}
  		}
  	}
  	for _, gvk := range ret.typeGroupVersionKinds {
  		sort.Sort(gvk)
  	}
  	return ret
  }
docs: // NewDefinitionNamer constructs a new DefinitionNamer to be used to customize OpenAPI spec.