//go:build !ignore_autogenerated
// +build !ignore_autogenerated

/*
Copyright The Kubernetes Authors.

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.
*/

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

package v1

import (
	types "github.com/altinity/clickhouse-operator/pkg/apis/common/types"
	util "github.com/altinity/clickhouse-operator/pkg/util"
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ChiClusterLayout) DeepCopyInto(out *ChiClusterLayout) {
	*out = *in
	if in.Shards != nil {
		in, out := &in.Shards, &out.Shards
		*out = make([]*ChiShard, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(ChiShard)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = make([]*ChiReplica, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(ChiReplica)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.HostsField != nil {
		in, out := &in.HostsField, &out.HostsField
		*out = new(HostsField)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ChiReconcile) DeepCopyInto(out *ChiReconcile) {
	*out = *in
	if in.Cleanup != nil {
		in, out := &in.Cleanup, &out.Cleanup
		*out = new(Cleanup)
		(*in).DeepCopyInto(*out)
	}
	in.Macros.DeepCopyInto(&out.Macros)
	out.Runtime = in.Runtime
	in.Host.DeepCopyInto(&out.Host)
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ChiReplica) DeepCopyInto(out *ChiReplica) {
	*out = *in
	if in.Settings != nil {
		in, out := &in.Settings, &out.Settings
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Files != nil {
		in, out := &in.Files, &out.Files
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = new(TemplatesList)
		(*in).DeepCopyInto(*out)
	}
	if in.Hosts != nil {
		in, out := &in.Hosts, &out.Hosts
		*out = make([]*Host, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(Host)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	in.Runtime.DeepCopyInto(&out.Runtime)
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ChiShard) DeepCopyInto(out *ChiShard) {
	*out = *in
	if in.Weight != nil {
		in, out := &in.Weight, &out.Weight
		*out = new(int)
		**out = **in
	}
	if in.InternalReplication != nil {
		in, out := &in.InternalReplication, &out.InternalReplication
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Settings != nil {
		in, out := &in.Settings, &out.Settings
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Files != nil {
		in, out := &in.Files, &out.Files
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = new(TemplatesList)
		(*in).DeepCopyInto(*out)
	}
	if in.Hosts != nil {
		in, out := &in.Hosts, &out.Hosts
		*out = make([]*Host, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(Host)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	in.Runtime.DeepCopyInto(&out.Runtime)
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ChiSpec) DeepCopyInto(out *ChiSpec) {
	*out = *in
	if in.TaskID != nil {
		in, out := &in.TaskID, &out.TaskID
		*out = new(types.Id)
		**out = **in
	}
	if in.Stop != nil {
		in, out := &in.Stop, &out.Stop
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Restart != nil {
		in, out := &in.Restart, &out.Restart
		*out = new(types.String)
		**out = **in
	}
	if in.Troubleshoot != nil {
		in, out := &in.Troubleshoot, &out.Troubleshoot
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Suspend != nil {
		in, out := &in.Suspend, &out.Suspend
		*out = new(types.StringBool)
		**out = **in
	}
	if in.NamespaceDomainPattern != nil {
		in, out := &in.NamespaceDomainPattern, &out.NamespaceDomainPattern
		*out = new(types.String)
		**out = **in
	}
	if in.Templating != nil {
		in, out := &in.Templating, &out.Templating
		*out = new(ChiTemplating)
		(*in).DeepCopyInto(*out)
	}
	if in.Reconciling != nil {
		in, out := &in.Reconciling, &out.Reconciling
		*out = new(ChiReconcile)
		(*in).DeepCopyInto(*out)
	}
	if in.Reconcile != nil {
		in, out := &in.Reconcile, &out.Reconcile
		*out = new(ChiReconcile)
		(*in).DeepCopyInto(*out)
	}
	if in.Defaults != nil {
		in, out := &in.Defaults, &out.Defaults
		*out = new(Defaults)
		(*in).DeepCopyInto(*out)
	}
	if in.Configuration != nil {
		in, out := &in.Configuration, &out.Configuration
		*out = new(Configuration)
		(*in).DeepCopyInto(*out)
	}
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = new(Templates)
		(*in).DeepCopyInto(*out)
	}
	if in.UseTemplates != nil {
		in, out := &in.UseTemplates, &out.UseTemplates
		*out = make([]*TemplateRef, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(TemplateRef)
				**out = **in
			}
		}
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClickHouseInstallation) DeepCopyInto(out *ClickHouseInstallation) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	if in.Status != nil {
		in, out := &in.Status, &out.Status
		*out = new(Status)
		(*in).DeepCopyInto(*out)
	}
	if in.runtime != nil {
		in, out := &in.runtime, &out.runtime
		*out = new(ClickHouseInstallationRuntime)
		(*in).DeepCopyInto(*out)
	}
	out.statusCreatorMutex = in.statusCreatorMutex
	out.runtimeCreatorMutex = in.runtimeCreatorMutex
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClickHouseInstallation) 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 *ClickHouseInstallationList) DeepCopyInto(out *ClickHouseInstallationList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ClickHouseInstallation, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClickHouseInstallationList) 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 *ClickHouseInstallationRuntime) DeepCopyInto(out *ClickHouseInstallationRuntime) {
	*out = *in
	if in.attributes != nil {
		in, out := &in.attributes, &out.attributes
		*out = new(ComparableAttributes)
		(*in).DeepCopyInto(*out)
	}
	out.commonConfigMutex = in.commonConfigMutex
	if in.MinVersion != nil {
		in, out := &in.MinVersion, &out.MinVersion
		*out = (*in).DeepCopy()
	}
	if in.MaxVersion != nil {
		in, out := &in.MaxVersion, &out.MaxVersion
		*out = (*in).DeepCopy()
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClickHouseInstallationTemplate) DeepCopyInto(out *ClickHouseInstallationTemplate) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	if in.Status != nil {
		in, out := &in.Status, &out.Status
		*out = new(Status)
		(*in).DeepCopyInto(*out)
	}
	if in.runtime != nil {
		in, out := &in.runtime, &out.runtime
		*out = new(ClickHouseInstallationRuntime)
		(*in).DeepCopyInto(*out)
	}
	out.statusCreatorMutex = in.statusCreatorMutex
	out.runtimeCreatorMutex = in.runtimeCreatorMutex
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClickHouseInstallationTemplate) 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 *ClickHouseInstallationTemplateList) DeepCopyInto(out *ClickHouseInstallationTemplateList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ClickHouseInstallationTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClickHouseInstallationTemplateList) 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 *ClickHouseOperatorConfiguration) DeepCopyInto(out *ClickHouseOperatorConfiguration) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClickHouseOperatorConfiguration) 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 *ClickHouseOperatorConfigurationList) DeepCopyInto(out *ClickHouseOperatorConfigurationList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]ClickHouseOperatorConfiguration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ClickHouseOperatorConfigurationList) 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 *Cluster) DeepCopyInto(out *Cluster) {
	*out = *in
	if in.Zookeeper != nil {
		in, out := &in.Zookeeper, &out.Zookeeper
		*out = new(ZookeeperConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Settings != nil {
		in, out := &in.Settings, &out.Settings
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Files != nil {
		in, out := &in.Files, &out.Files
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = new(TemplatesList)
		(*in).DeepCopyInto(*out)
	}
	if in.SchemaPolicy != nil {
		in, out := &in.SchemaPolicy, &out.SchemaPolicy
		*out = new(SchemaPolicy)
		**out = **in
	}
	if in.Insecure != nil {
		in, out := &in.Insecure, &out.Insecure
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Secure != nil {
		in, out := &in.Secure, &out.Secure
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Secret != nil {
		in, out := &in.Secret, &out.Secret
		*out = new(ClusterSecret)
		(*in).DeepCopyInto(*out)
	}
	if in.PDBManaged != nil {
		in, out := &in.PDBManaged, &out.PDBManaged
		*out = new(types.StringBool)
		**out = **in
	}
	if in.PDBMaxUnavailable != nil {
		in, out := &in.PDBMaxUnavailable, &out.PDBMaxUnavailable
		*out = new(types.Int32)
		**out = **in
	}
	in.Reconcile.DeepCopyInto(&out.Reconcile)
	if in.Layout != nil {
		in, out := &in.Layout, &out.Layout
		*out = new(ChiClusterLayout)
		(*in).DeepCopyInto(*out)
	}
	in.Runtime.DeepCopyInto(&out.Runtime)
	return
}

// 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
}

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterSecret) DeepCopyInto(out *ClusterSecret) {
	*out = *in
	if in.Auto != nil {
		in, out := &in.Auto, &out.Auto
		*out = new(types.StringBool)
		**out = **in
	}
	if in.ValueFrom != nil {
		in, out := &in.ValueFrom, &out.ValueFrom
		*out = (*in).DeepCopy()
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ComparableAttributes) DeepCopyInto(out *ComparableAttributes) {
	*out = *in
	if in.additionalEnvVars != nil {
		in, out := &in.additionalEnvVars, &out.additionalEnvVars
		*out = make([]corev1.EnvVar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.additionalVolumes != nil {
		in, out := &in.additionalVolumes, &out.additionalVolumes
		*out = make([]corev1.Volume, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.additionalVolumeMounts != nil {
		in, out := &in.additionalVolumeMounts, &out.additionalVolumeMounts
		*out = make([]corev1.VolumeMount, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Configuration) DeepCopyInto(out *Configuration) {
	*out = *in
	if in.Zookeeper != nil {
		in, out := &in.Zookeeper, &out.Zookeeper
		*out = new(ZookeeperConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Users != nil {
		in, out := &in.Users, &out.Users
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Profiles != nil {
		in, out := &in.Profiles, &out.Profiles
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Quotas != nil {
		in, out := &in.Quotas, &out.Quotas
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Settings != nil {
		in, out := &in.Settings, &out.Settings
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Files != nil {
		in, out := &in.Files, &out.Files
		*out = new(Settings)
		(*in).DeepCopyInto(*out)
	}
	if in.Clusters != nil {
		in, out := &in.Clusters, &out.Clusters
		*out = make([]*Cluster, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(Cluster)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Defaults) DeepCopyInto(out *Defaults) {
	*out = *in
	if in.ReplicasUseFQDN != nil {
		in, out := &in.ReplicasUseFQDN, &out.ReplicasUseFQDN
		*out = new(types.StringBool)
		**out = **in
	}
	if in.DistributedDDL != nil {
		in, out := &in.DistributedDDL, &out.DistributedDDL
		*out = new(DistributedDDL)
		**out = **in
	}
	if in.StorageManagement != nil {
		in, out := &in.StorageManagement, &out.StorageManagement
		*out = new(StorageManagement)
		**out = **in
	}
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = new(TemplatesList)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FillStatusParams) DeepCopyInto(out *FillStatusParams) {
	*out = *in
	if in.Pods != nil {
		in, out := &in.Pods, &out.Pods
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.FQDNs != nil {
		in, out := &in.FQDNs, &out.FQDNs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Endpoints != nil {
		in, out := &in.Endpoints, &out.Endpoints
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.NormalizedCR != nil {
		in, out := &in.NormalizedCR, &out.NormalizedCR
		*out = new(ClickHouseInstallation)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Host) DeepCopyInto(out *Host) {
	*out = *in
	in.HostSecure.DeepCopyInto(&out.HostSecure)
	in.HostPorts.DeepCopyInto(&out.HostPorts)
	in.HostSettings.DeepCopyInto(&out.HostSettings)
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = new(TemplatesList)
		(*in).DeepCopyInto(*out)
	}
	in.Runtime.DeepCopyInto(&out.Runtime)
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HostPorts) DeepCopyInto(out *HostPorts) {
	*out = *in
	if in.Port != nil {
		in, out := &in.Port, &out.Port
		*out = new(types.Int32)
		**out = **in
	}
	if in.TCPPort != nil {
		in, out := &in.TCPPort, &out.TCPPort
		*out = new(types.Int32)
		**out = **in
	}
	if in.TLSPort != nil {
		in, out := &in.TLSPort, &out.TLSPort
		*out = new(types.Int32)
		**out = **in
	}
	if in.HTTPPort != nil {
		in, out := &in.HTTPPort, &out.HTTPPort
		*out = new(types.Int32)
		**out = **in
	}
	if in.HTTPSPort != nil {
		in, out := &in.HTTPSPort, &out.HTTPSPort
		*out = new(types.Int32)
		**out = **in
	}
	if in.InterserverHTTPPort != nil {
		in, out := &in.InterserverHTTPPort, &out.InterserverHTTPPort
		*out = new(types.Int32)
		**out = **in
	}
	if in.ZKPort != nil {
		in, out := &in.ZKPort, &out.ZKPort
		*out = new(types.Int32)
		**out = **in
	}
	if in.RaftPort != nil {
		in, out := &in.RaftPort, &out.RaftPort
		*out = new(types.Int32)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HostRuntime) DeepCopyInto(out *HostRuntime) {
	*out = *in
	out.Address = in.Address
	if in.Version != nil {
		in, out := &in.Version, &out.Version
		*out = (*in).DeepCopy()
	}
	if in.reconcileAttributes != nil {
		in, out := &in.reconcileAttributes, &out.reconcileAttributes
		*out = (*in).DeepCopy()
	}
	if in.replicas != nil {
		in, out := &in.replicas, &out.replicas
		*out = new(types.Int32)
		**out = **in
	}
	if in.CurStatefulSet != nil {
		in, out := &in.CurStatefulSet, &out.CurStatefulSet
		*out = new(appsv1.StatefulSet)
		(*in).DeepCopyInto(*out)
	}
	if in.DesiredStatefulSet != nil {
		in, out := &in.DesiredStatefulSet, &out.DesiredStatefulSet
		*out = new(appsv1.StatefulSet)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HostSecure) DeepCopyInto(out *HostSecure) {
	*out = *in
	if in.Insecure != nil {
		in, out := &in.Insecure, &out.Insecure
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Secure != nil {
		in, out := &in.Secure, &out.Secure
		*out = new(types.StringBool)
		**out = **in
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MacrosSections) DeepCopyInto(out *MacrosSections) {
	*out = *in
	in.Users.DeepCopyInto(&out.Users)
	in.Profiles.DeepCopyInto(&out.Profiles)
	in.Quotas.DeepCopyInto(&out.Quotas)
	in.Settings.DeepCopyInto(&out.Settings)
	in.Files.DeepCopyInto(&out.Files)
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OperatorConfig) DeepCopyInto(out *OperatorConfig) {
	*out = *in
	in.Runtime.DeepCopyInto(&out.Runtime)
	in.Watch.DeepCopyInto(&out.Watch)
	in.ClickHouse.DeepCopyInto(&out.ClickHouse)
	in.Keeper.DeepCopyInto(&out.Keeper)
	in.Template.DeepCopyInto(&out.Template)
	in.Reconcile.DeepCopyInto(&out.Reconcile)
	in.Annotation.DeepCopyInto(&out.Annotation)
	in.Label.DeepCopyInto(&out.Label)
	in.Metrics.DeepCopyInto(&out.Metrics)
	in.Status.DeepCopyInto(&out.Status)
	out.StatefulSet = in.StatefulSet
	out.Pod = in.Pod
	out.Logger = in.Logger
	if in.WatchNamespaces != nil {
		in, out := &in.WatchNamespaces, &out.WatchNamespaces
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.CHConfigUserDefaultNetworksIP != nil {
		in, out := &in.CHConfigUserDefaultNetworksIP, &out.CHConfigUserDefaultNetworksIP
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.IncludeIntoPropagationAnnotations != nil {
		in, out := &in.IncludeIntoPropagationAnnotations, &out.IncludeIntoPropagationAnnotations
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ExcludeFromPropagationAnnotations != nil {
		in, out := &in.ExcludeFromPropagationAnnotations, &out.ExcludeFromPropagationAnnotations
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.IncludeIntoPropagationLabels != nil {
		in, out := &in.IncludeIntoPropagationLabels, &out.IncludeIntoPropagationLabels
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ExcludeFromPropagationLabels != nil {
		in, out := &in.ExcludeFromPropagationLabels, &out.ExcludeFromPropagationLabels
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OperatorConfigClickHouse) DeepCopyInto(out *OperatorConfigClickHouse) {
	*out = *in
	in.Config.DeepCopyInto(&out.Config)
	in.ConfigRestartPolicy.DeepCopyInto(&out.ConfigRestartPolicy)
	out.Access = in.Access
	in.Addons.DeepCopyInto(&out.Addons)
	out.Metrics = in.Metrics
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OperatorConfigStatusFields) DeepCopyInto(out *OperatorConfigStatusFields) {
	*out = *in
	if in.Action != nil {
		in, out := &in.Action, &out.Action
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Actions != nil {
		in, out := &in.Actions, &out.Actions
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Error != nil {
		in, out := &in.Error, &out.Error
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Errors != nil {
		in, out := &in.Errors, &out.Errors
		*out = new(types.StringBool)
		**out = **in
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ReconcileHostWait) DeepCopyInto(out *ReconcileHostWait) {
	*out = *in
	if in.Exclude != nil {
		in, out := &in.Exclude, &out.Exclude
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Queries != nil {
		in, out := &in.Queries, &out.Queries
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Include != nil {
		in, out := &in.Include, &out.Include
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(ReconcileHostWaitReplicas)
		(*in).DeepCopyInto(*out)
	}
	if in.Probes != nil {
		in, out := &in.Probes, &out.Probes
		*out = new(ReconcileHostWaitProbes)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ReconcileHostWaitReplicas) DeepCopyInto(out *ReconcileHostWaitReplicas) {
	*out = *in
	if in.All != nil {
		in, out := &in.All, &out.All
		*out = new(types.StringBool)
		**out = **in
	}
	if in.New != nil {
		in, out := &in.New, &out.New
		*out = new(types.StringBool)
		**out = **in
	}
	if in.Delay != nil {
		in, out := &in.Delay, &out.Delay
		*out = new(types.Int32)
		**out = **in
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Settings) DeepCopyInto(out *Settings) {
	*out = *in
	if in.data != nil {
		in, out := &in.data, &out.data
		*out = make(map[string]*Setting, len(*in))
		for key, val := range *in {
			var outVal *Setting
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(Setting)
				(*in).DeepCopyInto(*out)
			}
			(*out)[key] = outVal
		}
	}
	if in.converter != nil {
		out.converter = in.converter.DeepCopySettingsName2KeyConverter()
	}
	return
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Status) DeepCopyInto(out *Status) {
	*out = *in
	if in.TaskIDsStarted != nil {
		in, out := &in.TaskIDsStarted, &out.TaskIDsStarted
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.TaskIDsCompleted != nil {
		in, out := &in.TaskIDsCompleted, &out.TaskIDsCompleted
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Actions != nil {
		in, out := &in.Actions, &out.Actions
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Errors != nil {
		in, out := &in.Errors, &out.Errors
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Pods != nil {
		in, out := &in.Pods, &out.Pods
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PodIPs != nil {
		in, out := &in.PodIPs, &out.PodIPs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.FQDNs != nil {
		in, out := &in.FQDNs, &out.FQDNs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Endpoints != nil {
		in, out := &in.Endpoints, &out.Endpoints
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.NormalizedCR != nil {
		in, out := &in.NormalizedCR, &out.NormalizedCR
		*out = new(ClickHouseInstallation)
		(*in).DeepCopyInto(*out)
	}
	if in.NormalizedCRCompleted != nil {
		in, out := &in.NormalizedCRCompleted, &out.NormalizedCRCompleted
		*out = new(ClickHouseInstallation)
		(*in).DeepCopyInto(*out)
	}
	if in.HostsWithTablesCreated != nil {
		in, out := &in.HostsWithTablesCreated, &out.HostsWithTablesCreated
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.HostsWithReplicaCaughtUp != nil {
		in, out := &in.HostsWithReplicaCaughtUp, &out.HostsWithReplicaCaughtUp
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.UsedTemplates != nil {
		in, out := &in.UsedTemplates, &out.UsedTemplates
		*out = make([]*TemplateRef, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(TemplateRef)
				**out = **in
			}
		}
	}
	out.mu = in.mu
	return
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Templates) DeepCopyInto(out *Templates) {
	*out = *in
	if in.HostTemplates != nil {
		in, out := &in.HostTemplates, &out.HostTemplates
		*out = make([]HostTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.PodTemplates != nil {
		in, out := &in.PodTemplates, &out.PodTemplates
		*out = make([]PodTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.VolumeClaimTemplates != nil {
		in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates
		*out = make([]VolumeClaimTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ServiceTemplates != nil {
		in, out := &in.ServiceTemplates, &out.ServiceTemplates
		*out = make([]ServiceTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.HostTemplatesIndex != nil {
		in, out := &in.HostTemplatesIndex, &out.HostTemplatesIndex
		*out = new(HostTemplatesIndex)
		(*in).DeepCopyInto(*out)
	}
	if in.PodTemplatesIndex != nil {
		in, out := &in.PodTemplatesIndex, &out.PodTemplatesIndex
		*out = new(PodTemplatesIndex)
		(*in).DeepCopyInto(*out)
	}
	if in.VolumeClaimTemplatesIndex != nil {
		in, out := &in.VolumeClaimTemplatesIndex, &out.VolumeClaimTemplatesIndex
		*out = new(VolumeClaimTemplatesIndex)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceTemplatesIndex != nil {
		in, out := &in.ServiceTemplatesIndex, &out.ServiceTemplatesIndex
		*out = new(ServiceTemplatesIndex)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ZookeeperConfig) DeepCopyInto(out *ZookeeperConfig) {
	*out = *in
	if in.Nodes != nil {
		in, out := &in.Nodes, &out.Nodes
		*out = make(ZookeeperNodes, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.UseCompression != nil {
		in, out := &in.UseCompression, &out.UseCompression
		*out = new(types.StringBool)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ZookeeperNode) DeepCopyInto(out *ZookeeperNode) {
	*out = *in
	if in.Port != nil {
		in, out := &in.Port, &out.Port
		*out = new(types.Int32)
		**out = **in
	}
	if in.Secure != nil {
		in, out := &in.Secure, &out.Secure
		*out = new(types.StringBool)
		**out = **in
	}
	if in.AvailabilityZone != nil {
		in, out := &in.AvailabilityZone, &out.AvailabilityZone
		*out = new(types.String)
		**out = **in
	}
	return
}

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

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

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