func (in *PDFailureMember) DeepCopy() *PDFailureMember {
	if in == nil {
		return nil
	}
	out := new(PDFailureMember)
	in.DeepCopyInto(out)
	return out
}
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PDFailureMember.
package v1alpha1
import (
	appsv1 "k8s.io/api/apps/v1"
	v1 "k8s.io/api/core/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *ComponentSpec) DeepCopyInto(out *ComponentSpec) {
	*out = *in
	if in.Version != nil {
		in, out := &in.Version, &out.Version
		*out = new(string)
		**out = **in
	}
	if in.ImagePullPolicy != nil {
		in, out := &in.ImagePullPolicy, &out.ImagePullPolicy
		*out = new(v1.PullPolicy)
		**out = **in
	}
	if in.HostNetwork != nil {
		in, out := &in.HostNetwork, &out.HostNetwork
		*out = new(bool)
		**out = **in
	}
	if in.Affinity != nil {
		in, out := &in.Affinity, &out.Affinity
		*out = new(v1.Affinity)
		(*in).DeepCopyInto(*out)
	}
	if in.PriorityClassName != nil {
		in, out := &in.PriorityClassName, &out.PriorityClassName
		*out = new(string)
		**out = **in
	}
	if in.SchedulerName != nil {
		in, out := &in.SchedulerName, &out.SchedulerName
		*out = new(string)
		**out = **in
	}
	if in.NodeSelector != nil {
		in, out := &in.NodeSelector, &out.NodeSelector
		*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.PodSecurityContext != nil {
		in, out := &in.PodSecurityContext, &out.PodSecurityContext
		*out = new(v1.PodSecurityContext)
		(*in).DeepCopyInto(*out)
	}
	if in.ConfigUpdateStrategy != nil {
		in, out := &in.ConfigUpdateStrategy, &out.ConfigUpdateStrategy
		*out = new(ConfigUpdateStrategy)
		**out = **in
	}
	if in.Env != nil {
		in, out := &in.Env, &out.Env
		*out = make([]v1.EnvVar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *ComponentSpec) DeepCopy() *ComponentSpec {
	if in == nil {
		return nil
	}
	out := new(ComponentSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *DashboardConfig) DeepCopyInto(out *DashboardConfig) {
	*out = *in
	if in.TiDBCAPath != nil {
		in, out := &in.TiDBCAPath, &out.TiDBCAPath
		*out = new(string)
		**out = **in
	}
	if in.TiDBCertPath != nil {
		in, out := &in.TiDBCertPath, &out.TiDBCertPath
		*out = new(string)
		**out = **in
	}
	if in.TiDBKeyPath != nil {
		in, out := &in.TiDBKeyPath, &out.TiDBKeyPath
		*out = new(string)
		**out = **in
	}
	if in.PublicPathPrefix != nil {
		in, out := &in.PublicPathPrefix, &out.PublicPathPrefix
		*out = new(string)
		**out = **in
	}
	return
}
func (in *DashboardConfig) DeepCopy() *DashboardConfig {
	if in == nil {
		return nil
	}
	out := new(DashboardConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *DiscoverySpec) DeepCopyInto(out *DiscoverySpec) {
	*out = *in
	in.ResourceRequirements.DeepCopyInto(&out.ResourceRequirements)
	return
}
func (in *DiscoverySpec) DeepCopy() *DiscoverySpec {
	if in == nil {
		return nil
	}
	out := new(DiscoverySpec)
	in.DeepCopyInto(out)
	return out
}
func (in *FileLogConfig) DeepCopyInto(out *FileLogConfig) {
	*out = *in
	if in.Filename != nil {
		in, out := &in.Filename, &out.Filename
		*out = new(string)
		**out = **in
	}
	if in.LogRotate != nil {
		in, out := &in.LogRotate, &out.LogRotate
		*out = new(bool)
		**out = **in
	}
	if in.MaxSize != nil {
		in, out := &in.MaxSize, &out.MaxSize
		*out = new(int)
		**out = **in
	}
	if in.MaxDays != nil {
		in, out := &in.MaxDays, &out.MaxDays
		*out = new(int)
		**out = **in
	}
	if in.MaxBackups != nil {
		in, out := &in.MaxBackups, &out.MaxBackups
		*out = new(int)
		**out = **in
	}
	return
}
func (in *FileLogConfig) DeepCopy() *FileLogConfig {
	if in == nil {
		return nil
	}
	out := new(FileLogConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *MasterKeyFileConfig) DeepCopyInto(out *MasterKeyFileConfig) {
	*out = *in
	if in.Method != nil {
		in, out := &in.Method, &out.Method
		*out = new(string)
		**out = **in
	}
	if in.Path != nil {
		in, out := &in.Path, &out.Path
		*out = new(string)
		**out = **in
	}
	return
}
func (in *MasterKeyFileConfig) DeepCopy() *MasterKeyFileConfig {
	if in == nil {
		return nil
	}
	out := new(MasterKeyFileConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *MasterKeyKMSConfig) DeepCopyInto(out *MasterKeyKMSConfig) {
	*out = *in
	if in.KeyID != nil {
		in, out := &in.KeyID, &out.KeyID
		*out = new(string)
		**out = **in
	}
	if in.AccessKey != nil {
		in, out := &in.AccessKey, &out.AccessKey
		*out = new(string)
		**out = **in
	}
	if in.SecretKey != nil {
		in, out := &in.SecretKey, &out.SecretKey
		*out = new(string)
		**out = **in
	}
	if in.Region != nil {
		in, out := &in.Region, &out.Region
		*out = new(string)
		**out = **in
	}
	if in.Endpoint != nil {
		in, out := &in.Endpoint, &out.Endpoint
		*out = new(string)
		**out = **in
	}
	return
}
func (in *MasterKeyKMSConfig) DeepCopy() *MasterKeyKMSConfig {
	if in == nil {
		return nil
	}
	out := new(MasterKeyKMSConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *PDConfig) DeepCopyInto(out *PDConfig) {
	*out = *in
	if in.ForceNewCluster != nil {
		in, out := &in.ForceNewCluster, &out.ForceNewCluster
		*out = new(bool)
		**out = **in
	}
	if in.EnableGRPCGateway != nil {
		in, out := &in.EnableGRPCGateway, &out.EnableGRPCGateway
		*out = new(bool)
		**out = **in
	}
	if in.LeaderLease != nil {
		in, out := &in.LeaderLease, &out.LeaderLease
		*out = new(int64)
		**out = **in
	}
	if in.Log != nil {
		in, out := &in.Log, &out.Log
		*out = new(PDLogConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.LogFileDeprecated != nil {
		in, out := &in.LogFileDeprecated, &out.LogFileDeprecated
		*out = new(string)
		**out = **in
	}
	if in.LogLevelDeprecated != nil {
		in, out := &in.LogLevelDeprecated, &out.LogLevelDeprecated
		*out = new(string)
		**out = **in
	}
	if in.TsoSaveInterval != nil {
		in, out := &in.TsoSaveInterval, &out.TsoSaveInterval
		*out = new(string)
		**out = **in
	}
	if in.Metric != nil {
		in, out := &in.Metric, &out.Metric
		*out = new(PDMetricConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Schedule != nil {
		in, out := &in.Schedule, &out.Schedule
		*out = new(PDScheduleConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Replication != nil {
		in, out := &in.Replication, &out.Replication
		*out = new(PDReplicationConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Namespace != nil {
		in, out := &in.Namespace, &out.Namespace
		*out = make(map[string]PDNamespaceConfig, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.PDServerCfg != nil {
		in, out := &in.PDServerCfg, &out.PDServerCfg
		*out = new(PDServerConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.ClusterVersion != nil {
		in, out := &in.ClusterVersion, &out.ClusterVersion
		*out = new(string)
		**out = **in
	}
	if in.QuotaBackendBytes != nil {
		in, out := &in.QuotaBackendBytes, &out.QuotaBackendBytes
		*out = new(string)
		**out = **in
	}
	if in.AutoCompactionMode != nil {
		in, out := &in.AutoCompactionMode, &out.AutoCompactionMode
		*out = new(string)
		**out = **in
	}
	if in.AutoCompactionRetention != nil {
		in, out := &in.AutoCompactionRetention, &out.AutoCompactionRetention
		*out = new(string)
		**out = **in
	}
	if in.TickInterval != nil {
		in, out := &in.TickInterval, &out.TickInterval
		*out = new(string)
		**out = **in
	}
	if in.ElectionInterval != nil {
		in, out := &in.ElectionInterval, &out.ElectionInterval
		*out = new(string)
		**out = **in
	}
	if in.PreVote != nil {
		in, out := &in.PreVote, &out.PreVote
		*out = new(bool)
		**out = **in
	}
	if in.Security != nil {
		in, out := &in.Security, &out.Security
		*out = new(PDSecurityConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.LabelProperty != nil {
		in, out := &in.LabelProperty, &out.LabelProperty
		*out = new(PDLabelPropertyConfig)
		if **in != nil {
			in, out := *in, *out
			*out = make(map[string]PDStoreLabels, len(*in))
			for key, val := range *in {
				var outVal []PDStoreLabel
				if val == nil {
					(*out)[key] = nil
				} else {
					in, out := &val, &outVal
					*out = make(PDStoreLabels, len(*in))
					for i := range *in {
						(*in)[i].DeepCopyInto(&(*out)[i])
					}
				}
				(*out)[key] = outVal
			}
		}
	}
	if in.NamespaceClassifier != nil {
		in, out := &in.NamespaceClassifier, &out.NamespaceClassifier
		*out = new(string)
		**out = **in
	}
	if in.Dashboard != nil {
		in, out := &in.Dashboard, &out.Dashboard
		*out = new(DashboardConfig)
		(*in).DeepCopyInto(*out)
	}
	return
}
func (in *PDConfig) DeepCopy() *PDConfig {
	if in == nil {
		return nil
	}
	out := new(PDConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *PDFailureMember) DeepCopyInto(out *PDFailureMember) {
	*out = *in
	in.CreatedAt.DeepCopyInto(&out.CreatedAt)
	return
}