// NewScheme creates a new Scheme. This scheme is pluggable by default. func NewScheme(internalGroupVersions ...unversioned.GroupVersion) *Scheme { s := &Scheme{conversion.NewScheme(), map[string]map[string]FieldLabelConversionFunc{}} for _, internalGV := range internalGroupVersions { s.raw.InternalVersions[internalGV.Group] = internalGV } s.raw.MetaFactory = conversion.SimpleMetaFactory{BaseFields: []string{"TypeMeta"}, VersionField: "APIVersion", KindField: "Kind"} if err := s.raw.AddConversionFuncs( s.embeddedObjectToRawExtension, s.rawExtensionToEmbeddedObject, s.runtimeObjectToRawExtensionArray, s.rawExtensionToRuntimeObjectArray, ); err != nil { panic(err) } // Enable map[string][]string conversions by default if err := s.raw.AddConversionFuncs(DefaultStringConversions...); err != nil { panic(err) } if err := s.raw.RegisterInputDefaults(&map[string][]string{}, JSONKeyMapper, conversion.AllowDifferentFieldTypeNames|conversion.IgnoreMissingFields); err != nil { panic(err) } if err := s.raw.RegisterInputDefaults(&url.Values{}, JSONKeyMapper, conversion.AllowDifferentFieldTypeNames|conversion.IgnoreMissingFields); err != nil { panic(err) } return s }
// NewScheme creates a new Scheme. This scheme is pluggable by default. func NewScheme() *Scheme { s := &Scheme{conversion.NewScheme(), map[string]map[string]FieldLabelConversionFunc{}} s.AddConversionFuncs(DefaultEmbeddedConversions()...) // Enable map[string][]string conversions by default if err := s.raw.AddConversionFuncs(DefaultStringConversions...); err != nil { panic(err) } if err := s.raw.RegisterInputDefaults(&map[string][]string{}, JSONKeyMapper, conversion.AllowDifferentFieldTypeNames|conversion.IgnoreMissingFields); err != nil { panic(err) } if err := s.raw.RegisterInputDefaults(&url.Values{}, JSONKeyMapper, conversion.AllowDifferentFieldTypeNames|conversion.IgnoreMissingFields); err != nil { panic(err) } return s }