func (in *NodeManagementSpec) DeepCopy() *NodeManagementSpec {
	if in == nil {
		return nil
	}
	out := new(NodeManagementSpec)
	in.DeepCopyInto(out)
	return out
}
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeManagementSpec.
package v1beta1
import (
	"github.com/crossplane/crossplane-runtime/apis/common/v1"
	"github.com/crossplane/provider-gcp/apis/container/v1beta2"
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *AcceleratorConfig) DeepCopyInto(out *AcceleratorConfig) {
	*out = *in
}
func (in *AcceleratorConfig) DeepCopy() *AcceleratorConfig {
	if in == nil {
		return nil
	}
	out := new(AcceleratorConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *AutoUpgradeOptions) DeepCopyInto(out *AutoUpgradeOptions) {
	*out = *in
}
func (in *AutoUpgradeOptions) DeepCopy() *AutoUpgradeOptions {
	if in == nil {
		return nil
	}
	out := new(AutoUpgradeOptions)
	in.DeepCopyInto(out)
	return out
}
func (in *LinuxNodeConfig) DeepCopyInto(out *LinuxNodeConfig) {
	*out = *in
	if in.Sysctls != nil {
		in, out := &in.Sysctls, &out.Sysctls
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
}
func (in *LinuxNodeConfig) DeepCopy() *LinuxNodeConfig {
	if in == nil {
		return nil
	}
	out := new(LinuxNodeConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *NodeConfig) DeepCopyInto(out *NodeConfig) {
	*out = *in
	if in.Accelerators != nil {
		in, out := &in.Accelerators, &out.Accelerators
		*out = make([]*AcceleratorConfig, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(AcceleratorConfig)
				**out = **in
			}
		}
	}
	if in.BootDiskKmsKey != nil {
		in, out := &in.BootDiskKmsKey, &out.BootDiskKmsKey
		*out = new(string)
		**out = **in
	}
	if in.DiskSizeGb != nil {
		in, out := &in.DiskSizeGb, &out.DiskSizeGb
		*out = new(int64)
		**out = **in
	}
	if in.DiskType != nil {
		in, out := &in.DiskType, &out.DiskType
		*out = new(string)
		**out = **in
	}
	if in.ImageType != nil {
		in, out := &in.ImageType, &out.ImageType
		*out = new(string)
		**out = **in
	}
	if in.KubeletConfig != nil {
		in, out := &in.KubeletConfig, &out.KubeletConfig
		*out = new(NodeKubeletConfig)
		(*in).DeepCopyInto(*out)
	}
	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.LinuxNodeConfig != nil {
		in, out := &in.LinuxNodeConfig, &out.LinuxNodeConfig
		*out = new(LinuxNodeConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.LocalSsdCount != nil {
		in, out := &in.LocalSsdCount, &out.LocalSsdCount
		*out = new(int64)
		**out = **in
	}
	if in.MachineType != nil {
		in, out := &in.MachineType, &out.MachineType
		*out = new(string)
		**out = **in
	}
	if in.Metadata != nil {
		in, out := &in.Metadata, &out.Metadata
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.MinCPUPlatform != nil {
		in, out := &in.MinCPUPlatform, &out.MinCPUPlatform
		*out = new(string)
		**out = **in
	}
	if in.NodeGroup != nil {
		in, out := &in.NodeGroup, &out.NodeGroup
		*out = new(string)
		**out = **in
	}
	if in.OauthScopes != nil {
		in, out := &in.OauthScopes, &out.OauthScopes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Preemptible != nil {
		in, out := &in.Preemptible, &out.Preemptible
		*out = new(bool)
		**out = **in
	}
	if in.ReservationAffinity != nil {
		in, out := &in.ReservationAffinity, &out.ReservationAffinity
		*out = new(ReservationAffinity)
		(*in).DeepCopyInto(*out)
	}
	if in.SandboxConfig != nil {
		in, out := &in.SandboxConfig, &out.SandboxConfig
		*out = new(SandboxConfig)
		**out = **in
	}
	if in.ServiceAccount != nil {
		in, out := &in.ServiceAccount, &out.ServiceAccount
		*out = new(string)
		**out = **in
	}
	if in.ShieldedInstanceConfig != nil {
		in, out := &in.ShieldedInstanceConfig, &out.ShieldedInstanceConfig
		*out = new(ShieldedInstanceConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Tags != nil {
		in, out := &in.Tags, &out.Tags
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Taints != nil {
		in, out := &in.Taints, &out.Taints
		*out = make([]*NodeTaint, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(NodeTaint)
				**out = **in
			}
		}
	}
	if in.WorkloadMetadataConfig != nil {
		in, out := &in.WorkloadMetadataConfig, &out.WorkloadMetadataConfig
		*out = new(WorkloadMetadataConfig)
		**out = **in
	}
}
func (in *NodeConfig) DeepCopy() *NodeConfig {
	if in == nil {
		return nil
	}
	out := new(NodeConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *NodeKubeletConfig) DeepCopyInto(out *NodeKubeletConfig) {
	*out = *in
	if in.CpuCfsQuota != nil {
		in, out := &in.CpuCfsQuota, &out.CpuCfsQuota
		*out = new(bool)
		**out = **in
	}
	if in.CpuCfsQuotaPeriod != nil {
		in, out := &in.CpuCfsQuotaPeriod, &out.CpuCfsQuotaPeriod
		*out = new(string)
		**out = **in
	}
	if in.CpuManagerPolicy != nil {
		in, out := &in.CpuManagerPolicy, &out.CpuManagerPolicy
		*out = new(string)
		**out = **in
	}
}
func (in *NodeKubeletConfig) DeepCopy() *NodeKubeletConfig {
	if in == nil {
		return nil
	}
	out := new(NodeKubeletConfig)
	in.DeepCopyInto(out)
	return out
}
func (in *NodeManagementSpec) DeepCopyInto(out *NodeManagementSpec) {
	*out = *in
	if in.AutoRepair != nil {
		in, out := &in.AutoRepair, &out.AutoRepair
		*out = new(bool)
		**out = **in
	}
	if in.AutoUpgrade != nil {
		in, out := &in.AutoUpgrade, &out.AutoUpgrade
		*out = new(bool)
		**out = **in
	}
}