//go:build !ignore_autogenerated
// +build !ignore_autogenerated

/*
Copyright 2020 The Flux authors

Licensed 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.
*/

// Code generated by deepcopy-gen. DO NOT EDIT.

package v1beta2

import (
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AWSCloudMapInstanceAttribute) DeepCopyInto(out *AWSCloudMapInstanceAttribute) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSCloudMapInstanceAttribute.
func (in *AWSCloudMapInstanceAttribute) DeepCopy() *AWSCloudMapInstanceAttribute {
	if in == nil {
		return nil
	}
	out := new(AWSCloudMapInstanceAttribute)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AWSCloudMapServiceDiscovery) DeepCopyInto(out *AWSCloudMapServiceDiscovery) {
	*out = *in
	if in.Attributes != nil {
		in, out := &in.Attributes, &out.Attributes
		*out = make([]AWSCloudMapInstanceAttribute, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSCloudMapServiceDiscovery.
func (in *AWSCloudMapServiceDiscovery) DeepCopy() *AWSCloudMapServiceDiscovery {
	if in == nil {
		return nil
	}
	out := new(AWSCloudMapServiceDiscovery)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AccessLog) DeepCopyInto(out *AccessLog) {
	*out = *in
	if in.File != nil {
		in, out := &in.File, &out.File
		*out = new(FileAccessLog)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessLog.
func (in *AccessLog) DeepCopy() *AccessLog {
	if in == nil {
		return nil
	}
	out := new(AccessLog)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Backend) DeepCopyInto(out *Backend) {
	*out = *in
	in.VirtualService.DeepCopyInto(&out.VirtualService)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backend.
func (in *Backend) DeepCopy() *Backend {
	if in == nil {
		return nil
	}
	out := new(Backend)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BackendDefaults) DeepCopyInto(out *BackendDefaults) {
	*out = *in
	if in.ClientPolicy != nil {
		in, out := &in.ClientPolicy, &out.ClientPolicy
		*out = new(ClientPolicy)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendDefaults.
func (in *BackendDefaults) DeepCopy() *BackendDefaults {
	if in == nil {
		return nil
	}
	out := new(BackendDefaults)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClientPolicy) DeepCopyInto(out *ClientPolicy) {
	*out = *in
	if in.TLS != nil {
		in, out := &in.TLS, &out.TLS
		*out = new(ClientPolicyTLS)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientPolicy.
func (in *ClientPolicy) DeepCopy() *ClientPolicy {
	if in == nil {
		return nil
	}
	out := new(ClientPolicy)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClientPolicyTLS) DeepCopyInto(out *ClientPolicyTLS) {
	*out = *in
	if in.Enforce != nil {
		in, out := &in.Enforce, &out.Enforce
		*out = new(bool)
		**out = **in
	}
	if in.Ports != nil {
		in, out := &in.Ports, &out.Ports
		*out = make([]PortNumber, len(*in))
		copy(*out, *in)
	}
	in.Validation.DeepCopyInto(&out.Validation)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientPolicyTLS.
func (in *ClientPolicyTLS) DeepCopy() *ClientPolicyTLS {
	if in == nil {
		return nil
	}
	out := new(ClientPolicyTLS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DNSServiceDiscovery) DeepCopyInto(out *DNSServiceDiscovery) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSServiceDiscovery.
func (in *DNSServiceDiscovery) DeepCopy() *DNSServiceDiscovery {
	if in == nil {
		return nil
	}
	out := new(DNSServiceDiscovery)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Duration) DeepCopyInto(out *Duration) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Duration.
func (in *Duration) DeepCopy() *Duration {
	if in == nil {
		return nil
	}
	out := new(Duration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FileAccessLog) DeepCopyInto(out *FileAccessLog) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileAccessLog.
func (in *FileAccessLog) DeepCopy() *FileAccessLog {
	if in == nil {
		return nil
	}
	out := new(FileAccessLog)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GRPCConnectionPool) DeepCopyInto(out *GRPCConnectionPool) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCConnectionPool.
func (in *GRPCConnectionPool) DeepCopy() *GRPCConnectionPool {
	if in == nil {
		return nil
	}
	out := new(GRPCConnectionPool)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GRPCRetryPolicy) DeepCopyInto(out *GRPCRetryPolicy) {
	*out = *in
	if in.GRPCRetryEvents != nil {
		in, out := &in.GRPCRetryEvents, &out.GRPCRetryEvents
		*out = make([]GRPCRetryPolicyEvent, len(*in))
		copy(*out, *in)
	}
	if in.HTTPRetryEvents != nil {
		in, out := &in.HTTPRetryEvents, &out.HTTPRetryEvents
		*out = make([]HTTPRetryPolicyEvent, len(*in))
		copy(*out, *in)
	}
	if in.TCPRetryEvents != nil {
		in, out := &in.TCPRetryEvents, &out.TCPRetryEvents
		*out = make([]TCPRetryPolicyEvent, len(*in))
		copy(*out, *in)
	}
	out.PerRetryTimeout = in.PerRetryTimeout
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCRetryPolicy.
func (in *GRPCRetryPolicy) DeepCopy() *GRPCRetryPolicy {
	if in == nil {
		return nil
	}
	out := new(GRPCRetryPolicy)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GRPCRoute) DeepCopyInto(out *GRPCRoute) {
	*out = *in
	in.Match.DeepCopyInto(&out.Match)
	in.Action.DeepCopyInto(&out.Action)
	if in.RetryPolicy != nil {
		in, out := &in.RetryPolicy, &out.RetryPolicy
		*out = new(GRPCRetryPolicy)
		(*in).DeepCopyInto(*out)
	}
	if in.Timeout != nil {
		in, out := &in.Timeout, &out.Timeout
		*out = new(GRPCTimeout)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCRoute.
func (in *GRPCRoute) DeepCopy() *GRPCRoute {
	if in == nil {
		return nil
	}
	out := new(GRPCRoute)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GRPCRouteAction) DeepCopyInto(out *GRPCRouteAction) {
	*out = *in
	if in.WeightedTargets != nil {
		in, out := &in.WeightedTargets, &out.WeightedTargets
		*out = make([]WeightedTarget, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCRouteAction.
func (in *GRPCRouteAction) DeepCopy() *GRPCRouteAction {
	if in == nil {
		return nil
	}
	out := new(GRPCRouteAction)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GRPCRouteMatch) DeepCopyInto(out *GRPCRouteMatch) {
	*out = *in
	if in.MethodName != nil {
		in, out := &in.MethodName, &out.MethodName
		*out = new(string)
		**out = **in
	}
	if in.ServiceName != nil {
		in, out := &in.ServiceName, &out.ServiceName
		*out = new(string)
		**out = **in
	}
	if in.Metadata != nil {
		in, out := &in.Metadata, &out.Metadata
		*out = make([]GRPCRouteMetadata, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCRouteMatch.
func (in *GRPCRouteMatch) DeepCopy() *GRPCRouteMatch {
	if in == nil {
		return nil
	}
	out := new(GRPCRouteMatch)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GRPCRouteMetadata) DeepCopyInto(out *GRPCRouteMetadata) {
	*out = *in
	if in.Match != nil {
		in, out := &in.Match, &out.Match
		*out = new(GRPCRouteMetadataMatchMethod)
		(*in).DeepCopyInto(*out)
	}
	if in.Invert != nil {
		in, out := &in.Invert, &out.Invert
		*out = new(bool)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCRouteMetadata.
func (in *GRPCRouteMetadata) DeepCopy() *GRPCRouteMetadata {
	if in == nil {
		return nil
	}
	out := new(GRPCRouteMetadata)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GRPCRouteMetadataMatchMethod) DeepCopyInto(out *GRPCRouteMetadataMatchMethod) {
	*out = *in
	if in.Exact != nil {
		in, out := &in.Exact, &out.Exact
		*out = new(string)
		**out = **in
	}
	if in.Prefix != nil {
		in, out := &in.Prefix, &out.Prefix
		*out = new(string)
		**out = **in
	}
	if in.Range != nil {
		in, out := &in.Range, &out.Range
		*out = new(MatchRange)
		**out = **in
	}
	if in.Regex != nil {
		in, out := &in.Regex, &out.Regex
		*out = new(string)
		**out = **in
	}
	if in.Suffix != nil {
		in, out := &in.Suffix, &out.Suffix
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCRouteMetadataMatchMethod.
func (in *GRPCRouteMetadataMatchMethod) DeepCopy() *GRPCRouteMetadataMatchMethod {
	if in == nil {
		return nil
	}
	out := new(GRPCRouteMetadataMatchMethod)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GRPCTimeout) DeepCopyInto(out *GRPCTimeout) {
	*out = *in
	if in.PerRequest != nil {
		in, out := &in.PerRequest, &out.PerRequest
		*out = new(Duration)
		**out = **in
	}
	if in.Idle != nil {
		in, out := &in.Idle, &out.Idle
		*out = new(Duration)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCTimeout.
func (in *GRPCTimeout) DeepCopy() *GRPCTimeout {
	if in == nil {
		return nil
	}
	out := new(GRPCTimeout)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTP2ConnectionPool) DeepCopyInto(out *HTTP2ConnectionPool) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTP2ConnectionPool.
func (in *HTTP2ConnectionPool) DeepCopy() *HTTP2ConnectionPool {
	if in == nil {
		return nil
	}
	out := new(HTTP2ConnectionPool)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPConnectionPool) DeepCopyInto(out *HTTPConnectionPool) {
	*out = *in
	if in.MaxPendingRequests != nil {
		in, out := &in.MaxPendingRequests, &out.MaxPendingRequests
		*out = new(int64)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPConnectionPool.
func (in *HTTPConnectionPool) DeepCopy() *HTTPConnectionPool {
	if in == nil {
		return nil
	}
	out := new(HTTPConnectionPool)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPRetryPolicy) DeepCopyInto(out *HTTPRetryPolicy) {
	*out = *in
	if in.HTTPRetryEvents != nil {
		in, out := &in.HTTPRetryEvents, &out.HTTPRetryEvents
		*out = make([]HTTPRetryPolicyEvent, len(*in))
		copy(*out, *in)
	}
	if in.TCPRetryEvents != nil {
		in, out := &in.TCPRetryEvents, &out.TCPRetryEvents
		*out = make([]TCPRetryPolicyEvent, len(*in))
		copy(*out, *in)
	}
	out.PerRetryTimeout = in.PerRetryTimeout
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRetryPolicy.
func (in *HTTPRetryPolicy) DeepCopy() *HTTPRetryPolicy {
	if in == nil {
		return nil
	}
	out := new(HTTPRetryPolicy)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPRoute) DeepCopyInto(out *HTTPRoute) {
	*out = *in
	in.Match.DeepCopyInto(&out.Match)
	in.Action.DeepCopyInto(&out.Action)
	if in.RetryPolicy != nil {
		in, out := &in.RetryPolicy, &out.RetryPolicy
		*out = new(HTTPRetryPolicy)
		(*in).DeepCopyInto(*out)
	}
	if in.Timeout != nil {
		in, out := &in.Timeout, &out.Timeout
		*out = new(HTTPTimeout)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRoute.
func (in *HTTPRoute) DeepCopy() *HTTPRoute {
	if in == nil {
		return nil
	}
	out := new(HTTPRoute)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPRouteAction) DeepCopyInto(out *HTTPRouteAction) {
	*out = *in
	if in.WeightedTargets != nil {
		in, out := &in.WeightedTargets, &out.WeightedTargets
		*out = make([]WeightedTarget, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteAction.
func (in *HTTPRouteAction) DeepCopy() *HTTPRouteAction {
	if in == nil {
		return nil
	}
	out := new(HTTPRouteAction)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPRouteHeader) DeepCopyInto(out *HTTPRouteHeader) {
	*out = *in
	if in.Match != nil {
		in, out := &in.Match, &out.Match
		*out = new(HeaderMatchMethod)
		(*in).DeepCopyInto(*out)
	}
	if in.Invert != nil {
		in, out := &in.Invert, &out.Invert
		*out = new(bool)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteHeader.
func (in *HTTPRouteHeader) DeepCopy() *HTTPRouteHeader {
	if in == nil {
		return nil
	}
	out := new(HTTPRouteHeader)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPRouteMatch) DeepCopyInto(out *HTTPRouteMatch) {
	*out = *in
	if in.Headers != nil {
		in, out := &in.Headers, &out.Headers
		*out = make([]HTTPRouteHeader, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Method != nil {
		in, out := &in.Method, &out.Method
		*out = new(string)
		**out = **in
	}
	if in.Scheme != nil {
		in, out := &in.Scheme, &out.Scheme
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteMatch.
func (in *HTTPRouteMatch) DeepCopy() *HTTPRouteMatch {
	if in == nil {
		return nil
	}
	out := new(HTTPRouteMatch)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPTimeout) DeepCopyInto(out *HTTPTimeout) {
	*out = *in
	if in.PerRequest != nil {
		in, out := &in.PerRequest, &out.PerRequest
		*out = new(Duration)
		**out = **in
	}
	if in.Idle != nil {
		in, out := &in.Idle, &out.Idle
		*out = new(Duration)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPTimeout.
func (in *HTTPTimeout) DeepCopy() *HTTPTimeout {
	if in == nil {
		return nil
	}
	out := new(HTTPTimeout)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HeaderMatchMethod) DeepCopyInto(out *HeaderMatchMethod) {
	*out = *in
	if in.Exact != nil {
		in, out := &in.Exact, &out.Exact
		*out = new(string)
		**out = **in
	}
	if in.Prefix != nil {
		in, out := &in.Prefix, &out.Prefix
		*out = new(string)
		**out = **in
	}
	if in.Range != nil {
		in, out := &in.Range, &out.Range
		*out = new(MatchRange)
		**out = **in
	}
	if in.Regex != nil {
		in, out := &in.Regex, &out.Regex
		*out = new(string)
		**out = **in
	}
	if in.Suffix != nil {
		in, out := &in.Suffix, &out.Suffix
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HeaderMatchMethod.
func (in *HeaderMatchMethod) DeepCopy() *HeaderMatchMethod {
	if in == nil {
		return nil
	}
	out := new(HeaderMatchMethod)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HealthCheckPolicy) DeepCopyInto(out *HealthCheckPolicy) {
	*out = *in
	if in.Path != nil {
		in, out := &in.Path, &out.Path
		*out = new(string)
		**out = **in
	}
	if in.Port != nil {
		in, out := &in.Port, &out.Port
		*out = new(PortNumber)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheckPolicy.
func (in *HealthCheckPolicy) DeepCopy() *HealthCheckPolicy {
	if in == nil {
		return nil
	}
	out := new(HealthCheckPolicy)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Listener) DeepCopyInto(out *Listener) {
	*out = *in
	out.PortMapping = in.PortMapping
	if in.HealthCheck != nil {
		in, out := &in.HealthCheck, &out.HealthCheck
		*out = new(HealthCheckPolicy)
		(*in).DeepCopyInto(*out)
	}
	if in.OutlierDetection != nil {
		in, out := &in.OutlierDetection, &out.OutlierDetection
		*out = new(OutlierDetection)
		**out = **in
	}
	if in.ConnectionPool != nil {
		in, out := &in.ConnectionPool, &out.ConnectionPool
		*out = new(VirtualNodeConnectionPool)
		(*in).DeepCopyInto(*out)
	}
	if in.TLS != nil {
		in, out := &in.TLS, &out.TLS
		*out = new(ListenerTLS)
		(*in).DeepCopyInto(*out)
	}
	if in.Timeout != nil {
		in, out := &in.Timeout, &out.Timeout
		*out = new(ListenerTimeout)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Listener.
func (in *Listener) DeepCopy() *Listener {
	if in == nil {
		return nil
	}
	out := new(Listener)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ListenerTLS) DeepCopyInto(out *ListenerTLS) {
	*out = *in
	in.Certificate.DeepCopyInto(&out.Certificate)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerTLS.
func (in *ListenerTLS) DeepCopy() *ListenerTLS {
	if in == nil {
		return nil
	}
	out := new(ListenerTLS)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ListenerTLSACMCertificate) DeepCopyInto(out *ListenerTLSACMCertificate) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerTLSACMCertificate.
func (in *ListenerTLSACMCertificate) DeepCopy() *ListenerTLSACMCertificate {
	if in == nil {
		return nil
	}
	out := new(ListenerTLSACMCertificate)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ListenerTLSCertificate) DeepCopyInto(out *ListenerTLSCertificate) {
	*out = *in
	if in.ACM != nil {
		in, out := &in.ACM, &out.ACM
		*out = new(ListenerTLSACMCertificate)
		**out = **in
	}
	if in.File != nil {
		in, out := &in.File, &out.File
		*out = new(ListenerTLSFileCertificate)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerTLSCertificate.
func (in *ListenerTLSCertificate) DeepCopy() *ListenerTLSCertificate {
	if in == nil {
		return nil
	}
	out := new(ListenerTLSCertificate)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ListenerTLSFileCertificate) DeepCopyInto(out *ListenerTLSFileCertificate) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerTLSFileCertificate.
func (in *ListenerTLSFileCertificate) DeepCopy() *ListenerTLSFileCertificate {
	if in == nil {
		return nil
	}
	out := new(ListenerTLSFileCertificate)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ListenerTimeout) DeepCopyInto(out *ListenerTimeout) {
	*out = *in
	if in.TCP != nil {
		in, out := &in.TCP, &out.TCP
		*out = new(TCPTimeout)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTP != nil {
		in, out := &in.HTTP, &out.HTTP
		*out = new(HTTPTimeout)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTP2 != nil {
		in, out := &in.HTTP2, &out.HTTP2
		*out = new(HTTPTimeout)
		(*in).DeepCopyInto(*out)
	}
	if in.GRPC != nil {
		in, out := &in.GRPC, &out.GRPC
		*out = new(GRPCTimeout)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerTimeout.
func (in *ListenerTimeout) DeepCopy() *ListenerTimeout {
	if in == nil {
		return nil
	}
	out := new(ListenerTimeout)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Logging) DeepCopyInto(out *Logging) {
	*out = *in
	if in.AccessLog != nil {
		in, out := &in.AccessLog, &out.AccessLog
		*out = new(AccessLog)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Logging.
func (in *Logging) DeepCopy() *Logging {
	if in == nil {
		return nil
	}
	out := new(Logging)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MatchRange) DeepCopyInto(out *MatchRange) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchRange.
func (in *MatchRange) DeepCopy() *MatchRange {
	if in == nil {
		return nil
	}
	out := new(MatchRange)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MeshReference) DeepCopyInto(out *MeshReference) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshReference.
func (in *MeshReference) DeepCopy() *MeshReference {
	if in == nil {
		return nil
	}
	out := new(MeshReference)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OutlierDetection) DeepCopyInto(out *OutlierDetection) {
	*out = *in
	out.Interval = in.Interval
	out.BaseEjectionDuration = in.BaseEjectionDuration
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OutlierDetection.
func (in *OutlierDetection) DeepCopy() *OutlierDetection {
	if in == nil {
		return nil
	}
	out := new(OutlierDetection)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PortMapping) DeepCopyInto(out *PortMapping) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortMapping.
func (in *PortMapping) DeepCopy() *PortMapping {
	if in == nil {
		return nil
	}
	out := new(PortMapping)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Route) DeepCopyInto(out *Route) {
	*out = *in
	if in.GRPCRoute != nil {
		in, out := &in.GRPCRoute, &out.GRPCRoute
		*out = new(GRPCRoute)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTPRoute != nil {
		in, out := &in.HTTPRoute, &out.HTTPRoute
		*out = new(HTTPRoute)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTP2Route != nil {
		in, out := &in.HTTP2Route, &out.HTTP2Route
		*out = new(HTTPRoute)
		(*in).DeepCopyInto(*out)
	}
	if in.TCPRoute != nil {
		in, out := &in.TCPRoute, &out.TCPRoute
		*out = new(TCPRoute)
		(*in).DeepCopyInto(*out)
	}
	if in.Priority != nil {
		in, out := &in.Priority, &out.Priority
		*out = new(int64)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Route.
func (in *Route) DeepCopy() *Route {
	if in == nil {
		return nil
	}
	out := new(Route)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServiceDiscovery) DeepCopyInto(out *ServiceDiscovery) {
	*out = *in
	if in.AWSCloudMap != nil {
		in, out := &in.AWSCloudMap, &out.AWSCloudMap
		*out = new(AWSCloudMapServiceDiscovery)
		(*in).DeepCopyInto(*out)
	}
	if in.DNS != nil {
		in, out := &in.DNS, &out.DNS
		*out = new(DNSServiceDiscovery)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDiscovery.
func (in *ServiceDiscovery) DeepCopy() *ServiceDiscovery {
	if in == nil {
		return nil
	}
	out := new(ServiceDiscovery)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TCPConnectionPool) DeepCopyInto(out *TCPConnectionPool) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPConnectionPool.
func (in *TCPConnectionPool) DeepCopy() *TCPConnectionPool {
	if in == nil {
		return nil
	}
	out := new(TCPConnectionPool)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TCPRoute) DeepCopyInto(out *TCPRoute) {
	*out = *in
	in.Action.DeepCopyInto(&out.Action)
	if in.Timeout != nil {
		in, out := &in.Timeout, &out.Timeout
		*out = new(TCPTimeout)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPRoute.
func (in *TCPRoute) DeepCopy() *TCPRoute {
	if in == nil {
		return nil
	}
	out := new(TCPRoute)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TCPRouteAction) DeepCopyInto(out *TCPRouteAction) {
	*out = *in
	if in.WeightedTargets != nil {
		in, out := &in.WeightedTargets, &out.WeightedTargets
		*out = make([]WeightedTarget, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPRouteAction.
func (in *TCPRouteAction) DeepCopy() *TCPRouteAction {
	if in == nil {
		return nil
	}
	out := new(TCPRouteAction)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TCPTimeout) DeepCopyInto(out *TCPTimeout) {
	*out = *in
	if in.Idle != nil {
		in, out := &in.Idle, &out.Idle
		*out = new(Duration)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPTimeout.
func (in *TCPTimeout) DeepCopy() *TCPTimeout {
	if in == nil {
		return nil
	}
	out := new(TCPTimeout)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TLSValidationContext) DeepCopyInto(out *TLSValidationContext) {
	*out = *in
	in.Trust.DeepCopyInto(&out.Trust)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSValidationContext.
func (in *TLSValidationContext) DeepCopy() *TLSValidationContext {
	if in == nil {
		return nil
	}
	out := new(TLSValidationContext)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TLSValidationContextACMTrust) DeepCopyInto(out *TLSValidationContextACMTrust) {
	*out = *in
	if in.CertificateAuthorityARNs != nil {
		in, out := &in.CertificateAuthorityARNs, &out.CertificateAuthorityARNs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSValidationContextACMTrust.
func (in *TLSValidationContextACMTrust) DeepCopy() *TLSValidationContextACMTrust {
	if in == nil {
		return nil
	}
	out := new(TLSValidationContextACMTrust)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TLSValidationContextFileTrust) DeepCopyInto(out *TLSValidationContextFileTrust) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSValidationContextFileTrust.
func (in *TLSValidationContextFileTrust) DeepCopy() *TLSValidationContextFileTrust {
	if in == nil {
		return nil
	}
	out := new(TLSValidationContextFileTrust)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TLSValidationContextTrust) DeepCopyInto(out *TLSValidationContextTrust) {
	*out = *in
	if in.ACM != nil {
		in, out := &in.ACM, &out.ACM
		*out = new(TLSValidationContextACMTrust)
		(*in).DeepCopyInto(*out)
	}
	if in.File != nil {
		in, out := &in.File, &out.File
		*out = new(TLSValidationContextFileTrust)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSValidationContextTrust.
func (in *TLSValidationContextTrust) DeepCopy() *TLSValidationContextTrust {
	if in == nil {
		return nil
	}
	out := new(TLSValidationContextTrust)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualGatewayReference) DeepCopyInto(out *VirtualGatewayReference) {
	*out = *in
	if in.Namespace != nil {
		in, out := &in.Namespace, &out.Namespace
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualGatewayReference.
func (in *VirtualGatewayReference) DeepCopy() *VirtualGatewayReference {
	if in == nil {
		return nil
	}
	out := new(VirtualGatewayReference)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualNode) DeepCopyInto(out *VirtualNode) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNode.
func (in *VirtualNode) DeepCopy() *VirtualNode {
	if in == nil {
		return nil
	}
	out := new(VirtualNode)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *VirtualNode) 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 *VirtualNodeCondition) DeepCopyInto(out *VirtualNodeCondition) {
	*out = *in
	if in.LastTransitionTime != nil {
		in, out := &in.LastTransitionTime, &out.LastTransitionTime
		*out = (*in).DeepCopy()
	}
	if in.Reason != nil {
		in, out := &in.Reason, &out.Reason
		*out = new(string)
		**out = **in
	}
	if in.Message != nil {
		in, out := &in.Message, &out.Message
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNodeCondition.
func (in *VirtualNodeCondition) DeepCopy() *VirtualNodeCondition {
	if in == nil {
		return nil
	}
	out := new(VirtualNodeCondition)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualNodeConnectionPool) DeepCopyInto(out *VirtualNodeConnectionPool) {
	*out = *in
	if in.TCP != nil {
		in, out := &in.TCP, &out.TCP
		*out = new(TCPConnectionPool)
		**out = **in
	}
	if in.HTTP != nil {
		in, out := &in.HTTP, &out.HTTP
		*out = new(HTTPConnectionPool)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTP2 != nil {
		in, out := &in.HTTP2, &out.HTTP2
		*out = new(HTTP2ConnectionPool)
		**out = **in
	}
	if in.GRPC != nil {
		in, out := &in.GRPC, &out.GRPC
		*out = new(GRPCConnectionPool)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNodeConnectionPool.
func (in *VirtualNodeConnectionPool) DeepCopy() *VirtualNodeConnectionPool {
	if in == nil {
		return nil
	}
	out := new(VirtualNodeConnectionPool)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualNodeList) DeepCopyInto(out *VirtualNodeList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]VirtualNode, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNodeList.
func (in *VirtualNodeList) DeepCopy() *VirtualNodeList {
	if in == nil {
		return nil
	}
	out := new(VirtualNodeList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *VirtualNodeList) 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 *VirtualNodeReference) DeepCopyInto(out *VirtualNodeReference) {
	*out = *in
	if in.Namespace != nil {
		in, out := &in.Namespace, &out.Namespace
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNodeReference.
func (in *VirtualNodeReference) DeepCopy() *VirtualNodeReference {
	if in == nil {
		return nil
	}
	out := new(VirtualNodeReference)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualNodeServiceProvider) DeepCopyInto(out *VirtualNodeServiceProvider) {
	*out = *in
	if in.VirtualNodeRef != nil {
		in, out := &in.VirtualNodeRef, &out.VirtualNodeRef
		*out = new(VirtualNodeReference)
		(*in).DeepCopyInto(*out)
	}
	if in.VirtualNodeARN != nil {
		in, out := &in.VirtualNodeARN, &out.VirtualNodeARN
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNodeServiceProvider.
func (in *VirtualNodeServiceProvider) DeepCopy() *VirtualNodeServiceProvider {
	if in == nil {
		return nil
	}
	out := new(VirtualNodeServiceProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualNodeSpec) DeepCopyInto(out *VirtualNodeSpec) {
	*out = *in
	if in.AWSName != nil {
		in, out := &in.AWSName, &out.AWSName
		*out = new(string)
		**out = **in
	}
	if in.PodSelector != nil {
		in, out := &in.PodSelector, &out.PodSelector
		*out = new(v1.LabelSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Listeners != nil {
		in, out := &in.Listeners, &out.Listeners
		*out = make([]Listener, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ServiceDiscovery != nil {
		in, out := &in.ServiceDiscovery, &out.ServiceDiscovery
		*out = new(ServiceDiscovery)
		(*in).DeepCopyInto(*out)
	}
	if in.Backends != nil {
		in, out := &in.Backends, &out.Backends
		*out = make([]Backend, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.BackendDefaults != nil {
		in, out := &in.BackendDefaults, &out.BackendDefaults
		*out = new(BackendDefaults)
		(*in).DeepCopyInto(*out)
	}
	if in.Logging != nil {
		in, out := &in.Logging, &out.Logging
		*out = new(Logging)
		(*in).DeepCopyInto(*out)
	}
	if in.MeshRef != nil {
		in, out := &in.MeshRef, &out.MeshRef
		*out = new(MeshReference)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNodeSpec.
func (in *VirtualNodeSpec) DeepCopy() *VirtualNodeSpec {
	if in == nil {
		return nil
	}
	out := new(VirtualNodeSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualNodeStatus) DeepCopyInto(out *VirtualNodeStatus) {
	*out = *in
	if in.VirtualNodeARN != nil {
		in, out := &in.VirtualNodeARN, &out.VirtualNodeARN
		*out = new(string)
		**out = **in
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]VirtualNodeCondition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ObservedGeneration != nil {
		in, out := &in.ObservedGeneration, &out.ObservedGeneration
		*out = new(int64)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNodeStatus.
func (in *VirtualNodeStatus) DeepCopy() *VirtualNodeStatus {
	if in == nil {
		return nil
	}
	out := new(VirtualNodeStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualRouter) DeepCopyInto(out *VirtualRouter) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualRouter.
func (in *VirtualRouter) DeepCopy() *VirtualRouter {
	if in == nil {
		return nil
	}
	out := new(VirtualRouter)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *VirtualRouter) 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 *VirtualRouterCondition) DeepCopyInto(out *VirtualRouterCondition) {
	*out = *in
	if in.LastTransitionTime != nil {
		in, out := &in.LastTransitionTime, &out.LastTransitionTime
		*out = (*in).DeepCopy()
	}
	if in.Reason != nil {
		in, out := &in.Reason, &out.Reason
		*out = new(string)
		**out = **in
	}
	if in.Message != nil {
		in, out := &in.Message, &out.Message
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualRouterCondition.
func (in *VirtualRouterCondition) DeepCopy() *VirtualRouterCondition {
	if in == nil {
		return nil
	}
	out := new(VirtualRouterCondition)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualRouterList) DeepCopyInto(out *VirtualRouterList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]VirtualRouter, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualRouterList.
func (in *VirtualRouterList) DeepCopy() *VirtualRouterList {
	if in == nil {
		return nil
	}
	out := new(VirtualRouterList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *VirtualRouterList) 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 *VirtualRouterListener) DeepCopyInto(out *VirtualRouterListener) {
	*out = *in
	out.PortMapping = in.PortMapping
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualRouterListener.
func (in *VirtualRouterListener) DeepCopy() *VirtualRouterListener {
	if in == nil {
		return nil
	}
	out := new(VirtualRouterListener)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualRouterReference) DeepCopyInto(out *VirtualRouterReference) {
	*out = *in
	if in.Namespace != nil {
		in, out := &in.Namespace, &out.Namespace
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualRouterReference.
func (in *VirtualRouterReference) DeepCopy() *VirtualRouterReference {
	if in == nil {
		return nil
	}
	out := new(VirtualRouterReference)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualRouterServiceProvider) DeepCopyInto(out *VirtualRouterServiceProvider) {
	*out = *in
	if in.VirtualRouterRef != nil {
		in, out := &in.VirtualRouterRef, &out.VirtualRouterRef
		*out = new(VirtualRouterReference)
		(*in).DeepCopyInto(*out)
	}
	if in.VirtualRouterARN != nil {
		in, out := &in.VirtualRouterARN, &out.VirtualRouterARN
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualRouterServiceProvider.
func (in *VirtualRouterServiceProvider) DeepCopy() *VirtualRouterServiceProvider {
	if in == nil {
		return nil
	}
	out := new(VirtualRouterServiceProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualRouterSpec) DeepCopyInto(out *VirtualRouterSpec) {
	*out = *in
	if in.AWSName != nil {
		in, out := &in.AWSName, &out.AWSName
		*out = new(string)
		**out = **in
	}
	if in.Listeners != nil {
		in, out := &in.Listeners, &out.Listeners
		*out = make([]VirtualRouterListener, len(*in))
		copy(*out, *in)
	}
	if in.Routes != nil {
		in, out := &in.Routes, &out.Routes
		*out = make([]Route, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.MeshRef != nil {
		in, out := &in.MeshRef, &out.MeshRef
		*out = new(MeshReference)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualRouterSpec.
func (in *VirtualRouterSpec) DeepCopy() *VirtualRouterSpec {
	if in == nil {
		return nil
	}
	out := new(VirtualRouterSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualRouterStatus) DeepCopyInto(out *VirtualRouterStatus) {
	*out = *in
	if in.VirtualRouterARN != nil {
		in, out := &in.VirtualRouterARN, &out.VirtualRouterARN
		*out = new(string)
		**out = **in
	}
	if in.RouteARNs != nil {
		in, out := &in.RouteARNs, &out.RouteARNs
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]VirtualRouterCondition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ObservedGeneration != nil {
		in, out := &in.ObservedGeneration, &out.ObservedGeneration
		*out = new(int64)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualRouterStatus.
func (in *VirtualRouterStatus) DeepCopy() *VirtualRouterStatus {
	if in == nil {
		return nil
	}
	out := new(VirtualRouterStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualService) DeepCopyInto(out *VirtualService) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualService.
func (in *VirtualService) DeepCopy() *VirtualService {
	if in == nil {
		return nil
	}
	out := new(VirtualService)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *VirtualService) 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 *VirtualServiceBackend) DeepCopyInto(out *VirtualServiceBackend) {
	*out = *in
	if in.VirtualServiceRef != nil {
		in, out := &in.VirtualServiceRef, &out.VirtualServiceRef
		*out = new(VirtualServiceReference)
		(*in).DeepCopyInto(*out)
	}
	if in.VirtualServiceARN != nil {
		in, out := &in.VirtualServiceARN, &out.VirtualServiceARN
		*out = new(string)
		**out = **in
	}
	if in.ClientPolicy != nil {
		in, out := &in.ClientPolicy, &out.ClientPolicy
		*out = new(ClientPolicy)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualServiceBackend.
func (in *VirtualServiceBackend) DeepCopy() *VirtualServiceBackend {
	if in == nil {
		return nil
	}
	out := new(VirtualServiceBackend)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualServiceCondition) DeepCopyInto(out *VirtualServiceCondition) {
	*out = *in
	if in.LastTransitionTime != nil {
		in, out := &in.LastTransitionTime, &out.LastTransitionTime
		*out = (*in).DeepCopy()
	}
	if in.Reason != nil {
		in, out := &in.Reason, &out.Reason
		*out = new(string)
		**out = **in
	}
	if in.Message != nil {
		in, out := &in.Message, &out.Message
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualServiceCondition.
func (in *VirtualServiceCondition) DeepCopy() *VirtualServiceCondition {
	if in == nil {
		return nil
	}
	out := new(VirtualServiceCondition)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualServiceList) DeepCopyInto(out *VirtualServiceList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]VirtualService, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualServiceList.
func (in *VirtualServiceList) DeepCopy() *VirtualServiceList {
	if in == nil {
		return nil
	}
	out := new(VirtualServiceList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *VirtualServiceList) 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 *VirtualServiceProvider) DeepCopyInto(out *VirtualServiceProvider) {
	*out = *in
	if in.VirtualNode != nil {
		in, out := &in.VirtualNode, &out.VirtualNode
		*out = new(VirtualNodeServiceProvider)
		(*in).DeepCopyInto(*out)
	}
	if in.VirtualRouter != nil {
		in, out := &in.VirtualRouter, &out.VirtualRouter
		*out = new(VirtualRouterServiceProvider)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualServiceProvider.
func (in *VirtualServiceProvider) DeepCopy() *VirtualServiceProvider {
	if in == nil {
		return nil
	}
	out := new(VirtualServiceProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualServiceReference) DeepCopyInto(out *VirtualServiceReference) {
	*out = *in
	if in.Namespace != nil {
		in, out := &in.Namespace, &out.Namespace
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualServiceReference.
func (in *VirtualServiceReference) DeepCopy() *VirtualServiceReference {
	if in == nil {
		return nil
	}
	out := new(VirtualServiceReference)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualServiceSpec) DeepCopyInto(out *VirtualServiceSpec) {
	*out = *in
	if in.AWSName != nil {
		in, out := &in.AWSName, &out.AWSName
		*out = new(string)
		**out = **in
	}
	if in.Provider != nil {
		in, out := &in.Provider, &out.Provider
		*out = new(VirtualServiceProvider)
		(*in).DeepCopyInto(*out)
	}
	if in.MeshRef != nil {
		in, out := &in.MeshRef, &out.MeshRef
		*out = new(MeshReference)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualServiceSpec.
func (in *VirtualServiceSpec) DeepCopy() *VirtualServiceSpec {
	if in == nil {
		return nil
	}
	out := new(VirtualServiceSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualServiceStatus) DeepCopyInto(out *VirtualServiceStatus) {
	*out = *in
	if in.VirtualServiceARN != nil {
		in, out := &in.VirtualServiceARN, &out.VirtualServiceARN
		*out = new(string)
		**out = **in
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]VirtualServiceCondition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ObservedGeneration != nil {
		in, out := &in.ObservedGeneration, &out.ObservedGeneration
		*out = new(int64)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualServiceStatus.
func (in *VirtualServiceStatus) DeepCopy() *VirtualServiceStatus {
	if in == nil {
		return nil
	}
	out := new(VirtualServiceStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WeightedTarget) DeepCopyInto(out *WeightedTarget) {
	*out = *in
	if in.VirtualNodeRef != nil {
		in, out := &in.VirtualNodeRef, &out.VirtualNodeRef
		*out = new(VirtualNodeReference)
		(*in).DeepCopyInto(*out)
	}
	if in.VirtualNodeARN != nil {
		in, out := &in.VirtualNodeARN, &out.VirtualNodeARN
		*out = new(string)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightedTarget.
func (in *WeightedTarget) DeepCopy() *WeightedTarget {
	if in == nil {
		return nil
	}
	out := new(WeightedTarget)
	in.DeepCopyInto(out)
	return out
}
