//go:build !ignore_autogenerated

/*
Copyright © contributors to CloudNativePG, established as
CloudNativePG a Series of LF Projects, LLC.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

SPDX-License-Identifier: Apache-2.0
*/

// Code generated by controller-gen. DO NOT EDIT.

package v1

import (
	monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime"
)

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AffinityConfiguration) DeepCopyInto(out *AffinityConfiguration) {
	*out = *in
	if in.EnablePodAntiAffinity != nil {
		in, out := &in.EnablePodAntiAffinity, &out.EnablePodAntiAffinity
		*out = new(bool)
		**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.NodeAffinity != nil {
		in, out := &in.NodeAffinity, &out.NodeAffinity
		*out = new(corev1.NodeAffinity)
		(*in).DeepCopyInto(*out)
	}
	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.AdditionalPodAntiAffinity != nil {
		in, out := &in.AdditionalPodAntiAffinity, &out.AdditionalPodAntiAffinity
		*out = new(corev1.PodAntiAffinity)
		(*in).DeepCopyInto(*out)
	}
	if in.AdditionalPodAffinity != nil {
		in, out := &in.AdditionalPodAffinity, &out.AdditionalPodAffinity
		*out = new(corev1.PodAffinity)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AffinityConfiguration.
func (in *AffinityConfiguration) DeepCopy() *AffinityConfiguration {
	if in == nil {
		return nil
	}
	out := new(AffinityConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AvailableArchitecture) DeepCopyInto(out *AvailableArchitecture) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvailableArchitecture.
func (in *AvailableArchitecture) DeepCopy() *AvailableArchitecture {
	if in == nil {
		return nil
	}
	out := new(AvailableArchitecture)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Backup) DeepCopyInto(out *Backup) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backup.
func (in *Backup) DeepCopy() *Backup {
	if in == nil {
		return nil
	}
	out := new(Backup)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Backup) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BackupConfiguration) DeepCopyInto(out *BackupConfiguration) {
	*out = *in
	if in.VolumeSnapshot != nil {
		in, out := &in.VolumeSnapshot, &out.VolumeSnapshot
		*out = new(VolumeSnapshotConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.BarmanObjectStore != nil {
		in, out := &in.BarmanObjectStore, &out.BarmanObjectStore
		*out = new(BarmanObjectStoreConfiguration)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupConfiguration.
func (in *BackupConfiguration) DeepCopy() *BackupConfiguration {
	if in == nil {
		return nil
	}
	out := new(BackupConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BackupList) DeepCopyInto(out *BackupList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Backup, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupList.
func (in *BackupList) DeepCopy() *BackupList {
	if in == nil {
		return nil
	}
	out := new(BackupList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *BackupList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BackupPluginConfiguration) DeepCopyInto(out *BackupPluginConfiguration) {
	*out = *in
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPluginConfiguration.
func (in *BackupPluginConfiguration) DeepCopy() *BackupPluginConfiguration {
	if in == nil {
		return nil
	}
	out := new(BackupPluginConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BackupSnapshotElementStatus) DeepCopyInto(out *BackupSnapshotElementStatus) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupSnapshotElementStatus.
func (in *BackupSnapshotElementStatus) DeepCopy() *BackupSnapshotElementStatus {
	if in == nil {
		return nil
	}
	out := new(BackupSnapshotElementStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BackupSnapshotStatus) DeepCopyInto(out *BackupSnapshotStatus) {
	*out = *in
	if in.Elements != nil {
		in, out := &in.Elements, &out.Elements
		*out = make([]BackupSnapshotElementStatus, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupSnapshotStatus.
func (in *BackupSnapshotStatus) DeepCopy() *BackupSnapshotStatus {
	if in == nil {
		return nil
	}
	out := new(BackupSnapshotStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BackupSource) DeepCopyInto(out *BackupSource) {
	*out = *in
	out.LocalObjectReference = in.LocalObjectReference
	if in.EndpointCA != nil {
		in, out := &in.EndpointCA, &out.EndpointCA
		*out = new(SecretKeySelector)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupSource.
func (in *BackupSource) DeepCopy() *BackupSource {
	if in == nil {
		return nil
	}
	out := new(BackupSource)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BackupSpec) DeepCopyInto(out *BackupSpec) {
	*out = *in
	in.Cluster.DeepCopyInto(&out.Cluster)
	if in.PluginConfiguration != nil {
		in, out := &in.PluginConfiguration, &out.PluginConfiguration
		*out = new(BackupPluginConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.Online != nil {
		in, out := &in.Online, &out.Online
		*out = new(bool)
		**out = **in
	}
	if in.OnlineConfiguration != nil {
		in, out := &in.OnlineConfiguration, &out.OnlineConfiguration
		*out = new(OnlineConfiguration)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupSpec.
func (in *BackupSpec) DeepCopy() *BackupSpec {
	if in == nil {
		return nil
	}
	out := new(BackupSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BackupStatus) DeepCopyInto(out *BackupStatus) {
	*out = *in
	in.BarmanCredentials.DeepCopyInto(&out.BarmanCredentials)
	if in.EndpointCA != nil {
		in, out := &in.EndpointCA, &out.EndpointCA
		*out = new(SecretKeySelector)
		**out = **in
	}
	if in.StartedAt != nil {
		in, out := &in.StartedAt, &out.StartedAt
		*out = (*in).DeepCopy()
	}
	if in.StoppedAt != nil {
		in, out := &in.StoppedAt, &out.StoppedAt
		*out = (*in).DeepCopy()
	}
	if in.ReconciliationStartedAt != nil {
		in, out := &in.ReconciliationStartedAt, &out.ReconciliationStartedAt
		*out = (*in).DeepCopy()
	}
	if in.ReconciliationTerminatedAt != nil {
		in, out := &in.ReconciliationTerminatedAt, &out.ReconciliationTerminatedAt
		*out = (*in).DeepCopy()
	}
	if in.BackupLabelFile != nil {
		in, out := &in.BackupLabelFile, &out.BackupLabelFile
		*out = make([]byte, len(*in))
		copy(*out, *in)
	}
	if in.TablespaceMapFile != nil {
		in, out := &in.TablespaceMapFile, &out.TablespaceMapFile
		*out = make([]byte, len(*in))
		copy(*out, *in)
	}
	if in.InstanceID != nil {
		in, out := &in.InstanceID, &out.InstanceID
		*out = new(InstanceID)
		**out = **in
	}
	in.BackupSnapshotStatus.DeepCopyInto(&out.BackupSnapshotStatus)
	if in.Online != nil {
		in, out := &in.Online, &out.Online
		*out = new(bool)
		**out = **in
	}
	if in.PluginMetadata != nil {
		in, out := &in.PluginMetadata, &out.PluginMetadata
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStatus.
func (in *BackupStatus) DeepCopy() *BackupStatus {
	if in == nil {
		return nil
	}
	out := new(BackupStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BootstrapConfiguration) DeepCopyInto(out *BootstrapConfiguration) {
	*out = *in
	if in.InitDB != nil {
		in, out := &in.InitDB, &out.InitDB
		*out = new(BootstrapInitDB)
		(*in).DeepCopyInto(*out)
	}
	if in.Recovery != nil {
		in, out := &in.Recovery, &out.Recovery
		*out = new(BootstrapRecovery)
		(*in).DeepCopyInto(*out)
	}
	if in.PgBaseBackup != nil {
		in, out := &in.PgBaseBackup, &out.PgBaseBackup
		*out = new(BootstrapPgBaseBackup)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapConfiguration.
func (in *BootstrapConfiguration) DeepCopy() *BootstrapConfiguration {
	if in == nil {
		return nil
	}
	out := new(BootstrapConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BootstrapInitDB) DeepCopyInto(out *BootstrapInitDB) {
	*out = *in
	if in.Secret != nil {
		in, out := &in.Secret, &out.Secret
		*out = new(LocalObjectReference)
		**out = **in
	}
	if in.Options != nil {
		in, out := &in.Options, &out.Options
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.DataChecksums != nil {
		in, out := &in.DataChecksums, &out.DataChecksums
		*out = new(bool)
		**out = **in
	}
	if in.PostInitSQL != nil {
		in, out := &in.PostInitSQL, &out.PostInitSQL
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PostInitApplicationSQL != nil {
		in, out := &in.PostInitApplicationSQL, &out.PostInitApplicationSQL
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PostInitTemplateSQL != nil {
		in, out := &in.PostInitTemplateSQL, &out.PostInitTemplateSQL
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Import != nil {
		in, out := &in.Import, &out.Import
		*out = new(Import)
		(*in).DeepCopyInto(*out)
	}
	if in.PostInitApplicationSQLRefs != nil {
		in, out := &in.PostInitApplicationSQLRefs, &out.PostInitApplicationSQLRefs
		*out = new(SQLRefs)
		(*in).DeepCopyInto(*out)
	}
	if in.PostInitTemplateSQLRefs != nil {
		in, out := &in.PostInitTemplateSQLRefs, &out.PostInitTemplateSQLRefs
		*out = new(SQLRefs)
		(*in).DeepCopyInto(*out)
	}
	if in.PostInitSQLRefs != nil {
		in, out := &in.PostInitSQLRefs, &out.PostInitSQLRefs
		*out = new(SQLRefs)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapInitDB.
func (in *BootstrapInitDB) DeepCopy() *BootstrapInitDB {
	if in == nil {
		return nil
	}
	out := new(BootstrapInitDB)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BootstrapPgBaseBackup) DeepCopyInto(out *BootstrapPgBaseBackup) {
	*out = *in
	if in.Secret != nil {
		in, out := &in.Secret, &out.Secret
		*out = new(LocalObjectReference)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapPgBaseBackup.
func (in *BootstrapPgBaseBackup) DeepCopy() *BootstrapPgBaseBackup {
	if in == nil {
		return nil
	}
	out := new(BootstrapPgBaseBackup)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BootstrapRecovery) DeepCopyInto(out *BootstrapRecovery) {
	*out = *in
	if in.Backup != nil {
		in, out := &in.Backup, &out.Backup
		*out = new(BackupSource)
		(*in).DeepCopyInto(*out)
	}
	if in.VolumeSnapshots != nil {
		in, out := &in.VolumeSnapshots, &out.VolumeSnapshots
		*out = new(DataSource)
		(*in).DeepCopyInto(*out)
	}
	if in.RecoveryTarget != nil {
		in, out := &in.RecoveryTarget, &out.RecoveryTarget
		*out = new(RecoveryTarget)
		(*in).DeepCopyInto(*out)
	}
	if in.Secret != nil {
		in, out := &in.Secret, &out.Secret
		*out = new(LocalObjectReference)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapRecovery.
func (in *BootstrapRecovery) DeepCopy() *BootstrapRecovery {
	if in == nil {
		return nil
	}
	out := new(BootstrapRecovery)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CatalogImage) DeepCopyInto(out *CatalogImage) {
	*out = *in
	if in.Extensions != nil {
		in, out := &in.Extensions, &out.Extensions
		*out = make([]ExtensionConfiguration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CatalogImage.
func (in *CatalogImage) DeepCopy() *CatalogImage {
	if in == nil {
		return nil
	}
	out := new(CatalogImage)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CertificatesConfiguration) DeepCopyInto(out *CertificatesConfiguration) {
	*out = *in
	if in.ServerAltDNSNames != nil {
		in, out := &in.ServerAltDNSNames, &out.ServerAltDNSNames
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificatesConfiguration.
func (in *CertificatesConfiguration) DeepCopy() *CertificatesConfiguration {
	if in == nil {
		return nil
	}
	out := new(CertificatesConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CertificatesStatus) DeepCopyInto(out *CertificatesStatus) {
	*out = *in
	in.CertificatesConfiguration.DeepCopyInto(&out.CertificatesConfiguration)
	if in.Expirations != nil {
		in, out := &in.Expirations, &out.Expirations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificatesStatus.
func (in *CertificatesStatus) DeepCopy() *CertificatesStatus {
	if in == nil {
		return nil
	}
	out := new(CertificatesStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Cluster) DeepCopyInto(out *Cluster) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.
func (in *Cluster) DeepCopy() *Cluster {
	if in == nil {
		return nil
	}
	out := new(Cluster)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Cluster) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterImageCatalog) DeepCopyInto(out *ClusterImageCatalog) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterImageCatalog.
func (in *ClusterImageCatalog) DeepCopy() *ClusterImageCatalog {
	if in == nil {
		return nil
	}
	out := new(ClusterImageCatalog)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClusterImageCatalog) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterImageCatalogList) DeepCopyInto(out *ClusterImageCatalogList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ClusterImageCatalog, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterImageCatalogList.
func (in *ClusterImageCatalogList) DeepCopy() *ClusterImageCatalogList {
	if in == nil {
		return nil
	}
	out := new(ClusterImageCatalogList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClusterImageCatalogList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterList) DeepCopyInto(out *ClusterList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Cluster, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList.
func (in *ClusterList) DeepCopy() *ClusterList {
	if in == nil {
		return nil
	}
	out := new(ClusterList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClusterList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterMonitoringTLSConfiguration) DeepCopyInto(out *ClusterMonitoringTLSConfiguration) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterMonitoringTLSConfiguration.
func (in *ClusterMonitoringTLSConfiguration) DeepCopy() *ClusterMonitoringTLSConfiguration {
	if in == nil {
		return nil
	}
	out := new(ClusterMonitoringTLSConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
	*out = *in
	if in.InheritedMetadata != nil {
		in, out := &in.InheritedMetadata, &out.InheritedMetadata
		*out = new(EmbeddedObjectMetadata)
		(*in).DeepCopyInto(*out)
	}
	if in.ImageCatalogRef != nil {
		in, out := &in.ImageCatalogRef, &out.ImageCatalogRef
		*out = new(ImageCatalogRef)
		(*in).DeepCopyInto(*out)
	}
	in.PostgresConfiguration.DeepCopyInto(&out.PostgresConfiguration)
	if in.PodSelectorRefs != nil {
		in, out := &in.PodSelectorRefs, &out.PodSelectorRefs
		*out = make([]PodSelectorRef, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ReplicationSlots != nil {
		in, out := &in.ReplicationSlots, &out.ReplicationSlots
		*out = new(ReplicationSlotsConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.Bootstrap != nil {
		in, out := &in.Bootstrap, &out.Bootstrap
		*out = new(BootstrapConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.ReplicaCluster != nil {
		in, out := &in.ReplicaCluster, &out.ReplicaCluster
		*out = new(ReplicaClusterConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.SuperuserSecret != nil {
		in, out := &in.SuperuserSecret, &out.SuperuserSecret
		*out = new(LocalObjectReference)
		**out = **in
	}
	if in.EnableSuperuserAccess != nil {
		in, out := &in.EnableSuperuserAccess, &out.EnableSuperuserAccess
		*out = new(bool)
		**out = **in
	}
	if in.Certificates != nil {
		in, out := &in.Certificates, &out.Certificates
		*out = new(CertificatesConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.ImagePullSecrets != nil {
		in, out := &in.ImagePullSecrets, &out.ImagePullSecrets
		*out = make([]LocalObjectReference, len(*in))
		copy(*out, *in)
	}
	in.StorageConfiguration.DeepCopyInto(&out.StorageConfiguration)
	if in.ServiceAccountTemplate != nil {
		in, out := &in.ServiceAccountTemplate, &out.ServiceAccountTemplate
		*out = new(ServiceAccountTemplate)
		(*in).DeepCopyInto(*out)
	}
	if in.WalStorage != nil {
		in, out := &in.WalStorage, &out.WalStorage
		*out = new(StorageConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.EphemeralVolumeSource != nil {
		in, out := &in.EphemeralVolumeSource, &out.EphemeralVolumeSource
		*out = new(corev1.EphemeralVolumeSource)
		(*in).DeepCopyInto(*out)
	}
	if in.SmartShutdownTimeout != nil {
		in, out := &in.SmartShutdownTimeout, &out.SmartShutdownTimeout
		*out = new(int32)
		**out = **in
	}
	if in.LivenessProbeTimeout != nil {
		in, out := &in.LivenessProbeTimeout, &out.LivenessProbeTimeout
		*out = new(int32)
		**out = **in
	}
	in.Affinity.DeepCopyInto(&out.Affinity)
	if in.TopologySpreadConstraints != nil {
		in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints
		*out = make([]corev1.TopologySpreadConstraint, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	in.Resources.DeepCopyInto(&out.Resources)
	if in.EphemeralVolumesSizeLimit != nil {
		in, out := &in.EphemeralVolumesSizeLimit, &out.EphemeralVolumesSizeLimit
		*out = new(EphemeralVolumesSizeLimitConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.Backup != nil {
		in, out := &in.Backup, &out.Backup
		*out = new(BackupConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.NodeMaintenanceWindow != nil {
		in, out := &in.NodeMaintenanceWindow, &out.NodeMaintenanceWindow
		*out = new(NodeMaintenanceWindow)
		(*in).DeepCopyInto(*out)
	}
	if in.Monitoring != nil {
		in, out := &in.Monitoring, &out.Monitoring
		*out = new(MonitoringConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.ExternalClusters != nil {
		in, out := &in.ExternalClusters, &out.ExternalClusters
		*out = make([]ExternalCluster, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ProjectedVolumeTemplate != nil {
		in, out := &in.ProjectedVolumeTemplate, &out.ProjectedVolumeTemplate
		*out = new(corev1.ProjectedVolumeSource)
		(*in).DeepCopyInto(*out)
	}
	if in.Env != nil {
		in, out := &in.Env, &out.Env
		*out = make([]corev1.EnvVar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.EnvFrom != nil {
		in, out := &in.EnvFrom, &out.EnvFrom
		*out = make([]corev1.EnvFromSource, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Managed != nil {
		in, out := &in.Managed, &out.Managed
		*out = new(ManagedConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.SeccompProfile != nil {
		in, out := &in.SeccompProfile, &out.SeccompProfile
		*out = new(corev1.SeccompProfile)
		(*in).DeepCopyInto(*out)
	}
	if in.PodSecurityContext != nil {
		in, out := &in.PodSecurityContext, &out.PodSecurityContext
		*out = new(corev1.PodSecurityContext)
		(*in).DeepCopyInto(*out)
	}
	if in.SecurityContext != nil {
		in, out := &in.SecurityContext, &out.SecurityContext
		*out = new(corev1.SecurityContext)
		(*in).DeepCopyInto(*out)
	}
	if in.Tablespaces != nil {
		in, out := &in.Tablespaces, &out.Tablespaces
		*out = make([]TablespaceConfiguration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.EnablePDB != nil {
		in, out := &in.EnablePDB, &out.EnablePDB
		*out = new(bool)
		**out = **in
	}
	if in.Plugins != nil {
		in, out := &in.Plugins, &out.Plugins
		*out = make([]PluginConfiguration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Probes != nil {
		in, out := &in.Probes, &out.Probes
		*out = new(ProbesConfiguration)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.
func (in *ClusterSpec) DeepCopy() *ClusterSpec {
	if in == nil {
		return nil
	}
	out := new(ClusterSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus) {
	*out = *in
	if in.InstancesStatus != nil {
		in, out := &in.InstancesStatus, &out.InstancesStatus
		*out = make(map[PodStatus][]string, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				inVal := (*in)[key]
				in, out := &inVal, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.InstancesReportedState != nil {
		in, out := &in.InstancesReportedState, &out.InstancesReportedState
		*out = make(map[PodName]InstanceReportedState, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	in.ManagedRolesStatus.DeepCopyInto(&out.ManagedRolesStatus)
	if in.TablespacesStatus != nil {
		in, out := &in.TablespacesStatus, &out.TablespacesStatus
		*out = make([]TablespaceState, len(*in))
		copy(*out, *in)
	}
	if in.PodSelectorRefs != nil {
		in, out := &in.PodSelectorRefs, &out.PodSelectorRefs
		*out = make([]PodSelectorRefStatus, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	in.Topology.DeepCopyInto(&out.Topology)
	if in.DanglingPVC != nil {
		in, out := &in.DanglingPVC, &out.DanglingPVC
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ResizingPVC != nil {
		in, out := &in.ResizingPVC, &out.ResizingPVC
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.InitializingPVC != nil {
		in, out := &in.InitializingPVC, &out.InitializingPVC
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.HealthyPVC != nil {
		in, out := &in.HealthyPVC, &out.HealthyPVC
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.UnusablePVC != nil {
		in, out := &in.UnusablePVC, &out.UnusablePVC
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.SecretsResourceVersion.DeepCopyInto(&out.SecretsResourceVersion)
	in.ConfigMapResourceVersion.DeepCopyInto(&out.ConfigMapResourceVersion)
	in.Certificates.DeepCopyInto(&out.Certificates)
	if in.FirstRecoverabilityPointByMethod != nil {
		in, out := &in.FirstRecoverabilityPointByMethod, &out.FirstRecoverabilityPointByMethod
		*out = make(map[BackupMethod]metav1.Time, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.LastSuccessfulBackupByMethod != nil {
		in, out := &in.LastSuccessfulBackupByMethod, &out.LastSuccessfulBackupByMethod
		*out = make(map[BackupMethod]metav1.Time, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.PoolerIntegrations != nil {
		in, out := &in.PoolerIntegrations, &out.PoolerIntegrations
		*out = new(PoolerIntegrations)
		(*in).DeepCopyInto(*out)
	}
	if in.AvailableArchitectures != nil {
		in, out := &in.AvailableArchitectures, &out.AvailableArchitectures
		*out = make([]AvailableArchitecture, len(*in))
		copy(*out, *in)
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]metav1.Condition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.InstanceNames != nil {
		in, out := &in.InstanceNames, &out.InstanceNames
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PGDataImageInfo != nil {
		in, out := &in.PGDataImageInfo, &out.PGDataImageInfo
		*out = new(ImageInfo)
		(*in).DeepCopyInto(*out)
	}
	if in.PluginStatus != nil {
		in, out := &in.PluginStatus, &out.PluginStatus
		*out = make([]PluginStatus, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	out.SwitchReplicaClusterStatus = in.SwitchReplicaClusterStatus
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.
func (in *ClusterStatus) DeepCopy() *ClusterStatus {
	if in == nil {
		return nil
	}
	out := new(ClusterStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ConfigMapResourceVersion) DeepCopyInto(out *ConfigMapResourceVersion) {
	*out = *in
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapResourceVersion.
func (in *ConfigMapResourceVersion) DeepCopy() *ConfigMapResourceVersion {
	if in == nil {
		return nil
	}
	out := new(ConfigMapResourceVersion)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DataSource) DeepCopyInto(out *DataSource) {
	*out = *in
	in.Storage.DeepCopyInto(&out.Storage)
	if in.WalStorage != nil {
		in, out := &in.WalStorage, &out.WalStorage
		*out = new(corev1.TypedLocalObjectReference)
		(*in).DeepCopyInto(*out)
	}
	if in.TablespaceStorage != nil {
		in, out := &in.TablespaceStorage, &out.TablespaceStorage
		*out = make(map[string]corev1.TypedLocalObjectReference, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataSource.
func (in *DataSource) DeepCopy() *DataSource {
	if in == nil {
		return nil
	}
	out := new(DataSource)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Database) DeepCopyInto(out *Database) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Database.
func (in *Database) DeepCopy() *Database {
	if in == nil {
		return nil
	}
	out := new(Database)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Database) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DatabaseList) DeepCopyInto(out *DatabaseList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Database, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseList.
func (in *DatabaseList) DeepCopy() *DatabaseList {
	if in == nil {
		return nil
	}
	out := new(DatabaseList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *DatabaseList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DatabaseObjectSpec) DeepCopyInto(out *DatabaseObjectSpec) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseObjectSpec.
func (in *DatabaseObjectSpec) DeepCopy() *DatabaseObjectSpec {
	if in == nil {
		return nil
	}
	out := new(DatabaseObjectSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DatabaseObjectStatus) DeepCopyInto(out *DatabaseObjectStatus) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseObjectStatus.
func (in *DatabaseObjectStatus) DeepCopy() *DatabaseObjectStatus {
	if in == nil {
		return nil
	}
	out := new(DatabaseObjectStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DatabaseRoleRef) DeepCopyInto(out *DatabaseRoleRef) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseRoleRef.
func (in *DatabaseRoleRef) DeepCopy() *DatabaseRoleRef {
	if in == nil {
		return nil
	}
	out := new(DatabaseRoleRef)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec) {
	*out = *in
	out.ClusterRef = in.ClusterRef
	if in.IsTemplate != nil {
		in, out := &in.IsTemplate, &out.IsTemplate
		*out = new(bool)
		**out = **in
	}
	if in.AllowConnections != nil {
		in, out := &in.AllowConnections, &out.AllowConnections
		*out = new(bool)
		**out = **in
	}
	if in.ConnectionLimit != nil {
		in, out := &in.ConnectionLimit, &out.ConnectionLimit
		*out = new(int)
		**out = **in
	}
	if in.Schemas != nil {
		in, out := &in.Schemas, &out.Schemas
		*out = make([]SchemaSpec, len(*in))
		copy(*out, *in)
	}
	if in.Extensions != nil {
		in, out := &in.Extensions, &out.Extensions
		*out = make([]ExtensionSpec, len(*in))
		copy(*out, *in)
	}
	if in.FDWs != nil {
		in, out := &in.FDWs, &out.FDWs
		*out = make([]FDWSpec, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Servers != nil {
		in, out := &in.Servers, &out.Servers
		*out = make([]ServerSpec, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseSpec.
func (in *DatabaseSpec) DeepCopy() *DatabaseSpec {
	if in == nil {
		return nil
	}
	out := new(DatabaseSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DatabaseStatus) DeepCopyInto(out *DatabaseStatus) {
	*out = *in
	if in.Applied != nil {
		in, out := &in.Applied, &out.Applied
		*out = new(bool)
		**out = **in
	}
	if in.Schemas != nil {
		in, out := &in.Schemas, &out.Schemas
		*out = make([]DatabaseObjectStatus, len(*in))
		copy(*out, *in)
	}
	if in.Extensions != nil {
		in, out := &in.Extensions, &out.Extensions
		*out = make([]DatabaseObjectStatus, len(*in))
		copy(*out, *in)
	}
	if in.FDWs != nil {
		in, out := &in.FDWs, &out.FDWs
		*out = make([]DatabaseObjectStatus, len(*in))
		copy(*out, *in)
	}
	if in.Servers != nil {
		in, out := &in.Servers, &out.Servers
		*out = make([]DatabaseObjectStatus, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseStatus.
func (in *DatabaseStatus) DeepCopy() *DatabaseStatus {
	if in == nil {
		return nil
	}
	out := new(DatabaseStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EmbeddedObjectMetadata) DeepCopyInto(out *EmbeddedObjectMetadata) {
	*out = *in
	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
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedObjectMetadata.
func (in *EmbeddedObjectMetadata) DeepCopy() *EmbeddedObjectMetadata {
	if in == nil {
		return nil
	}
	out := new(EmbeddedObjectMetadata)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EphemeralVolumesSizeLimitConfiguration) DeepCopyInto(out *EphemeralVolumesSizeLimitConfiguration) {
	*out = *in
	if in.Shm != nil {
		in, out := &in.Shm, &out.Shm
		x := (*in).DeepCopy()
		*out = &x
	}
	if in.TemporaryData != nil {
		in, out := &in.TemporaryData, &out.TemporaryData
		x := (*in).DeepCopy()
		*out = &x
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolumesSizeLimitConfiguration.
func (in *EphemeralVolumesSizeLimitConfiguration) DeepCopy() *EphemeralVolumesSizeLimitConfiguration {
	if in == nil {
		return nil
	}
	out := new(EphemeralVolumesSizeLimitConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExtensionConfiguration) DeepCopyInto(out *ExtensionConfiguration) {
	*out = *in
	out.ImageVolumeSource = in.ImageVolumeSource
	if in.ExtensionControlPath != nil {
		in, out := &in.ExtensionControlPath, &out.ExtensionControlPath
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.DynamicLibraryPath != nil {
		in, out := &in.DynamicLibraryPath, &out.DynamicLibraryPath
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.LdLibraryPath != nil {
		in, out := &in.LdLibraryPath, &out.LdLibraryPath
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.BinPath != nil {
		in, out := &in.BinPath, &out.BinPath
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Env != nil {
		in, out := &in.Env, &out.Env
		*out = make([]ExtensionEnvVar, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionConfiguration.
func (in *ExtensionConfiguration) DeepCopy() *ExtensionConfiguration {
	if in == nil {
		return nil
	}
	out := new(ExtensionConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExtensionEnvVar) DeepCopyInto(out *ExtensionEnvVar) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionEnvVar.
func (in *ExtensionEnvVar) DeepCopy() *ExtensionEnvVar {
	if in == nil {
		return nil
	}
	out := new(ExtensionEnvVar)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExtensionSpec) DeepCopyInto(out *ExtensionSpec) {
	*out = *in
	out.DatabaseObjectSpec = in.DatabaseObjectSpec
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionSpec.
func (in *ExtensionSpec) DeepCopy() *ExtensionSpec {
	if in == nil {
		return nil
	}
	out := new(ExtensionSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExternalCluster) DeepCopyInto(out *ExternalCluster) {
	*out = *in
	if in.ConnectionParameters != nil {
		in, out := &in.ConnectionParameters, &out.ConnectionParameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.SSLCert != nil {
		in, out := &in.SSLCert, &out.SSLCert
		*out = new(corev1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.SSLKey != nil {
		in, out := &in.SSLKey, &out.SSLKey
		*out = new(corev1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.SSLRootCert != nil {
		in, out := &in.SSLRootCert, &out.SSLRootCert
		*out = new(corev1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Password != nil {
		in, out := &in.Password, &out.Password
		*out = new(corev1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.BarmanObjectStore != nil {
		in, out := &in.BarmanObjectStore, &out.BarmanObjectStore
		*out = new(BarmanObjectStoreConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.PluginConfiguration != nil {
		in, out := &in.PluginConfiguration, &out.PluginConfiguration
		*out = new(PluginConfiguration)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalCluster.
func (in *ExternalCluster) DeepCopy() *ExternalCluster {
	if in == nil {
		return nil
	}
	out := new(ExternalCluster)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FDWSpec) DeepCopyInto(out *FDWSpec) {
	*out = *in
	out.DatabaseObjectSpec = in.DatabaseObjectSpec
	if in.Options != nil {
		in, out := &in.Options, &out.Options
		*out = make([]OptionSpec, len(*in))
		copy(*out, *in)
	}
	if in.Usages != nil {
		in, out := &in.Usages, &out.Usages
		*out = make([]UsageSpec, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FDWSpec.
func (in *FDWSpec) DeepCopy() *FDWSpec {
	if in == nil {
		return nil
	}
	out := new(FDWSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FailoverQuorum) DeepCopyInto(out *FailoverQuorum) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailoverQuorum.
func (in *FailoverQuorum) DeepCopy() *FailoverQuorum {
	if in == nil {
		return nil
	}
	out := new(FailoverQuorum)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *FailoverQuorum) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FailoverQuorumList) DeepCopyInto(out *FailoverQuorumList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]FailoverQuorum, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailoverQuorumList.
func (in *FailoverQuorumList) DeepCopy() *FailoverQuorumList {
	if in == nil {
		return nil
	}
	out := new(FailoverQuorumList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *FailoverQuorumList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FailoverQuorumStatus) DeepCopyInto(out *FailoverQuorumStatus) {
	*out = *in
	if in.StandbyNames != nil {
		in, out := &in.StandbyNames, &out.StandbyNames
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailoverQuorumStatus.
func (in *FailoverQuorumStatus) DeepCopy() *FailoverQuorumStatus {
	if in == nil {
		return nil
	}
	out := new(FailoverQuorumStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ImageCatalog) DeepCopyInto(out *ImageCatalog) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageCatalog.
func (in *ImageCatalog) DeepCopy() *ImageCatalog {
	if in == nil {
		return nil
	}
	out := new(ImageCatalog)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ImageCatalog) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ImageCatalogList) DeepCopyInto(out *ImageCatalogList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ImageCatalog, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageCatalogList.
func (in *ImageCatalogList) DeepCopy() *ImageCatalogList {
	if in == nil {
		return nil
	}
	out := new(ImageCatalogList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ImageCatalogList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ImageCatalogRef) DeepCopyInto(out *ImageCatalogRef) {
	*out = *in
	in.TypedLocalObjectReference.DeepCopyInto(&out.TypedLocalObjectReference)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageCatalogRef.
func (in *ImageCatalogRef) DeepCopy() *ImageCatalogRef {
	if in == nil {
		return nil
	}
	out := new(ImageCatalogRef)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ImageCatalogSpec) DeepCopyInto(out *ImageCatalogSpec) {
	*out = *in
	if in.Images != nil {
		in, out := &in.Images, &out.Images
		*out = make([]CatalogImage, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageCatalogSpec.
func (in *ImageCatalogSpec) DeepCopy() *ImageCatalogSpec {
	if in == nil {
		return nil
	}
	out := new(ImageCatalogSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ImageInfo) DeepCopyInto(out *ImageInfo) {
	*out = *in
	if in.Extensions != nil {
		in, out := &in.Extensions, &out.Extensions
		*out = make([]ExtensionConfiguration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageInfo.
func (in *ImageInfo) DeepCopy() *ImageInfo {
	if in == nil {
		return nil
	}
	out := new(ImageInfo)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Import) DeepCopyInto(out *Import) {
	*out = *in
	out.Source = in.Source
	if in.Databases != nil {
		in, out := &in.Databases, &out.Databases
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Roles != nil {
		in, out := &in.Roles, &out.Roles
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PostImportApplicationSQL != nil {
		in, out := &in.PostImportApplicationSQL, &out.PostImportApplicationSQL
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PgDumpExtraOptions != nil {
		in, out := &in.PgDumpExtraOptions, &out.PgDumpExtraOptions
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PgRestoreExtraOptions != nil {
		in, out := &in.PgRestoreExtraOptions, &out.PgRestoreExtraOptions
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PgRestorePredataOptions != nil {
		in, out := &in.PgRestorePredataOptions, &out.PgRestorePredataOptions
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PgRestoreDataOptions != nil {
		in, out := &in.PgRestoreDataOptions, &out.PgRestoreDataOptions
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PgRestorePostdataOptions != nil {
		in, out := &in.PgRestorePostdataOptions, &out.PgRestorePostdataOptions
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Import.
func (in *Import) DeepCopy() *Import {
	if in == nil {
		return nil
	}
	out := new(Import)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ImportSource) DeepCopyInto(out *ImportSource) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImportSource.
func (in *ImportSource) DeepCopy() *ImportSource {
	if in == nil {
		return nil
	}
	out := new(ImportSource)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceID) DeepCopyInto(out *InstanceID) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceID.
func (in *InstanceID) DeepCopy() *InstanceID {
	if in == nil {
		return nil
	}
	out := new(InstanceID)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceReportedState) DeepCopyInto(out *InstanceReportedState) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceReportedState.
func (in *InstanceReportedState) DeepCopy() *InstanceReportedState {
	if in == nil {
		return nil
	}
	out := new(InstanceReportedState)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *IsolationCheckConfiguration) DeepCopyInto(out *IsolationCheckConfiguration) {
	*out = *in
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IsolationCheckConfiguration.
func (in *IsolationCheckConfiguration) DeepCopy() *IsolationCheckConfiguration {
	if in == nil {
		return nil
	}
	out := new(IsolationCheckConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LDAPBindAsAuth) DeepCopyInto(out *LDAPBindAsAuth) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPBindAsAuth.
func (in *LDAPBindAsAuth) DeepCopy() *LDAPBindAsAuth {
	if in == nil {
		return nil
	}
	out := new(LDAPBindAsAuth)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LDAPBindSearchAuth) DeepCopyInto(out *LDAPBindSearchAuth) {
	*out = *in
	if in.BindPassword != nil {
		in, out := &in.BindPassword, &out.BindPassword
		*out = new(corev1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPBindSearchAuth.
func (in *LDAPBindSearchAuth) DeepCopy() *LDAPBindSearchAuth {
	if in == nil {
		return nil
	}
	out := new(LDAPBindSearchAuth)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LDAPConfig) DeepCopyInto(out *LDAPConfig) {
	*out = *in
	if in.BindAsAuth != nil {
		in, out := &in.BindAsAuth, &out.BindAsAuth
		*out = new(LDAPBindAsAuth)
		**out = **in
	}
	if in.BindSearchAuth != nil {
		in, out := &in.BindSearchAuth, &out.BindSearchAuth
		*out = new(LDAPBindSearchAuth)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPConfig.
func (in *LDAPConfig) DeepCopy() *LDAPConfig {
	if in == nil {
		return nil
	}
	out := new(LDAPConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LivenessProbe) DeepCopyInto(out *LivenessProbe) {
	*out = *in
	in.Probe.DeepCopyInto(&out.Probe)
	if in.IsolationCheck != nil {
		in, out := &in.IsolationCheck, &out.IsolationCheck
		*out = new(IsolationCheckConfiguration)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LivenessProbe.
func (in *LivenessProbe) DeepCopy() *LivenessProbe {
	if in == nil {
		return nil
	}
	out := new(LivenessProbe)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedConfiguration) DeepCopyInto(out *ManagedConfiguration) {
	*out = *in
	if in.Roles != nil {
		in, out := &in.Roles, &out.Roles
		*out = make([]RoleConfiguration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Services != nil {
		in, out := &in.Services, &out.Services
		*out = new(ManagedServices)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedConfiguration.
func (in *ManagedConfiguration) DeepCopy() *ManagedConfiguration {
	if in == nil {
		return nil
	}
	out := new(ManagedConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedRoles) DeepCopyInto(out *ManagedRoles) {
	*out = *in
	if in.ByStatus != nil {
		in, out := &in.ByStatus, &out.ByStatus
		*out = make(map[RoleStatus][]string, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				inVal := (*in)[key]
				in, out := &inVal, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.CannotReconcile != nil {
		in, out := &in.CannotReconcile, &out.CannotReconcile
		*out = make(map[string][]string, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				inVal := (*in)[key]
				in, out := &inVal, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.PasswordStatus != nil {
		in, out := &in.PasswordStatus, &out.PasswordStatus
		*out = make(map[string]PasswordState, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedRoles.
func (in *ManagedRoles) DeepCopy() *ManagedRoles {
	if in == nil {
		return nil
	}
	out := new(ManagedRoles)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedService) DeepCopyInto(out *ManagedService) {
	*out = *in
	in.ServiceTemplate.DeepCopyInto(&out.ServiceTemplate)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedService.
func (in *ManagedService) DeepCopy() *ManagedService {
	if in == nil {
		return nil
	}
	out := new(ManagedService)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedServices) DeepCopyInto(out *ManagedServices) {
	*out = *in
	if in.DisabledDefaultServices != nil {
		in, out := &in.DisabledDefaultServices, &out.DisabledDefaultServices
		*out = make([]ServiceSelectorType, len(*in))
		copy(*out, *in)
	}
	if in.Additional != nil {
		in, out := &in.Additional, &out.Additional
		*out = make([]ManagedService, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedServices.
func (in *ManagedServices) DeepCopy() *ManagedServices {
	if in == nil {
		return nil
	}
	out := new(ManagedServices)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Metadata) DeepCopyInto(out *Metadata) {
	*out = *in
	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
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.
func (in *Metadata) DeepCopy() *Metadata {
	if in == nil {
		return nil
	}
	out := new(Metadata)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MonitoringConfiguration) DeepCopyInto(out *MonitoringConfiguration) {
	*out = *in
	if in.DisableDefaultQueries != nil {
		in, out := &in.DisableDefaultQueries, &out.DisableDefaultQueries
		*out = new(bool)
		**out = **in
	}
	if in.CustomQueriesConfigMap != nil {
		in, out := &in.CustomQueriesConfigMap, &out.CustomQueriesConfigMap
		*out = make([]ConfigMapKeySelector, len(*in))
		copy(*out, *in)
	}
	if in.CustomQueriesSecret != nil {
		in, out := &in.CustomQueriesSecret, &out.CustomQueriesSecret
		*out = make([]SecretKeySelector, len(*in))
		copy(*out, *in)
	}
	if in.TLSConfig != nil {
		in, out := &in.TLSConfig, &out.TLSConfig
		*out = new(ClusterMonitoringTLSConfiguration)
		**out = **in
	}
	if in.PodMonitorMetricRelabelConfigs != nil {
		in, out := &in.PodMonitorMetricRelabelConfigs, &out.PodMonitorMetricRelabelConfigs
		*out = make([]monitoringv1.RelabelConfig, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.PodMonitorRelabelConfigs != nil {
		in, out := &in.PodMonitorRelabelConfigs, &out.PodMonitorRelabelConfigs
		*out = make([]monitoringv1.RelabelConfig, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.MetricsQueriesTTL != nil {
		in, out := &in.MetricsQueriesTTL, &out.MetricsQueriesTTL
		*out = new(metav1.Duration)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitoringConfiguration.
func (in *MonitoringConfiguration) DeepCopy() *MonitoringConfiguration {
	if in == nil {
		return nil
	}
	out := new(MonitoringConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeMaintenanceWindow) DeepCopyInto(out *NodeMaintenanceWindow) {
	*out = *in
	if in.ReusePVC != nil {
		in, out := &in.ReusePVC, &out.ReusePVC
		*out = new(bool)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeMaintenanceWindow.
func (in *NodeMaintenanceWindow) DeepCopy() *NodeMaintenanceWindow {
	if in == nil {
		return nil
	}
	out := new(NodeMaintenanceWindow)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OnlineConfiguration) DeepCopyInto(out *OnlineConfiguration) {
	*out = *in
	if in.WaitForArchive != nil {
		in, out := &in.WaitForArchive, &out.WaitForArchive
		*out = new(bool)
		**out = **in
	}
	if in.ImmediateCheckpoint != nil {
		in, out := &in.ImmediateCheckpoint, &out.ImmediateCheckpoint
		*out = new(bool)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OnlineConfiguration.
func (in *OnlineConfiguration) DeepCopy() *OnlineConfiguration {
	if in == nil {
		return nil
	}
	out := new(OnlineConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OptionSpec) DeepCopyInto(out *OptionSpec) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionSpec.
func (in *OptionSpec) DeepCopy() *OptionSpec {
	if in == nil {
		return nil
	}
	out := new(OptionSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PasswordState) DeepCopyInto(out *PasswordState) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswordState.
func (in *PasswordState) DeepCopy() *PasswordState {
	if in == nil {
		return nil
	}
	out := new(PasswordState)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PgBouncerIntegrationStatus) DeepCopyInto(out *PgBouncerIntegrationStatus) {
	*out = *in
	if in.Secrets != nil {
		in, out := &in.Secrets, &out.Secrets
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgBouncerIntegrationStatus.
func (in *PgBouncerIntegrationStatus) DeepCopy() *PgBouncerIntegrationStatus {
	if in == nil {
		return nil
	}
	out := new(PgBouncerIntegrationStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PgBouncerSecrets) DeepCopyInto(out *PgBouncerSecrets) {
	*out = *in
	out.AuthQuery = in.AuthQuery
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgBouncerSecrets.
func (in *PgBouncerSecrets) DeepCopy() *PgBouncerSecrets {
	if in == nil {
		return nil
	}
	out := new(PgBouncerSecrets)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PgBouncerSpec) DeepCopyInto(out *PgBouncerSpec) {
	*out = *in
	if in.ServerTLSSecret != nil {
		in, out := &in.ServerTLSSecret, &out.ServerTLSSecret
		*out = new(LocalObjectReference)
		**out = **in
	}
	if in.ServerCASecret != nil {
		in, out := &in.ServerCASecret, &out.ServerCASecret
		*out = new(LocalObjectReference)
		**out = **in
	}
	if in.ClientCASecret != nil {
		in, out := &in.ClientCASecret, &out.ClientCASecret
		*out = new(LocalObjectReference)
		**out = **in
	}
	if in.ClientTLSSecret != nil {
		in, out := &in.ClientTLSSecret, &out.ClientTLSSecret
		*out = new(LocalObjectReference)
		**out = **in
	}
	if in.AuthQuerySecret != nil {
		in, out := &in.AuthQuerySecret, &out.AuthQuerySecret
		*out = new(LocalObjectReference)
		**out = **in
	}
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.PgHBA != nil {
		in, out := &in.PgHBA, &out.PgHBA
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Paused != nil {
		in, out := &in.Paused, &out.Paused
		*out = new(bool)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PgBouncerSpec.
func (in *PgBouncerSpec) DeepCopy() *PgBouncerSpec {
	if in == nil {
		return nil
	}
	out := new(PgBouncerSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PluginConfiguration) DeepCopyInto(out *PluginConfiguration) {
	*out = *in
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
	if in.IsWALArchiver != nil {
		in, out := &in.IsWALArchiver, &out.IsWALArchiver
		*out = new(bool)
		**out = **in
	}
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfiguration.
func (in *PluginConfiguration) DeepCopy() *PluginConfiguration {
	if in == nil {
		return nil
	}
	out := new(PluginConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PluginStatus) DeepCopyInto(out *PluginStatus) {
	*out = *in
	if in.Capabilities != nil {
		in, out := &in.Capabilities, &out.Capabilities
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.OperatorCapabilities != nil {
		in, out := &in.OperatorCapabilities, &out.OperatorCapabilities
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.WALCapabilities != nil {
		in, out := &in.WALCapabilities, &out.WALCapabilities
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.BackupCapabilities != nil {
		in, out := &in.BackupCapabilities, &out.BackupCapabilities
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.RestoreJobHookCapabilities != nil {
		in, out := &in.RestoreJobHookCapabilities, &out.RestoreJobHookCapabilities
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginStatus.
func (in *PluginStatus) DeepCopy() *PluginStatus {
	if in == nil {
		return nil
	}
	out := new(PluginStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodSelectorRef) DeepCopyInto(out *PodSelectorRef) {
	*out = *in
	in.Selector.DeepCopyInto(&out.Selector)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSelectorRef.
func (in *PodSelectorRef) DeepCopy() *PodSelectorRef {
	if in == nil {
		return nil
	}
	out := new(PodSelectorRef)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodSelectorRefStatus) DeepCopyInto(out *PodSelectorRefStatus) {
	*out = *in
	if in.IPs != nil {
		in, out := &in.IPs, &out.IPs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSelectorRefStatus.
func (in *PodSelectorRefStatus) DeepCopy() *PodSelectorRefStatus {
	if in == nil {
		return nil
	}
	out := new(PodSelectorRefStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec) {
	*out = *in
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.
func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec {
	if in == nil {
		return nil
	}
	out := new(PodTemplateSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in PodTopologyLabels) DeepCopyInto(out *PodTopologyLabels) {
	{
		in := &in
		*out = make(PodTopologyLabels, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTopologyLabels.
func (in PodTopologyLabels) DeepCopy() PodTopologyLabels {
	if in == nil {
		return nil
	}
	out := new(PodTopologyLabels)
	in.DeepCopyInto(out)
	return *out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Pooler) DeepCopyInto(out *Pooler) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pooler.
func (in *Pooler) DeepCopy() *Pooler {
	if in == nil {
		return nil
	}
	out := new(Pooler)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Pooler) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PoolerIntegrations) DeepCopyInto(out *PoolerIntegrations) {
	*out = *in
	in.PgBouncerIntegration.DeepCopyInto(&out.PgBouncerIntegration)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolerIntegrations.
func (in *PoolerIntegrations) DeepCopy() *PoolerIntegrations {
	if in == nil {
		return nil
	}
	out := new(PoolerIntegrations)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PoolerList) DeepCopyInto(out *PoolerList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Pooler, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolerList.
func (in *PoolerList) DeepCopy() *PoolerList {
	if in == nil {
		return nil
	}
	out := new(PoolerList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *PoolerList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PoolerMonitoringConfiguration) DeepCopyInto(out *PoolerMonitoringConfiguration) {
	*out = *in
	if in.PodMonitorMetricRelabelConfigs != nil {
		in, out := &in.PodMonitorMetricRelabelConfigs, &out.PodMonitorMetricRelabelConfigs
		*out = make([]monitoringv1.RelabelConfig, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.PodMonitorRelabelConfigs != nil {
		in, out := &in.PodMonitorRelabelConfigs, &out.PodMonitorRelabelConfigs
		*out = make([]monitoringv1.RelabelConfig, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolerMonitoringConfiguration.
func (in *PoolerMonitoringConfiguration) DeepCopy() *PoolerMonitoringConfiguration {
	if in == nil {
		return nil
	}
	out := new(PoolerMonitoringConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PoolerSecrets) DeepCopyInto(out *PoolerSecrets) {
	*out = *in
	out.ClientTLS = in.ClientTLS
	out.ServerTLS = in.ServerTLS
	out.ServerCA = in.ServerCA
	out.ClientCA = in.ClientCA
	if in.PgBouncerSecrets != nil {
		in, out := &in.PgBouncerSecrets, &out.PgBouncerSecrets
		*out = new(PgBouncerSecrets)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolerSecrets.
func (in *PoolerSecrets) DeepCopy() *PoolerSecrets {
	if in == nil {
		return nil
	}
	out := new(PoolerSecrets)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PoolerSpec) DeepCopyInto(out *PoolerSpec) {
	*out = *in
	in.Cluster.DeepCopyInto(&out.Cluster)
	if in.Instances != nil {
		in, out := &in.Instances, &out.Instances
		*out = new(int32)
		**out = **in
	}
	if in.Template != nil {
		in, out := &in.Template, &out.Template
		*out = new(PodTemplateSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.PgBouncer != nil {
		in, out := &in.PgBouncer, &out.PgBouncer
		*out = new(PgBouncerSpec)
		(*in).DeepCopyInto(*out)
	}
	if in.DeploymentStrategy != nil {
		in, out := &in.DeploymentStrategy, &out.DeploymentStrategy
		*out = new(appsv1.DeploymentStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.Monitoring != nil {
		in, out := &in.Monitoring, &out.Monitoring
		*out = new(PoolerMonitoringConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceTemplate != nil {
		in, out := &in.ServiceTemplate, &out.ServiceTemplate
		*out = new(ServiceTemplateSpec)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolerSpec.
func (in *PoolerSpec) DeepCopy() *PoolerSpec {
	if in == nil {
		return nil
	}
	out := new(PoolerSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PoolerStatus) DeepCopyInto(out *PoolerStatus) {
	*out = *in
	if in.Secrets != nil {
		in, out := &in.Secrets, &out.Secrets
		*out = new(PoolerSecrets)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolerStatus.
func (in *PoolerStatus) DeepCopy() *PoolerStatus {
	if in == nil {
		return nil
	}
	out := new(PoolerStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PostgresConfiguration) DeepCopyInto(out *PostgresConfiguration) {
	*out = *in
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Synchronous != nil {
		in, out := &in.Synchronous, &out.Synchronous
		*out = new(SynchronousReplicaConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.PgHBA != nil {
		in, out := &in.PgHBA, &out.PgHBA
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PgIdent != nil {
		in, out := &in.PgIdent, &out.PgIdent
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.SyncReplicaElectionConstraint.DeepCopyInto(&out.SyncReplicaElectionConstraint)
	if in.AdditionalLibraries != nil {
		in, out := &in.AdditionalLibraries, &out.AdditionalLibraries
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.LDAP != nil {
		in, out := &in.LDAP, &out.LDAP
		*out = new(LDAPConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Extensions != nil {
		in, out := &in.Extensions, &out.Extensions
		*out = make([]ExtensionConfiguration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfiguration.
func (in *PostgresConfiguration) DeepCopy() *PostgresConfiguration {
	if in == nil {
		return nil
	}
	out := new(PostgresConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Probe) DeepCopyInto(out *Probe) {
	*out = *in
	if in.TerminationGracePeriodSeconds != nil {
		in, out := &in.TerminationGracePeriodSeconds, &out.TerminationGracePeriodSeconds
		*out = new(int64)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.
func (in *Probe) DeepCopy() *Probe {
	if in == nil {
		return nil
	}
	out := new(Probe)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ProbeWithStrategy) DeepCopyInto(out *ProbeWithStrategy) {
	*out = *in
	in.Probe.DeepCopyInto(&out.Probe)
	if in.MaximumLag != nil {
		in, out := &in.MaximumLag, &out.MaximumLag
		x := (*in).DeepCopy()
		*out = &x
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProbeWithStrategy.
func (in *ProbeWithStrategy) DeepCopy() *ProbeWithStrategy {
	if in == nil {
		return nil
	}
	out := new(ProbeWithStrategy)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ProbesConfiguration) DeepCopyInto(out *ProbesConfiguration) {
	*out = *in
	if in.Startup != nil {
		in, out := &in.Startup, &out.Startup
		*out = new(ProbeWithStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.Liveness != nil {
		in, out := &in.Liveness, &out.Liveness
		*out = new(LivenessProbe)
		(*in).DeepCopyInto(*out)
	}
	if in.Readiness != nil {
		in, out := &in.Readiness, &out.Readiness
		*out = new(ProbeWithStrategy)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProbesConfiguration.
func (in *ProbesConfiguration) DeepCopy() *ProbesConfiguration {
	if in == nil {
		return nil
	}
	out := new(ProbesConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Publication) DeepCopyInto(out *Publication) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Publication.
func (in *Publication) DeepCopy() *Publication {
	if in == nil {
		return nil
	}
	out := new(Publication)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Publication) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PublicationList) DeepCopyInto(out *PublicationList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Publication, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicationList.
func (in *PublicationList) DeepCopy() *PublicationList {
	if in == nil {
		return nil
	}
	out := new(PublicationList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *PublicationList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PublicationSpec) DeepCopyInto(out *PublicationSpec) {
	*out = *in
	out.ClusterRef = in.ClusterRef
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	in.Target.DeepCopyInto(&out.Target)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicationSpec.
func (in *PublicationSpec) DeepCopy() *PublicationSpec {
	if in == nil {
		return nil
	}
	out := new(PublicationSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PublicationStatus) DeepCopyInto(out *PublicationStatus) {
	*out = *in
	if in.Applied != nil {
		in, out := &in.Applied, &out.Applied
		*out = new(bool)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicationStatus.
func (in *PublicationStatus) DeepCopy() *PublicationStatus {
	if in == nil {
		return nil
	}
	out := new(PublicationStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PublicationTarget) DeepCopyInto(out *PublicationTarget) {
	*out = *in
	if in.Objects != nil {
		in, out := &in.Objects, &out.Objects
		*out = make([]PublicationTargetObject, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicationTarget.
func (in *PublicationTarget) DeepCopy() *PublicationTarget {
	if in == nil {
		return nil
	}
	out := new(PublicationTarget)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PublicationTargetObject) DeepCopyInto(out *PublicationTargetObject) {
	*out = *in
	if in.Table != nil {
		in, out := &in.Table, &out.Table
		*out = new(PublicationTargetTable)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicationTargetObject.
func (in *PublicationTargetObject) DeepCopy() *PublicationTargetObject {
	if in == nil {
		return nil
	}
	out := new(PublicationTargetObject)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PublicationTargetTable) DeepCopyInto(out *PublicationTargetTable) {
	*out = *in
	if in.Columns != nil {
		in, out := &in.Columns, &out.Columns
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicationTargetTable.
func (in *PublicationTargetTable) DeepCopy() *PublicationTargetTable {
	if in == nil {
		return nil
	}
	out := new(PublicationTargetTable)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RecoveryTarget) DeepCopyInto(out *RecoveryTarget) {
	*out = *in
	if in.TargetImmediate != nil {
		in, out := &in.TargetImmediate, &out.TargetImmediate
		*out = new(bool)
		**out = **in
	}
	if in.Exclusive != nil {
		in, out := &in.Exclusive, &out.Exclusive
		*out = new(bool)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecoveryTarget.
func (in *RecoveryTarget) DeepCopy() *RecoveryTarget {
	if in == nil {
		return nil
	}
	out := new(RecoveryTarget)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ReplicaClusterConfiguration) DeepCopyInto(out *ReplicaClusterConfiguration) {
	*out = *in
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
	if in.MinApplyDelay != nil {
		in, out := &in.MinApplyDelay, &out.MinApplyDelay
		*out = new(metav1.Duration)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaClusterConfiguration.
func (in *ReplicaClusterConfiguration) DeepCopy() *ReplicaClusterConfiguration {
	if in == nil {
		return nil
	}
	out := new(ReplicaClusterConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ReplicationSlotsConfiguration) DeepCopyInto(out *ReplicationSlotsConfiguration) {
	*out = *in
	if in.HighAvailability != nil {
		in, out := &in.HighAvailability, &out.HighAvailability
		*out = new(ReplicationSlotsHAConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.SynchronizeReplicas != nil {
		in, out := &in.SynchronizeReplicas, &out.SynchronizeReplicas
		*out = new(SynchronizeReplicasConfiguration)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSlotsConfiguration.
func (in *ReplicationSlotsConfiguration) DeepCopy() *ReplicationSlotsConfiguration {
	if in == nil {
		return nil
	}
	out := new(ReplicationSlotsConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ReplicationSlotsHAConfiguration) DeepCopyInto(out *ReplicationSlotsHAConfiguration) {
	*out = *in
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSlotsHAConfiguration.
func (in *ReplicationSlotsHAConfiguration) DeepCopy() *ReplicationSlotsHAConfiguration {
	if in == nil {
		return nil
	}
	out := new(ReplicationSlotsHAConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RoleConfiguration) DeepCopyInto(out *RoleConfiguration) {
	*out = *in
	if in.PasswordSecret != nil {
		in, out := &in.PasswordSecret, &out.PasswordSecret
		*out = new(LocalObjectReference)
		**out = **in
	}
	if in.ValidUntil != nil {
		in, out := &in.ValidUntil, &out.ValidUntil
		*out = (*in).DeepCopy()
	}
	if in.InRoles != nil {
		in, out := &in.InRoles, &out.InRoles
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Inherit != nil {
		in, out := &in.Inherit, &out.Inherit
		*out = new(bool)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleConfiguration.
func (in *RoleConfiguration) DeepCopy() *RoleConfiguration {
	if in == nil {
		return nil
	}
	out := new(RoleConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SQLRefs) DeepCopyInto(out *SQLRefs) {
	*out = *in
	if in.SecretRefs != nil {
		in, out := &in.SecretRefs, &out.SecretRefs
		*out = make([]SecretKeySelector, len(*in))
		copy(*out, *in)
	}
	if in.ConfigMapRefs != nil {
		in, out := &in.ConfigMapRefs, &out.ConfigMapRefs
		*out = make([]ConfigMapKeySelector, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SQLRefs.
func (in *SQLRefs) DeepCopy() *SQLRefs {
	if in == nil {
		return nil
	}
	out := new(SQLRefs)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ScheduledBackup) DeepCopyInto(out *ScheduledBackup) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScheduledBackup.
func (in *ScheduledBackup) DeepCopy() *ScheduledBackup {
	if in == nil {
		return nil
	}
	out := new(ScheduledBackup)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ScheduledBackup) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ScheduledBackupList) DeepCopyInto(out *ScheduledBackupList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ScheduledBackup, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScheduledBackupList.
func (in *ScheduledBackupList) DeepCopy() *ScheduledBackupList {
	if in == nil {
		return nil
	}
	out := new(ScheduledBackupList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ScheduledBackupList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ScheduledBackupSpec) DeepCopyInto(out *ScheduledBackupSpec) {
	*out = *in
	if in.Suspend != nil {
		in, out := &in.Suspend, &out.Suspend
		*out = new(bool)
		**out = **in
	}
	if in.Immediate != nil {
		in, out := &in.Immediate, &out.Immediate
		*out = new(bool)
		**out = **in
	}
	in.Cluster.DeepCopyInto(&out.Cluster)
	if in.PluginConfiguration != nil {
		in, out := &in.PluginConfiguration, &out.PluginConfiguration
		*out = new(BackupPluginConfiguration)
		(*in).DeepCopyInto(*out)
	}
	if in.Online != nil {
		in, out := &in.Online, &out.Online
		*out = new(bool)
		**out = **in
	}
	if in.OnlineConfiguration != nil {
		in, out := &in.OnlineConfiguration, &out.OnlineConfiguration
		*out = new(OnlineConfiguration)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScheduledBackupSpec.
func (in *ScheduledBackupSpec) DeepCopy() *ScheduledBackupSpec {
	if in == nil {
		return nil
	}
	out := new(ScheduledBackupSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ScheduledBackupStatus) DeepCopyInto(out *ScheduledBackupStatus) {
	*out = *in
	if in.LastCheckTime != nil {
		in, out := &in.LastCheckTime, &out.LastCheckTime
		*out = (*in).DeepCopy()
	}
	if in.LastScheduleTime != nil {
		in, out := &in.LastScheduleTime, &out.LastScheduleTime
		*out = (*in).DeepCopy()
	}
	if in.NextScheduleTime != nil {
		in, out := &in.NextScheduleTime, &out.NextScheduleTime
		*out = (*in).DeepCopy()
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScheduledBackupStatus.
func (in *ScheduledBackupStatus) DeepCopy() *ScheduledBackupStatus {
	if in == nil {
		return nil
	}
	out := new(ScheduledBackupStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SchemaSpec) DeepCopyInto(out *SchemaSpec) {
	*out = *in
	out.DatabaseObjectSpec = in.DatabaseObjectSpec
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchemaSpec.
func (in *SchemaSpec) DeepCopy() *SchemaSpec {
	if in == nil {
		return nil
	}
	out := new(SchemaSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SecretVersion) DeepCopyInto(out *SecretVersion) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretVersion.
func (in *SecretVersion) DeepCopy() *SecretVersion {
	if in == nil {
		return nil
	}
	out := new(SecretVersion)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SecretsResourceVersion) DeepCopyInto(out *SecretsResourceVersion) {
	*out = *in
	if in.ManagedRoleSecretVersions != nil {
		in, out := &in.ManagedRoleSecretVersions, &out.ManagedRoleSecretVersions
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.ExternalClusterSecretVersions != nil {
		in, out := &in.ExternalClusterSecretVersions, &out.ExternalClusterSecretVersions
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Metrics != nil {
		in, out := &in.Metrics, &out.Metrics
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretsResourceVersion.
func (in *SecretsResourceVersion) DeepCopy() *SecretsResourceVersion {
	if in == nil {
		return nil
	}
	out := new(SecretsResourceVersion)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServerSpec) DeepCopyInto(out *ServerSpec) {
	*out = *in
	out.DatabaseObjectSpec = in.DatabaseObjectSpec
	if in.Options != nil {
		in, out := &in.Options, &out.Options
		*out = make([]OptionSpec, len(*in))
		copy(*out, *in)
	}
	if in.Usages != nil {
		in, out := &in.Usages, &out.Usages
		*out = make([]UsageSpec, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerSpec.
func (in *ServerSpec) DeepCopy() *ServerSpec {
	if in == nil {
		return nil
	}
	out := new(ServerSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServiceAccountTemplate) DeepCopyInto(out *ServiceAccountTemplate) {
	*out = *in
	in.Metadata.DeepCopyInto(&out.Metadata)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountTemplate.
func (in *ServiceAccountTemplate) DeepCopy() *ServiceAccountTemplate {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountTemplate)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServiceTemplateSpec) DeepCopyInto(out *ServiceTemplateSpec) {
	*out = *in
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceTemplateSpec.
func (in *ServiceTemplateSpec) DeepCopy() *ServiceTemplateSpec {
	if in == nil {
		return nil
	}
	out := new(ServiceTemplateSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *StorageConfiguration) DeepCopyInto(out *StorageConfiguration) {
	*out = *in
	if in.StorageClass != nil {
		in, out := &in.StorageClass, &out.StorageClass
		*out = new(string)
		**out = **in
	}
	if in.ResizeInUseVolumes != nil {
		in, out := &in.ResizeInUseVolumes, &out.ResizeInUseVolumes
		*out = new(bool)
		**out = **in
	}
	if in.PersistentVolumeClaimTemplate != nil {
		in, out := &in.PersistentVolumeClaimTemplate, &out.PersistentVolumeClaimTemplate
		*out = new(corev1.PersistentVolumeClaimSpec)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageConfiguration.
func (in *StorageConfiguration) DeepCopy() *StorageConfiguration {
	if in == nil {
		return nil
	}
	out := new(StorageConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Subscription) DeepCopyInto(out *Subscription) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subscription.
func (in *Subscription) DeepCopy() *Subscription {
	if in == nil {
		return nil
	}
	out := new(Subscription)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Subscription) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SubscriptionList) DeepCopyInto(out *SubscriptionList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]Subscription, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionList.
func (in *SubscriptionList) DeepCopy() *SubscriptionList {
	if in == nil {
		return nil
	}
	out := new(SubscriptionList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *SubscriptionList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SubscriptionSpec) DeepCopyInto(out *SubscriptionSpec) {
	*out = *in
	out.ClusterRef = in.ClusterRef
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionSpec.
func (in *SubscriptionSpec) DeepCopy() *SubscriptionSpec {
	if in == nil {
		return nil
	}
	out := new(SubscriptionSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SubscriptionStatus) DeepCopyInto(out *SubscriptionStatus) {
	*out = *in
	if in.Applied != nil {
		in, out := &in.Applied, &out.Applied
		*out = new(bool)
		**out = **in
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionStatus.
func (in *SubscriptionStatus) DeepCopy() *SubscriptionStatus {
	if in == nil {
		return nil
	}
	out := new(SubscriptionStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SwitchReplicaClusterStatus) DeepCopyInto(out *SwitchReplicaClusterStatus) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SwitchReplicaClusterStatus.
func (in *SwitchReplicaClusterStatus) DeepCopy() *SwitchReplicaClusterStatus {
	if in == nil {
		return nil
	}
	out := new(SwitchReplicaClusterStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SyncReplicaElectionConstraints) DeepCopyInto(out *SyncReplicaElectionConstraints) {
	*out = *in
	if in.NodeLabelsAntiAffinity != nil {
		in, out := &in.NodeLabelsAntiAffinity, &out.NodeLabelsAntiAffinity
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncReplicaElectionConstraints.
func (in *SyncReplicaElectionConstraints) DeepCopy() *SyncReplicaElectionConstraints {
	if in == nil {
		return nil
	}
	out := new(SyncReplicaElectionConstraints)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SynchronizeReplicasConfiguration) DeepCopyInto(out *SynchronizeReplicasConfiguration) {
	*out = *in
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
	if in.ExcludePatterns != nil {
		in, out := &in.ExcludePatterns, &out.ExcludePatterns
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SynchronizeReplicasConfiguration.
func (in *SynchronizeReplicasConfiguration) DeepCopy() *SynchronizeReplicasConfiguration {
	if in == nil {
		return nil
	}
	out := new(SynchronizeReplicasConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SynchronousReplicaConfiguration) DeepCopyInto(out *SynchronousReplicaConfiguration) {
	*out = *in
	if in.MaxStandbyNamesFromCluster != nil {
		in, out := &in.MaxStandbyNamesFromCluster, &out.MaxStandbyNamesFromCluster
		*out = new(int)
		**out = **in
	}
	if in.StandbyNamesPre != nil {
		in, out := &in.StandbyNamesPre, &out.StandbyNamesPre
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.StandbyNamesPost != nil {
		in, out := &in.StandbyNamesPost, &out.StandbyNamesPost
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SynchronousReplicaConfiguration.
func (in *SynchronousReplicaConfiguration) DeepCopy() *SynchronousReplicaConfiguration {
	if in == nil {
		return nil
	}
	out := new(SynchronousReplicaConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TablespaceConfiguration) DeepCopyInto(out *TablespaceConfiguration) {
	*out = *in
	in.Storage.DeepCopyInto(&out.Storage)
	out.Owner = in.Owner
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TablespaceConfiguration.
func (in *TablespaceConfiguration) DeepCopy() *TablespaceConfiguration {
	if in == nil {
		return nil
	}
	out := new(TablespaceConfiguration)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TablespaceState) DeepCopyInto(out *TablespaceState) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TablespaceState.
func (in *TablespaceState) DeepCopy() *TablespaceState {
	if in == nil {
		return nil
	}
	out := new(TablespaceState)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Topology) DeepCopyInto(out *Topology) {
	*out = *in
	if in.Instances != nil {
		in, out := &in.Instances, &out.Instances
		*out = make(map[PodName]PodTopologyLabels, len(*in))
		for key, val := range *in {
			var outVal map[string]string
			if val == nil {
				(*out)[key] = nil
			} else {
				inVal := (*in)[key]
				in, out := &inVal, &outVal
				*out = make(PodTopologyLabels, len(*in))
				for key, val := range *in {
					(*out)[key] = val
				}
			}
			(*out)[key] = outVal
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Topology.
func (in *Topology) DeepCopy() *Topology {
	if in == nil {
		return nil
	}
	out := new(Topology)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *UsageSpec) DeepCopyInto(out *UsageSpec) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UsageSpec.
func (in *UsageSpec) DeepCopy() *UsageSpec {
	if in == nil {
		return nil
	}
	out := new(UsageSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VolumeSnapshotConfiguration) DeepCopyInto(out *VolumeSnapshotConfiguration) {
	*out = *in
	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.TablespaceClassName != nil {
		in, out := &in.TablespaceClassName, &out.TablespaceClassName
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Online != nil {
		in, out := &in.Online, &out.Online
		*out = new(bool)
		**out = **in
	}
	in.OnlineConfiguration.DeepCopyInto(&out.OnlineConfiguration)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotConfiguration.
func (in *VolumeSnapshotConfiguration) DeepCopy() *VolumeSnapshotConfiguration {
	if in == nil {
		return nil
	}
	out := new(VolumeSnapshotConfiguration)
	in.DeepCopyInto(out)
	return out
}
