| /* |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| package knative08compat |
| |
| import ( |
| metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
| "k8s.io/apimachinery/pkg/runtime" |
| "k8s.io/apimachinery/pkg/runtime/schema" |
| messaging "knative.dev/eventing/pkg/apis/messaging/v1alpha1" |
| ) |
| |
| // CompatSchemeGroupVersion is the old group version used in Knative 0.8 |
| var CompatSchemeGroupVersion = schema.GroupVersion{ |
| Group: "eventing.knative.dev", |
| Version: "v1alpha1", |
| } |
| |
| // Subscription is a Knative 0.8 compatibility version for messaging.Subscription |
| type Subscription struct { |
| metav1.TypeMeta `json:",inline"` |
| metav1.ObjectMeta `json:"metadata"` |
| Spec messaging.SubscriptionSpec `json:"spec"` |
| Status messaging.SubscriptionStatus `json:"status,omitempty"` |
| } |
| |
| // SubscriptionList is a Knative 0.8 compatibility version for messaging.SubscriptionList |
| type SubscriptionList struct { |
| metav1.TypeMeta `json:",inline"` |
| metav1.ListMeta `json:"metadata"` |
| Items []Subscription `json:"items"` |
| } |
| |
| // FromMessagingSubscription creates a compat08 subscription from a messaging.Subscription |
| func FromMessagingSubscription(s messaging.Subscription) *Subscription { |
| in := s.DeepCopy() |
| out := Subscription{ |
| TypeMeta: in.TypeMeta, |
| ObjectMeta: in.ObjectMeta, |
| Spec: in.Spec, |
| Status: in.Status, |
| } |
| // fix API group |
| out.TypeMeta.APIVersion = CompatSchemeGroupVersion.String() |
| return &out |
| } |
| |
| // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. |
| func (in *Subscription) DeepCopyInto(out *Subscription) { |
| *out = *in |
| out.TypeMeta = in.TypeMeta |
| in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) |
| in.Spec.DeepCopyInto(&out.Spec) |
| in.Status.DeepCopyInto(&out.Status) |
| } |
| |
| // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subscription. |
| func (in *Subscription) DeepCopy() *Subscription { |
| if in == nil { |
| return nil |
| } |
| out := new(Subscription) |
| in.DeepCopyInto(out) |
| return out |
| } |
| |
| // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. |
| func (in *Subscription) DeepCopyObject() runtime.Object { |
| if c := in.DeepCopy(); c != nil { |
| return c |
| } |
| return nil |
| } |
| |
| // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. |
| func (in *SubscriptionList) DeepCopyInto(out *SubscriptionList) { |
| *out = *in |
| out.TypeMeta = in.TypeMeta |
| out.ListMeta = in.ListMeta |
| if in.Items != nil { |
| in, out := &in.Items, &out.Items |
| *out = make([]Subscription, len(*in)) |
| for i := range *in { |
| (*in)[i].DeepCopyInto(&(*out)[i]) |
| } |
| } |
| } |
| |
| // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionList. |
| func (in *SubscriptionList) DeepCopy() *SubscriptionList { |
| if in == nil { |
| return nil |
| } |
| out := new(SubscriptionList) |
| in.DeepCopyInto(out) |
| return out |
| } |
| |
| // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. |
| func (in *SubscriptionList) DeepCopyObject() runtime.Object { |
| if c := in.DeepCopy(); c != nil { |
| return c |
| } |
| return nil |
| } |