| 
						
					 | 
					 | 
					@@ -65,9 +65,10 @@ var (
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					)
 | 
					 | 
					 | 
					 | 
					)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					type TestGroup struct {
 | 
					 | 
					 | 
					 | 
					type TestGroup struct {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						externalGroupVersion unversioned.GroupVersion
 | 
					 | 
					 | 
					 | 
						// the first element in the group is meant to be the preferred version
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						internalGroupVersion unversioned.GroupVersion
 | 
					 | 
					 | 
					 | 
						externalGroupVersions []unversioned.GroupVersion
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						internalTypes        map[string]reflect.Type
 | 
					 | 
					 | 
					 | 
						internalGroupVersion  unversioned.GroupVersion
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						internalTypes         map[string]reflect.Type
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func init() {
 | 
					 | 
					 | 
					 | 
					func init() {
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -105,26 +106,31 @@ func init() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								}
 | 
					 | 
					 | 
					 | 
								}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion := unversioned.GroupVersion{Group: groupVersion.Group, Version: runtime.APIVersionInternal}
 | 
					 | 
					 | 
					 | 
								internalGroupVersion := unversioned.GroupVersion{Group: groupVersion.Group, Version: runtime.APIVersionInternal}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								Groups[groupVersion.Group] = TestGroup{
 | 
					 | 
					 | 
					 | 
								if group, ok := Groups[groupVersion.Group]; !ok {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									externalGroupVersion: groupVersion,
 | 
					 | 
					 | 
					 | 
									Groups[groupVersion.Group] = TestGroup{
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									internalGroupVersion: internalGroupVersion,
 | 
					 | 
					 | 
					 | 
										externalGroupVersions: []unversioned.GroupVersion{groupVersion},
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									internalTypes:        api.Scheme.KnownTypes(internalGroupVersion),
 | 
					 | 
					 | 
					 | 
										internalGroupVersion:  internalGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
										internalTypes:         api.Scheme.KnownTypes(internalGroupVersion),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								} else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									group.externalGroupVersions = append(group.externalGroupVersions, groupVersion)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									Groups[groupVersion.Group] = group
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								}
 | 
					 | 
					 | 
					 | 
								}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if _, ok := Groups[api.GroupName]; !ok {
 | 
					 | 
					 | 
					 | 
						if _, ok := Groups[api.GroupName]; !ok {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Groups[api.GroupName] = TestGroup{
 | 
					 | 
					 | 
					 | 
							Groups[api.GroupName] = TestGroup{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								externalGroupVersion: unversioned.GroupVersion{Group: api.GroupName, Version: registered.GroupOrDie(api.GroupName).GroupVersion.Version},
 | 
					 | 
					 | 
					 | 
								externalGroupVersions: []unversioned.GroupVersion{{Group: api.GroupName, Version: registered.GroupOrDie(api.GroupName).GroupVersion.Version}},
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion: api.SchemeGroupVersion,
 | 
					 | 
					 | 
					 | 
								internalGroupVersion:  api.SchemeGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes:        api.Scheme.KnownTypes(api.SchemeGroupVersion),
 | 
					 | 
					 | 
					 | 
								internalTypes:         api.Scheme.KnownTypes(api.SchemeGroupVersion),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if _, ok := Groups[extensions.GroupName]; !ok {
 | 
					 | 
					 | 
					 | 
						if _, ok := Groups[extensions.GroupName]; !ok {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Groups[extensions.GroupName] = TestGroup{
 | 
					 | 
					 | 
					 | 
							Groups[extensions.GroupName] = TestGroup{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								externalGroupVersion: unversioned.GroupVersion{Group: extensions.GroupName, Version: registered.GroupOrDie(extensions.GroupName).GroupVersion.Version},
 | 
					 | 
					 | 
					 | 
								externalGroupVersions: []unversioned.GroupVersion{{Group: extensions.GroupName, Version: registered.GroupOrDie(extensions.GroupName).GroupVersion.Version}},
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion: extensions.SchemeGroupVersion,
 | 
					 | 
					 | 
					 | 
								internalGroupVersion:  extensions.SchemeGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes:        api.Scheme.KnownTypes(extensions.SchemeGroupVersion),
 | 
					 | 
					 | 
					 | 
								internalTypes:         api.Scheme.KnownTypes(extensions.SchemeGroupVersion),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if _, ok := Groups[autoscaling.GroupName]; !ok {
 | 
					 | 
					 | 
					 | 
						if _, ok := Groups[autoscaling.GroupName]; !ok {
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -136,9 +142,9 @@ func init() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes[k] = t
 | 
					 | 
					 | 
					 | 
								internalTypes[k] = t
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Groups[autoscaling.GroupName] = TestGroup{
 | 
					 | 
					 | 
					 | 
							Groups[autoscaling.GroupName] = TestGroup{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								externalGroupVersion: unversioned.GroupVersion{Group: autoscaling.GroupName, Version: registered.GroupOrDie(autoscaling.GroupName).GroupVersion.Version},
 | 
					 | 
					 | 
					 | 
								externalGroupVersions: []unversioned.GroupVersion{{Group: autoscaling.GroupName, Version: registered.GroupOrDie(autoscaling.GroupName).GroupVersion.Version}},
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion: extensions.SchemeGroupVersion,
 | 
					 | 
					 | 
					 | 
								internalGroupVersion:  extensions.SchemeGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes:        internalTypes,
 | 
					 | 
					 | 
					 | 
								internalTypes:         internalTypes,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if _, ok := Groups[autoscaling.GroupName+"IntraGroup"]; !ok {
 | 
					 | 
					 | 
					 | 
						if _, ok := Groups[autoscaling.GroupName+"IntraGroup"]; !ok {
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -150,44 +156,48 @@ func init() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								}
 | 
					 | 
					 | 
					 | 
								}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Groups[autoscaling.GroupName] = TestGroup{
 | 
					 | 
					 | 
					 | 
							Groups[autoscaling.GroupName] = TestGroup{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								externalGroupVersion: unversioned.GroupVersion{Group: autoscaling.GroupName, Version: registered.GroupOrDie(autoscaling.GroupName).GroupVersion.Version},
 | 
					 | 
					 | 
					 | 
								externalGroupVersions: []unversioned.GroupVersion{{Group: autoscaling.GroupName, Version: registered.GroupOrDie(autoscaling.GroupName).GroupVersion.Version}},
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion: autoscaling.SchemeGroupVersion,
 | 
					 | 
					 | 
					 | 
								internalGroupVersion:  autoscaling.SchemeGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes:        internalTypes,
 | 
					 | 
					 | 
					 | 
								internalTypes:         internalTypes,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if _, ok := Groups[batch.GroupName]; !ok {
 | 
					 | 
					 | 
					 | 
						if _, ok := Groups[batch.GroupName]; !ok {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							var gvs []unversioned.GroupVersion
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							for _, gv := range registered.GroupOrDie(batch.GroupName).GroupVersions {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								gvs = append(gvs, gv)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Groups[batch.GroupName] = TestGroup{
 | 
					 | 
					 | 
					 | 
							Groups[batch.GroupName] = TestGroup{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								externalGroupVersion: unversioned.GroupVersion{Group: batch.GroupName, Version: registered.GroupOrDie(batch.GroupName).GroupVersion.Version},
 | 
					 | 
					 | 
					 | 
								externalGroupVersions: gvs,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion: batch.SchemeGroupVersion,
 | 
					 | 
					 | 
					 | 
								internalGroupVersion:  batch.SchemeGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes:        api.Scheme.KnownTypes(batch.SchemeGroupVersion),
 | 
					 | 
					 | 
					 | 
								internalTypes:         api.Scheme.KnownTypes(batch.SchemeGroupVersion),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if _, ok := Groups[apps.GroupName]; !ok {
 | 
					 | 
					 | 
					 | 
						if _, ok := Groups[apps.GroupName]; !ok {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Groups[apps.GroupName] = TestGroup{
 | 
					 | 
					 | 
					 | 
							Groups[apps.GroupName] = TestGroup{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								externalGroupVersion: unversioned.GroupVersion{Group: apps.GroupName, Version: registered.GroupOrDie(apps.GroupName).GroupVersion.Version},
 | 
					 | 
					 | 
					 | 
								externalGroupVersions: []unversioned.GroupVersion{{Group: apps.GroupName, Version: registered.GroupOrDie(apps.GroupName).GroupVersion.Version}},
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion: extensions.SchemeGroupVersion,
 | 
					 | 
					 | 
					 | 
								internalGroupVersion:  extensions.SchemeGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes:        api.Scheme.KnownTypes(extensions.SchemeGroupVersion),
 | 
					 | 
					 | 
					 | 
								internalTypes:         api.Scheme.KnownTypes(extensions.SchemeGroupVersion),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if _, ok := Groups[policy.GroupName]; !ok {
 | 
					 | 
					 | 
					 | 
						if _, ok := Groups[policy.GroupName]; !ok {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Groups[policy.GroupName] = TestGroup{
 | 
					 | 
					 | 
					 | 
							Groups[policy.GroupName] = TestGroup{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								externalGroupVersion: unversioned.GroupVersion{Group: policy.GroupName, Version: registered.GroupOrDie(policy.GroupName).GroupVersion.Version},
 | 
					 | 
					 | 
					 | 
								externalGroupVersions: []unversioned.GroupVersion{{Group: policy.GroupName, Version: registered.GroupOrDie(policy.GroupName).GroupVersion.Version}},
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion: policy.SchemeGroupVersion,
 | 
					 | 
					 | 
					 | 
								internalGroupVersion:  policy.SchemeGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes:        api.Scheme.KnownTypes(policy.SchemeGroupVersion),
 | 
					 | 
					 | 
					 | 
								internalTypes:         api.Scheme.KnownTypes(policy.SchemeGroupVersion),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if _, ok := Groups[federation.GroupName]; !ok {
 | 
					 | 
					 | 
					 | 
						if _, ok := Groups[federation.GroupName]; !ok {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Groups[federation.GroupName] = TestGroup{
 | 
					 | 
					 | 
					 | 
							Groups[federation.GroupName] = TestGroup{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								externalGroupVersion: unversioned.GroupVersion{Group: federation.GroupName, Version: registered.GroupOrDie(federation.GroupName).GroupVersion.Version},
 | 
					 | 
					 | 
					 | 
								externalGroupVersions: []unversioned.GroupVersion{{Group: federation.GroupName, Version: registered.GroupOrDie(federation.GroupName).GroupVersion.Version}},
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion: federation.SchemeGroupVersion,
 | 
					 | 
					 | 
					 | 
								internalGroupVersion:  federation.SchemeGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes:        api.Scheme.KnownTypes(federation.SchemeGroupVersion),
 | 
					 | 
					 | 
					 | 
								internalTypes:         api.Scheme.KnownTypes(federation.SchemeGroupVersion),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if _, ok := Groups[rbac.GroupName]; !ok {
 | 
					 | 
					 | 
					 | 
						if _, ok := Groups[rbac.GroupName]; !ok {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Groups[rbac.GroupName] = TestGroup{
 | 
					 | 
					 | 
					 | 
							Groups[rbac.GroupName] = TestGroup{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								externalGroupVersion: unversioned.GroupVersion{Group: rbac.GroupName, Version: registered.GroupOrDie(rbac.GroupName).GroupVersion.Version},
 | 
					 | 
					 | 
					 | 
								externalGroupVersions: []unversioned.GroupVersion{{Group: rbac.GroupName, Version: registered.GroupOrDie(rbac.GroupName).GroupVersion.Version}},
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalGroupVersion: rbac.SchemeGroupVersion,
 | 
					 | 
					 | 
					 | 
								internalGroupVersion:  rbac.SchemeGroupVersion,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								internalTypes:        api.Scheme.KnownTypes(rbac.SchemeGroupVersion),
 | 
					 | 
					 | 
					 | 
								internalTypes:         api.Scheme.KnownTypes(rbac.SchemeGroupVersion),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -206,10 +216,14 @@ func (g TestGroup) ContentConfig() (string, *unversioned.GroupVersion, runtime.C
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func (g TestGroup) GroupVersion() *unversioned.GroupVersion {
 | 
					 | 
					 | 
					 | 
					func (g TestGroup) GroupVersion() *unversioned.GroupVersion {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						copyOfGroupVersion := g.externalGroupVersion
 | 
					 | 
					 | 
					 | 
						copyOfGroupVersion := g.externalGroupVersions[0]
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						return ©OfGroupVersion
 | 
					 | 
					 | 
					 | 
						return ©OfGroupVersion
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					func (g TestGroup) GroupVersions() []unversioned.GroupVersion {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						return append([]unversioned.GroupVersion{}, g.externalGroupVersions...)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// InternalGroupVersion returns the group,version used to identify the internal
 | 
					 | 
					 | 
					 | 
					// InternalGroupVersion returns the group,version used to identify the internal
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// types for this API
 | 
					 | 
					 | 
					 | 
					// types for this API
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func (g TestGroup) InternalGroupVersion() unversioned.GroupVersion {
 | 
					 | 
					 | 
					 | 
					func (g TestGroup) InternalGroupVersion() unversioned.GroupVersion {
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -225,9 +239,9 @@ func (g TestGroup) InternalTypes() map[string]reflect.Type {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// KUBE_TEST_API_TYPE env var.
 | 
					 | 
					 | 
					 | 
					// KUBE_TEST_API_TYPE env var.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func (g TestGroup) Codec() runtime.Codec {
 | 
					 | 
					 | 
					 | 
					func (g TestGroup) Codec() runtime.Codec {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if serializer.Serializer == nil {
 | 
					 | 
					 | 
					 | 
						if serializer.Serializer == nil {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return api.Codecs.LegacyCodec(g.externalGroupVersion)
 | 
					 | 
					 | 
					 | 
							return api.Codecs.LegacyCodec(g.externalGroupVersions[0])
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						return api.Codecs.CodecForVersions(serializer, api.Codecs.UniversalDeserializer(), []unversioned.GroupVersion{g.externalGroupVersion}, nil)
 | 
					 | 
					 | 
					 | 
						return api.Codecs.CodecForVersions(serializer, api.Codecs.UniversalDeserializer(), g.externalGroupVersions, nil)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// NegotiatedSerializer returns the negotiated serializer for the server.
 | 
					 | 
					 | 
					 | 
					// NegotiatedSerializer returns the negotiated serializer for the server.
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -245,7 +259,7 @@ func (g TestGroup) StorageCodec() runtime.Codec {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						s := storageSerializer.Serializer
 | 
					 | 
					 | 
					 | 
						s := storageSerializer.Serializer
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if s == nil {
 | 
					 | 
					 | 
					 | 
						if s == nil {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return api.Codecs.LegacyCodec(g.externalGroupVersion)
 | 
					 | 
					 | 
					 | 
							return api.Codecs.LegacyCodec(g.externalGroupVersions[0])
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						// etcd2 only supports string data - we must wrap any result before returning
 | 
					 | 
					 | 
					 | 
						// etcd2 only supports string data - we must wrap any result before returning
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -255,13 +269,13 @@ func (g TestGroup) StorageCodec() runtime.Codec {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ds := recognizer.NewDecoder(s, api.Codecs.UniversalDeserializer())
 | 
					 | 
					 | 
					 | 
						ds := recognizer.NewDecoder(s, api.Codecs.UniversalDeserializer())
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						return api.Codecs.CodecForVersions(s, ds, []unversioned.GroupVersion{g.externalGroupVersion}, nil)
 | 
					 | 
					 | 
					 | 
						return api.Codecs.CodecForVersions(s, ds, g.externalGroupVersions, nil)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// Converter returns the api.Scheme for the API version to test against, as set by the
 | 
					 | 
					 | 
					 | 
					// Converter returns the api.Scheme for the API version to test against, as set by the
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// KUBE_TEST_API env var.
 | 
					 | 
					 | 
					 | 
					// KUBE_TEST_API env var.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func (g TestGroup) Converter() runtime.ObjectConvertor {
 | 
					 | 
					 | 
					 | 
					func (g TestGroup) Converter() runtime.ObjectConvertor {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						interfaces, err := registered.GroupOrDie(g.externalGroupVersion.Group).InterfacesFor(g.externalGroupVersion)
 | 
					 | 
					 | 
					 | 
						interfaces, err := registered.GroupOrDie(g.externalGroupVersions[0].Group).InterfacesFor(g.externalGroupVersions[0])
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if err != nil {
 | 
					 | 
					 | 
					 | 
						if err != nil {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							panic(err)
 | 
					 | 
					 | 
					 | 
							panic(err)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -271,7 +285,7 @@ func (g TestGroup) Converter() runtime.ObjectConvertor {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// MetadataAccessor returns the MetadataAccessor for the API version to test against,
 | 
					 | 
					 | 
					 | 
					// MetadataAccessor returns the MetadataAccessor for the API version to test against,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// as set by the KUBE_TEST_API env var.
 | 
					 | 
					 | 
					 | 
					// as set by the KUBE_TEST_API env var.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func (g TestGroup) MetadataAccessor() meta.MetadataAccessor {
 | 
					 | 
					 | 
					 | 
					func (g TestGroup) MetadataAccessor() meta.MetadataAccessor {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						interfaces, err := registered.GroupOrDie(g.externalGroupVersion.Group).InterfacesFor(g.externalGroupVersion)
 | 
					 | 
					 | 
					 | 
						interfaces, err := registered.GroupOrDie(g.externalGroupVersions[0].Group).InterfacesFor(g.externalGroupVersions[0])
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if err != nil {
 | 
					 | 
					 | 
					 | 
						if err != nil {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							panic(err)
 | 
					 | 
					 | 
					 | 
							panic(err)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -282,18 +296,18 @@ func (g TestGroup) MetadataAccessor() meta.MetadataAccessor {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// 'resource' should be the resource path, e.g. "pods" for the Pod type. 'name' should be
 | 
					 | 
					 | 
					 | 
					// 'resource' should be the resource path, e.g. "pods" for the Pod type. 'name' should be
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// empty for lists.
 | 
					 | 
					 | 
					 | 
					// empty for lists.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func (g TestGroup) SelfLink(resource, name string) string {
 | 
					 | 
					 | 
					 | 
					func (g TestGroup) SelfLink(resource, name string) string {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if g.externalGroupVersion.Group == api.GroupName {
 | 
					 | 
					 | 
					 | 
						if g.externalGroupVersions[0].Group == api.GroupName {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if name == "" {
 | 
					 | 
					 | 
					 | 
							if name == "" {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return fmt.Sprintf("/api/%s/%s", g.externalGroupVersion.Version, resource)
 | 
					 | 
					 | 
					 | 
								return fmt.Sprintf("/api/%s/%s", g.externalGroupVersions[0].Version, resource)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return fmt.Sprintf("/api/%s/%s/%s", g.externalGroupVersion.Version, resource, name)
 | 
					 | 
					 | 
					 | 
							return fmt.Sprintf("/api/%s/%s/%s", g.externalGroupVersions[0].Version, resource, name)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else {
 | 
					 | 
					 | 
					 | 
						} else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// TODO: will need a /apis prefix once we have proper multi-group
 | 
					 | 
					 | 
					 | 
							// TODO: will need a /apis prefix once we have proper multi-group
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// support
 | 
					 | 
					 | 
					 | 
							// support
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if name == "" {
 | 
					 | 
					 | 
					 | 
							if name == "" {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return fmt.Sprintf("/apis/%s/%s/%s", g.externalGroupVersion.Group, g.externalGroupVersion.Version, resource)
 | 
					 | 
					 | 
					 | 
								return fmt.Sprintf("/apis/%s/%s/%s", g.externalGroupVersions[0].Group, g.externalGroupVersions[0].Version, resource)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return fmt.Sprintf("/apis/%s/%s/%s/%s", g.externalGroupVersion.Group, g.externalGroupVersion.Version, resource, name)
 | 
					 | 
					 | 
					 | 
							return fmt.Sprintf("/apis/%s/%s/%s/%s", g.externalGroupVersions[0].Group, g.externalGroupVersions[0].Version, resource, name)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -302,12 +316,12 @@ func (g TestGroup) SelfLink(resource, name string) string {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// /api/v1/watch/namespaces/foo/pods/pod0 for v1.
 | 
					 | 
					 | 
					 | 
					// /api/v1/watch/namespaces/foo/pods/pod0 for v1.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func (g TestGroup) ResourcePathWithPrefix(prefix, resource, namespace, name string) string {
 | 
					 | 
					 | 
					 | 
					func (g TestGroup) ResourcePathWithPrefix(prefix, resource, namespace, name string) string {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						var path string
 | 
					 | 
					 | 
					 | 
						var path string
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if g.externalGroupVersion.Group == api.GroupName {
 | 
					 | 
					 | 
					 | 
						if g.externalGroupVersions[0].Group == api.GroupName {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							path = "/api/" + g.externalGroupVersion.Version
 | 
					 | 
					 | 
					 | 
							path = "/api/" + g.externalGroupVersions[0].Version
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else {
 | 
					 | 
					 | 
					 | 
						} else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// TODO: switch back once we have proper multiple group support
 | 
					 | 
					 | 
					 | 
							// TODO: switch back once we have proper multiple group support
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// path = "/apis/" + g.Group + "/" + Version(group...)
 | 
					 | 
					 | 
					 | 
							// path = "/apis/" + g.Group + "/" + Version(group...)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							path = "/apis/" + g.externalGroupVersion.Group + "/" + g.externalGroupVersion.Version
 | 
					 | 
					 | 
					 | 
							path = "/apis/" + g.externalGroupVersions[0].Group + "/" + g.externalGroupVersions[0].Version
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if prefix != "" {
 | 
					 | 
					 | 
					 | 
						if prefix != "" {
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						
					 | 
					 | 
					@@ -377,5 +391,9 @@ func GetCodecForObject(obj runtime.Object) (runtime.Codec, error) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func NewTestGroup(external, internal unversioned.GroupVersion, internalTypes map[string]reflect.Type) TestGroup {
 | 
					 | 
					 | 
					 | 
					func NewTestGroup(external, internal unversioned.GroupVersion, internalTypes map[string]reflect.Type) TestGroup {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						return TestGroup{external, internal, internalTypes}
 | 
					 | 
					 | 
					 | 
						return TestGroup{
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							externalGroupVersions: []unversioned.GroupVersion{external},
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							internalGroupVersion:  internal,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							internalTypes:         internalTypes,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						 
						
						
						
						 
					 | 
					 | 
					 
 |