func (t *thirdPartyResourceDataCreator) New(groupVersion, kind string) (out runtime.Object, err error) { switch kind { case "ThirdPartyResourceData": if apiutil.GetGroupVersion(t.group, t.version) != groupVersion { return nil, fmt.Errorf("unknown version %s for kind %s", groupVersion, kind) } return &extensions.ThirdPartyResourceData{}, nil case "ThirdPartyResourceDataList": if apiutil.GetGroupVersion(t.group, t.version) != groupVersion { return nil, fmt.Errorf("unknown version %s for kind %s", groupVersion, kind) } return &extensions.ThirdPartyResourceDataList{}, nil default: return t.delegate.New(groupVersion, kind) } }
func (m *Master) thirdpartyapi(group, kind, version string) *apiserver.APIGroupVersion { resourceStorage := thirdpartyresourcedataetcd.NewREST(m.thirdPartyStorage, group, kind) apiRoot := makeThirdPartyPath("") storage := map[string]rest.Storage{ strings.ToLower(kind) + "s": resourceStorage, } return &apiserver.APIGroupVersion{ Root: apiRoot, Version: apiutil.GetGroupVersion(group, version), Creater: thirdpartyresourcedata.NewObjectCreator(group, version, api.Scheme), Convertor: api.Scheme, Typer: api.Scheme, Mapper: thirdpartyresourcedata.NewMapper(latest.GroupOrDie("extensions").RESTMapper, kind, version, group), Codec: thirdpartyresourcedata.NewCodec(latest.GroupOrDie("extensions").Codec, kind), Linker: latest.GroupOrDie("extensions").SelfLinker, Storage: storage, ServerVersion: latest.GroupOrDie("").GroupVersion, Context: m.requestContextMapper, MinRequestTimeout: m.minRequestTimeout, } }
func (t *thirdPartyResourceDataMapper) RESTMapping(kind string, groupVersions ...string) (*meta.RESTMapping, error) { if len(groupVersions) != 1 { return nil, fmt.Errorf("unexpected set of groupVersions: %v", groupVersions) } if groupVersions[0] != apiutil.GetGroupVersion(t.group, t.version) { return nil, fmt.Errorf("unknown version %s expected %s", groupVersions[0], apiutil.GetGroupVersion(t.group, t.version)) } if kind != "ThirdPartyResourceData" { return nil, fmt.Errorf("unknown kind %s expected %s", kind, t.kind) } mapping, err := t.mapper.RESTMapping("ThirdPartyResourceData", latest.GroupOrDie("extensions").GroupVersion) if err != nil { return nil, err } mapping.Codec = NewCodec(mapping.Codec, t.kind) return mapping, nil }