func (in *XDLJobList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
package v1alpha1
import (
	modelv1alpha1 "github.com/alibaba/kubedl/apis/model/v1alpha1"
	"github.com/alibaba/kubedl/pkg/job_controller/api/v1"
	"k8s.io/apimachinery/pkg/runtime"
)
func (in *ElasticDLJob) DeepCopyInto(out *ElasticDLJob) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *ElasticDLJob) DeepCopy() *ElasticDLJob {
	if in == nil {
		return nil
	}
	out := new(ElasticDLJob)
	in.DeepCopyInto(out)
	return out
}
func (in *ElasticDLJob) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ElasticDLJobList) DeepCopyInto(out *ElasticDLJobList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ElasticDLJob, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *ElasticDLJobList) DeepCopy() *ElasticDLJobList {
	if in == nil {
		return nil
	}
	out := new(ElasticDLJobList)
	in.DeepCopyInto(out)
	return out
}
func (in *ElasticDLJobList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *ElasticDLJobSpec) DeepCopyInto(out *ElasticDLJobSpec) {
	*out = *in
	in.RunPolicy.DeepCopyInto(&out.RunPolicy)
	if in.ElasticDLReplicaSpecs != nil {
		in, out := &in.ElasticDLReplicaSpecs, &out.ElasticDLReplicaSpecs
		*out = make(map[v1.ReplicaType]*v1.ReplicaSpec, len(*in))
		for key, val := range *in {
			var outVal *v1.ReplicaSpec
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(v1.ReplicaSpec)
				(*in).DeepCopyInto(*out)
			}
			(*out)[key] = outVal
		}
	}
}
func (in *ElasticDLJobSpec) DeepCopy() *ElasticDLJobSpec {
	if in == nil {
		return nil
	}
	out := new(ElasticDLJobSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *LegacyV1Alpha1) DeepCopyInto(out *LegacyV1Alpha1) {
	*out = *in
	if in.DeprecatedGPUs != nil {
		in, out := &in.DeprecatedGPUs, &out.DeprecatedGPUs
		*out = new(int32)
		**out = **in
	}
	if in.GPUsPerNode != nil {
		in, out := &in.GPUsPerNode, &out.GPUsPerNode
		*out = new(int32)
		**out = **in
	}
	if in.ProcessingUnits != nil {
		in, out := &in.ProcessingUnits, &out.ProcessingUnits
		*out = new(int32)
		**out = **in
	}
	if in.ProcessingUnitsPerNode != nil {
		in, out := &in.ProcessingUnitsPerNode, &out.ProcessingUnitsPerNode
		*out = new(int32)
		**out = **in
	}
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(int32)
		**out = **in
	}
	in.Template.DeepCopyInto(&out.Template)
}
func (in *LegacyV1Alpha1) DeepCopy() *LegacyV1Alpha1 {
	if in == nil {
		return nil
	}
	out := new(LegacyV1Alpha1)
	in.DeepCopyInto(out)
	return out
}
func (in *LegacyV1Alpha2) DeepCopyInto(out *LegacyV1Alpha2) {
	*out = *in
	if in.MPIDistribution != nil {
		in, out := &in.MPIDistribution, &out.MPIDistribution
		*out = new(MPIDistributionType)
		**out = **in
	}
}
func (in *LegacyV1Alpha2) DeepCopy() *LegacyV1Alpha2 {
	if in == nil {
		return nil
	}
	out := new(LegacyV1Alpha2)
	in.DeepCopyInto(out)
	return out
}
func (in *MPIJob) DeepCopyInto(out *MPIJob) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *MPIJob) DeepCopy() *MPIJob {
	if in == nil {
		return nil
	}
	out := new(MPIJob)
	in.DeepCopyInto(out)
	return out
}
func (in *MPIJob) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *MPIJobLegacySpec) DeepCopyInto(out *MPIJobLegacySpec) {
	*out = *in
	if in.RunPolicy != nil {
		in, out := &in.RunPolicy, &out.RunPolicy
		*out = new(v1.RunPolicy)
		(*in).DeepCopyInto(*out)
	}
	if in.LegacyV1Alpha1 != nil {
		in, out := &in.LegacyV1Alpha1, &out.LegacyV1Alpha1
		*out = new(LegacyV1Alpha1)
		(*in).DeepCopyInto(*out)
	}
	if in.LegacyV1Alpha2 != nil {
		in, out := &in.LegacyV1Alpha2, &out.LegacyV1Alpha2
		*out = new(LegacyV1Alpha2)
		(*in).DeepCopyInto(*out)
	}
}
func (in *MPIJobLegacySpec) DeepCopy() *MPIJobLegacySpec {
	if in == nil {
		return nil
	}
	out := new(MPIJobLegacySpec)
	in.DeepCopyInto(out)
	return out
}
func (in *MPIJobList) DeepCopyInto(out *MPIJobList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]MPIJob, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *MPIJobList) DeepCopy() *MPIJobList {
	if in == nil {
		return nil
	}
	out := new(MPIJobList)
	in.DeepCopyInto(out)
	return out
}
func (in *MPIJobList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *MPIJobSpec) DeepCopyInto(out *MPIJobSpec) {
	*out = *in
	if in.SlotsPerWorker != nil {
		in, out := &in.SlotsPerWorker, &out.SlotsPerWorker
		*out = new(int32)
		**out = **in
	}
	if in.MPIReplicaSpecs != nil {
		in, out := &in.MPIReplicaSpecs, &out.MPIReplicaSpecs
		*out = make(map[v1.ReplicaType]*v1.ReplicaSpec, len(*in))
		for key, val := range *in {
			var outVal *v1.ReplicaSpec
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(v1.ReplicaSpec)
				(*in).DeepCopyInto(*out)
			}
			(*out)[key] = outVal
		}
	}
	in.RunPolicy.DeepCopyInto(&out.RunPolicy)
	if in.MPIJobLegacySpec != nil {
		in, out := &in.MPIJobLegacySpec, &out.MPIJobLegacySpec
		*out = new(MPIJobLegacySpec)
		(*in).DeepCopyInto(*out)
	}
}
func (in *MPIJobSpec) DeepCopy() *MPIJobSpec {
	if in == nil {
		return nil
	}
	out := new(MPIJobSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *MarsJob) DeepCopyInto(out *MarsJob) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *MarsJob) DeepCopy() *MarsJob {
	if in == nil {
		return nil
	}
	out := new(MarsJob)
	in.DeepCopyInto(out)
	return out
}
func (in *MarsJob) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *MarsJobList) DeepCopyInto(out *MarsJobList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]MarsJob, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *MarsJobList) DeepCopy() *MarsJobList {
	if in == nil {
		return nil
	}
	out := new(MarsJobList)
	in.DeepCopyInto(out)
	return out
}
func (in *MarsJobList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *MarsJobSpec) DeepCopyInto(out *MarsJobSpec) {
	*out = *in
	in.RunPolicy.DeepCopyInto(&out.RunPolicy)
	if in.WorkerMemoryTuningPolicy != nil {
		in, out := &in.WorkerMemoryTuningPolicy, &out.WorkerMemoryTuningPolicy
		*out = new(MarsWorkerMemoryTuningPolicy)
		(*in).DeepCopyInto(*out)
	}
	if in.WebHost != nil {
		in, out := &in.WebHost, &out.WebHost
		*out = new(string)
		**out = **in
	}
	if in.MarsReplicaSpecs != nil {
		in, out := &in.MarsReplicaSpecs, &out.MarsReplicaSpecs
		*out = make(map[v1.ReplicaType]*v1.ReplicaSpec, len(*in))
		for key, val := range *in {
			var outVal *v1.ReplicaSpec
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(v1.ReplicaSpec)
				(*in).DeepCopyInto(*out)
			}
			(*out)[key] = outVal
		}
	}
}
func (in *MarsJobSpec) DeepCopy() *MarsJobSpec {
	if in == nil {
		return nil
	}
	out := new(MarsJobSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *MarsJobStatus) DeepCopyInto(out *MarsJobStatus) {
	*out = *in
	in.JobStatus.DeepCopyInto(&out.JobStatus)
	if in.WebServiceAddresses != nil {
		in, out := &in.WebServiceAddresses, &out.WebServiceAddresses
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}
func (in *MarsJobStatus) DeepCopy() *MarsJobStatus {
	if in == nil {
		return nil
	}
	out := new(MarsJobStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *MarsWorkerMemoryTuningPolicy) DeepCopyInto(out *MarsWorkerMemoryTuningPolicy) {
	*out = *in
	if in.PlasmaStore != nil {
		in, out := &in.PlasmaStore, &out.PlasmaStore
		*out = new(string)
		**out = **in
	}
	if in.LockFreeFileIO != nil {
		in, out := &in.LockFreeFileIO, &out.LockFreeFileIO
		*out = new(bool)
		**out = **in
	}
	if in.SpillDirs != nil {
		in, out := &in.SpillDirs, &out.SpillDirs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.WorkerCachePercentage != nil {
		in, out := &in.WorkerCachePercentage, &out.WorkerCachePercentage
		*out = new(int32)
		**out = **in
	}
	if in.WorkerCacheSize != nil {
		in, out := &in.WorkerCacheSize, &out.WorkerCacheSize
		x := (*in).DeepCopy()
		*out = &x
	}
}
func (in *MarsWorkerMemoryTuningPolicy) DeepCopy() *MarsWorkerMemoryTuningPolicy {
	if in == nil {
		return nil
	}
	out := new(MarsWorkerMemoryTuningPolicy)
	in.DeepCopyInto(out)
	return out
}
func (in *PyTorchJob) DeepCopyInto(out *PyTorchJob) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *PyTorchJob) DeepCopy() *PyTorchJob {
	if in == nil {
		return nil
	}
	out := new(PyTorchJob)
	in.DeepCopyInto(out)
	return out
}
func (in *PyTorchJob) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *PyTorchJobList) DeepCopyInto(out *PyTorchJobList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]PyTorchJob, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *PyTorchJobList) DeepCopy() *PyTorchJobList {
	if in == nil {
		return nil
	}
	out := new(PyTorchJobList)
	in.DeepCopyInto(out)
	return out
}
func (in *PyTorchJobList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *PyTorchJobSpec) DeepCopyInto(out *PyTorchJobSpec) {
	*out = *in
	in.RunPolicy.DeepCopyInto(&out.RunPolicy)
	if in.PyTorchReplicaSpecs != nil {
		in, out := &in.PyTorchReplicaSpecs, &out.PyTorchReplicaSpecs
		*out = make(map[v1.ReplicaType]*v1.ReplicaSpec, len(*in))
		for key, val := range *in {
			var outVal *v1.ReplicaSpec
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(v1.ReplicaSpec)
				(*in).DeepCopyInto(*out)
			}
			(*out)[key] = outVal
		}
	}
	if in.ModelVersion != nil {
		in, out := &in.ModelVersion, &out.ModelVersion
		*out = new(modelv1alpha1.ModelVersionSpec)
		(*in).DeepCopyInto(*out)
	}
}
func (in *PyTorchJobSpec) DeepCopy() *PyTorchJobSpec {
	if in == nil {
		return nil
	}
	out := new(PyTorchJobSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *PyTorchJobStatus) DeepCopyInto(out *PyTorchJobStatus) {
	*out = *in
}
func (in *PyTorchJobStatus) DeepCopy() *PyTorchJobStatus {
	if in == nil {
		return nil
	}
	out := new(PyTorchJobStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *TFJob) DeepCopyInto(out *TFJob) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *TFJob) DeepCopy() *TFJob {
	if in == nil {
		return nil
	}
	out := new(TFJob)
	in.DeepCopyInto(out)
	return out
}
func (in *TFJob) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *TFJobList) DeepCopyInto(out *TFJobList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]TFJob, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *TFJobList) DeepCopy() *TFJobList {
	if in == nil {
		return nil
	}
	out := new(TFJobList)
	in.DeepCopyInto(out)
	return out
}
func (in *TFJobList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *TFJobSpec) DeepCopyInto(out *TFJobSpec) {
	*out = *in
	in.RunPolicy.DeepCopyInto(&out.RunPolicy)
	if in.SuccessPolicy != nil {
		in, out := &in.SuccessPolicy, &out.SuccessPolicy
		*out = new(v1.SuccessPolicy)
		**out = **in
	}
	if in.TFReplicaSpecs != nil {
		in, out := &in.TFReplicaSpecs, &out.TFReplicaSpecs
		*out = make(map[v1.ReplicaType]*v1.ReplicaSpec, len(*in))
		for key, val := range *in {
			var outVal *v1.ReplicaSpec
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(v1.ReplicaSpec)
				(*in).DeepCopyInto(*out)
			}
			(*out)[key] = outVal
		}
	}
	if in.ModelVersion != nil {
		in, out := &in.ModelVersion, &out.ModelVersion
		*out = new(modelv1alpha1.ModelVersionSpec)
		(*in).DeepCopyInto(*out)
	}
}
func (in *TFJobSpec) DeepCopy() *TFJobSpec {
	if in == nil {
		return nil
	}
	out := new(TFJobSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *XDLJob) DeepCopyInto(out *XDLJob) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *XDLJob) DeepCopy() *XDLJob {
	if in == nil {
		return nil
	}
	out := new(XDLJob)
	in.DeepCopyInto(out)
	return out
}
func (in *XDLJob) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *XDLJobList) DeepCopyInto(out *XDLJobList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]XDLJob, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *XDLJobList) DeepCopy() *XDLJobList {
	if in == nil {
		return nil
	}
	out := new(XDLJobList)
	in.DeepCopyInto(out)
	return out
}