func (in *RollingUpgradeStatus) DeepCopyInto(out *RollingUpgradeStatus) {
	*out = *in
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]RollingUpgradeCondition, len(*in))
		copy(*out, *in)
	}
	if in.LastNodeTerminationTime != nil {
		in, out := &in.LastNodeTerminationTime, &out.LastNodeTerminationTime
		*out = new(v1.Time)
		(*in).DeepCopyInto(*out)
	}
	if in.LastNodeDrainTime != nil {
		in, out := &in.LastNodeDrainTime, &out.LastNodeDrainTime
		*out = new(v1.Time)
		(*in).DeepCopyInto(*out)
	}
	if in.Statistics != nil {
		in, out := &in.Statistics, &out.Statistics
		*out = make([]*RollingUpgradeStatistics, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(RollingUpgradeStatistics)
				**out = **in
			}
		}
	}
	if in.LastBatchNodes != nil {
		in, out := &in.LastBatchNodes, &out.LastBatchNodes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
package v1alpha1
import (
	"k8s.io/apimachinery/pkg/apis/meta/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *NodeInProcessing) DeepCopyInto(out *NodeInProcessing) {
	*out = *in
	in.UpgradeStartTime.DeepCopyInto(&out.UpgradeStartTime)
	in.StepStartTime.DeepCopyInto(&out.StepStartTime)
	in.StepEndTime.DeepCopyInto(&out.StepEndTime)
}
func (in *NodeInProcessing) DeepCopy() *NodeInProcessing {
	if in == nil {
		return nil
	}
	out := new(NodeInProcessing)
	in.DeepCopyInto(out)
	return out
}
func (in *NodeReadinessGate) DeepCopyInto(out *NodeReadinessGate) {
	*out = *in
	if in.MatchLabels != nil {
		in, out := &in.MatchLabels, &out.MatchLabels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}
func (in *NodeReadinessGate) DeepCopy() *NodeReadinessGate {
	if in == nil {
		return nil
	}
	out := new(NodeReadinessGate)
	in.DeepCopyInto(out)
	return out
}
func (in *NodeStepDuration) DeepCopyInto(out *NodeStepDuration) {
	*out = *in
	out.Duration = in.Duration
}
func (in *NodeStepDuration) DeepCopy() *NodeStepDuration {
	if in == nil {
		return nil
	}
	out := new(NodeStepDuration)
	in.DeepCopyInto(out)
	return out
}
func (in *PostDrainSpec) DeepCopyInto(out *PostDrainSpec) {
	*out = *in
}
func (in *PostDrainSpec) DeepCopy() *PostDrainSpec {
	if in == nil {
		return nil
	}
	out := new(PostDrainSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *PostTerminateSpec) DeepCopyInto(out *PostTerminateSpec) {
	*out = *in
}
func (in *PostTerminateSpec) DeepCopy() *PostTerminateSpec {
	if in == nil {
		return nil
	}
	out := new(PostTerminateSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *PreDrainSpec) DeepCopyInto(out *PreDrainSpec) {
	*out = *in
}
func (in *PreDrainSpec) DeepCopy() *PreDrainSpec {
	if in == nil {
		return nil
	}
	out := new(PreDrainSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *RollingUpgrade) DeepCopyInto(out *RollingUpgrade) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *RollingUpgrade) DeepCopy() *RollingUpgrade {
	if in == nil {
		return nil
	}
	out := new(RollingUpgrade)
	in.DeepCopyInto(out)
	return out
}
func (in *RollingUpgrade) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *RollingUpgradeCondition) DeepCopyInto(out *RollingUpgradeCondition) {
	*out = *in
}
func (in *RollingUpgradeCondition) DeepCopy() *RollingUpgradeCondition {
	if in == nil {
		return nil
	}
	out := new(RollingUpgradeCondition)
	in.DeepCopyInto(out)
	return out
}
func (in *RollingUpgradeList) DeepCopyInto(out *RollingUpgradeList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]RollingUpgrade, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *RollingUpgradeList) DeepCopy() *RollingUpgradeList {
	if in == nil {
		return nil
	}
	out := new(RollingUpgradeList)
	in.DeepCopyInto(out)
	return out
}
func (in *RollingUpgradeList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *RollingUpgradeSpec) DeepCopyInto(out *RollingUpgradeSpec) {
	*out = *in
	out.PreDrain = in.PreDrain
	out.PostDrain = in.PostDrain
	out.PostTerminate = in.PostTerminate
	out.Strategy = in.Strategy
	if in.ReadinessGates != nil {
		in, out := &in.ReadinessGates, &out.ReadinessGates
		*out = make([]NodeReadinessGate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *RollingUpgradeSpec) DeepCopy() *RollingUpgradeSpec {
	if in == nil {
		return nil
	}
	out := new(RollingUpgradeSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *RollingUpgradeStatistics) DeepCopyInto(out *RollingUpgradeStatistics) {
	*out = *in
	out.DurationSum = in.DurationSum
}
func (in *RollingUpgradeStatistics) DeepCopy() *RollingUpgradeStatistics {
	if in == nil {
		return nil
	}
	out := new(RollingUpgradeStatistics)
	in.DeepCopyInto(out)
	return out
}