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  }