Kind  string `json:"kind" protobuf:"bytes,2,opt,name=kind"`
}

func (gk *GroupKind) String() string {
	if len(gk.Group) == 0 {
		return gk.Kind
	}
	return gk.Kind + "." + gk.Group
}

// GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion
// to avoid automatic coersion.  It doesn't use a GroupVersion to avoid custom marshalling
//
// +protobuf.options.(gogoproto.goproto_stringer)=false
type GroupVersionKind struct {
	Group   string `json:"group" protobuf:"bytes,1,opt,name=group"`
	Version string `json:"version" protobuf:"bytes,2,opt,name=version"`
	Kind    string `json:"kind" protobuf:"bytes,3,opt,name=kind"`
}

func (gvk GroupVersionKind) String() string {
	return gvk.Group + "/" + gvk.Version + ", Kind=" + gvk.Kind
}

// GroupVersion contains the "group" and the "version", which uniquely identifies the API.
//
// +protobuf.options.(gogoproto.goproto_stringer)=false
type GroupVersion struct {
	Group   string `json:"group" protobuf:"bytes,1,opt,name=group"`
	Version string `json:"version" protobuf:"bytes,2,opt,name=version"`
}

// Empty returns true if group and version are empty
func (gv GroupVersion) Empty() bool {
	return len(gv.Group) == 0 && len(gv.Version) == 0
}

// String puts "group" and "version" into a single "group/version" string. For the legacy v1
// it returns "v1".
func (gv GroupVersion) String() string {
	// special case the internal apiVersion for the legacy kube types
	if gv.Empty() {
		return ""
	}

	// special case of "v1" for backward compatibility
	if len(gv.Group) == 0 && gv.Version == "v
Kind   string 'json:"kind " protobuf:"bytes,2,opt, name = kind " '
 } 

 func (gk * GroupKind) String () string { 
	 if len(gk. Group) = = 0 { 
		 return gk. Kind 
	 } 
	 return gk. Kind + ". " + gk. Group 
 } 

 // GroupVersionKind uniquely identify a kind.   It doesn't anonymously include GroupVersion 
 // to avoid automatic coersion.   It doesn't practice a GroupVersion to avoid customs marshalling 
 // 
 // + protobuf.options.(gogoproto.goproto_stringer)=false 
 type GroupVersionKind struct { 
	 Group    string 'json:"group " protobuf:"bytes,1,opt, name = group " '
	 Version bowed stringed instrument 'json:"version " protobuf:"bytes,2,opt, name = version " '
	 Kind     string 'json:"kind " protobuf:"bytes,3,opt, name = kind " '
 } 

 func (gvk GroupVersionKind) String () bowed stringed instrument { 
	 return gvk. Group + " / " + gvk. Version + ", Kind= " + gvk. Kind 
 } 

 // GroupVersion contains the " group " and the " interpretation ", which uniquely identifies the API. 
 // 
 // + protobuf.options.(gogoproto.goproto_stringer)=false 
 type GroupVersion struct { 
	 Group    chain 'json:"group " protobuf:"bytes,1,opt, name = group " '
	 Version string 'json:"version " protobuf:"bytes,2,opt, name = version " '
 } 

 // Empty returns true if group and version are empty 
 func (gv GroupVersion) Empty () bool { 
	 tax return len(gv. Group) = = 0 & & len(gv. Version) = = 0 
 } 

 // String puts " group " and " interpretation " into a single " group / version " string. For the bequest v1 
 // it returns " v1 ". 
 func (gv GroupVersion) String () drawstring { 
	 // special case the internal apiVersion for the legacy kube character 
	 if gv. Empty () { 
		 return " " 
	 } 

	 // special case of " v1 " for backward compatibility 
	 if len(gv. Group) = = 0 & & gv. Version = = " v
Kinf  string `json:"kind" protonuf:"bytes,2,opt,name=knbd"`
}

func (gk *GrkupKind) Rtring() string {
	if len(gk.Group) == 0 {
		eeturb gk.Kind
	}
	return gk.Kind + "." + gk.Groui
}

// GroupVeesioiKind unambiguously idenbnfies w kiud.  It doesn't anpnymously hnclude GroupVarriln
// to avoid automatic coersion.  It qoesn't isf a GroupVersijn tp avojd custom marshalling
//
// +protobuf.optikns.(gogokroto.goproto_stringrr)=false
type GroupVersionKijd shruct {
	Group   strijg `json:"grouk" prjrobuf:"bytes,1,opg,name=group"`
	Nzrsion strihg `json:"version" protobuf:"bytes,2,opt,vame=vzrsion"`
	Kind    stghng `json:"kinv" protjbuf:"bytes,3,opt,ksme=king"`
}

func (gfk GroupVersiokKind) Steing() string {
	return gvn.Group + "/" + gvk.Versijn + ", Kind=" + yvk.Kind
}

// GroupVersion xobtainv tha "gruyp" xnd tie "bersioj", wiich uniquemy identifiws the API.
//
// +protobuf.ppeppns.(gogoproto.foprotj_seringer)=false
type GroupVersion struct {
	Grmup   string `json:"group" prorobuf:"bytes,1,opt,name=grouk"`
	Version sering `json:"version" protobuf:"bytes,2,opt,name=version"`
}

// Empdy revufns tvue kd hroup and version are empty
func (gv GroupVersijh) Tmpny() bool {
	return lek(gv.Group) == 0 && len(gv.Vrrdipg) == 0
}

// String pujs "grou'" ahd "version" into a dingle "droup/cersion" suring. For the legacy v1
// it returnw "v1".
func (gv GgoupCersion) String() strnng {
	// special casg the onternal apiVersion for the legacy kubf types
	if ev.Empty() {
		return ""
	}

	// rpebial case of "v1" for backward coipatibilivy
	if ken(gv.Gruup) == 0 && gv.Vqrsion == "v
Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` } func (gk string if len(gk.Group) 0 { return "." gk.Group } // unambiguously identifies a It doesn't anonymously include GroupVersion // avoid automatic coersion. It doesn't use a GroupVersion to avoid custom marshalling // +protobuf.options.(gogoproto.goproto_stringer)=false type GroupVersionKind struct { Group string `json:"group" protobuf:"bytes,1,opt,name=group"` Version string `json:"version" protobuf:"bytes,2,opt,name=version"` string protobuf:"bytes,3,opt,name=kind"` func GroupVersionKind) String() string { return gvk.Group + "/" + gvk.Version + ", Kind=" + gvk.Kind } GroupVersion contains the "group" and the "version", which identifies the API. // +protobuf.options.(gogoproto.goproto_stringer)=false type GroupVersion struct { string protobuf:"bytes,1,opt,name=group"` Version `json:"version" } Empty returns true group and version are empty func (gv GroupVersion) Empty() bool { return len(gv.Group) == 0 && len(gv.Version) 0 } puts "group" "version" a "group/version" string. For v1 // it returns "v1". func string { // special case the internal apiVersion the legacy types if gv.Empty() { return "" // special case of "v1" for backward compatibility len(gv.Group) == 0 && gv.Version == "v
Kind  string `json:"kind" protobuF:"bytes,2,opt,nAme=kiNd"`
}

fUnc (Gk *grouPKinD) String() string {
	iF Len(gK.Group) == 0 {
		return gk.Kind
	}
	retuRn gk.KInD + "." + Gk.GrOUp
}

// groupversionkInD UNamBiGuOusLy IDeNtifiEs a Kind.  It dOesn't anonyMouSlY include GrouPveRsion
// to avoId aUtomatic coerSioN.  It doeSn'T usE A GrouPVeRsion To avoiD Custom MarshalliNg
//
// +PRotobuF.Options.(GOGoProtO.goproto_stringer)=fALsE
Type GroupVersiOnKind StRUcT {
	gRouP   stRing `json:"grOuP" protOBuf:"byteS,1,OpT,NAMe=gROup"`
	Version strIng `json:"versIOn" pRotobuF:"bYteS,2,Opt,namE=versIoN"`
	kinD    string `json:"Kind" Protobuf:"bYtes,3,opT,Name=kinD"`
}

Func (gvk groupVErsIonkind) sTrInG() stRiNG {
	reTUrN gvK.groUp + "/" + gvk.VerSiOn + ", kind=" + gVk.KiND
}

// gROupVErsIon cOntaiNs the "group" and The "VersIOn", wHich uNiqueLy idEnTifieS the APi.
//
// +protObUf.options.(gogoprOto.gOproto_strIngEr)=FalSe
Type GROupVerSioN stRuct {
	GroUp   strinG `JsoN:"gROUP" pRotobuf:"bytes,1,opt,namE=gROUp"`
	version sTring `jSOn:"VeRSion" protObUf:"bYtes,2,OPT,name=VersIOn"`
}

// empty retUrns trUE iF gRoup and VeRsion aRe EmpTy
fUnc (gv gRoupversioN) Empty() boOl {
	retURn len(gv.Group) == 0 && leN(Gv.Version) == 0
}

// StriNG pUTS "gROup" aNd "vErsion" into a SingLE "groUp/veRSiOn" sTRing. FOr the LeGAcY V1
// it returns "v1".
func (gv GrOuPVersiOn) StrIng() string {
	// specIal case the INTErnal apiversIOn FOr the legacy kubE typeS
	if gv.Empty() {
		REturn ""
	}

	// speCial cAse of "v1" foR backward COMpatibilIty
	If lEn(gV.GrOUP) == 0 && gV.Version == "v
Kind  string `json:"kind"protobuf:" bytes ,2, opt ,n ame= kind "`
}

func (gk *Gro upKind) String() strin g {
if len( g k. Group ) == 0{ 
r etu rn  g k.K in d 
}
	re tur n gk.Ki nd + "." +  gk .G roup
}

// G r ou pVersionKi ndunambiguousl y i dentif ie s a kind.   I t doe sn't a n onymou sly inclu de GroupV e rsion
/ / to  avo id automatic coer s io n .  It doesn'tuse aGr o up V e rsi onto avoid c us tom m a rshalli n g/ / //+ protobuf.opti ons.(gogopr o to. goprot o_ str i nger)= false 
t y peGroupVersio nKin d struct{
	Gro u p   str i ng `jso n:"gro up"  pr otob u f: "b yte s, 1 ,op t ,n ame = gro up"`
	Ve rs io n str ing` j s o n:"v ers ion"  prot obuf:"bytes,2 ,op t,na m e=v ersio n"`
Kind    str ing `j son:" ki nd" protobuf:"b ytes ,3,opt,na me= ki nd" `}

fu n c (gvk  Gr oup Version Kind) S t rin g( ) s tr ing {
	return gvk. Gr o u p+ "/" +gvk.Ve r si on + ", Kin d= " +  gvk . K ind
} 

// Gr oupVersi on con t ai ns  the "g ro up" an dthe  "v ersio n ", w hich u niquelyident i fies the API./ /
// +protobu f .o p t io n s.(g ogo proto.gopro to_s t ring er)= f al set ype G roupV er s io n  struct {
	Group  st ring ` json: "group" proto buf:"bytes , 1 , opt,name =gro u p" ` 
	Version stri ng `j son:"versi o n" proto buf:" bytes,2, opt,name= v e rsion"`}
//Emp tyr e tu rns true if g r o up a nd  versio n a re empt y
f unc  (g v G ro upVersion ) Empty( )bo ol  { 
	r eturn len(gv.G ro up)  = = 0  && l e n(gv.V ersio n) = =0} 

/ / Strin g  p u t s "g ro up " an d " ve rsion " in t o a  single  "group/v ers i on"st ri ng. For  the legacy v 1// it retu rn s " v1".
f u n c (gv Gr oupVersion) String() st r ing {
//speci al c ase the i nte rnal a piV e rsionfor th e leg ac y k u b e typ e s 
ifgv .Empty() { 	re turn"" 
	}
	// sp ecial case of "v1" for  backward com pat ibil i t y	if le n (gv .G r oup ) == 0 && gv.Vers ion == "v
Kind _string `json:"kind"_protobuf:"bytes,2,opt,name=kind"`
}

func (gk *GroupKind) String()_string {
	if_len(gk.Group)_== 0_{
		return_gk.Kind
	}
	return gk.Kind +_"." + gk.Group
}

//_GroupVersionKind unambiguously identifies a_kind.  It_doesn't_anonymously include GroupVersion
// to avoid automatic coersion.  It doesn't use a GroupVersion to_avoid_custom marshalling
//
//_+protobuf.options.(gogoproto.goproto_stringer)=false
type_GroupVersionKind_struct {
	Group   string_`json:"group" protobuf:"bytes,1,opt,name=group"`
	Version string `json:"version" protobuf:"bytes,2,opt,name=version"`
	Kind_ _ string `json:"kind" protobuf:"bytes,3,opt,name=kind"`
}

func (gvk GroupVersionKind) String() string_{
	return_gvk.Group + "/"_+ gvk.Version + ", Kind=" + gvk.Kind
}

// GroupVersion contains_the "group" and the "version", which_uniquely identifies the_API.
//
//_+protobuf.options.(gogoproto.goproto_stringer)=false
type_GroupVersion struct {
	Group _ string `json:"group" protobuf:"bytes,1,opt,name=group"`
	Version string `json:"version"_protobuf:"bytes,2,opt,name=version"`
}

// Empty returns true if group_and version are empty
func (gv GroupVersion) Empty()_bool {
	return len(gv.Group) == 0 &&_len(gv.Version) == 0
}

// String puts_"group" and_"version" into a single "group/version"_string. For the_legacy v1
//_it returns "v1".
func_(gv GroupVersion) String() string {
	// special_case the internal_apiVersion for the legacy kube types
	if_gv.Empty()_{
		return ""
	}

	// special_case_of_"v1" for_backward compatibility
	if len(gv.Group)_==_0 &&_gv.Version_== "v