//go:build !ignore_autogenerated

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

package v1alpha1

import (
	"k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime"
)

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

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

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

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

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

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *IBMNodeClassList) 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 *IBMNodeClassSpec) DeepCopyInto(out *IBMNodeClassSpec) {
	*out = *in
	if in.InstanceRequirements != nil {
		in, out := &in.InstanceRequirements, &out.InstanceRequirements
		*out = new(InstanceTypeRequirements)
		**out = **in
	}
	if in.ImageSelector != nil {
		in, out := &in.ImageSelector, &out.ImageSelector
		*out = new(ImageSelector)
		**out = **in
	}
	if in.PlacementStrategy != nil {
		in, out := &in.PlacementStrategy, &out.PlacementStrategy
		*out = new(PlacementStrategy)
		(*in).DeepCopyInto(*out)
	}
	if in.SecurityGroups != nil {
		in, out := &in.SecurityGroups, &out.SecurityGroups
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.SSHKeys != nil {
		in, out := &in.SSHKeys, &out.SSHKeys
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Tags != nil {
		in, out := &in.Tags, &out.Tags
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.BootstrapMode != nil {
		in, out := &in.BootstrapMode, &out.BootstrapMode
		*out = new(string)
		**out = **in
	}
	if in.IKSDynamicPools != nil {
		in, out := &in.IKSDynamicPools, &out.IKSDynamicPools
		*out = new(IKSDynamicPoolConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.LoadBalancerIntegration != nil {
		in, out := &in.LoadBalancerIntegration, &out.LoadBalancerIntegration
		*out = new(LoadBalancerIntegration)
		(*in).DeepCopyInto(*out)
	}
	if in.BlockDeviceMappings != nil {
		in, out := &in.BlockDeviceMappings, &out.BlockDeviceMappings
		*out = make([]BlockDeviceMapping, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Kubelet != nil {
		in, out := &in.Kubelet, &out.Kubelet
		*out = new(KubeletConfiguration)
		(*in).DeepCopyInto(*out)
	}
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *IBMNodeClassStatus) DeepCopyInto(out *IBMNodeClassStatus) {
	*out = *in
	in.LastValidationTime.DeepCopyInto(&out.LastValidationTime)
	if in.SelectedInstanceTypes != nil {
		in, out := &in.SelectedInstanceTypes, &out.SelectedInstanceTypes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.SelectedSubnets != nil {
		in, out := &in.SelectedSubnets, &out.SelectedSubnets
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ResolvedSecurityGroups != nil {
		in, out := &in.ResolvedSecurityGroups, &out.ResolvedSecurityGroups
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Conditions != nil {
		in, out := &in.Conditions, &out.Conditions
		*out = make([]v1.Condition, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) {
	*out = *in
	if in.ClusterDNS != nil {
		in, out := &in.ClusterDNS, &out.ClusterDNS
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.MaxPods != nil {
		in, out := &in.MaxPods, &out.MaxPods
		*out = new(int32)
		**out = **in
	}
	if in.PodsPerCore != nil {
		in, out := &in.PodsPerCore, &out.PodsPerCore
		*out = new(int32)
		**out = **in
	}
	if in.SystemReserved != nil {
		in, out := &in.SystemReserved, &out.SystemReserved
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.KubeReserved != nil {
		in, out := &in.KubeReserved, &out.KubeReserved
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.EvictionHard != nil {
		in, out := &in.EvictionHard, &out.EvictionHard
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.EvictionSoft != nil {
		in, out := &in.EvictionSoft, &out.EvictionSoft
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.EvictionSoftGracePeriod != nil {
		in, out := &in.EvictionSoftGracePeriod, &out.EvictionSoftGracePeriod
		*out = make(map[string]v1.Duration, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.EvictionMaxPodGracePeriod != nil {
		in, out := &in.EvictionMaxPodGracePeriod, &out.EvictionMaxPodGracePeriod
		*out = new(int32)
		**out = **in
	}
	if in.ImageGCHighThresholdPercent != nil {
		in, out := &in.ImageGCHighThresholdPercent, &out.ImageGCHighThresholdPercent
		*out = new(int32)
		**out = **in
	}
	if in.ImageGCLowThresholdPercent != nil {
		in, out := &in.ImageGCLowThresholdPercent, &out.ImageGCLowThresholdPercent
		*out = new(int32)
		**out = **in
	}
	if in.CPUCFSQuota != nil {
		in, out := &in.CPUCFSQuota, &out.CPUCFSQuota
		*out = new(bool)
		**out = **in
	}
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LoadBalancerIntegration) DeepCopyInto(out *LoadBalancerIntegration) {
	*out = *in
	if in.TargetGroups != nil {
		in, out := &in.TargetGroups, &out.TargetGroups
		*out = make([]LoadBalancerTarget, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.AutoDeregister != nil {
		in, out := &in.AutoDeregister, &out.AutoDeregister
		*out = new(bool)
		**out = **in
	}
	if in.RegistrationTimeout != nil {
		in, out := &in.RegistrationTimeout, &out.RegistrationTimeout
		*out = new(int32)
		**out = **in
	}
}

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VolumeSpec) DeepCopyInto(out *VolumeSpec) {
	*out = *in
	if in.Capacity != nil {
		in, out := &in.Capacity, &out.Capacity
		*out = new(int64)
		**out = **in
	}
	if in.Profile != nil {
		in, out := &in.Profile, &out.Profile
		*out = new(string)
		**out = **in
	}
	if in.IOPS != nil {
		in, out := &in.IOPS, &out.IOPS
		*out = new(int64)
		**out = **in
	}
	if in.Bandwidth != nil {
		in, out := &in.Bandwidth, &out.Bandwidth
		*out = new(int64)
		**out = **in
	}
	if in.EncryptionKeyID != nil {
		in, out := &in.EncryptionKeyID, &out.EncryptionKeyID
		*out = new(string)
		**out = **in
	}
	if in.DeleteOnTermination != nil {
		in, out := &in.DeleteOnTermination, &out.DeleteOnTermination
		*out = new(bool)
		**out = **in
	}
	if in.Tags != nil {
		in, out := &in.Tags, &out.Tags
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}

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