func (in *ReplicaSpec) DeepCopyInto(out *ReplicaSpec) {
	*out = *in
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(int)
		**out = **in
	}
	in.Template.DeepCopyInto(&out.Template)
}
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
package v1alpha1
import (
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *DGLJob) DeepCopyInto(out *DGLJob) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}
func (in *DGLJob) DeepCopy() *DGLJob {
	if in == nil {
		return nil
	}
	out := new(DGLJob)
	in.DeepCopyInto(out)
	return out
}
func (in *DGLJob) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *DGLJobList) DeepCopyInto(out *DGLJobList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]DGLJob, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}
func (in *DGLJobList) DeepCopy() *DGLJobList {
	if in == nil {
		return nil
	}
	out := new(DGLJobList)
	in.DeepCopyInto(out)
	return out
}
func (in *DGLJobList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *DGLJobSpec) DeepCopyInto(out *DGLJobSpec) {
	*out = *in
	if in.SlotsPerWorker != nil {
		in, out := &in.SlotsPerWorker, &out.SlotsPerWorker
		*out = new(int)
		**out = **in
	}
	if in.CleanPodPolicy != nil {
		in, out := &in.CleanPodPolicy, &out.CleanPodPolicy
		*out = new(CleanPodPolicy)
		**out = **in
	}
	if in.DGLReplicaSpecs != nil {
		in, out := &in.DGLReplicaSpecs, &out.DGLReplicaSpecs
		*out = make(map[ReplicaType]*ReplicaSpec, len(*in))
		for key := range *in {
			var outVal *ReplicaSpec
			val := (*in)[key]
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(ReplicaSpec)
				(*in).DeepCopyInto(*out)
			}
			(*out)[key] = outVal
		}
	}
}
func (in *DGLJobSpec) DeepCopy() *DGLJobSpec {
	if in == nil {
		return nil
	}
	out := new(DGLJobSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DGLJobStatus) DeepCopyInto(out *DGLJobStatus) {
	*out = *in
	if in.ReplicaStatuses != nil {
		in, out := &in.ReplicaStatuses, &out.ReplicaStatuses
		*out = make(map[ReplicaType]*ReplicaStatus, len(*in))
		for key := range *in {
			var outVal *ReplicaStatus
			val := (*in)[key]
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(ReplicaStatus)
				**out = **in
			}
			(*out)[key] = outVal
		}
	}
	if in.StartTime != nil {
		in, out := &in.StartTime, &out.StartTime
		*out = (*in).DeepCopy()
	}
	if in.CompletionTime != nil {
		in, out := &in.CompletionTime, &out.CompletionTime
		*out = (*in).DeepCopy()
	}
	if in.LastReconcileTime != nil {
		in, out := &in.LastReconcileTime, &out.LastReconcileTime
		*out = (*in).DeepCopy()
	}
}
func (in *DGLJobStatus) DeepCopy() *DGLJobStatus {
	if in == nil {
		return nil
	}
	out := new(DGLJobStatus)
	in.DeepCopyInto(out)
	return out
}