func (in *L4MatchAttributes) DeepCopyInto(out *L4MatchAttributes) {
	*out = *in
	if in.DestinationSubnets != nil {
		in, out := &in.DestinationSubnets, &out.DestinationSubnets
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.SourceLabels != nil {
		in, out := &in.SourceLabels, &out.SourceLabels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Gateways != nil {
		in, out := &in.Gateways, &out.Gateways
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
package v1alpha3
import (
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *Destination) DeepCopyInto(out *Destination) {
	*out = *in
	if in.Port != nil {
		in, out := &in.Port, &out.Port
		*out = new(PortSelector)
		**out = **in
	}
	return
}
func (in *Destination) DeepCopy() *Destination {
	if in == nil {
		return nil
	}
	out := new(Destination)
	in.DeepCopyInto(out)
	return out
}
func (in *DestinationRule) DeepCopyInto(out *DestinationRule) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	return
}
func (in *DestinationRule) DeepCopy() *DestinationRule {
	if in == nil {
		return nil
	}
	out := new(DestinationRule)
	in.DeepCopyInto(out)
	return out
}
func (in *DestinationRule) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *DestinationRuleList) DeepCopyInto(out *DestinationRuleList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]DestinationRule, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *DestinationRuleList) DeepCopy() *DestinationRuleList {
	if in == nil {
		return nil
	}
	out := new(DestinationRuleList)
	in.DeepCopyInto(out)
	return out
}
func (in *DestinationRuleList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *DestinationRuleSpec) DeepCopyInto(out *DestinationRuleSpec) {
	*out = *in
	if in.TrafficPolicy != nil {
		in, out := &in.TrafficPolicy, &out.TrafficPolicy
		*out = new(TrafficPolicy)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *DestinationRuleSpec) DeepCopy() *DestinationRuleSpec {
	if in == nil {
		return nil
	}
	out := new(DestinationRuleSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DestinationWeight) DeepCopyInto(out *DestinationWeight) {
	*out = *in
	if in.Destination != nil {
		in, out := &in.Destination, &out.Destination
		*out = new(Destination)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *DestinationWeight) DeepCopy() *DestinationWeight {
	if in == nil {
		return nil
	}
	out := new(DestinationWeight)
	in.DeepCopyInto(out)
	return out
}
func (in *EnvoyFilter) DeepCopyInto(out *EnvoyFilter) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	return
}
func (in *EnvoyFilter) DeepCopy() *EnvoyFilter {
	if in == nil {
		return nil
	}
	out := new(EnvoyFilter)
	in.DeepCopyInto(out)
	return out
}
func (in *EnvoyFilter) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *EnvoyFilterList) DeepCopyInto(out *EnvoyFilterList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]EnvoyFilter, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *EnvoyFilterList) DeepCopy() *EnvoyFilterList {
	if in == nil {
		return nil
	}
	out := new(EnvoyFilterList)
	in.DeepCopyInto(out)
	return out
}
func (in *EnvoyFilterList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *EnvoyFilterSpec) DeepCopyInto(out *EnvoyFilterSpec) {
	*out = *in
	if in.WorkloadLabels != nil {
		in, out := &in.WorkloadLabels, &out.WorkloadLabels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Filters != nil {
		in, out := &in.Filters, &out.Filters
		*out = make([]Filter, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *EnvoyFilterSpec) DeepCopy() *EnvoyFilterSpec {
	if in == nil {
		return nil
	}
	out := new(EnvoyFilterSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *Filter) DeepCopyInto(out *Filter) {
	*out = *in
	out.InsertPosition = in.InsertPosition
	in.ListenerMatch.DeepCopyInto(&out.ListenerMatch)
	out.FilterConfig = in.FilterConfig
	return
}
func (in *Filter) DeepCopy() *Filter {
	if in == nil {
		return nil
	}
	out := new(Filter)
	in.DeepCopyInto(out)
	return out
}
func (in *FilterConfig) DeepCopyInto(out *FilterConfig) {
	*out = *in
	out.GRPCService = in.GRPCService
	return
}
func (in *FilterConfig) DeepCopy() *FilterConfig {
	if in == nil {
		return nil
	}
	out := new(FilterConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *GRPCService) DeepCopyInto(out *GRPCService) {
	*out = *in
	out.GoogleGRPC = in.GoogleGRPC
	return
}
func (in *GRPCService) DeepCopy() *GRPCService {
	if in == nil {
		return nil
	}
	out := new(GRPCService)
	in.DeepCopyInto(out)
	return out
}
func (in *Gateway) DeepCopyInto(out *Gateway) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	return
}
func (in *Gateway) DeepCopy() *Gateway {
	if in == nil {
		return nil
	}
	out := new(Gateway)
	in.DeepCopyInto(out)
	return out
}
func (in *Gateway) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *GatewayList) DeepCopyInto(out *GatewayList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Gateway, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *GatewayList) DeepCopy() *GatewayList {
	if in == nil {
		return nil
	}
	out := new(GatewayList)
	in.DeepCopyInto(out)
	return out
}
func (in *GatewayList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec) {
	*out = *in
	if in.Servers != nil {
		in, out := &in.Servers, &out.Servers
		*out = make([]*Server, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(Server)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.Selector != nil {
		in, out := &in.Selector, &out.Selector
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}
func (in *GatewaySpec) DeepCopy() *GatewaySpec {
	if in == nil {
		return nil
	}
	out := new(GatewaySpec)
	in.DeepCopyInto(out)
	return out
}
func (in *GoogleGRPC) DeepCopyInto(out *GoogleGRPC) {
	*out = *in
	return
}
func (in *GoogleGRPC) DeepCopy() *GoogleGRPC {
	if in == nil {
		return nil
	}
	out := new(GoogleGRPC)
	in.DeepCopyInto(out)
	return out
}
func (in *HTTPMatchRequest) DeepCopyInto(out *HTTPMatchRequest) {
	*out = *in
	if in.Uri != nil {
		in, out := &in.Uri, &out.Uri
		*out = new(StringMatch)
		**out = **in
	}
	if in.Scheme != nil {
		in, out := &in.Scheme, &out.Scheme
		*out = new(StringMatch)
		**out = **in
	}
	if in.Method != nil {
		in, out := &in.Method, &out.Method
		*out = new(StringMatch)
		**out = **in
	}
	if in.Authority != nil {
		in, out := &in.Authority, &out.Authority
		*out = new(StringMatch)
		**out = **in
	}
	if in.Headers != nil {
		in, out := &in.Headers, &out.Headers
		*out = make(map[string]*StringMatch, len(*in))
		for key, val := range *in {
			var outVal *StringMatch
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(StringMatch)
				**out = **in
			}
			(*out)[key] = outVal
		}
	}
	if in.SourceLabels != nil {
		in, out := &in.SourceLabels, &out.SourceLabels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Gateways != nil {
		in, out := &in.Gateways, &out.Gateways
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *HTTPMatchRequest) DeepCopy() *HTTPMatchRequest {
	if in == nil {
		return nil
	}
	out := new(HTTPMatchRequest)
	in.DeepCopyInto(out)
	return out
}
func (in *HTTPRewrite) DeepCopyInto(out *HTTPRewrite) {
	*out = *in
	return
}
func (in *HTTPRewrite) DeepCopy() *HTTPRewrite {
	if in == nil {
		return nil
	}
	out := new(HTTPRewrite)
	in.DeepCopyInto(out)
	return out
}
func (in *HTTPRoute) DeepCopyInto(out *HTTPRoute) {
	*out = *in
	if in.Match != nil {
		in, out := &in.Match, &out.Match
		*out = make([]*HTTPMatchRequest, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(HTTPMatchRequest)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.Route != nil {
		in, out := &in.Route, &out.Route
		*out = make([]*DestinationWeight, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(DestinationWeight)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.Rewrite != nil {
		in, out := &in.Rewrite, &out.Rewrite
		*out = new(HTTPRewrite)
		**out = **in
	}
	if in.AppendHeaders != nil {
		in, out := &in.AppendHeaders, &out.AppendHeaders
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}
func (in *HTTPRoute) DeepCopy() *HTTPRoute {
	if in == nil {
		return nil
	}
	out := new(HTTPRoute)
	in.DeepCopyInto(out)
	return out
}
func (in *InsertPosition) DeepCopyInto(out *InsertPosition) {
	*out = *in
	return
}
func (in *InsertPosition) DeepCopy() *InsertPosition {
	if in == nil {
		return nil
	}
	out := new(InsertPosition)
	in.DeepCopyInto(out)
	return out
}