k8s.io/apiserver@v0.31.1/pkg/apis/apidiscovery/v2/conversion.go (about) 1 /* 2 Copyright 2024 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 // This file was duplicated from the auto-generated file by conversion-gen in 18 // k8s.io/kubernetes/pkg/apis/apidiscovery Unlike most k8s types discovery is 19 // served by all apiservers and conversion is needed by all apiservers. The 20 // concept of internal/hub type does not exist for discovery as we work directly 21 // with the versioned types. 22 23 // The conversion code here facilities conversion strictly between v2beta1 and 24 // v2 types. It is only necessary in k8s versions where mixed state could be 25 // possible before the full removal of the v2beta1 types. It is placed in this 26 // directory such that all apiservers can benefit from the conversion without 27 // having to implement their own if the client/server they're communicating with 28 // only supports one version. 29 30 // Once the v2beta1 types are removed (intended for Kubernetes v1.33), this file 31 // will be removed. 32 package v2 33 34 import ( 35 unsafe "unsafe" 36 37 v2 "k8s.io/api/apidiscovery/v2" 38 v2beta1 "k8s.io/api/apidiscovery/v2beta1" 39 v1 "k8s.io/apimachinery/pkg/apis/meta/v1" 40 conversion "k8s.io/apimachinery/pkg/conversion" 41 runtime "k8s.io/apimachinery/pkg/runtime" 42 ) 43 44 // RegisterConversions adds conversion functions to the given scheme. 45 // Public to allow building arbitrary schemes. 46 func RegisterConversions(s *runtime.Scheme) error { 47 if err := s.AddGeneratedConversionFunc((*v2beta1.APIGroupDiscovery)(nil), (*v2.APIGroupDiscovery)(nil), func(a, b interface{}, scope conversion.Scope) error { 48 return Convertv2beta1APIGroupDiscoveryTov2APIGroupDiscovery(a.(*v2beta1.APIGroupDiscovery), b.(*v2.APIGroupDiscovery), scope) 49 }); err != nil { 50 return err 51 } 52 if err := s.AddGeneratedConversionFunc((*v2.APIGroupDiscovery)(nil), (*v2beta1.APIGroupDiscovery)(nil), func(a, b interface{}, scope conversion.Scope) error { 53 return Convertv2APIGroupDiscoveryTov2beta1APIGroupDiscovery(a.(*v2.APIGroupDiscovery), b.(*v2beta1.APIGroupDiscovery), scope) 54 }); err != nil { 55 return err 56 } 57 if err := s.AddGeneratedConversionFunc((*v2beta1.APIGroupDiscoveryList)(nil), (*v2.APIGroupDiscoveryList)(nil), func(a, b interface{}, scope conversion.Scope) error { 58 return Convertv2beta1APIGroupDiscoveryListTov2APIGroupDiscoveryList(a.(*v2beta1.APIGroupDiscoveryList), b.(*v2.APIGroupDiscoveryList), scope) 59 }); err != nil { 60 return err 61 } 62 if err := s.AddGeneratedConversionFunc((*v2.APIGroupDiscoveryList)(nil), (*v2beta1.APIGroupDiscoveryList)(nil), func(a, b interface{}, scope conversion.Scope) error { 63 return Convertv2APIGroupDiscoveryListTov2beta1APIGroupDiscoveryList(a.(*v2.APIGroupDiscoveryList), b.(*v2beta1.APIGroupDiscoveryList), scope) 64 }); err != nil { 65 return err 66 } 67 if err := s.AddGeneratedConversionFunc((*v2beta1.APIResourceDiscovery)(nil), (*v2.APIResourceDiscovery)(nil), func(a, b interface{}, scope conversion.Scope) error { 68 return Convertv2beta1APIResourceDiscoveryTov2APIResourceDiscovery(a.(*v2beta1.APIResourceDiscovery), b.(*v2.APIResourceDiscovery), scope) 69 }); err != nil { 70 return err 71 } 72 if err := s.AddGeneratedConversionFunc((*v2.APIResourceDiscovery)(nil), (*v2beta1.APIResourceDiscovery)(nil), func(a, b interface{}, scope conversion.Scope) error { 73 return Convertv2APIResourceDiscoveryTov2beta1APIResourceDiscovery(a.(*v2.APIResourceDiscovery), b.(*v2beta1.APIResourceDiscovery), scope) 74 }); err != nil { 75 return err 76 } 77 if err := s.AddGeneratedConversionFunc((*v2beta1.APISubresourceDiscovery)(nil), (*v2.APISubresourceDiscovery)(nil), func(a, b interface{}, scope conversion.Scope) error { 78 return Convertv2beta1APISubresourceDiscoveryTov2APISubresourceDiscovery(a.(*v2beta1.APISubresourceDiscovery), b.(*v2.APISubresourceDiscovery), scope) 79 }); err != nil { 80 return err 81 } 82 if err := s.AddGeneratedConversionFunc((*v2.APISubresourceDiscovery)(nil), (*v2beta1.APISubresourceDiscovery)(nil), func(a, b interface{}, scope conversion.Scope) error { 83 return Convertv2APISubresourceDiscoveryTov2beta1APISubresourceDiscovery(a.(*v2.APISubresourceDiscovery), b.(*v2beta1.APISubresourceDiscovery), scope) 84 }); err != nil { 85 return err 86 } 87 if err := s.AddGeneratedConversionFunc((*v2beta1.APIVersionDiscovery)(nil), (*v2.APIVersionDiscovery)(nil), func(a, b interface{}, scope conversion.Scope) error { 88 return Convertv2beta1APIVersionDiscoveryTov2APIVersionDiscovery(a.(*v2beta1.APIVersionDiscovery), b.(*v2.APIVersionDiscovery), scope) 89 }); err != nil { 90 return err 91 } 92 if err := s.AddGeneratedConversionFunc((*v2.APIVersionDiscovery)(nil), (*v2beta1.APIVersionDiscovery)(nil), func(a, b interface{}, scope conversion.Scope) error { 93 return Convertv2APIVersionDiscoveryTov2beta1APIVersionDiscovery(a.(*v2.APIVersionDiscovery), b.(*v2beta1.APIVersionDiscovery), scope) 94 }); err != nil { 95 return err 96 } 97 return nil 98 } 99 100 func autoConvertv2beta1APIGroupDiscoveryTov2APIGroupDiscovery(in *v2beta1.APIGroupDiscovery, out *v2.APIGroupDiscovery, s conversion.Scope) error { 101 out.ObjectMeta = in.ObjectMeta 102 out.Versions = *(*[]v2.APIVersionDiscovery)(unsafe.Pointer(&in.Versions)) 103 return nil 104 } 105 106 // Convertv2beta1APIGroupDiscoveryTov2APIGroupDiscovery is an autogenerated conversion function. 107 func Convertv2beta1APIGroupDiscoveryTov2APIGroupDiscovery(in *v2beta1.APIGroupDiscovery, out *v2.APIGroupDiscovery, s conversion.Scope) error { 108 return autoConvertv2beta1APIGroupDiscoveryTov2APIGroupDiscovery(in, out, s) 109 } 110 111 func autoConvertv2APIGroupDiscoveryTov2beta1APIGroupDiscovery(in *v2.APIGroupDiscovery, out *v2beta1.APIGroupDiscovery, s conversion.Scope) error { 112 out.ObjectMeta = in.ObjectMeta 113 out.Versions = *(*[]v2beta1.APIVersionDiscovery)(unsafe.Pointer(&in.Versions)) 114 return nil 115 } 116 117 // Convertv2APIGroupDiscoveryTov2beta1APIGroupDiscovery is an autogenerated conversion function. 118 func Convertv2APIGroupDiscoveryTov2beta1APIGroupDiscovery(in *v2.APIGroupDiscovery, out *v2beta1.APIGroupDiscovery, s conversion.Scope) error { 119 return autoConvertv2APIGroupDiscoveryTov2beta1APIGroupDiscovery(in, out, s) 120 } 121 122 func autoConvertv2beta1APIGroupDiscoveryListTov2APIGroupDiscoveryList(in *v2beta1.APIGroupDiscoveryList, out *v2.APIGroupDiscoveryList, s conversion.Scope) error { 123 out.ListMeta = in.ListMeta 124 out.Items = *(*[]v2.APIGroupDiscovery)(unsafe.Pointer(&in.Items)) 125 return nil 126 } 127 128 // Convertv2beta1APIGroupDiscoveryListTov2APIGroupDiscoveryList is an autogenerated conversion function. 129 func Convertv2beta1APIGroupDiscoveryListTov2APIGroupDiscoveryList(in *v2beta1.APIGroupDiscoveryList, out *v2.APIGroupDiscoveryList, s conversion.Scope) error { 130 return autoConvertv2beta1APIGroupDiscoveryListTov2APIGroupDiscoveryList(in, out, s) 131 } 132 133 func autoConvertv2APIGroupDiscoveryListTov2beta1APIGroupDiscoveryList(in *v2.APIGroupDiscoveryList, out *v2beta1.APIGroupDiscoveryList, s conversion.Scope) error { 134 out.ListMeta = in.ListMeta 135 out.Items = *(*[]v2beta1.APIGroupDiscovery)(unsafe.Pointer(&in.Items)) 136 return nil 137 } 138 139 // Convertv2APIGroupDiscoveryListTov2beta1APIGroupDiscoveryList is an autogenerated conversion function. 140 func Convertv2APIGroupDiscoveryListTov2beta1APIGroupDiscoveryList(in *v2.APIGroupDiscoveryList, out *v2beta1.APIGroupDiscoveryList, s conversion.Scope) error { 141 return autoConvertv2APIGroupDiscoveryListTov2beta1APIGroupDiscoveryList(in, out, s) 142 } 143 144 func autoConvertv2beta1APIResourceDiscoveryTov2APIResourceDiscovery(in *v2beta1.APIResourceDiscovery, out *v2.APIResourceDiscovery, s conversion.Scope) error { 145 out.Resource = in.Resource 146 out.ResponseKind = (*v1.GroupVersionKind)(unsafe.Pointer(in.ResponseKind)) 147 out.Scope = v2.ResourceScope(in.Scope) 148 out.SingularResource = in.SingularResource 149 out.Verbs = *(*[]string)(unsafe.Pointer(&in.Verbs)) 150 out.ShortNames = *(*[]string)(unsafe.Pointer(&in.ShortNames)) 151 out.Categories = *(*[]string)(unsafe.Pointer(&in.Categories)) 152 out.Subresources = *(*[]v2.APISubresourceDiscovery)(unsafe.Pointer(&in.Subresources)) 153 return nil 154 } 155 156 // Convertv2beta1APIResourceDiscoveryTov2APIResourceDiscovery is an autogenerated conversion function. 157 func Convertv2beta1APIResourceDiscoveryTov2APIResourceDiscovery(in *v2beta1.APIResourceDiscovery, out *v2.APIResourceDiscovery, s conversion.Scope) error { 158 return autoConvertv2beta1APIResourceDiscoveryTov2APIResourceDiscovery(in, out, s) 159 } 160 161 func autoConvertv2APIResourceDiscoveryTov2beta1APIResourceDiscovery(in *v2.APIResourceDiscovery, out *v2beta1.APIResourceDiscovery, s conversion.Scope) error { 162 out.Resource = in.Resource 163 out.ResponseKind = (*v1.GroupVersionKind)(unsafe.Pointer(in.ResponseKind)) 164 out.Scope = v2beta1.ResourceScope(in.Scope) 165 out.SingularResource = in.SingularResource 166 out.Verbs = *(*[]string)(unsafe.Pointer(&in.Verbs)) 167 out.ShortNames = *(*[]string)(unsafe.Pointer(&in.ShortNames)) 168 out.Categories = *(*[]string)(unsafe.Pointer(&in.Categories)) 169 out.Subresources = *(*[]v2beta1.APISubresourceDiscovery)(unsafe.Pointer(&in.Subresources)) 170 return nil 171 } 172 173 // Convertv2APIResourceDiscoveryTov2beta1APIResourceDiscovery is an autogenerated conversion function. 174 func Convertv2APIResourceDiscoveryTov2beta1APIResourceDiscovery(in *v2.APIResourceDiscovery, out *v2beta1.APIResourceDiscovery, s conversion.Scope) error { 175 return autoConvertv2APIResourceDiscoveryTov2beta1APIResourceDiscovery(in, out, s) 176 } 177 178 func autoConvertv2beta1APISubresourceDiscoveryTov2APISubresourceDiscovery(in *v2beta1.APISubresourceDiscovery, out *v2.APISubresourceDiscovery, s conversion.Scope) error { 179 out.Subresource = in.Subresource 180 out.ResponseKind = (*v1.GroupVersionKind)(unsafe.Pointer(in.ResponseKind)) 181 out.AcceptedTypes = *(*[]v1.GroupVersionKind)(unsafe.Pointer(&in.AcceptedTypes)) 182 out.Verbs = *(*[]string)(unsafe.Pointer(&in.Verbs)) 183 return nil 184 } 185 186 // Convertv2beta1APISubresourceDiscoveryTov2APISubresourceDiscovery is an autogenerated conversion function. 187 func Convertv2beta1APISubresourceDiscoveryTov2APISubresourceDiscovery(in *v2beta1.APISubresourceDiscovery, out *v2.APISubresourceDiscovery, s conversion.Scope) error { 188 return autoConvertv2beta1APISubresourceDiscoveryTov2APISubresourceDiscovery(in, out, s) 189 } 190 191 func autoConvertv2APISubresourceDiscoveryTov2beta1APISubresourceDiscovery(in *v2.APISubresourceDiscovery, out *v2beta1.APISubresourceDiscovery, s conversion.Scope) error { 192 out.Subresource = in.Subresource 193 out.ResponseKind = (*v1.GroupVersionKind)(unsafe.Pointer(in.ResponseKind)) 194 out.AcceptedTypes = *(*[]v1.GroupVersionKind)(unsafe.Pointer(&in.AcceptedTypes)) 195 out.Verbs = *(*[]string)(unsafe.Pointer(&in.Verbs)) 196 return nil 197 } 198 199 // Convertv2APISubresourceDiscoveryTov2beta1APISubresourceDiscovery is an autogenerated conversion function. 200 func Convertv2APISubresourceDiscoveryTov2beta1APISubresourceDiscovery(in *v2.APISubresourceDiscovery, out *v2beta1.APISubresourceDiscovery, s conversion.Scope) error { 201 return autoConvertv2APISubresourceDiscoveryTov2beta1APISubresourceDiscovery(in, out, s) 202 } 203 204 func autoConvertv2beta1APIVersionDiscoveryTov2APIVersionDiscovery(in *v2beta1.APIVersionDiscovery, out *v2.APIVersionDiscovery, s conversion.Scope) error { 205 out.Version = in.Version 206 out.Resources = *(*[]v2.APIResourceDiscovery)(unsafe.Pointer(&in.Resources)) 207 out.Freshness = v2.DiscoveryFreshness(in.Freshness) 208 return nil 209 } 210 211 // Convertv2beta1APIVersionDiscoveryTov2APIVersionDiscovery is an autogenerated conversion function. 212 func Convertv2beta1APIVersionDiscoveryTov2APIVersionDiscovery(in *v2beta1.APIVersionDiscovery, out *v2.APIVersionDiscovery, s conversion.Scope) error { 213 return autoConvertv2beta1APIVersionDiscoveryTov2APIVersionDiscovery(in, out, s) 214 } 215 216 func autoConvertv2APIVersionDiscoveryTov2beta1APIVersionDiscovery(in *v2.APIVersionDiscovery, out *v2beta1.APIVersionDiscovery, s conversion.Scope) error { 217 out.Version = in.Version 218 out.Resources = *(*[]v2beta1.APIResourceDiscovery)(unsafe.Pointer(&in.Resources)) 219 out.Freshness = v2beta1.DiscoveryFreshness(in.Freshness) 220 return nil 221 } 222 223 // Convertv2APIVersionDiscoveryTov2beta1APIVersionDiscovery is an autogenerated conversion function. 224 func Convertv2APIVersionDiscoveryTov2beta1APIVersionDiscovery(in *v2.APIVersionDiscovery, out *v2beta1.APIVersionDiscovery, s conversion.Scope) error { 225 return autoConvertv2APIVersionDiscoveryTov2beta1APIVersionDiscovery(in, out, s) 226 }