github.com/jenkins-x/jx-api@v0.0.24/pkg/apis/jenkins.io/v1/register.go (about) 1 package v1 2 3 import ( 4 jenkinsio "github.com/jenkins-x/jx-api/pkg/apis/jenkins.io" 5 "k8s.io/apimachinery/pkg/runtime" 6 "k8s.io/apimachinery/pkg/runtime/schema" 7 "k8s.io/apimachinery/pkg/types" 8 9 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 ) 11 12 // SchemeGroupVersion is group version used to register these objects 13 var SchemeGroupVersion = schema.GroupVersion{Group: jenkinsio.GroupName, Version: jenkinsio.Version} 14 15 // Kind takes an unqualified kind and returns back a Group qualified GroupKind 16 func Kind(kind string) schema.GroupKind { 17 return SchemeGroupVersion.WithKind(kind).GroupKind() 18 } 19 20 // Resource takes an unqualified resource and returns a Group qualified GroupResource 21 func Resource(resource string) schema.GroupResource { 22 return SchemeGroupVersion.WithResource(resource).GroupResource() 23 } 24 25 var ( 26 // SchemeBuilder for building the schema :) 27 SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) 28 // AddToScheme helper 29 AddToScheme = SchemeBuilder.AddToScheme 30 ) 31 32 func init() { 33 // We only register manually written functions here. The registration of the 34 // generated functions takes place in the generated files. The separation 35 // makes the code compile even when the generated files are missing. 36 SchemeBuilder.Register(addKnownTypes) 37 } 38 39 // Adds the list of known types to Scheme. 40 func addKnownTypes(scheme *runtime.Scheme) error { 41 scheme.AddKnownTypes(SchemeGroupVersion, 42 &BuildPack{}, 43 &BuildPackList{}, 44 &App{}, 45 &AppList{}, 46 &CommitStatus{}, 47 &CommitStatusList{}, 48 &Environment{}, 49 &EnvironmentList{}, 50 &EnvironmentRoleBinding{}, 51 &EnvironmentRoleBindingList{}, 52 &Extension{}, 53 &ExtensionList{}, 54 &Fact{}, 55 &FactList{}, 56 &GitService{}, 57 &GitServiceList{}, 58 &PluginList{}, 59 &Plugin{}, 60 &PipelineActivity{}, 61 &PipelineActivityList{}, 62 &Scheduler{}, 63 &SchedulerList{}, 64 &PipelineStructure{}, 65 &PipelineStructureList{}, 66 &Release{}, 67 &ReleaseList{}, 68 &SourceRepository{}, 69 &SourceRepositoryList{}, 70 &SourceRepositoryGroup{}, 71 &SourceRepositoryGroupList{}, 72 &Team{}, 73 &TeamList{}, 74 &User{}, 75 &UserList{}, 76 &Workflow{}, 77 &WorkflowList{}, 78 ) 79 metav1.AddToGroupVersion(scheme, SchemeGroupVersion) 80 return nil 81 } 82 83 type ResourceReference struct { 84 // API version of the referent. 85 APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,5,opt,name=apiVersion"` 86 // Kind of the referent. 87 // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds 88 Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` 89 // Name of the referent. 90 // More info: http://kubernetes.io/docs/user-guide/identifiers#names 91 Name string `json:"name" protobuf:"bytes,3,opt,name=name"` 92 // UID of the referent. 93 // More info: http://kubernetes.io/docs/user-guide/identifiers#uids 94 UID types.UID `json:"uid,omitempty" protobuf:"bytes,4,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID"` 95 }