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

/*
Copyright The Kubernetes 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 v1alpha1

import (
	json "encoding/json"

	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
	intstr "k8s.io/apimachinery/pkg/util/intstr"
)

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AnalysisRun) DeepCopyInto(out *AnalysisRun) {
	*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 AnalysisRun.
func (in *AnalysisRun) DeepCopy() *AnalysisRun {
	if in == nil {
		return nil
	}
	out := new(AnalysisRun)
	in.DeepCopyInto(out)
	return out
}

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *AnalysisRunList) 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 *AnalysisRunMetadata) DeepCopyInto(out *AnalysisRunMetadata) {
	*out = *in
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AnalysisRunSpec) DeepCopyInto(out *AnalysisRunSpec) {
	*out = *in
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = make([]Metric, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Args != nil {
		in, out := &in.Args, &out.Args
		*out = make([]Argument, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.DryRun != nil {
		in, out := &in.DryRun, &out.DryRun
		*out = make([]DryRun, len(*in))
		copy(*out, *in)
	}
	if in.MeasurementRetention != nil {
		in, out := &in.MeasurementRetention, &out.MeasurementRetention
		*out = make([]MeasurementRetention, len(*in))
		copy(*out, *in)
	}
	if in.TTLStrategy != nil {
		in, out := &in.TTLStrategy, &out.TTLStrategy
		*out = new(TTLStrategy)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AnalysisRunStatus) DeepCopyInto(out *AnalysisRunStatus) {
	*out = *in
	if in.MetricResults != nil {
		in, out := &in.MetricResults, &out.MetricResults
		*out = make([]MetricResult, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.StartedAt != nil {
		in, out := &in.StartedAt, &out.StartedAt
		*out = (*in).DeepCopy()
	}
	out.RunSummary = in.RunSummary
	if in.DryRunSummary != nil {
		in, out := &in.DryRunSummary, &out.DryRunSummary
		*out = new(RunSummary)
		**out = **in
	}
	if in.CompletedAt != nil {
		in, out := &in.CompletedAt, &out.CompletedAt
		*out = (*in).DeepCopy()
	}
	return
}

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *AnalysisTemplate) 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 *AnalysisTemplateList) DeepCopyInto(out *AnalysisTemplateList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]AnalysisTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AnalysisTemplateSpec) DeepCopyInto(out *AnalysisTemplateSpec) {
	*out = *in
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = make([]Metric, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Args != nil {
		in, out := &in.Args, &out.Args
		*out = make([]Argument, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.DryRun != nil {
		in, out := &in.DryRun, &out.DryRun
		*out = make([]DryRun, len(*in))
		copy(*out, *in)
	}
	if in.MeasurementRetention != nil {
		in, out := &in.MeasurementRetention, &out.MeasurementRetention
		*out = make([]MeasurementRetention, len(*in))
		copy(*out, *in)
	}
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = make([]AnalysisTemplateRef, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BlueGreenStrategy) DeepCopyInto(out *BlueGreenStrategy) {
	*out = *in
	if in.PreviewReplicaCount != nil {
		in, out := &in.PreviewReplicaCount, &out.PreviewReplicaCount
		*out = new(int32)
		**out = **in
	}
	if in.AutoPromotionEnabled != nil {
		in, out := &in.AutoPromotionEnabled, &out.AutoPromotionEnabled
		*out = new(bool)
		**out = **in
	}
	if in.MaxUnavailable != nil {
		in, out := &in.MaxUnavailable, &out.MaxUnavailable
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.ScaleDownDelaySeconds != nil {
		in, out := &in.ScaleDownDelaySeconds, &out.ScaleDownDelaySeconds
		*out = new(int32)
		**out = **in
	}
	if in.ScaleDownDelayRevisionLimit != nil {
		in, out := &in.ScaleDownDelayRevisionLimit, &out.ScaleDownDelayRevisionLimit
		*out = new(int32)
		**out = **in
	}
	if in.PrePromotionAnalysis != nil {
		in, out := &in.PrePromotionAnalysis, &out.PrePromotionAnalysis
		*out = new(RolloutAnalysis)
		(*in).DeepCopyInto(*out)
	}
	if in.AntiAffinity != nil {
		in, out := &in.AntiAffinity, &out.AntiAffinity
		*out = new(AntiAffinity)
		(*in).DeepCopyInto(*out)
	}
	if in.PostPromotionAnalysis != nil {
		in, out := &in.PostPromotionAnalysis, &out.PostPromotionAnalysis
		*out = new(RolloutAnalysis)
		(*in).DeepCopyInto(*out)
	}
	if in.PreviewMetadata != nil {
		in, out := &in.PreviewMetadata, &out.PreviewMetadata
		*out = new(PodTemplateMetadata)
		(*in).DeepCopyInto(*out)
	}
	if in.ActiveMetadata != nil {
		in, out := &in.ActiveMetadata, &out.ActiveMetadata
		*out = new(PodTemplateMetadata)
		(*in).DeepCopyInto(*out)
	}
	if in.AbortScaleDownDelaySeconds != nil {
		in, out := &in.AbortScaleDownDelaySeconds, &out.AbortScaleDownDelaySeconds
		*out = new(int32)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CanaryStatus) DeepCopyInto(out *CanaryStatus) {
	*out = *in
	if in.CurrentStepAnalysisRunStatus != nil {
		in, out := &in.CurrentStepAnalysisRunStatus, &out.CurrentStepAnalysisRunStatus
		*out = new(RolloutAnalysisRunStatus)
		**out = **in
	}
	if in.CurrentBackgroundAnalysisRunStatus != nil {
		in, out := &in.CurrentBackgroundAnalysisRunStatus, &out.CurrentBackgroundAnalysisRunStatus
		*out = new(RolloutAnalysisRunStatus)
		**out = **in
	}
	if in.Weights != nil {
		in, out := &in.Weights, &out.Weights
		*out = new(TrafficWeights)
		(*in).DeepCopyInto(*out)
	}
	if in.StepPluginStatuses != nil {
		in, out := &in.StepPluginStatuses, &out.StepPluginStatuses
		*out = make([]StepPluginStatus, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CanaryStep) DeepCopyInto(out *CanaryStep) {
	*out = *in
	if in.SetWeight != nil {
		in, out := &in.SetWeight, &out.SetWeight
		*out = new(int32)
		**out = **in
	}
	if in.Pause != nil {
		in, out := &in.Pause, &out.Pause
		*out = new(RolloutPause)
		(*in).DeepCopyInto(*out)
	}
	if in.Experiment != nil {
		in, out := &in.Experiment, &out.Experiment
		*out = new(RolloutExperimentStep)
		(*in).DeepCopyInto(*out)
	}
	if in.Analysis != nil {
		in, out := &in.Analysis, &out.Analysis
		*out = new(RolloutAnalysis)
		(*in).DeepCopyInto(*out)
	}
	if in.SetCanaryScale != nil {
		in, out := &in.SetCanaryScale, &out.SetCanaryScale
		*out = new(SetCanaryScale)
		(*in).DeepCopyInto(*out)
	}
	if in.SetHeaderRoute != nil {
		in, out := &in.SetHeaderRoute, &out.SetHeaderRoute
		*out = new(SetHeaderRoute)
		(*in).DeepCopyInto(*out)
	}
	if in.SetMirrorRoute != nil {
		in, out := &in.SetMirrorRoute, &out.SetMirrorRoute
		*out = new(SetMirrorRoute)
		(*in).DeepCopyInto(*out)
	}
	if in.Plugin != nil {
		in, out := &in.Plugin, &out.Plugin
		*out = new(PluginStep)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CanaryStrategy) DeepCopyInto(out *CanaryStrategy) {
	*out = *in
	if in.Steps != nil {
		in, out := &in.Steps, &out.Steps
		*out = make([]CanaryStep, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.TrafficRouting != nil {
		in, out := &in.TrafficRouting, &out.TrafficRouting
		*out = new(RolloutTrafficRouting)
		(*in).DeepCopyInto(*out)
	}
	if in.MaxUnavailable != nil {
		in, out := &in.MaxUnavailable, &out.MaxUnavailable
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.MaxSurge != nil {
		in, out := &in.MaxSurge, &out.MaxSurge
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.Analysis != nil {
		in, out := &in.Analysis, &out.Analysis
		*out = new(RolloutAnalysisBackground)
		(*in).DeepCopyInto(*out)
	}
	if in.AntiAffinity != nil {
		in, out := &in.AntiAffinity, &out.AntiAffinity
		*out = new(AntiAffinity)
		(*in).DeepCopyInto(*out)
	}
	if in.CanaryMetadata != nil {
		in, out := &in.CanaryMetadata, &out.CanaryMetadata
		*out = new(PodTemplateMetadata)
		(*in).DeepCopyInto(*out)
	}
	if in.StableMetadata != nil {
		in, out := &in.StableMetadata, &out.StableMetadata
		*out = new(PodTemplateMetadata)
		(*in).DeepCopyInto(*out)
	}
	if in.ScaleDownDelaySeconds != nil {
		in, out := &in.ScaleDownDelaySeconds, &out.ScaleDownDelaySeconds
		*out = new(int32)
		**out = **in
	}
	if in.ScaleDownDelayRevisionLimit != nil {
		in, out := &in.ScaleDownDelayRevisionLimit, &out.ScaleDownDelayRevisionLimit
		*out = new(int32)
		**out = **in
	}
	if in.AbortScaleDownDelaySeconds != nil {
		in, out := &in.AbortScaleDownDelaySeconds, &out.AbortScaleDownDelaySeconds
		*out = new(int32)
		**out = **in
	}
	if in.PingPong != nil {
		in, out := &in.PingPong, &out.PingPong
		*out = new(PingPongSpec)
		**out = **in
	}
	if in.MinPodsPerReplicaSet != nil {
		in, out := &in.MinPodsPerReplicaSet, &out.MinPodsPerReplicaSet
		*out = new(int32)
		**out = **in
	}
	if in.ReplicaProgressThreshold != nil {
		in, out := &in.ReplicaProgressThreshold, &out.ReplicaProgressThreshold
		*out = new(ReplicaProgressThreshold)
		**out = **in
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CloudWatchMetricDataQuery) DeepCopyInto(out *CloudWatchMetricDataQuery) {
	*out = *in
	if in.Expression != nil {
		in, out := &in.Expression, &out.Expression
		*out = new(string)
		**out = **in
	}
	if in.Label != nil {
		in, out := &in.Label, &out.Label
		*out = new(string)
		**out = **in
	}
	if in.MetricStat != nil {
		in, out := &in.MetricStat, &out.MetricStat
		*out = new(CloudWatchMetricStat)
		(*in).DeepCopyInto(*out)
	}
	if in.Period != nil {
		in, out := &in.Period, &out.Period
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.ReturnData != nil {
		in, out := &in.ReturnData, &out.ReturnData
		*out = new(bool)
		**out = **in
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CloudWatchMetricStatMetric) DeepCopyInto(out *CloudWatchMetricStatMetric) {
	*out = *in
	if in.Dimensions != nil {
		in, out := &in.Dimensions, &out.Dimensions
		*out = make([]CloudWatchMetricStatMetricDimension, len(*in))
		copy(*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 CloudWatchMetricStatMetric.
func (in *CloudWatchMetricStatMetric) DeepCopy() *CloudWatchMetricStatMetric {
	if in == nil {
		return nil
	}
	out := new(CloudWatchMetricStatMetric)
	in.DeepCopyInto(out)
	return out
}

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClusterAnalysisTemplate) 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 *ClusterAnalysisTemplateList) DeepCopyInto(out *ClusterAnalysisTemplateList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ClusterAnalysisTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClusterAnalysisTemplateList) 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 *DatadogMetric) DeepCopyInto(out *DatadogMetric) {
	*out = *in
	if in.Queries != nil {
		in, out := &in.Queries, &out.Queries
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	out.SecretRef = in.SecretRef
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Experiment) DeepCopyInto(out *Experiment) {
	*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 Experiment.
func (in *Experiment) DeepCopy() *Experiment {
	if in == nil {
		return nil
	}
	out := new(Experiment)
	in.DeepCopyInto(out)
	return out
}

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

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

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

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ExperimentList) 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 *ExperimentSpec) DeepCopyInto(out *ExperimentSpec) {
	*out = *in
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = make([]TemplateSpec, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ProgressDeadlineSeconds != nil {
		in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds
		*out = new(int32)
		**out = **in
	}
	if in.Analyses != nil {
		in, out := &in.Analyses, &out.Analyses
		*out = make([]ExperimentAnalysisTemplateRef, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ScaleDownDelaySeconds != nil {
		in, out := &in.ScaleDownDelaySeconds, &out.ScaleDownDelaySeconds
		*out = new(int32)
		**out = **in
	}
	if in.DryRun != nil {
		in, out := &in.DryRun, &out.DryRun
		*out = make([]DryRun, len(*in))
		copy(*out, *in)
	}
	if in.MeasurementRetention != nil {
		in, out := &in.MeasurementRetention, &out.MeasurementRetention
		*out = make([]MeasurementRetention, len(*in))
		copy(*out, *in)
	}
	in.AnalysisRunMetadata.DeepCopyInto(&out.AnalysisRunMetadata)
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExperimentStatus) DeepCopyInto(out *ExperimentStatus) {
	*out = *in
	if in.TemplateStatuses != nil {
		in, out := &in.TemplateStatuses, &out.TemplateStatuses
		*out = make([]TemplateStatus, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.AvailableAt != nil {
		in, out := &in.AvailableAt, &out.AvailableAt
		*out = (*in).DeepCopy()
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]ExperimentCondition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.AnalysisRuns != nil {
		in, out := &in.AnalysisRuns, &out.AnalysisRuns
		*out = make([]ExperimentAnalysisRunStatus, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *IstioVirtualService) DeepCopyInto(out *IstioVirtualService) {
	*out = *in
	if in.Routes != nil {
		in, out := &in.Routes, &out.Routes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.TLSRoutes != nil {
		in, out := &in.TLSRoutes, &out.TLSRoutes
		*out = make([]TLSRoute, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.TCPRoutes != nil {
		in, out := &in.TCPRoutes, &out.TCPRoutes
		*out = make([]TCPRoute, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Measurement) DeepCopyInto(out *Measurement) {
	*out = *in
	if in.StartedAt != nil {
		in, out := &in.StartedAt, &out.StartedAt
		*out = (*in).DeepCopy()
	}
	if in.FinishedAt != nil {
		in, out := &in.FinishedAt, &out.FinishedAt
		*out = (*in).DeepCopy()
	}
	if in.Metadata != nil {
		in, out := &in.Metadata, &out.Metadata
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.ResumeAt != nil {
		in, out := &in.ResumeAt, &out.ResumeAt
		*out = (*in).DeepCopy()
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Metric) DeepCopyInto(out *Metric) {
	*out = *in
	if in.Count != nil {
		in, out := &in.Count, &out.Count
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.FailureLimit != nil {
		in, out := &in.FailureLimit, &out.FailureLimit
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.InconclusiveLimit != nil {
		in, out := &in.InconclusiveLimit, &out.InconclusiveLimit
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.ConsecutiveErrorLimit != nil {
		in, out := &in.ConsecutiveErrorLimit, &out.ConsecutiveErrorLimit
		*out = new(intstr.IntOrString)
		**out = **in
	}
	in.Provider.DeepCopyInto(&out.Provider)
	if in.ConsecutiveSuccessLimit != nil {
		in, out := &in.ConsecutiveSuccessLimit, &out.ConsecutiveSuccessLimit
		*out = new(intstr.IntOrString)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricProvider) DeepCopyInto(out *MetricProvider) {
	*out = *in
	if in.Prometheus != nil {
		in, out := &in.Prometheus, &out.Prometheus
		*out = new(PrometheusMetric)
		(*in).DeepCopyInto(*out)
	}
	if in.Kayenta != nil {
		in, out := &in.Kayenta, &out.Kayenta
		*out = new(KayentaMetric)
		(*in).DeepCopyInto(*out)
	}
	if in.Web != nil {
		in, out := &in.Web, &out.Web
		*out = new(WebMetric)
		(*in).DeepCopyInto(*out)
	}
	if in.Datadog != nil {
		in, out := &in.Datadog, &out.Datadog
		*out = new(DatadogMetric)
		(*in).DeepCopyInto(*out)
	}
	if in.Wavefront != nil {
		in, out := &in.Wavefront, &out.Wavefront
		*out = new(WavefrontMetric)
		**out = **in
	}
	if in.NewRelic != nil {
		in, out := &in.NewRelic, &out.NewRelic
		*out = new(NewRelicMetric)
		(*in).DeepCopyInto(*out)
	}
	if in.Job != nil {
		in, out := &in.Job, &out.Job
		*out = new(JobMetric)
		(*in).DeepCopyInto(*out)
	}
	if in.CloudWatch != nil {
		in, out := &in.CloudWatch, &out.CloudWatch
		*out = new(CloudWatchMetric)
		(*in).DeepCopyInto(*out)
	}
	if in.Graphite != nil {
		in, out := &in.Graphite, &out.Graphite
		*out = new(GraphiteMetric)
		**out = **in
	}
	if in.Influxdb != nil {
		in, out := &in.Influxdb, &out.Influxdb
		*out = new(InfluxdbMetric)
		**out = **in
	}
	if in.SkyWalking != nil {
		in, out := &in.SkyWalking, &out.SkyWalking
		*out = new(SkyWalkingMetric)
		**out = **in
	}
	if in.Plugin != nil {
		in, out := &in.Plugin, &out.Plugin
		*out = make(map[string]json.RawMessage, len(*in))
		for key, val := range *in {
			var outVal []byte
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make(json.RawMessage, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricResult) DeepCopyInto(out *MetricResult) {
	*out = *in
	if in.Measurements != nil {
		in, out := &in.Measurements, &out.Measurements
		*out = make([]Measurement, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Metadata != nil {
		in, out := &in.Metadata, &out.Metadata
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NginxTrafficRouting) DeepCopyInto(out *NginxTrafficRouting) {
	*out = *in
	if in.AdditionalIngressAnnotations != nil {
		in, out := &in.AdditionalIngressAnnotations, &out.AdditionalIngressAnnotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.StableIngresses != nil {
		in, out := &in.StableIngresses, &out.StableIngresses
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.CanaryIngressAnnotations != nil {
		in, out := &in.CanaryIngressAnnotations, &out.CanaryIngressAnnotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodTemplateMetadata) DeepCopyInto(out *PodTemplateMetadata) {
	*out = *in
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PrometheusMetric) DeepCopyInto(out *PrometheusMetric) {
	*out = *in
	in.Authentication.DeepCopyInto(&out.Authentication)
	if in.Timeout != nil {
		in, out := &in.Timeout, &out.Timeout
		*out = new(int64)
		**out = **in
	}
	if in.Headers != nil {
		in, out := &in.Headers, &out.Headers
		*out = make([]WebMetricHeader, len(*in))
		copy(*out, *in)
	}
	if in.RangeQuery != nil {
		in, out := &in.RangeQuery, &out.RangeQuery
		*out = new(PrometheusRangeQueryArgs)
		**out = **in
	}
	return
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Rollout) DeepCopyInto(out *Rollout) {
	*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 Rollout.
func (in *Rollout) DeepCopy() *Rollout {
	if in == nil {
		return nil
	}
	out := new(Rollout)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Rollout) 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 *RolloutAnalysis) DeepCopyInto(out *RolloutAnalysis) {
	*out = *in
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = make([]AnalysisTemplateRef, len(*in))
		copy(*out, *in)
	}
	if in.Args != nil {
		in, out := &in.Args, &out.Args
		*out = make([]AnalysisRunArgument, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.DryRun != nil {
		in, out := &in.DryRun, &out.DryRun
		*out = make([]DryRun, len(*in))
		copy(*out, *in)
	}
	if in.MeasurementRetention != nil {
		in, out := &in.MeasurementRetention, &out.MeasurementRetention
		*out = make([]MeasurementRetention, len(*in))
		copy(*out, *in)
	}
	in.AnalysisRunMetadata.DeepCopyInto(&out.AnalysisRunMetadata)
	return
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RolloutExperimentStep) DeepCopyInto(out *RolloutExperimentStep) {
	*out = *in
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = make([]RolloutExperimentTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Analyses != nil {
		in, out := &in.Analyses, &out.Analyses
		*out = make([]RolloutExperimentStepAnalysisTemplateRef, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.DryRun != nil {
		in, out := &in.DryRun, &out.DryRun
		*out = make([]DryRun, len(*in))
		copy(*out, *in)
	}
	in.AnalysisRunMetadata.DeepCopyInto(&out.AnalysisRunMetadata)
	if in.ScaleDownDelaySeconds != nil {
		in, out := &in.ScaleDownDelaySeconds, &out.ScaleDownDelaySeconds
		*out = new(int32)
		**out = **in
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RolloutExperimentTemplate) DeepCopyInto(out *RolloutExperimentTemplate) {
	*out = *in
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(int32)
		**out = **in
	}
	in.Metadata.DeepCopyInto(&out.Metadata)
	if in.Selector != nil {
		in, out := &in.Selector, &out.Selector
		*out = new(v1.LabelSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Weight != nil {
		in, out := &in.Weight, &out.Weight
		*out = new(int32)
		**out = **in
	}
	if in.Service != nil {
		in, out := &in.Service, &out.Service
		*out = new(TemplateService)
		**out = **in
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RolloutSpec) DeepCopyInto(out *RolloutSpec) {
	*out = *in
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(int32)
		**out = **in
	}
	if in.Selector != nil {
		in, out := &in.Selector, &out.Selector
		*out = new(v1.LabelSelector)
		(*in).DeepCopyInto(*out)
	}
	in.Template.DeepCopyInto(&out.Template)
	if in.WorkloadRef != nil {
		in, out := &in.WorkloadRef, &out.WorkloadRef
		*out = new(ObjectRef)
		**out = **in
	}
	if in.RollbackWindow != nil {
		in, out := &in.RollbackWindow, &out.RollbackWindow
		*out = new(RollbackWindowSpec)
		**out = **in
	}
	in.Strategy.DeepCopyInto(&out.Strategy)
	if in.RevisionHistoryLimit != nil {
		in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit
		*out = new(int32)
		**out = **in
	}
	if in.ProgressDeadlineSeconds != nil {
		in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds
		*out = new(int32)
		**out = **in
	}
	if in.RestartAt != nil {
		in, out := &in.RestartAt, &out.RestartAt
		*out = (*in).DeepCopy()
	}
	if in.Analysis != nil {
		in, out := &in.Analysis, &out.Analysis
		*out = new(AnalysisRunStrategy)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RolloutStatus) DeepCopyInto(out *RolloutStatus) {
	*out = *in
	if in.PauseConditions != nil {
		in, out := &in.PauseConditions, &out.PauseConditions
		*out = make([]PauseCondition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.AbortedAt != nil {
		in, out := &in.AbortedAt, &out.AbortedAt
		*out = (*in).DeepCopy()
	}
	if in.CurrentStepIndex != nil {
		in, out := &in.CurrentStepIndex, &out.CurrentStepIndex
		*out = new(int32)
		**out = **in
	}
	if in.CollisionCount != nil {
		in, out := &in.CollisionCount, &out.CollisionCount
		*out = new(int32)
		**out = **in
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]RolloutCondition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	in.Canary.DeepCopyInto(&out.Canary)
	in.BlueGreen.DeepCopyInto(&out.BlueGreen)
	if in.RestartedAt != nil {
		in, out := &in.RestartedAt, &out.RestartedAt
		*out = (*in).DeepCopy()
	}
	if in.ALB != nil {
		in, out := &in.ALB, &out.ALB
		*out = new(ALBStatus)
		**out = **in
	}
	if in.ALBs != nil {
		in, out := &in.ALBs, &out.ALBs
		*out = make([]ALBStatus, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RolloutTrafficRouting) DeepCopyInto(out *RolloutTrafficRouting) {
	*out = *in
	if in.Istio != nil {
		in, out := &in.Istio, &out.Istio
		*out = new(IstioTrafficRouting)
		(*in).DeepCopyInto(*out)
	}
	if in.Nginx != nil {
		in, out := &in.Nginx, &out.Nginx
		*out = new(NginxTrafficRouting)
		(*in).DeepCopyInto(*out)
	}
	if in.ALB != nil {
		in, out := &in.ALB, &out.ALB
		*out = new(ALBTrafficRouting)
		(*in).DeepCopyInto(*out)
	}
	if in.SMI != nil {
		in, out := &in.SMI, &out.SMI
		*out = new(SMITrafficRouting)
		**out = **in
	}
	if in.Ambassador != nil {
		in, out := &in.Ambassador, &out.Ambassador
		*out = new(AmbassadorTrafficRouting)
		(*in).DeepCopyInto(*out)
	}
	if in.AppMesh != nil {
		in, out := &in.AppMesh, &out.AppMesh
		*out = new(AppMeshTrafficRouting)
		(*in).DeepCopyInto(*out)
	}
	if in.Traefik != nil {
		in, out := &in.Traefik, &out.Traefik
		*out = new(TraefikTrafficRouting)
		**out = **in
	}
	if in.ManagedRoutes != nil {
		in, out := &in.ManagedRoutes, &out.ManagedRoutes
		*out = make([]MangedRoutes, len(*in))
		copy(*out, *in)
	}
	if in.Apisix != nil {
		in, out := &in.Apisix, &out.Apisix
		*out = new(ApisixTrafficRouting)
		(*in).DeepCopyInto(*out)
	}
	if in.Plugins != nil {
		in, out := &in.Plugins, &out.Plugins
		*out = make(map[string]json.RawMessage, len(*in))
		for key, val := range *in {
			var outVal []byte
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make(json.RawMessage, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.MaxTrafficWeight != nil {
		in, out := &in.MaxTrafficWeight, &out.MaxTrafficWeight
		*out = new(int32)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RouteMatch) DeepCopyInto(out *RouteMatch) {
	*out = *in
	if in.Method != nil {
		in, out := &in.Method, &out.Method
		*out = new(StringMatch)
		**out = **in
	}
	if in.Path != nil {
		in, out := &in.Path, &out.Path
		*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 {
			(*out)[key] = val
		}
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *StepPluginStatus) DeepCopyInto(out *StepPluginStatus) {
	*out = *in
	if in.StartedAt != nil {
		in, out := &in.StartedAt, &out.StartedAt
		*out = (*in).DeepCopy()
	}
	if in.UpdatedAt != nil {
		in, out := &in.UpdatedAt, &out.UpdatedAt
		*out = (*in).DeepCopy()
	}
	if in.FinishedAt != nil {
		in, out := &in.FinishedAt, &out.FinishedAt
		*out = (*in).DeepCopy()
	}
	if in.Status != nil {
		in, out := &in.Status, &out.Status
		*out = make(json.RawMessage, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringMatch.
func (in *StringMatch) DeepCopy() *StringMatch {
	if in == nil {
		return nil
	}
	out := new(StringMatch)
	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
	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 *TLSRoute) DeepCopyInto(out *TLSRoute) {
	*out = *in
	if in.SNIHosts != nil {
		in, out := &in.SNIHosts, &out.SNIHosts
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TemplateSpec) DeepCopyInto(out *TemplateSpec) {
	*out = *in
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(int32)
		**out = **in
	}
	if in.Selector != nil {
		in, out := &in.Selector, &out.Selector
		*out = new(v1.LabelSelector)
		(*in).DeepCopyInto(*out)
	}
	in.Template.DeepCopyInto(&out.Template)
	if in.Service != nil {
		in, out := &in.Service, &out.Service
		*out = new(TemplateService)
		**out = **in
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TrafficWeights) DeepCopyInto(out *TrafficWeights) {
	*out = *in
	out.Canary = in.Canary
	out.Stable = in.Stable
	if in.Additional != nil {
		in, out := &in.Additional, &out.Additional
		*out = make([]WeightDestination, len(*in))
		copy(*out, *in)
	}
	if in.Verified != nil {
		in, out := &in.Verified, &out.Verified
		*out = new(bool)
		**out = **in
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WebMetric) DeepCopyInto(out *WebMetric) {
	*out = *in
	if in.Headers != nil {
		in, out := &in.Headers, &out.Headers
		*out = make([]WebMetricHeader, len(*in))
		copy(*out, *in)
	}
	if in.JSONBody != nil {
		in, out := &in.JSONBody, &out.JSONBody
		*out = make(json.RawMessage, len(*in))
		copy(*out, *in)
	}
	in.Authentication.DeepCopyInto(&out.Authentication)
	return
}

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

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

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

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

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