func (in *NodeAffinityTerm) DeepCopyInto(out *NodeAffinityTerm) {
	*out = *in
	if in.Values != nil {
		in, out := &in.Values, &out.Values
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
package v1alpha1
import (
	json "encoding/json"
	v1 "k8s.io/api/core/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *AggregatedAttributes) DeepCopyInto(out *AggregatedAttributes) {
	*out = *in
	if in.DownsampleOptions != nil {
		in, out := &in.DownsampleOptions, &out.DownsampleOptions
		*out = new(DownsampleOptions)
		**out = **in
	}
	return
}
func (in *AggregatedAttributes) DeepCopy() *AggregatedAttributes {
	if in == nil {
		return nil
	}
	out := new(AggregatedAttributes)
	in.DeepCopyInto(out)
	return out
}
func (in *Aggregation) DeepCopyInto(out *Aggregation) {
	*out = *in
	in.Attributes.DeepCopyInto(&out.Attributes)
	return
}
func (in *Aggregation) DeepCopy() *Aggregation {
	if in == nil {
		return nil
	}
	out := new(Aggregation)
	in.DeepCopyInto(out)
	return out
}
func (in *AggregationOptions) DeepCopyInto(out *AggregationOptions) {
	*out = *in
	if in.Aggregations != nil {
		in, out := &in.Aggregations, &out.Aggregations
		*out = make([]Aggregation, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *AggregationOptions) DeepCopy() *AggregationOptions {
	if in == nil {
		return nil
	}
	out := new(AggregationOptions)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterCondition) DeepCopyInto(out *ClusterCondition) {
	*out = *in
	return
}
func (in *ClusterCondition) DeepCopy() *ClusterCondition {
	if in == nil {
		return nil
	}
	out := new(ClusterCondition)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
	*out = *in
	if in.IsolationGroups != nil {
		in, out := &in.IsolationGroups, &out.IsolationGroups
		*out = make([]IsolationGroup, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Namespaces != nil {
		in, out := &in.Namespaces, &out.Namespaces
		*out = make([]Namespace, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.EtcdEndpoints != nil {
		in, out := &in.EtcdEndpoints, &out.EtcdEndpoints
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ConfigMapName != nil {
		in, out := &in.ConfigMapName, &out.ConfigMapName
		*out = new(string)
		**out = **in
	}
	if in.PodIdentityConfig != nil {
		in, out := &in.PodIdentityConfig, &out.PodIdentityConfig
		*out = new(PodIdentityConfig)
		(*in).DeepCopyInto(*out)
	}
	in.ContainerResources.DeepCopyInto(&out.ContainerResources)
	if in.DataDirVolumeClaimTemplate != nil {
		in, out := &in.DataDirVolumeClaimTemplate, &out.DataDirVolumeClaimTemplate
		*out = new(v1.PersistentVolumeClaim)
		(*in).DeepCopyInto(*out)
	}
	if in.PodSecurityContext != nil {
		in, out := &in.PodSecurityContext, &out.PodSecurityContext
		*out = new(v1.PodSecurityContext)
		(*in).DeepCopyInto(*out)
	}
	if in.SecurityContext != nil {
		in, out := &in.SecurityContext, &out.SecurityContext
		*out = new(v1.SecurityContext)
		(*in).DeepCopyInto(*out)
	}
	if in.ImagePullSecrets != nil {
		in, out := &in.ImagePullSecrets, &out.ImagePullSecrets
		*out = make([]v1.LocalObjectReference, len(*in))
		copy(*out, *in)
	}
	if in.EnvVars != nil {
		in, out := &in.EnvVars, &out.EnvVars
		*out = make([]v1.EnvVar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	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
		}
	}
	if in.Tolerations != nil {
		in, out := &in.Tolerations, &out.Tolerations
		*out = make([]v1.Toleration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.DNSPolicy != nil {
		in, out := &in.DNSPolicy, &out.DNSPolicy
		*out = new(v1.DNSPolicy)
		**out = **in
	}
	if in.ExternalCoordinator != nil {
		in, out := &in.ExternalCoordinator, &out.ExternalCoordinator
		*out = new(ExternalCoordinatorConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.InitContainers != nil {
		in, out := &in.InitContainers, &out.InitContainers
		*out = make([]v1.Container, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.InitVolumes != nil {
		in, out := &in.InitVolumes, &out.InitVolumes
		*out = make([]v1.Volume, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	in.PodMetadata.DeepCopyInto(&out.PodMetadata)
	if in.ParallelPodManagement != nil {
		in, out := &in.ParallelPodManagement, &out.ParallelPodManagement
		*out = new(bool)
		**out = **in
	}
	if in.SidecarContainers != nil {
		in, out := &in.SidecarContainers, &out.SidecarContainers
		*out = make([]v1.Container, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.SidecarVolumes != nil {
		in, out := &in.SidecarVolumes, &out.SidecarVolumes
		*out = make([]v1.Volume, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *ClusterSpec) DeepCopy() *ClusterSpec {
	if in == nil {
		return nil
	}
	out := new(ClusterSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DownsampleOptions) DeepCopyInto(out *DownsampleOptions) {
	*out = *in
	return
}
func (in *DownsampleOptions) DeepCopy() *DownsampleOptions {
	if in == nil {
		return nil
	}
	out := new(DownsampleOptions)
	in.DeepCopyInto(out)
	return out
}
func (in *ExtendedOptions) DeepCopyInto(out *ExtendedOptions) {
	*out = *in
	if in.Options != nil {
		in, out := &in.Options, &out.Options
		*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
}
func (in *ExtendedOptions) DeepCopy() *ExtendedOptions {
	if in == nil {
		return nil
	}
	out := new(ExtendedOptions)
	in.DeepCopyInto(out)
	return out
}
func (in *ExternalCoordinatorConfig) DeepCopyInto(out *ExternalCoordinatorConfig) {
	*out = *in
	if in.Selector != nil {
		in, out := &in.Selector, &out.Selector
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}
func (in *ExternalCoordinatorConfig) DeepCopy() *ExternalCoordinatorConfig {
	if in == nil {
		return nil
	}
	out := new(ExternalCoordinatorConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *IndexOptions) DeepCopyInto(out *IndexOptions) {
	*out = *in
	return
}
func (in *IndexOptions) DeepCopy() *IndexOptions {
	if in == nil {
		return nil
	}
	out := new(IndexOptions)
	in.DeepCopyInto(out)
	return out
}
func (in *IsolationGroup) DeepCopyInto(out *IsolationGroup) {
	*out = *in
	if in.NodeAffinityTerms != nil {
		in, out := &in.NodeAffinityTerms, &out.NodeAffinityTerms
		*out = make([]NodeAffinityTerm, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *IsolationGroup) DeepCopy() *IsolationGroup {
	if in == nil {
		return nil
	}
	out := new(IsolationGroup)
	in.DeepCopyInto(out)
	return out
}
func (in IsolationGroups) DeepCopyInto(out *IsolationGroups) {
	{
		in := &in
		*out = make(IsolationGroups, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
		return
	}
}
func (in IsolationGroups) DeepCopy() IsolationGroups {
	if in == nil {
		return nil
	}
	out := new(IsolationGroups)
	in.DeepCopyInto(out)
	return *out
}
func (in *M3DBCluster) DeepCopyInto(out *M3DBCluster) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
	return
}
func (in *M3DBCluster) DeepCopy() *M3DBCluster {
	if in == nil {
		return nil
	}
	out := new(M3DBCluster)
	in.DeepCopyInto(out)
	return out
}
func (in *M3DBCluster) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *M3DBClusterList) DeepCopyInto(out *M3DBClusterList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]M3DBCluster, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *M3DBClusterList) DeepCopy() *M3DBClusterList {
	if in == nil {
		return nil
	}
	out := new(M3DBClusterList)
	in.DeepCopyInto(out)
	return out
}
func (in *M3DBClusterList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}
func (in *M3DBStatus) DeepCopyInto(out *M3DBStatus) {
	*out = *in
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]ClusterCondition, len(*in))
		copy(*out, *in)
	}
	return
}
func (in *M3DBStatus) DeepCopy() *M3DBStatus {
	if in == nil {
		return nil
	}
	out := new(M3DBStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *Namespace) DeepCopyInto(out *Namespace) {
	*out = *in
	if in.Options != nil {
		in, out := &in.Options, &out.Options
		*out = new(NamespaceOptions)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *Namespace) DeepCopy() *Namespace {
	if in == nil {
		return nil
	}
	out := new(Namespace)
	in.DeepCopyInto(out)
	return out
}
func (in *NamespaceOptions) DeepCopyInto(out *NamespaceOptions) {
	*out = *in
	out.RetentionOptions = in.RetentionOptions
	out.IndexOptions = in.IndexOptions
	in.AggregationOptions.DeepCopyInto(&out.AggregationOptions)
	if in.ExtendedOptions != nil {
		in, out := &in.ExtendedOptions, &out.ExtendedOptions
		*out = new(ExtendedOptions)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *NamespaceOptions) DeepCopy() *NamespaceOptions {
	if in == nil {
		return nil
	}
	out := new(NamespaceOptions)
	in.DeepCopyInto(out)
	return out
}