//go:build !ignore_autogenerated

/*
Copyright (C) 2022-2025 ApeCloud Co., Ltd

This file is part of KubeBlocks project

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

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

package v1

import (
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	rbacv1 "k8s.io/api/rbac/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
	"k8s.io/apimachinery/pkg/util/intstr"
)

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Action) DeepCopyInto(out *Action) {
	*out = *in
	if in.Exec != nil {
		in, out := &in.Exec, &out.Exec
		*out = new(ExecAction)
		(*in).DeepCopyInto(*out)
	}
	if in.HTTP != nil {
		in, out := &in.HTTP, &out.HTTP
		*out = new(HTTPAction)
		(*in).DeepCopyInto(*out)
	}
	if in.GRPC != nil {
		in, out := &in.GRPC, &out.GRPC
		*out = new(GRPCAction)
		(*in).DeepCopyInto(*out)
	}
	if in.RetryPolicy != nil {
		in, out := &in.RetryPolicy, &out.RetryPolicy
		*out = new(RetryPolicy)
		**out = **in
	}
	if in.PreCondition != nil {
		in, out := &in.PreCondition, &out.PreCondition
		*out = new(PreConditionType)
		**out = **in
	}
}

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

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

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

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

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionOutputMatcher.
func (in *ActionOutputMatcher) DeepCopy() *ActionOutputMatcher {
	if in == nil {
		return nil
	}
	out := new(ActionOutputMatcher)
	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 *ClusterBackup) DeepCopyInto(out *ClusterBackup) {
	*out = *in
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
	if in.StartingDeadlineMinutes != nil {
		in, out := &in.StartingDeadlineMinutes, &out.StartingDeadlineMinutes
		*out = new(int64)
		**out = **in
	}
	if in.PITREnabled != nil {
		in, out := &in.PITREnabled, &out.PITREnabled
		*out = new(bool)
		**out = **in
	}
	if in.IncrementalBackupEnabled != nil {
		in, out := &in.IncrementalBackupEnabled, &out.IncrementalBackupEnabled
		*out = new(bool)
		**out = **in
	}
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterComponentSpec) DeepCopyInto(out *ClusterComponentSpec) {
	*out = *in
	if in.ServiceRefs != nil {
		in, out := &in.ServiceRefs, &out.ServiceRefs
		*out = make([]ServiceRef, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.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.SchedulingPolicy != nil {
		in, out := &in.SchedulingPolicy, &out.SchedulingPolicy
		*out = new(SchedulingPolicy)
		(*in).DeepCopyInto(*out)
	}
	in.Resources.DeepCopyInto(&out.Resources)
	if in.VolumeClaimTemplates != nil {
		in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates
		*out = make([]PersistentVolumeClaimTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.PersistentVolumeClaimRetentionPolicy != nil {
		in, out := &in.PersistentVolumeClaimRetentionPolicy, &out.PersistentVolumeClaimRetentionPolicy
		*out = new(PersistentVolumeClaimRetentionPolicy)
		**out = **in
	}
	if in.Volumes != nil {
		in, out := &in.Volumes, &out.Volumes
		*out = make([]corev1.Volume, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Network != nil {
		in, out := &in.Network, &out.Network
		*out = new(ComponentNetwork)
		(*in).DeepCopyInto(*out)
	}
	if in.Services != nil {
		in, out := &in.Services, &out.Services
		*out = make([]ClusterComponentService, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.SystemAccounts != nil {
		in, out := &in.SystemAccounts, &out.SystemAccounts
		*out = make([]ComponentSystemAccount, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Configs != nil {
		in, out := &in.Configs, &out.Configs
		*out = make([]ClusterComponentConfig, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Issuer != nil {
		in, out := &in.Issuer, &out.Issuer
		*out = new(Issuer)
		(*in).DeepCopyInto(*out)
	}
	if in.ParallelPodManagementConcurrency != nil {
		in, out := &in.ParallelPodManagementConcurrency, &out.ParallelPodManagementConcurrency
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.PodUpdatePolicy != nil {
		in, out := &in.PodUpdatePolicy, &out.PodUpdatePolicy
		*out = new(PodUpdatePolicyType)
		**out = **in
	}
	if in.PodUpgradePolicy != nil {
		in, out := &in.PodUpgradePolicy, &out.PodUpgradePolicy
		*out = new(PodUpdatePolicyType)
		**out = **in
	}
	if in.InstanceUpdateStrategy != nil {
		in, out := &in.InstanceUpdateStrategy, &out.InstanceUpdateStrategy
		*out = new(InstanceUpdateStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.Instances != nil {
		in, out := &in.Instances, &out.Instances
		*out = make([]InstanceTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.OfflineInstances != nil {
		in, out := &in.OfflineInstances, &out.OfflineInstances
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.DisableExporter != nil {
		in, out := &in.DisableExporter, &out.DisableExporter
		*out = new(bool)
		**out = **in
	}
	if in.Stop != nil {
		in, out := &in.Stop, &out.Stop
		*out = new(bool)
		**out = **in
	}
	if in.EnableInstanceAPI != nil {
		in, out := &in.EnableInstanceAPI, &out.EnableInstanceAPI
		*out = new(bool)
		**out = **in
	}
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterComponentStatus) DeepCopyInto(out *ClusterComponentStatus) {
	*out = *in
	if in.Message != nil {
		in, out := &in.Message, &out.Message
		*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 ClusterComponentStatus.
func (in *ClusterComponentStatus) DeepCopy() *ClusterComponentStatus {
	if in == nil {
		return nil
	}
	out := new(ClusterComponentStatus)
	in.DeepCopyInto(out)
	return out
}

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

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

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

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

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

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

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

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

// 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 *ClusterObjectReference) DeepCopyInto(out *ClusterObjectReference) {
	*out = *in
	if in.Optional != nil {
		in, out := &in.Optional, &out.Optional
		*out = new(bool)
		**out = **in
	}
	if in.MultipleClusterObjectOption != nil {
		in, out := &in.MultipleClusterObjectOption, &out.MultipleClusterObjectOption
		*out = new(MultipleClusterObjectOption)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterSharding) DeepCopyInto(out *ClusterSharding) {
	*out = *in
	in.Template.DeepCopyInto(&out.Template)
	if in.ShardTemplates != nil {
		in, out := &in.ShardTemplates, &out.ShardTemplates
		*out = make([]ShardTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Offline != nil {
		in, out := &in.Offline, &out.Offline
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSharding.
func (in *ClusterSharding) DeepCopy() *ClusterSharding {
	if in == nil {
		return nil
	}
	out := new(ClusterSharding)
	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.ComponentSpecs != nil {
		in, out := &in.ComponentSpecs, &out.ComponentSpecs
		*out = make([]ClusterComponentSpec, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Shardings != nil {
		in, out := &in.Shardings, &out.Shardings
		*out = make([]ClusterSharding, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.RuntimeClassName != nil {
		in, out := &in.RuntimeClassName, &out.RuntimeClassName
		*out = new(string)
		**out = **in
	}
	if in.SchedulingPolicy != nil {
		in, out := &in.SchedulingPolicy, &out.SchedulingPolicy
		*out = new(SchedulingPolicy)
		(*in).DeepCopyInto(*out)
	}
	if in.Services != nil {
		in, out := &in.Services, &out.Services
		*out = make([]ClusterService, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Backup != nil {
		in, out := &in.Backup, &out.Backup
		*out = new(ClusterBackup)
		(*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.Components != nil {
		in, out := &in.Components, &out.Components
		*out = make(map[string]ClusterComponentStatus, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.Shardings != nil {
		in, out := &in.Shardings, &out.Shardings
		*out = make(map[string]ClusterComponentStatus, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	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])
		}
	}
}

// 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 *ClusterTopology) DeepCopyInto(out *ClusterTopology) {
	*out = *in
	if in.Components != nil {
		in, out := &in.Components, &out.Components
		*out = make([]ClusterTopologyComponent, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Shardings != nil {
		in, out := &in.Shardings, &out.Shardings
		*out = make([]ClusterTopologySharding, len(*in))
		copy(*out, *in)
	}
	if in.Orders != nil {
		in, out := &in.Orders, &out.Orders
		*out = new(ClusterTopologyOrders)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Component) 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 *ComponentAvailable) DeepCopyInto(out *ComponentAvailable) {
	*out = *in
	if in.WithPhases != nil {
		in, out := &in.WithPhases, &out.WithPhases
		*out = new(string)
		**out = **in
	}
	if in.WithRole != nil {
		in, out := &in.WithRole, &out.WithRole
		*out = new(string)
		**out = **in
	}
	if in.WithProbe != nil {
		in, out := &in.WithProbe, &out.WithProbe
		*out = new(ComponentAvailableWithProbe)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ComponentAvailableExpression) DeepCopyInto(out *ComponentAvailableExpression) {
	*out = *in
	if in.All != nil {
		in, out := &in.All, &out.All
		*out = new(ComponentAvailableProbeAssertion)
		(*in).DeepCopyInto(*out)
	}
	if in.Any != nil {
		in, out := &in.Any, &out.Any
		*out = new(ComponentAvailableProbeAssertion)
		(*in).DeepCopyInto(*out)
	}
	if in.None != nil {
		in, out := &in.None, &out.None
		*out = new(ComponentAvailableProbeAssertion)
		(*in).DeepCopyInto(*out)
	}
	if in.Majority != nil {
		in, out := &in.Majority, &out.Majority
		*out = new(ComponentAvailableProbeAssertion)
		(*in).DeepCopyInto(*out)
	}
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ComponentAvailableProbeAssertion) DeepCopyInto(out *ComponentAvailableProbeAssertion) {
	*out = *in
	in.ActionAssertion.DeepCopyInto(&out.ActionAssertion)
	if in.And != nil {
		in, out := &in.And, &out.And
		*out = make([]ActionAssertion, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Or != nil {
		in, out := &in.Or, &out.Or
		*out = make([]ActionAssertion, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Not != nil {
		in, out := &in.Not, &out.Not
		*out = new(ActionAssertion)
		(*in).DeepCopyInto(*out)
	}
	if in.Strict != nil {
		in, out := &in.Strict, &out.Strict
		*out = new(bool)
		**out = **in
	}
}

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

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

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ComponentDefinitionList) 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 *ComponentDefinitionSpec) DeepCopyInto(out *ComponentDefinitionSpec) {
	*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
		}
	}
	in.Runtime.DeepCopyInto(&out.Runtime)
	if in.Vars != nil {
		in, out := &in.Vars, &out.Vars
		*out = make([]EnvVar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Volumes != nil {
		in, out := &in.Volumes, &out.Volumes
		*out = make([]ComponentVolume, len(*in))
		copy(*out, *in)
	}
	if in.HostNetwork != nil {
		in, out := &in.HostNetwork, &out.HostNetwork
		*out = new(HostNetwork)
		(*in).DeepCopyInto(*out)
	}
	if in.Services != nil {
		in, out := &in.Services, &out.Services
		*out = make([]ComponentService, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Configs != nil {
		in, out := &in.Configs, &out.Configs
		*out = make([]ComponentFileTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Scripts != nil {
		in, out := &in.Scripts, &out.Scripts
		*out = make([]ComponentFileTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.LogConfigs != nil {
		in, out := &in.LogConfigs, &out.LogConfigs
		*out = make([]LogConfig, len(*in))
		copy(*out, *in)
	}
	if in.SystemAccounts != nil {
		in, out := &in.SystemAccounts, &out.SystemAccounts
		*out = make([]SystemAccount, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.TLS != nil {
		in, out := &in.TLS, &out.TLS
		*out = new(TLS)
		(*in).DeepCopyInto(*out)
	}
	if in.ReplicasLimit != nil {
		in, out := &in.ReplicasLimit, &out.ReplicasLimit
		*out = new(ReplicasLimit)
		**out = **in
	}
	if in.Available != nil {
		in, out := &in.Available, &out.Available
		*out = new(ComponentAvailable)
		(*in).DeepCopyInto(*out)
	}
	if in.Roles != nil {
		in, out := &in.Roles, &out.Roles
		*out = make([]ReplicaRole, len(*in))
		copy(*out, *in)
	}
	if in.UpdateStrategy != nil {
		in, out := &in.UpdateStrategy, &out.UpdateStrategy
		*out = new(UpdateStrategy)
		**out = **in
	}
	if in.PodManagementPolicy != nil {
		in, out := &in.PodManagementPolicy, &out.PodManagementPolicy
		*out = new(appsv1.PodManagementPolicyType)
		**out = **in
	}
	if in.PodUpdatePolicy != nil {
		in, out := &in.PodUpdatePolicy, &out.PodUpdatePolicy
		*out = new(PodUpdatePolicyType)
		**out = **in
	}
	if in.PodUpgradePolicy != nil {
		in, out := &in.PodUpgradePolicy, &out.PodUpgradePolicy
		*out = new(PodUpdatePolicyType)
		**out = **in
	}
	if in.PolicyRules != nil {
		in, out := &in.PolicyRules, &out.PolicyRules
		*out = make([]rbacv1.PolicyRule, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.LifecycleActions != nil {
		in, out := &in.LifecycleActions, &out.LifecycleActions
		*out = new(ComponentLifecycleActions)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceRefDeclarations != nil {
		in, out := &in.ServiceRefDeclarations, &out.ServiceRefDeclarations
		*out = make([]ServiceRefDeclaration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Exporter != nil {
		in, out := &in.Exporter, &out.Exporter
		*out = new(Exporter)
		**out = **in
	}
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ComponentLifecycleActions) DeepCopyInto(out *ComponentLifecycleActions) {
	*out = *in
	if in.PostProvision != nil {
		in, out := &in.PostProvision, &out.PostProvision
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.PreTerminate != nil {
		in, out := &in.PreTerminate, &out.PreTerminate
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.RoleProbe != nil {
		in, out := &in.RoleProbe, &out.RoleProbe
		*out = new(Probe)
		(*in).DeepCopyInto(*out)
	}
	if in.AvailableProbe != nil {
		in, out := &in.AvailableProbe, &out.AvailableProbe
		*out = new(Probe)
		(*in).DeepCopyInto(*out)
	}
	if in.Switchover != nil {
		in, out := &in.Switchover, &out.Switchover
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.MemberJoin != nil {
		in, out := &in.MemberJoin, &out.MemberJoin
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.MemberLeave != nil {
		in, out := &in.MemberLeave, &out.MemberLeave
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.Readonly != nil {
		in, out := &in.Readonly, &out.Readonly
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.Readwrite != nil {
		in, out := &in.Readwrite, &out.Readwrite
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.DataDump != nil {
		in, out := &in.DataDump, &out.DataDump
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.DataLoad != nil {
		in, out := &in.DataLoad, &out.DataLoad
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.Reconfigure != nil {
		in, out := &in.Reconfigure, &out.Reconfigure
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.AccountProvision != nil {
		in, out := &in.AccountProvision, &out.AccountProvision
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ComponentList) 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 *ComponentNetwork) DeepCopyInto(out *ComponentNetwork) {
	*out = *in
	if in.HostAliases != nil {
		in, out := &in.HostAliases, &out.HostAliases
		*out = make([]corev1.HostAlias, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.DNSPolicy != nil {
		in, out := &in.DNSPolicy, &out.DNSPolicy
		*out = new(corev1.DNSPolicy)
		**out = **in
	}
	if in.DNSConfig != nil {
		in, out := &in.DNSConfig, &out.DNSConfig
		*out = new(corev1.PodDNSConfig)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ComponentSpec) DeepCopyInto(out *ComponentSpec) {
	*out = *in
	if in.ServiceRefs != nil {
		in, out := &in.ServiceRefs, &out.ServiceRefs
		*out = make([]ServiceRef, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Labels != nil {
		in, out := &in.Labels, &out.Labels
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Env != nil {
		in, out := &in.Env, &out.Env
		*out = make([]corev1.EnvVar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	in.Resources.DeepCopyInto(&out.Resources)
	if in.VolumeClaimTemplates != nil {
		in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates
		*out = make([]PersistentVolumeClaimTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.PersistentVolumeClaimRetentionPolicy != nil {
		in, out := &in.PersistentVolumeClaimRetentionPolicy, &out.PersistentVolumeClaimRetentionPolicy
		*out = new(PersistentVolumeClaimRetentionPolicy)
		**out = **in
	}
	if in.Volumes != nil {
		in, out := &in.Volumes, &out.Volumes
		*out = make([]corev1.Volume, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Network != nil {
		in, out := &in.Network, &out.Network
		*out = new(ComponentNetwork)
		(*in).DeepCopyInto(*out)
	}
	if in.Services != nil {
		in, out := &in.Services, &out.Services
		*out = make([]ComponentService, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.SystemAccounts != nil {
		in, out := &in.SystemAccounts, &out.SystemAccounts
		*out = make([]ComponentSystemAccount, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Configs != nil {
		in, out := &in.Configs, &out.Configs
		*out = make([]ClusterComponentConfig, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.ParallelPodManagementConcurrency != nil {
		in, out := &in.ParallelPodManagementConcurrency, &out.ParallelPodManagementConcurrency
		*out = new(intstr.IntOrString)
		**out = **in
	}
	if in.PodUpdatePolicy != nil {
		in, out := &in.PodUpdatePolicy, &out.PodUpdatePolicy
		*out = new(PodUpdatePolicyType)
		**out = **in
	}
	if in.PodUpgradePolicy != nil {
		in, out := &in.PodUpgradePolicy, &out.PodUpgradePolicy
		*out = new(PodUpdatePolicyType)
		**out = **in
	}
	if in.InstanceUpdateStrategy != nil {
		in, out := &in.InstanceUpdateStrategy, &out.InstanceUpdateStrategy
		*out = new(InstanceUpdateStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.SchedulingPolicy != nil {
		in, out := &in.SchedulingPolicy, &out.SchedulingPolicy
		*out = new(SchedulingPolicy)
		(*in).DeepCopyInto(*out)
	}
	if in.TLSConfig != nil {
		in, out := &in.TLSConfig, &out.TLSConfig
		*out = new(TLSConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Instances != nil {
		in, out := &in.Instances, &out.Instances
		*out = make([]InstanceTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.OfflineInstances != nil {
		in, out := &in.OfflineInstances, &out.OfflineInstances
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.RuntimeClassName != nil {
		in, out := &in.RuntimeClassName, &out.RuntimeClassName
		*out = new(string)
		**out = **in
	}
	if in.DisableExporter != nil {
		in, out := &in.DisableExporter, &out.DisableExporter
		*out = new(bool)
		**out = **in
	}
	if in.Stop != nil {
		in, out := &in.Stop, &out.Stop
		*out = new(bool)
		**out = **in
	}
	if in.Sidecars != nil {
		in, out := &in.Sidecars, &out.Sidecars
		*out = make([]Sidecar, len(*in))
		copy(*out, *in)
	}
	if in.EnableInstanceAPI != nil {
		in, out := &in.EnableInstanceAPI, &out.EnableInstanceAPI
		*out = new(bool)
		**out = **in
	}
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ComponentStatus) DeepCopyInto(out *ComponentStatus) {
	*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.Message != nil {
		in, out := &in.Message, &out.Message
		*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 ComponentStatus.
func (in *ComponentStatus) DeepCopy() *ComponentStatus {
	if in == nil {
		return nil
	}
	out := new(ComponentStatus)
	in.DeepCopyInto(out)
	return out
}

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ComponentVars) DeepCopyInto(out *ComponentVars) {
	*out = *in
	if in.ComponentName != nil {
		in, out := &in.ComponentName, &out.ComponentName
		*out = new(VarOption)
		**out = **in
	}
	if in.ShortName != nil {
		in, out := &in.ShortName, &out.ShortName
		*out = new(VarOption)
		**out = **in
	}
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(VarOption)
		**out = **in
	}
	if in.PodNames != nil {
		in, out := &in.PodNames, &out.PodNames
		*out = new(VarOption)
		**out = **in
	}
	if in.PodFQDNs != nil {
		in, out := &in.PodFQDNs, &out.PodFQDNs
		*out = new(VarOption)
		**out = **in
	}
	if in.PodNamesForRole != nil {
		in, out := &in.PodNamesForRole, &out.PodNamesForRole
		*out = new(RoledVar)
		(*in).DeepCopyInto(*out)
	}
	if in.PodFQDNsForRole != nil {
		in, out := &in.PodFQDNsForRole, &out.PodFQDNsForRole
		*out = new(RoledVar)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceVersion != nil {
		in, out := &in.ServiceVersion, &out.ServiceVersion
		*out = new(VarOption)
		**out = **in
	}
}

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ComponentVersion) 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 *ComponentVersionCompatibilityRule) DeepCopyInto(out *ComponentVersionCompatibilityRule) {
	*out = *in
	if in.CompDefs != nil {
		in, out := &in.CompDefs, &out.CompDefs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Releases != nil {
		in, out := &in.Releases, &out.Releases
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExecAction) DeepCopyInto(out *ExecAction) {
	*out = *in
	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.Command != nil {
		in, out := &in.Command, &out.Command
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Args != nil {
		in, out := &in.Args, &out.Args
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceTemplate) DeepCopyInto(out *InstanceTemplate) {
	*out = *in
	if in.Canary != nil {
		in, out := &in.Canary, &out.Canary
		*out = new(bool)
		**out = **in
	}
	if in.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(int32)
		**out = **in
	}
	in.Ordinals.DeepCopyInto(&out.Ordinals)
	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.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.SchedulingPolicy != nil {
		in, out := &in.SchedulingPolicy, &out.SchedulingPolicy
		*out = new(SchedulingPolicy)
		(*in).DeepCopyInto(*out)
	}
	if in.Resources != nil {
		in, out := &in.Resources, &out.Resources
		*out = new(corev1.ResourceRequirements)
		(*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.VolumeClaimTemplates != nil {
		in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates
		*out = make([]PersistentVolumeClaimTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PersistentVolumeClaimTemplate) DeepCopyInto(out *PersistentVolumeClaimTemplate) {
	*out = *in
	if in.PersistentVolumeClaimName != nil {
		in, out := &in.PersistentVolumeClaimName, &out.PersistentVolumeClaimName
		*out = new(string)
		**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
		}
	}
	in.Spec.DeepCopyInto(&out.Spec)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimTemplate.
func (in *PersistentVolumeClaimTemplate) DeepCopy() *PersistentVolumeClaimTemplate {
	if in == nil {
		return nil
	}
	out := new(PersistentVolumeClaimTemplate)
	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
	in.Action.DeepCopyInto(&out.Action)
}

// 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 *ProvisionSecretRef) DeepCopyInto(out *ProvisionSecretRef) {
	*out = *in
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ResourceVars) DeepCopyInto(out *ResourceVars) {
	*out = *in
	if in.CPU != nil {
		in, out := &in.CPU, &out.CPU
		*out = new(VarOption)
		**out = **in
	}
	if in.CPULimit != nil {
		in, out := &in.CPULimit, &out.CPULimit
		*out = new(VarOption)
		**out = **in
	}
	if in.Memory != nil {
		in, out := &in.Memory, &out.Memory
		*out = new(VarOption)
		**out = **in
	}
	if in.MemoryLimit != nil {
		in, out := &in.MemoryLimit, &out.MemoryLimit
		*out = new(VarOption)
		**out = **in
	}
	if in.Storage != nil {
		in, out := &in.Storage, &out.Storage
		*out = new(NamedVar)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SchedulingPolicy) DeepCopyInto(out *SchedulingPolicy) {
	*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.Affinity != nil {
		in, out := &in.Affinity, &out.Affinity
		*out = new(corev1.Affinity)
		(*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.TopologySpreadConstraints != nil {
		in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints
		*out = make([]corev1.TopologySpreadConstraint, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

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

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ServiceDescriptorList) 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 *ServiceDescriptorSpec) DeepCopyInto(out *ServiceDescriptorSpec) {
	*out = *in
	if in.Endpoint != nil {
		in, out := &in.Endpoint, &out.Endpoint
		*out = new(CredentialVar)
		(*in).DeepCopyInto(*out)
	}
	if in.Host != nil {
		in, out := &in.Host, &out.Host
		*out = new(CredentialVar)
		(*in).DeepCopyInto(*out)
	}
	if in.Port != nil {
		in, out := &in.Port, &out.Port
		*out = new(CredentialVar)
		(*in).DeepCopyInto(*out)
	}
	if in.PodFQDNs != nil {
		in, out := &in.PodFQDNs, &out.PodFQDNs
		*out = new(CredentialVar)
		(*in).DeepCopyInto(*out)
	}
	if in.Auth != nil {
		in, out := &in.Auth, &out.Auth
		*out = new(ConnectionCredentialAuth)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServiceRefClusterSelector) DeepCopyInto(out *ServiceRefClusterSelector) {
	*out = *in
	if in.Service != nil {
		in, out := &in.Service, &out.Service
		*out = new(ServiceRefServiceSelector)
		**out = **in
	}
	if in.PodFQDNs != nil {
		in, out := &in.PodFQDNs, &out.PodFQDNs
		*out = new(ServiceRefPodFQDNsSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Credential != nil {
		in, out := &in.Credential, &out.Credential
		*out = new(ServiceRefCredentialSelector)
		**out = **in
	}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServiceRefVars) DeepCopyInto(out *ServiceRefVars) {
	*out = *in
	if in.Endpoint != nil {
		in, out := &in.Endpoint, &out.Endpoint
		*out = new(VarOption)
		**out = **in
	}
	if in.Host != nil {
		in, out := &in.Host, &out.Host
		*out = new(VarOption)
		**out = **in
	}
	if in.Port != nil {
		in, out := &in.Port, &out.Port
		*out = new(VarOption)
		**out = **in
	}
	if in.PodFQDNs != nil {
		in, out := &in.PodFQDNs, &out.PodFQDNs
		*out = new(VarOption)
		**out = **in
	}
	in.CredentialVars.DeepCopyInto(&out.CredentialVars)
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServiceVars) DeepCopyInto(out *ServiceVars) {
	*out = *in
	if in.ServiceType != nil {
		in, out := &in.ServiceType, &out.ServiceType
		*out = new(VarOption)
		**out = **in
	}
	if in.Host != nil {
		in, out := &in.Host, &out.Host
		*out = new(VarOption)
		**out = **in
	}
	if in.LoadBalancer != nil {
		in, out := &in.LoadBalancer, &out.LoadBalancer
		*out = new(VarOption)
		**out = **in
	}
	if in.Port != nil {
		in, out := &in.Port, &out.Port
		*out = new(NamedVar)
		(*in).DeepCopyInto(*out)
	}
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ShardTemplate) DeepCopyInto(out *ShardTemplate) {
	*out = *in
	if in.ShardingDef != nil {
		in, out := &in.ShardingDef, &out.ShardingDef
		*out = new(string)
		**out = **in
	}
	if in.Shards != nil {
		in, out := &in.Shards, &out.Shards
		*out = new(int32)
		**out = **in
	}
	if in.ShardIDs != nil {
		in, out := &in.ShardIDs, &out.ShardIDs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ServiceVersion != nil {
		in, out := &in.ServiceVersion, &out.ServiceVersion
		*out = new(string)
		**out = **in
	}
	if in.CompDef != nil {
		in, out := &in.CompDef, &out.CompDef
		*out = new(string)
		**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.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.Replicas != nil {
		in, out := &in.Replicas, &out.Replicas
		*out = new(int32)
		**out = **in
	}
	if in.SchedulingPolicy != nil {
		in, out := &in.SchedulingPolicy, &out.SchedulingPolicy
		*out = new(SchedulingPolicy)
		(*in).DeepCopyInto(*out)
	}
	if in.Resources != nil {
		in, out := &in.Resources, &out.Resources
		*out = new(corev1.ResourceRequirements)
		(*in).DeepCopyInto(*out)
	}
	if in.VolumeClaimTemplates != nil {
		in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates
		*out = make([]PersistentVolumeClaimTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Instances != nil {
		in, out := &in.Instances, &out.Instances
		*out = make([]InstanceTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.FlatInstanceOrdinal != nil {
		in, out := &in.FlatInstanceOrdinal, &out.FlatInstanceOrdinal
		*out = new(bool)
		**out = **in
	}
}

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ShardingDefinitionList) 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 *ShardingDefinitionSpec) DeepCopyInto(out *ShardingDefinitionSpec) {
	*out = *in
	out.Template = in.Template
	if in.ShardsLimit != nil {
		in, out := &in.ShardsLimit, &out.ShardsLimit
		*out = new(ShardsLimit)
		**out = **in
	}
	if in.ProvisionStrategy != nil {
		in, out := &in.ProvisionStrategy, &out.ProvisionStrategy
		*out = new(UpdateStrategy)
		**out = **in
	}
	if in.UpdateStrategy != nil {
		in, out := &in.UpdateStrategy, &out.UpdateStrategy
		*out = new(UpdateStrategy)
		**out = **in
	}
	if in.LifecycleActions != nil {
		in, out := &in.LifecycleActions, &out.LifecycleActions
		*out = new(ShardingLifecycleActions)
		(*in).DeepCopyInto(*out)
	}
	if in.SystemAccounts != nil {
		in, out := &in.SystemAccounts, &out.SystemAccounts
		*out = make([]ShardingSystemAccount, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.TLS != nil {
		in, out := &in.TLS, &out.TLS
		*out = new(ShardingTLS)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ShardingLifecycleActions) DeepCopyInto(out *ShardingLifecycleActions) {
	*out = *in
	if in.PostProvision != nil {
		in, out := &in.PostProvision, &out.PostProvision
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.PreTerminate != nil {
		in, out := &in.PreTerminate, &out.PreTerminate
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.ShardAdd != nil {
		in, out := &in.ShardAdd, &out.ShardAdd
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
	if in.ShardRemove != nil {
		in, out := &in.ShardRemove, &out.ShardRemove
		*out = new(Action)
		(*in).DeepCopyInto(*out)
	}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *SidecarDefinitionList) 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 *SidecarDefinitionSpec) DeepCopyInto(out *SidecarDefinitionSpec) {
	*out = *in
	if in.Selectors != nil {
		in, out := &in.Selectors, &out.Selectors
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Containers != nil {
		in, out := &in.Containers, &out.Containers
		*out = make([]corev1.Container, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Vars != nil {
		in, out := &in.Vars, &out.Vars
		*out = make([]EnvVar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Configs != nil {
		in, out := &in.Configs, &out.Configs
		*out = make([]ComponentFileTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Scripts != nil {
		in, out := &in.Scripts, &out.Scripts
		*out = make([]ComponentFileTemplate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TLS) DeepCopyInto(out *TLS) {
	*out = *in
	if in.DefaultMode != nil {
		in, out := &in.DefaultMode, &out.DefaultMode
		*out = new(int32)
		**out = **in
	}
	if in.CAFile != nil {
		in, out := &in.CAFile, &out.CAFile
		*out = new(string)
		**out = **in
	}
	if in.CertFile != nil {
		in, out := &in.CertFile, &out.CertFile
		*out = new(string)
		**out = **in
	}
	if in.KeyFile != nil {
		in, out := &in.KeyFile, &out.KeyFile
		*out = new(string)
		**out = **in
	}
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VarSource) DeepCopyInto(out *VarSource) {
	*out = *in
	if in.ConfigMapKeyRef != nil {
		in, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef
		*out = new(corev1.ConfigMapKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.SecretKeyRef != nil {
		in, out := &in.SecretKeyRef, &out.SecretKeyRef
		*out = new(corev1.SecretKeySelector)
		(*in).DeepCopyInto(*out)
	}
	if in.HostNetworkVarRef != nil {
		in, out := &in.HostNetworkVarRef, &out.HostNetworkVarRef
		*out = new(HostNetworkVarSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceVarRef != nil {
		in, out := &in.ServiceVarRef, &out.ServiceVarRef
		*out = new(ServiceVarSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.CredentialVarRef != nil {
		in, out := &in.CredentialVarRef, &out.CredentialVarRef
		*out = new(CredentialVarSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.TLSVarRef != nil {
		in, out := &in.TLSVarRef, &out.TLSVarRef
		*out = new(TLSVarSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.ServiceRefVarRef != nil {
		in, out := &in.ServiceRefVarRef, &out.ServiceRefVarRef
		*out = new(ServiceRefVarSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.ResourceVarRef != nil {
		in, out := &in.ResourceVarRef, &out.ResourceVarRef
		*out = new(ResourceVarSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.ComponentVarRef != nil {
		in, out := &in.ComponentVarRef, &out.ComponentVarRef
		*out = new(ComponentVarSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.ClusterVarRef != nil {
		in, out := &in.ClusterVarRef, &out.ClusterVarRef
		*out = new(ClusterVarSelector)
		(*in).DeepCopyInto(*out)
	}
}

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