// Copyright (c) 2026 Tigera, Inc. All rights reserved.

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

package applyconfiguration_generated

import (
	v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3"
	internal "github.com/projectcalico/api/pkg/client/applyconfiguration_generated/internal"
	projectcalicov3 "github.com/projectcalico/api/pkg/client/applyconfiguration_generated/projectcalico/v3"
	runtime "k8s.io/apimachinery/pkg/runtime"
	schema "k8s.io/apimachinery/pkg/runtime/schema"
	managedfields "k8s.io/apimachinery/pkg/util/managedfields"
)

// ForKind returns an apply configuration type for the given GroupVersionKind, or nil if no
// apply configuration type exists for the given GroupVersionKind.
func ForKind(kind schema.GroupVersionKind) interface{} {
	switch kind {
	// Group=projectcalico.org, Version=v3
	case v3.SchemeGroupVersion.WithKind("AllocationAttribute"):
		return &projectcalicov3.AllocationAttributeApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("AutoHostEndpointConfig"):
		return &projectcalicov3.AutoHostEndpointConfigApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPConfiguration"):
		return &projectcalicov3.BGPConfigurationApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPConfigurationSpec"):
		return &projectcalicov3.BGPConfigurationSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPDaemonStatus"):
		return &projectcalicov3.BGPDaemonStatusApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilter"):
		return &projectcalicov3.BGPFilterApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterAddCommunity"):
		return &projectcalicov3.BGPFilterAddCommunityApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterCommunityMatch"):
		return &projectcalicov3.BGPFilterCommunityMatchApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterOperation"):
		return &projectcalicov3.BGPFilterOperationApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterPrefixLengthV4"):
		return &projectcalicov3.BGPFilterPrefixLengthV4ApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterPrefixLengthV6"):
		return &projectcalicov3.BGPFilterPrefixLengthV6ApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterPrependASPath"):
		return &projectcalicov3.BGPFilterPrependASPathApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterRuleV4"):
		return &projectcalicov3.BGPFilterRuleV4ApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterRuleV6"):
		return &projectcalicov3.BGPFilterRuleV6ApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterSetPriority"):
		return &projectcalicov3.BGPFilterSetPriorityApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPFilterSpec"):
		return &projectcalicov3.BGPFilterSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPPassword"):
		return &projectcalicov3.BGPPasswordApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPPeer"):
		return &projectcalicov3.BGPPeerApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BGPPeerSpec"):
		return &projectcalicov3.BGPPeerSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BlockAffinity"):
		return &projectcalicov3.BlockAffinityApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BlockAffinitySpec"):
		return &projectcalicov3.BlockAffinitySpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("BPFConntrackTimeouts"):
		return &projectcalicov3.BPFConntrackTimeoutsApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("CalicoNodeAgentStatus"):
		return &projectcalicov3.CalicoNodeAgentStatusApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("CalicoNodeBGPRouteStatus"):
		return &projectcalicov3.CalicoNodeBGPRouteStatusApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("CalicoNodeBGPStatus"):
		return &projectcalicov3.CalicoNodeBGPStatusApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("CalicoNodePeer"):
		return &projectcalicov3.CalicoNodePeerApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("CalicoNodeRoute"):
		return &projectcalicov3.CalicoNodeRouteApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("CalicoNodeRouteLearnedFrom"):
		return &projectcalicov3.CalicoNodeRouteLearnedFromApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("CalicoNodeStatus"):
		return &projectcalicov3.CalicoNodeStatusApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("CalicoNodeStatusSpec"):
		return &projectcalicov3.CalicoNodeStatusSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("CalicoNodeStatusStatus"):
		return &projectcalicov3.CalicoNodeStatusStatusApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ClusterInformation"):
		return &projectcalicov3.ClusterInformationApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ClusterInformationSpec"):
		return &projectcalicov3.ClusterInformationSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("Community"):
		return &projectcalicov3.CommunityApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ControllersConfig"):
		return &projectcalicov3.ControllersConfigApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("EndpointPort"):
		return &projectcalicov3.EndpointPortApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("EntityRule"):
		return &projectcalicov3.EntityRuleApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("FelixConfiguration"):
		return &projectcalicov3.FelixConfigurationApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("FelixConfigurationSpec"):
		return &projectcalicov3.FelixConfigurationSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("GlobalNetworkPolicy"):
		return &projectcalicov3.GlobalNetworkPolicyApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("GlobalNetworkPolicySpec"):
		return &projectcalicov3.GlobalNetworkPolicySpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("GlobalNetworkSet"):
		return &projectcalicov3.GlobalNetworkSetApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("GlobalNetworkSetSpec"):
		return &projectcalicov3.GlobalNetworkSetSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("HealthTimeoutOverride"):
		return &projectcalicov3.HealthTimeoutOverrideApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("HostEndpoint"):
		return &projectcalicov3.HostEndpointApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("HostEndpointSpec"):
		return &projectcalicov3.HostEndpointSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("HTTPMatch"):
		return &projectcalicov3.HTTPMatchApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("HTTPPath"):
		return &projectcalicov3.HTTPPathApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ICMPFields"):
		return &projectcalicov3.ICMPFieldsApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPAMBlock"):
		return &projectcalicov3.IPAMBlockApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPAMBlockSpec"):
		return &projectcalicov3.IPAMBlockSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPAMConfiguration"):
		return &projectcalicov3.IPAMConfigurationApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPAMConfigurationSpec"):
		return &projectcalicov3.IPAMConfigurationSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPAMHandle"):
		return &projectcalicov3.IPAMHandleApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPAMHandleSpec"):
		return &projectcalicov3.IPAMHandleSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPPool"):
		return &projectcalicov3.IPPoolApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPPoolSpec"):
		return &projectcalicov3.IPPoolSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPPoolStatus"):
		return &projectcalicov3.IPPoolStatusApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPReservation"):
		return &projectcalicov3.IPReservationApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("IPReservationSpec"):
		return &projectcalicov3.IPReservationSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("KubeControllersConfiguration"):
		return &projectcalicov3.KubeControllersConfigurationApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("KubeControllersConfigurationSpec"):
		return &projectcalicov3.KubeControllersConfigurationSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("KubeControllersConfigurationStatus"):
		return &projectcalicov3.KubeControllersConfigurationStatusApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("LoadBalancerControllerConfig"):
		return &projectcalicov3.LoadBalancerControllerConfigApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("MigrationControllerConfig"):
		return &projectcalicov3.MigrationControllerConfigApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("NamespaceControllerConfig"):
		return &projectcalicov3.NamespaceControllerConfigApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("NetworkPolicy"):
		return &projectcalicov3.NetworkPolicyApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("NetworkPolicySpec"):
		return &projectcalicov3.NetworkPolicySpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("NetworkSet"):
		return &projectcalicov3.NetworkSetApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("NetworkSetSpec"):
		return &projectcalicov3.NetworkSetSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("NodeControllerConfig"):
		return &projectcalicov3.NodeControllerConfigApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("PolicyControllerConfig"):
		return &projectcalicov3.PolicyControllerConfigApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("PrefixAdvertisement"):
		return &projectcalicov3.PrefixAdvertisementApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("Profile"):
		return &projectcalicov3.ProfileApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ProfileSpec"):
		return &projectcalicov3.ProfileSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ProtoPort"):
		return &projectcalicov3.ProtoPortApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("RouteTableIDRange"):
		return &projectcalicov3.RouteTableIDRangeApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("RouteTableRange"):
		return &projectcalicov3.RouteTableRangeApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("Rule"):
		return &projectcalicov3.RuleApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("RuleMetadata"):
		return &projectcalicov3.RuleMetadataApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ServiceAccountControllerConfig"):
		return &projectcalicov3.ServiceAccountControllerConfigApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ServiceAccountMatch"):
		return &projectcalicov3.ServiceAccountMatchApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ServiceClusterIPBlock"):
		return &projectcalicov3.ServiceClusterIPBlockApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ServiceExternalIPBlock"):
		return &projectcalicov3.ServiceExternalIPBlockApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ServiceLoadBalancerIPBlock"):
		return &projectcalicov3.ServiceLoadBalancerIPBlockApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("ServiceMatch"):
		return &projectcalicov3.ServiceMatchApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("StagedGlobalNetworkPolicy"):
		return &projectcalicov3.StagedGlobalNetworkPolicyApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("StagedGlobalNetworkPolicySpec"):
		return &projectcalicov3.StagedGlobalNetworkPolicySpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("StagedKubernetesNetworkPolicy"):
		return &projectcalicov3.StagedKubernetesNetworkPolicyApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("StagedKubernetesNetworkPolicySpec"):
		return &projectcalicov3.StagedKubernetesNetworkPolicySpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("StagedNetworkPolicy"):
		return &projectcalicov3.StagedNetworkPolicyApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("StagedNetworkPolicySpec"):
		return &projectcalicov3.StagedNetworkPolicySpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("Template"):
		return &projectcalicov3.TemplateApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("Tier"):
		return &projectcalicov3.TierApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("TierSpec"):
		return &projectcalicov3.TierSpecApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("TierStatus"):
		return &projectcalicov3.TierStatusApplyConfiguration{}
	case v3.SchemeGroupVersion.WithKind("WorkloadEndpointControllerConfig"):
		return &projectcalicov3.WorkloadEndpointControllerConfigApplyConfiguration{}

	}
	return nil
}

func NewTypeConverter(scheme *runtime.Scheme) managedfields.TypeConverter {
	return managedfields.NewSchemeTypeConverter(scheme, internal.Parser())
}
