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  }