func (in *SuggestionStatus) DeepCopy() *SuggestionStatus {
	if in == nil {
		return nil
	}
	out := new(SuggestionStatus)
	in.DeepCopyInto(out)
	return out
}
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuggestionStatus.
package v1beta1
import (
	commonv1beta1 "github.com/kubeflow/katib/pkg/apis/controller/common/v1beta1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *Suggestion) DeepCopyInto(out *Suggestion) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}
func (in *Suggestion) DeepCopy() *Suggestion {
	if in == nil {
		return nil
	}
	out := new(Suggestion)
	in.DeepCopyInto(out)
	return out
}
func (in *Suggestion) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *SuggestionCondition) DeepCopyInto(out *SuggestionCondition) {
	*out = *in
	in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)
	in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
	return
}
func (in *SuggestionCondition) DeepCopy() *SuggestionCondition {
	if in == nil {
		return nil
	}
	out := new(SuggestionCondition)
	in.DeepCopyInto(out)
	return out
}
func (in *SuggestionList) DeepCopyInto(out *SuggestionList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Suggestion, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *SuggestionList) DeepCopy() *SuggestionList {
	if in == nil {
		return nil
	}
	out := new(SuggestionList)
	in.DeepCopyInto(out)
	return out
}
func (in *SuggestionList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *SuggestionSpec) DeepCopyInto(out *SuggestionSpec) {
	*out = *in
	if in.Algorithm != nil {
		in, out := &in.Algorithm, &out.Algorithm
		*out = new(commonv1beta1.AlgorithmSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.EarlyStopping != nil {
		in, out := &in.EarlyStopping, &out.EarlyStopping
		*out = new(commonv1beta1.EarlyStoppingSpec)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *SuggestionSpec) DeepCopy() *SuggestionSpec {
	if in == nil {
		return nil
	}
	out := new(SuggestionSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *SuggestionStatus) DeepCopyInto(out *SuggestionStatus) {
	*out = *in
	if in.AlgorithmSettings != nil {
		in, out := &in.AlgorithmSettings, &out.AlgorithmSettings
		*out = make([]commonv1beta1.AlgorithmSetting, len(*in))
		copy(*out, *in)
	}
	if in.Suggestions != nil {
		in, out := &in.Suggestions, &out.Suggestions
		*out = make([]TrialAssignment, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	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()
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]SuggestionCondition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}