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

/*
Copyright 2018 Weaveworks.
Copyright 2023 The eksctl Authors.
All rights reserved.

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

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

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

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

package v1alpha5

import (
	json "encoding/json"

	runtime "k8s.io/apimachinery/pkg/runtime"
)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Addon) DeepCopyInto(out *Addon) {
	*out = *in
	if in.AttachPolicyARNs != nil {
		in, out := &in.AttachPolicyARNs, &out.AttachPolicyARNs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.AttachPolicy.DeepCopyInto(&out.AttachPolicy)
	out.WellKnownPolicies = in.WellKnownPolicies
	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.PodIdentityAssociations != nil {
		in, out := &in.PodIdentityAssociations, &out.PodIdentityAssociations
		*out = new([]PodIdentityAssociation)
		if **in != nil {
			in, out := *in, *out
			*out = make([]PodIdentityAssociation, len(*in))
			for i := range *in {
				(*in)[i].DeepCopyInto(&(*out)[i])
			}
		}
	}
	if in.NamespaceConfig != nil {
		in, out := &in.NamespaceConfig, &out.NamespaceConfig
		*out = new(AddonNamespaceConfig)
		**out = **in
	}
	if in.Publishers != nil {
		in, out := &in.Publishers, &out.Publishers
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Types != nil {
		in, out := &in.Types, &out.Types
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Owners != nil {
		in, out := &in.Owners, &out.Owners
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Capability) DeepCopyInto(out *Capability) {
	*out = *in
	if in.Configuration != nil {
		in, out := &in.Configuration, &out.Configuration
		*out = new(CapabilityConfiguration)
		(*in).DeepCopyInto(*out)
	}
	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.AccessPolicies != nil {
		in, out := &in.AccessPolicies, &out.AccessPolicies
		*out = make([]AccessPolicy, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.AttachPolicyARNs != nil {
		in, out := &in.AttachPolicyARNs, &out.AttachPolicyARNs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.AttachPolicy.DeepCopyInto(&out.AttachPolicy)
	return
}

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	if in.Metadata != nil {
		in, out := &in.Metadata, &out.Metadata
		*out = new(ClusterMeta)
		(*in).DeepCopyInto(*out)
	}
	if in.UpgradePolicy != nil {
		in, out := &in.UpgradePolicy, &out.UpgradePolicy
		*out = new(UpgradePolicy)
		**out = **in
	}
	if in.KubernetesNetworkConfig != nil {
		in, out := &in.KubernetesNetworkConfig, &out.KubernetesNetworkConfig
		*out = new(KubernetesNetworkConfig)
		**out = **in
	}
	if in.AutoModeConfig != nil {
		in, out := &in.AutoModeConfig, &out.AutoModeConfig
		*out = new(AutoModeConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.RemoteNetworkConfig != nil {
		in, out := &in.RemoteNetworkConfig, &out.RemoteNetworkConfig
		*out = new(RemoteNetworkConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.IAM != nil {
		in, out := &in.IAM, &out.IAM
		*out = new(ClusterIAM)
		(*in).DeepCopyInto(*out)
	}
	if in.IAMIdentityMappings != nil {
		in, out := &in.IAMIdentityMappings, &out.IAMIdentityMappings
		*out = make([]*IAMIdentityMapping, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(IAMIdentityMapping)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.IdentityProviders != nil {
		in, out := &in.IdentityProviders, &out.IdentityProviders
		*out = make([]IdentityProvider, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.AccessConfig != nil {
		in, out := &in.AccessConfig, &out.AccessConfig
		*out = new(AccessConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.VPC != nil {
		in, out := &in.VPC, &out.VPC
		*out = new(ClusterVPC)
		(*in).DeepCopyInto(*out)
	}
	if in.Addons != nil {
		in, out := &in.Addons, &out.Addons
		*out = make([]*Addon, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(Addon)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	out.AddonsConfig = in.AddonsConfig
	if in.PrivateCluster != nil {
		in, out := &in.PrivateCluster, &out.PrivateCluster
		*out = new(PrivateCluster)
		(*in).DeepCopyInto(*out)
	}
	if in.NodeGroups != nil {
		in, out := &in.NodeGroups, &out.NodeGroups
		*out = make([]*NodeGroup, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(NodeGroup)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.ManagedNodeGroups != nil {
		in, out := &in.ManagedNodeGroups, &out.ManagedNodeGroups
		*out = make([]*ManagedNodeGroup, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(ManagedNodeGroup)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.FargateProfiles != nil {
		in, out := &in.FargateProfiles, &out.FargateProfiles
		*out = make([]*FargateProfile, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(FargateProfile)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.AvailabilityZones != nil {
		in, out := &in.AvailabilityZones, &out.AvailabilityZones
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.LocalZones != nil {
		in, out := &in.LocalZones, &out.LocalZones
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.CloudWatch != nil {
		in, out := &in.CloudWatch, &out.CloudWatch
		*out = new(ClusterCloudWatch)
		(*in).DeepCopyInto(*out)
	}
	if in.SecretsEncryption != nil {
		in, out := &in.SecretsEncryption, &out.SecretsEncryption
		*out = new(SecretsEncryption)
		**out = **in
	}
	if in.Status != nil {
		in, out := &in.Status, &out.Status
		*out = new(ClusterStatus)
		(*in).DeepCopyInto(*out)
	}
	if in.GitOps != nil {
		in, out := &in.GitOps, &out.GitOps
		*out = new(GitOps)
		(*in).DeepCopyInto(*out)
	}
	if in.Karpenter != nil {
		in, out := &in.Karpenter, &out.Karpenter
		*out = new(Karpenter)
		(*in).DeepCopyInto(*out)
	}
	if in.Outpost != nil {
		in, out := &in.Outpost, &out.Outpost
		*out = new(Outpost)
		(*in).DeepCopyInto(*out)
	}
	if in.ControlPlaneScalingConfig != nil {
		in, out := &in.ControlPlaneScalingConfig, &out.ControlPlaneScalingConfig
		*out = new(ControlPlaneScalingConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.ZonalShiftConfig != nil {
		in, out := &in.ZonalShiftConfig, &out.ZonalShiftConfig
		*out = new(ZonalShiftConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.Capabilities != nil {
		in, out := &in.Capabilities, &out.Capabilities
		*out = make([]Capability, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterIAM) DeepCopyInto(out *ClusterIAM) {
	*out = *in
	if in.ServiceRoleARN != nil {
		in, out := &in.ServiceRoleARN, &out.ServiceRoleARN
		*out = new(string)
		**out = **in
	}
	if in.ServiceRolePermissionsBoundary != nil {
		in, out := &in.ServiceRolePermissionsBoundary, &out.ServiceRolePermissionsBoundary
		*out = new(string)
		**out = **in
	}
	if in.FargatePodExecutionRoleARN != nil {
		in, out := &in.FargatePodExecutionRoleARN, &out.FargatePodExecutionRoleARN
		*out = new(string)
		**out = **in
	}
	if in.FargatePodExecutionRolePermissionsBoundary != nil {
		in, out := &in.FargatePodExecutionRolePermissionsBoundary, &out.FargatePodExecutionRolePermissionsBoundary
		*out = new(string)
		**out = **in
	}
	if in.WithOIDC != nil {
		in, out := &in.WithOIDC, &out.WithOIDC
		*out = new(bool)
		**out = **in
	}
	if in.ServiceAccounts != nil {
		in, out := &in.ServiceAccounts, &out.ServiceAccounts
		*out = make([]*ClusterIAMServiceAccount, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(ClusterIAMServiceAccount)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.PodIdentityAssociations != nil {
		in, out := &in.PodIdentityAssociations, &out.PodIdentityAssociations
		*out = make([]PodIdentityAssociation, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.VPCResourceControllerPolicy != nil {
		in, out := &in.VPCResourceControllerPolicy, &out.VPCResourceControllerPolicy
		*out = new(bool)
		**out = **in
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterIAMServiceAccount) DeepCopyInto(out *ClusterIAMServiceAccount) {
	*out = *in
	in.ClusterIAMMeta.DeepCopyInto(&out.ClusterIAMMeta)
	if in.AttachPolicyARNs != nil {
		in, out := &in.AttachPolicyARNs, &out.AttachPolicyARNs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	out.WellKnownPolicies = in.WellKnownPolicies
	in.AttachPolicy.DeepCopyInto(&out.AttachPolicy)
	if in.Status != nil {
		in, out := &in.Status, &out.Status
		*out = new(ClusterIAMServiceAccountStatus)
		(*in).DeepCopyInto(*out)
	}
	if in.RoleOnly != nil {
		in, out := &in.RoleOnly, &out.RoleOnly
		*out = new(bool)
		**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
		}
	}
	return
}

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

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

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

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

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

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

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNAT.
func (in *ClusterNAT) DeepCopy() *ClusterNAT {
	if in == nil {
		return nil
	}
	out := new(ClusterNAT)
	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.CertificateAuthorityData != nil {
		in, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData
		*out = make([]byte, len(*in))
		copy(*out, *in)
	}
	if in.KubernetesNetworkConfig != nil {
		in, out := &in.KubernetesNetworkConfig, &out.KubernetesNetworkConfig
		*out = new(KubernetesNetworkConfig)
		**out = **in
	}
	return
}

// 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 *ClusterSubnets) DeepCopyInto(out *ClusterSubnets) {
	*out = *in
	if in.Private != nil {
		in, out := &in.Private, &out.Private
		*out = make(AZSubnetMapping, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.Public != nil {
		in, out := &in.Public, &out.Public
		*out = make(AZSubnetMapping, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterVPC) DeepCopyInto(out *ClusterVPC) {
	*out = *in
	in.Network.DeepCopyInto(&out.Network)
	if in.Subnets != nil {
		in, out := &in.Subnets, &out.Subnets
		*out = new(ClusterSubnets)
		(*in).DeepCopyInto(*out)
	}
	if in.LocalZoneSubnets != nil {
		in, out := &in.LocalZoneSubnets, &out.LocalZoneSubnets
		*out = new(ClusterSubnets)
		(*in).DeepCopyInto(*out)
	}
	if in.ExtraCIDRs != nil {
		in, out := &in.ExtraCIDRs, &out.ExtraCIDRs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ExtraIPv6CIDRs != nil {
		in, out := &in.ExtraIPv6CIDRs, &out.ExtraIPv6CIDRs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ManageSharedNodeSecurityGroupRules != nil {
		in, out := &in.ManageSharedNodeSecurityGroupRules, &out.ManageSharedNodeSecurityGroupRules
		*out = new(bool)
		**out = **in
	}
	if in.AutoAllocateIPv6 != nil {
		in, out := &in.AutoAllocateIPv6, &out.AutoAllocateIPv6
		*out = new(bool)
		**out = **in
	}
	if in.NAT != nil {
		in, out := &in.NAT, &out.NAT
		*out = new(ClusterNAT)
		(*in).DeepCopyInto(*out)
	}
	if in.ClusterEndpoints != nil {
		in, out := &in.ClusterEndpoints, &out.ClusterEndpoints
		*out = new(ClusterEndpoints)
		(*in).DeepCopyInto(*out)
	}
	if in.PublicAccessCIDRs != nil {
		in, out := &in.PublicAccessCIDRs, &out.PublicAccessCIDRs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ControlPlaneSubnetIDs != nil {
		in, out := &in.ControlPlaneSubnetIDs, &out.ControlPlaneSubnetIDs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ControlPlaneSecurityGroupIDs != nil {
		in, out := &in.ControlPlaneSecurityGroupIDs, &out.ControlPlaneSecurityGroupIDs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FargateProfile) DeepCopyInto(out *FargateProfile) {
	*out = *in
	if in.Selectors != nil {
		in, out := &in.Selectors, &out.Selectors
		*out = make([]FargateProfileSelector, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.Subnets != nil {
		in, out := &in.Subnets, &out.Subnets
		*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
		}
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *IAMStatement) DeepCopyInto(out *IAMStatement) {
	*out = *in
	if in.Principal != nil {
		in, out := &in.Principal, &out.Principal
		*out = make(map[string]CustomStringSlice, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make(CustomStringSlice, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.NotPrincipal != nil {
		in, out := &in.NotPrincipal, &out.NotPrincipal
		*out = make(map[string]CustomStringSlice, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make(CustomStringSlice, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.Action != nil {
		in, out := &in.Action, &out.Action
		*out = make(CustomStringSlice, len(*in))
		copy(*out, *in)
	}
	if in.NotAction != nil {
		in, out := &in.NotAction, &out.NotAction
		*out = make(CustomStringSlice, len(*in))
		copy(*out, *in)
	}
	if in.Resource != nil {
		in, out := &in.Resource, &out.Resource
		*out = make(CustomStringSlice, len(*in))
		copy(*out, *in)
	}
	if in.NotResource != nil {
		in, out := &in.NotResource, &out.NotResource
		*out = make(CustomStringSlice, len(*in))
		copy(*out, *in)
	}
	if in.Condition != nil {
		in, out := &in.Condition, &out.Condition
		*out = make(json.RawMessage, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceSelector) DeepCopyInto(out *InstanceSelector) {
	*out = *in
	if in.GPUs != nil {
		in, out := &in.GPUs, &out.GPUs
		*out = new(int)
		**out = **in
	}
	if in.NeuronDevices != nil {
		in, out := &in.NeuronDevices, &out.NeuronDevices
		*out = new(int)
		**out = **in
	}
	if in.Allow != nil {
		in, out := &in.Allow, &out.Allow
		*out = new(string)
		**out = **in
	}
	if in.Deny != nil {
		in, out := &in.Deny, &out.Deny
		*out = new(string)
		**out = **in
	}
	return
}

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedNodeGroup) DeepCopyInto(out *ManagedNodeGroup) {
	*out = *in
	if in.NodeGroupBase != nil {
		in, out := &in.NodeGroupBase, &out.NodeGroupBase
		*out = new(NodeGroupBase)
		(*in).DeepCopyInto(*out)
	}
	if in.InstanceTypes != nil {
		in, out := &in.InstanceTypes, &out.InstanceTypes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Taints != nil {
		in, out := &in.Taints, &out.Taints
		*out = make([]NodeGroupTaint, len(*in))
		copy(*out, *in)
	}
	if in.UpdateConfig != nil {
		in, out := &in.UpdateConfig, &out.UpdateConfig
		*out = new(NodeGroupUpdateConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.LaunchTemplate != nil {
		in, out := &in.LaunchTemplate, &out.LaunchTemplate
		*out = new(LaunchTemplate)
		(*in).DeepCopyInto(*out)
	}
	if in.NodeRepairConfig != nil {
		in, out := &in.NodeRepairConfig, &out.NodeRepairConfig
		*out = new(NodeGroupNodeRepairConfig)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeGroup) DeepCopyInto(out *NodeGroup) {
	*out = *in
	if in.NodeGroupBase != nil {
		in, out := &in.NodeGroupBase, &out.NodeGroupBase
		*out = new(NodeGroupBase)
		(*in).DeepCopyInto(*out)
	}
	if in.InstancesDistribution != nil {
		in, out := &in.InstancesDistribution, &out.InstancesDistribution
		*out = new(NodeGroupInstancesDistribution)
		(*in).DeepCopyInto(*out)
	}
	if in.ASGMetricsCollection != nil {
		in, out := &in.ASGMetricsCollection, &out.ASGMetricsCollection
		*out = make([]MetricsCollection, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.CPUCredits != nil {
		in, out := &in.CPUCredits, &out.CPUCredits
		*out = new(string)
		**out = **in
	}
	if in.ClassicLoadBalancerNames != nil {
		in, out := &in.ClassicLoadBalancerNames, &out.ClassicLoadBalancerNames
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.TargetGroupARNs != nil {
		in, out := &in.TargetGroupARNs, &out.TargetGroupARNs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Taints != nil {
		in, out := &in.Taints, &out.Taints
		*out = make(taintsWrapper, len(*in))
		copy(*out, *in)
	}
	if in.UpdateConfig != nil {
		in, out := &in.UpdateConfig, &out.UpdateConfig
		*out = new(NodeGroupUpdateConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.KubeletExtraConfig != nil {
		in, out := &in.KubeletExtraConfig, &out.KubeletExtraConfig
		*out = (*in).DeepCopy()
	}
	if in.ContainerRuntime != nil {
		in, out := &in.ContainerRuntime, &out.ContainerRuntime
		*out = new(string)
		**out = **in
	}
	if in.MaxInstanceLifetime != nil {
		in, out := &in.MaxInstanceLifetime, &out.MaxInstanceLifetime
		*out = new(int)
		**out = **in
	}
	if in.LocalZones != nil {
		in, out := &in.LocalZones, &out.LocalZones
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.EnclaveEnabled != nil {
		in, out := &in.EnclaveEnabled, &out.EnclaveEnabled
		*out = new(bool)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeGroupBase) DeepCopyInto(out *NodeGroupBase) {
	*out = *in
	if in.AvailabilityZones != nil {
		in, out := &in.AvailabilityZones, &out.AvailabilityZones
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Subnets != nil {
		in, out := &in.Subnets, &out.Subnets
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ScalingConfig != nil {
		in, out := &in.ScalingConfig, &out.ScalingConfig
		*out = new(ScalingConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.VolumeSize != nil {
		in, out := &in.VolumeSize, &out.VolumeSize
		*out = new(int)
		**out = **in
	}
	if in.SSH != nil {
		in, out := &in.SSH, &out.SSH
		*out = new(NodeGroupSSH)
		(*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.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.IAM != nil {
		in, out := &in.IAM, &out.IAM
		*out = new(NodeGroupIAM)
		(*in).DeepCopyInto(*out)
	}
	if in.SecurityGroups != nil {
		in, out := &in.SecurityGroups, &out.SecurityGroups
		*out = new(NodeGroupSGs)
		(*in).DeepCopyInto(*out)
	}
	if in.ASGSuspendProcesses != nil {
		in, out := &in.ASGSuspendProcesses, &out.ASGSuspendProcesses
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.EBSOptimized != nil {
		in, out := &in.EBSOptimized, &out.EBSOptimized
		*out = new(bool)
		**out = **in
	}
	if in.VolumeType != nil {
		in, out := &in.VolumeType, &out.VolumeType
		*out = new(string)
		**out = **in
	}
	if in.VolumeName != nil {
		in, out := &in.VolumeName, &out.VolumeName
		*out = new(string)
		**out = **in
	}
	if in.VolumeEncrypted != nil {
		in, out := &in.VolumeEncrypted, &out.VolumeEncrypted
		*out = new(bool)
		**out = **in
	}
	if in.VolumeKmsKeyID != nil {
		in, out := &in.VolumeKmsKeyID, &out.VolumeKmsKeyID
		*out = new(string)
		**out = **in
	}
	if in.VolumeIOPS != nil {
		in, out := &in.VolumeIOPS, &out.VolumeIOPS
		*out = new(int)
		**out = **in
	}
	if in.VolumeThroughput != nil {
		in, out := &in.VolumeThroughput, &out.VolumeThroughput
		*out = new(int)
		**out = **in
	}
	if in.AdditionalVolumes != nil {
		in, out := &in.AdditionalVolumes, &out.AdditionalVolumes
		*out = make([]*VolumeMapping, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(VolumeMapping)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.PreBootstrapCommands != nil {
		in, out := &in.PreBootstrapCommands, &out.PreBootstrapCommands
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.OverrideBootstrapCommand != nil {
		in, out := &in.OverrideBootstrapCommand, &out.OverrideBootstrapCommand
		*out = new(string)
		**out = **in
	}
	if in.PropagateASGTags != nil {
		in, out := &in.PropagateASGTags, &out.PropagateASGTags
		*out = new(bool)
		**out = **in
	}
	if in.DisableIMDSv1 != nil {
		in, out := &in.DisableIMDSv1, &out.DisableIMDSv1
		*out = new(bool)
		**out = **in
	}
	if in.DisablePodIMDS != nil {
		in, out := &in.DisablePodIMDS, &out.DisablePodIMDS
		*out = new(bool)
		**out = **in
	}
	if in.Placement != nil {
		in, out := &in.Placement, &out.Placement
		*out = new(Placement)
		**out = **in
	}
	if in.EFAEnabled != nil {
		in, out := &in.EFAEnabled, &out.EFAEnabled
		*out = new(bool)
		**out = **in
	}
	if in.InstanceSelector != nil {
		in, out := &in.InstanceSelector, &out.InstanceSelector
		*out = new(InstanceSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Bottlerocket != nil {
		in, out := &in.Bottlerocket, &out.Bottlerocket
		*out = new(NodeGroupBottlerocket)
		(*in).DeepCopyInto(*out)
	}
	if in.EnableDetailedMonitoring != nil {
		in, out := &in.EnableDetailedMonitoring, &out.EnableDetailedMonitoring
		*out = new(bool)
		**out = **in
	}
	if in.CapacityReservation != nil {
		in, out := &in.CapacityReservation, &out.CapacityReservation
		*out = new(CapacityReservation)
		(*in).DeepCopyInto(*out)
	}
	if in.InstanceMarketOptions != nil {
		in, out := &in.InstanceMarketOptions, &out.InstanceMarketOptions
		*out = new(InstanceMarketOptions)
		(*in).DeepCopyInto(*out)
	}
	return
}

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeGroupIAMAddonPolicies) DeepCopyInto(out *NodeGroupIAMAddonPolicies) {
	*out = *in
	if in.ImageBuilder != nil {
		in, out := &in.ImageBuilder, &out.ImageBuilder
		*out = new(bool)
		**out = **in
	}
	if in.AutoScaler != nil {
		in, out := &in.AutoScaler, &out.AutoScaler
		*out = new(bool)
		**out = **in
	}
	if in.ExternalDNS != nil {
		in, out := &in.ExternalDNS, &out.ExternalDNS
		*out = new(bool)
		**out = **in
	}
	if in.CertManager != nil {
		in, out := &in.CertManager, &out.CertManager
		*out = new(bool)
		**out = **in
	}
	if in.AppMesh != nil {
		in, out := &in.AppMesh, &out.AppMesh
		*out = new(bool)
		**out = **in
	}
	if in.AppMeshPreview != nil {
		in, out := &in.AppMeshPreview, &out.AppMeshPreview
		*out = new(bool)
		**out = **in
	}
	if in.EBS != nil {
		in, out := &in.EBS, &out.EBS
		*out = new(bool)
		**out = **in
	}
	if in.FSX != nil {
		in, out := &in.FSX, &out.FSX
		*out = new(bool)
		**out = **in
	}
	if in.EFS != nil {
		in, out := &in.EFS, &out.EFS
		*out = new(bool)
		**out = **in
	}
	if in.AWSLoadBalancerController != nil {
		in, out := &in.AWSLoadBalancerController, &out.AWSLoadBalancerController
		*out = new(bool)
		**out = **in
	}
	if in.DeprecatedALBIngress != nil {
		in, out := &in.DeprecatedALBIngress, &out.DeprecatedALBIngress
		*out = new(bool)
		**out = **in
	}
	if in.XRay != nil {
		in, out := &in.XRay, &out.XRay
		*out = new(bool)
		**out = **in
	}
	if in.CloudWatch != nil {
		in, out := &in.CloudWatch, &out.CloudWatch
		*out = new(bool)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeGroupInstancesDistribution) DeepCopyInto(out *NodeGroupInstancesDistribution) {
	*out = *in
	if in.InstanceTypes != nil {
		in, out := &in.InstanceTypes, &out.InstanceTypes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.MaxPrice != nil {
		in, out := &in.MaxPrice, &out.MaxPrice
		*out = new(float64)
		**out = **in
	}
	if in.OnDemandBaseCapacity != nil {
		in, out := &in.OnDemandBaseCapacity, &out.OnDemandBaseCapacity
		*out = new(int)
		**out = **in
	}
	if in.OnDemandPercentageAboveBaseCapacity != nil {
		in, out := &in.OnDemandPercentageAboveBaseCapacity, &out.OnDemandPercentageAboveBaseCapacity
		*out = new(int)
		**out = **in
	}
	if in.SpotInstancePools != nil {
		in, out := &in.SpotInstancePools, &out.SpotInstancePools
		*out = new(int)
		**out = **in
	}
	if in.SpotAllocationStrategy != nil {
		in, out := &in.SpotAllocationStrategy, &out.SpotAllocationStrategy
		*out = new(string)
		**out = **in
	}
	return
}

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeGroupNodeRepairConfig) DeepCopyInto(out *NodeGroupNodeRepairConfig) {
	*out = *in
	if in.Enabled != nil {
		in, out := &in.Enabled, &out.Enabled
		*out = new(bool)
		**out = **in
	}
	if in.MaxUnhealthyNodeThresholdPercentage != nil {
		in, out := &in.MaxUnhealthyNodeThresholdPercentage, &out.MaxUnhealthyNodeThresholdPercentage
		*out = new(int)
		**out = **in
	}
	if in.MaxUnhealthyNodeThresholdCount != nil {
		in, out := &in.MaxUnhealthyNodeThresholdCount, &out.MaxUnhealthyNodeThresholdCount
		*out = new(int)
		**out = **in
	}
	if in.MaxParallelNodesRepairedPercentage != nil {
		in, out := &in.MaxParallelNodesRepairedPercentage, &out.MaxParallelNodesRepairedPercentage
		*out = new(int)
		**out = **in
	}
	if in.MaxParallelNodesRepairedCount != nil {
		in, out := &in.MaxParallelNodesRepairedCount, &out.MaxParallelNodesRepairedCount
		*out = new(int)
		**out = **in
	}
	if in.NodeRepairConfigOverrides != nil {
		in, out := &in.NodeRepairConfigOverrides, &out.NodeRepairConfigOverrides
		*out = make([]NodeRepairConfigOverride, len(*in))
		copy(*out, *in)
	}
	return
}

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeGroupSSH) DeepCopyInto(out *NodeGroupSSH) {
	*out = *in
	if in.Allow != nil {
		in, out := &in.Allow, &out.Allow
		*out = new(bool)
		**out = **in
	}
	if in.PublicKeyPath != nil {
		in, out := &in.PublicKeyPath, &out.PublicKeyPath
		*out = new(string)
		**out = **in
	}
	if in.PublicKey != nil {
		in, out := &in.PublicKey, &out.PublicKey
		*out = new(string)
		**out = **in
	}
	if in.PublicKeyName != nil {
		in, out := &in.PublicKeyName, &out.PublicKeyName
		*out = new(string)
		**out = **in
	}
	if in.SourceSecurityGroupIDs != nil {
		in, out := &in.SourceSecurityGroupIDs, &out.SourceSecurityGroupIDs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.EnableSSM != nil {
		in, out := &in.EnableSSM, &out.EnableSSM
		*out = new(bool)
		**out = **in
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodIdentityAssociation) DeepCopyInto(out *PodIdentityAssociation) {
	*out = *in
	if in.PermissionPolicyARNs != nil {
		in, out := &in.PermissionPolicyARNs, &out.PermissionPolicyARNs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.PermissionPolicy.DeepCopyInto(&out.PermissionPolicy)
	out.WellKnownPolicies = in.WellKnownPolicies
	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.TargetRoleARN != nil {
		in, out := &in.TargetRoleARN, &out.TargetRoleARN
		*out = new(string)
		**out = **in
	}
	if in.DisableSessionTags != nil {
		in, out := &in.DisableSessionTags, &out.DisableSessionTags
		*out = new(bool)
		**out = **in
	}
	if in.Policy != nil {
		in, out := &in.Policy, &out.Policy
		*out = new(string)
		**out = **in
	}
	return
}

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RemoteNetworkConfig) DeepCopyInto(out *RemoteNetworkConfig) {
	*out = *in
	if in.IAM != nil {
		in, out := &in.IAM, &out.IAM
		*out = new(RemoteNodesIAM)
		(*in).DeepCopyInto(*out)
	}
	if in.VPCGatewayID != nil {
		in, out := &in.VPCGatewayID, &out.VPCGatewayID
		*out = new(VPCGateway)
		**out = **in
	}
	if in.RemoteNodeNetworks != nil {
		in, out := &in.RemoteNodeNetworks, &out.RemoteNodeNetworks
		*out = make([]*RemoteNetwork, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(RemoteNetwork)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	if in.RemotePodNetworks != nil {
		in, out := &in.RemotePodNetworks, &out.RemotePodNetworks
		*out = make([]*RemoteNetwork, len(*in))
		for i := range *in {
			if (*in)[i] != nil {
				in, out := &(*in)[i], &(*out)[i]
				*out = new(RemoteNetwork)
				(*in).DeepCopyInto(*out)
			}
		}
	}
	return
}

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

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

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

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

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

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

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

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

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

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

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

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VolumeMapping) DeepCopyInto(out *VolumeMapping) {
	*out = *in
	if in.VolumeSize != nil {
		in, out := &in.VolumeSize, &out.VolumeSize
		*out = new(int)
		**out = **in
	}
	if in.VolumeType != nil {
		in, out := &in.VolumeType, &out.VolumeType
		*out = new(string)
		**out = **in
	}
	if in.VolumeName != nil {
		in, out := &in.VolumeName, &out.VolumeName
		*out = new(string)
		**out = **in
	}
	if in.VolumeEncrypted != nil {
		in, out := &in.VolumeEncrypted, &out.VolumeEncrypted
		*out = new(bool)
		**out = **in
	}
	if in.VolumeKmsKeyID != nil {
		in, out := &in.VolumeKmsKeyID, &out.VolumeKmsKeyID
		*out = new(string)
		**out = **in
	}
	if in.VolumeIOPS != nil {
		in, out := &in.VolumeIOPS, &out.VolumeIOPS
		*out = new(int)
		**out = **in
	}
	if in.VolumeThroughput != nil {
		in, out := &in.VolumeThroughput, &out.VolumeThroughput
		*out = new(int)
		**out = **in
	}
	if in.SnapshotID != nil {
		in, out := &in.SnapshotID, &out.SnapshotID
		*out = new(string)
		**out = **in
	}
	return
}

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

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

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

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

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