typeSchemestruct {// versionMap allows one to figure out the go type of an object with// the given version and name. gvkToType map[schema.GroupVersionKind]reflect.Type// typeToGroupVersion allows one to find metadata for a given go object.// The reflect.Type we index by should *not* be a pointer. typeToGVK map[reflect.Type][]schema.GroupVersionKind// unversionedTypes are transformed without conversion in ConvertToVersion. unversionedTypes map[reflect.Type]schema.GroupVersionKind// unversionedKinds are the names of kinds that can be created in the context of any group// or version// TODO: resolve the status of unversioned types. unversionedKinds map[string]reflect.Type// Map from version and resource to the corresponding func to convert// resource field labels in that version to internal version. fieldLabelConversionFuncs map[schema.GroupVersionKind]FieldLabelConversionFunc// defaulterFuncs is an array of interfaces to be called with an object to provide defaulting// the provided object must be a pointer. defaulterFuncs map[reflect.Type]func(interface{})// converter stores all registered conversion functions. It also has// default converting behavior. converter *conversion.Converter// versionPriority is a map of groups to ordered lists of versions for those groups indicating the// default priorities of these versions as registered in the scheme versionPriority map[string][]string// observedVersions keeps track of the order we've seen versions during type registration observedVersions []schema.GroupVersion// schemeName is the name of this scheme. If you don't specify a name, the stack of the NewScheme caller will be used.// This is useful for error reporting to indicate the origin of the scheme. schemeName string}