func (in *Postgresql) 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 api
import (
	corev1 "k8s.io/api/core/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *AdditionalVolume) DeepCopyInto(out *AdditionalVolume) {
	*out = *in
	if in.TargetContainers != nil {
		in, out := &in.TargetContainers, &out.TargetContainers
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.VolumeSource.DeepCopyInto(&out.VolumeSource)
	return
}
func (in *AdditionalVolume) DeepCopy() *AdditionalVolume {
	if in == nil {
		return nil
	}
	out := new(AdditionalVolume)
	in.DeepCopyInto(out)
	return out
}
func (in *ConnectionPooler) DeepCopyInto(out *ConnectionPooler) {
	*out = *in
	if in.NumberOfInstances != nil {
		in, out := &in.NumberOfInstances, &out.NumberOfInstances
		*out = new(int32)
		**out = **in
	}
	if in.MaxDBConnections != nil {
		in, out := &in.MaxDBConnections, &out.MaxDBConnections
		*out = new(int32)
		**out = **in
	}
	out.Resources = in.Resources
	return
}
func (in *ConnectionPooler) DeepCopy() *ConnectionPooler {
	if in == nil {
		return nil
	}
	out := new(ConnectionPooler)
	in.DeepCopyInto(out)
	return out
}
func (in *MaintenanceWindow) DeepCopyInto(out *MaintenanceWindow) {
	*out = *in
	in.StartTime.DeepCopyInto(&out.StartTime)
	in.EndTime.DeepCopyInto(&out.EndTime)
	return
}
func (in *MaintenanceWindow) DeepCopy() *MaintenanceWindow {
	if in == nil {
		return nil
	}
	out := new(MaintenanceWindow)
	in.DeepCopyInto(out)
	return out
}
func (in *PostgresSpec) DeepCopyInto(out *PostgresSpec) {
	*out = *in
	in.PostgresqlParam.DeepCopyInto(&out.PostgresqlParam)
	out.Volume = in.Volume
	out.Resources = in.Resources
	if in.EnableConnectionPooler != nil {
		in, out := &in.EnableConnectionPooler, &out.EnableConnectionPooler
		*out = new(bool)
		**out = **in
	}
	if in.ConnectionPooler != nil {
		in, out := &in.ConnectionPooler, &out.ConnectionPooler
		*out = new(ConnectionPooler)
		(*in).DeepCopyInto(*out)
	}
	if in.SpiloFSGroup != nil {
		in, out := &in.SpiloFSGroup, &out.SpiloFSGroup
		*out = new(int64)
		**out = **in
	}
	if in.EnableMasterLoadBalancer != nil {
		in, out := &in.EnableMasterLoadBalancer, &out.EnableMasterLoadBalancer
		*out = new(bool)
		**out = **in
	}
	if in.EnableReplicaLoadBalancer != nil {
		in, out := &in.EnableReplicaLoadBalancer, &out.EnableReplicaLoadBalancer
		*out = new(bool)
		**out = **in
	}
	if in.UseLoadBalancer != nil {
		in, out := &in.UseLoadBalancer, &out.UseLoadBalancer
		*out = new(bool)
		**out = **in
	}
	if in.ReplicaLoadBalancer != nil {
		in, out := &in.ReplicaLoadBalancer, &out.ReplicaLoadBalancer
		*out = new(bool)
		**out = **in
	}
	if in.AllowedSourceRanges != nil {
		in, out := &in.AllowedSourceRanges, &out.AllowedSourceRanges
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Users != nil {
		in, out := &in.Users, &out.Users
		*out = make(map[string]UserFlags, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make(UserFlags, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.MaintenanceWindows != nil {
		in, out := &in.MaintenanceWindows, &out.MaintenanceWindows
		*out = make([]MaintenanceWindow, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Databases != nil {
		in, out := &in.Databases, &out.Databases
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.PreparedDatabases != nil {
		in, out := &in.PreparedDatabases, &out.PreparedDatabases
		*out = make(map[string]PreparedDatabase, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.Tolerations != nil {
		in, out := &in.Tolerations, &out.Tolerations
		*out = make([]corev1.Toleration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Sidecars != nil {
		in, out := &in.Sidecars, &out.Sidecars
		*out = make([]Sidecar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.InitContainers != nil {
		in, out := &in.InitContainers, &out.InitContainers
		*out = make([]corev1.Container, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ShmVolume != nil {
		in, out := &in.ShmVolume, &out.ShmVolume
		*out = new(bool)
		**out = **in
	}
	if in.AdditionalVolumes != nil {
		in, out := &in.AdditionalVolumes, &out.AdditionalVolumes
		*out = make([]AdditionalVolume, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.InitContainersOld != nil {
		in, out := &in.InitContainersOld, &out.InitContainersOld
		*out = make([]corev1.Container, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}
func (in *PostgresSpec) DeepCopy() *PostgresSpec {
	if in == nil {
		return nil
	}
	out := new(PostgresSpec)
	in.DeepCopyInto(out)
	return out
}
func (in *PostgresStatus) DeepCopyInto(out *PostgresStatus) {
	*out = *in
	return
}
func (in *PostgresStatus) DeepCopy() *PostgresStatus {
	if in == nil {
		return nil
	}
	out := new(PostgresStatus)
	in.DeepCopyInto(out)
	return out
}
func (in *Postgresql) DeepCopyInto(out *Postgresql) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	out.Status = in.Status
	return
}
func (in *Postgresql) DeepCopy() *Postgresql {
	if in == nil {
		return nil
	}
	out := new(Postgresql)
	in.DeepCopyInto(out)
	return out
}