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

package applyconfigurations

import (
	v1 "github.com/openshift/api/machine/v1"
	v1beta1 "github.com/openshift/api/machine/v1beta1"
	internal "github.com/openshift/client-go/machine/applyconfigurations/internal"
	machinev1 "github.com/openshift/client-go/machine/applyconfigurations/machine/v1"
	machinev1beta1 "github.com/openshift/client-go/machine/applyconfigurations/machine/v1beta1"
	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=machine.openshift.io, Version=v1
	case v1.SchemeGroupVersion.WithKind("AWSFailureDomain"):
		return &machinev1.AWSFailureDomainApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("AWSFailureDomainPlacement"):
		return &machinev1.AWSFailureDomainPlacementApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("AWSResourceFilter"):
		return &machinev1.AWSResourceFilterApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("AWSResourceReference"):
		return &machinev1.AWSResourceReferenceApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("AzureFailureDomain"):
		return &machinev1.AzureFailureDomainApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("ControlPlaneMachineSet"):
		return &machinev1.ControlPlaneMachineSetApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("ControlPlaneMachineSetSpec"):
		return &machinev1.ControlPlaneMachineSetSpecApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("ControlPlaneMachineSetStatus"):
		return &machinev1.ControlPlaneMachineSetStatusApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("ControlPlaneMachineSetStrategy"):
		return &machinev1.ControlPlaneMachineSetStrategyApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("ControlPlaneMachineSetTemplate"):
		return &machinev1.ControlPlaneMachineSetTemplateApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("ControlPlaneMachineSetTemplateObjectMeta"):
		return &machinev1.ControlPlaneMachineSetTemplateObjectMetaApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("FailureDomains"):
		return &machinev1.FailureDomainsApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("GCPFailureDomain"):
		return &machinev1.GCPFailureDomainApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("NutanixFailureDomainReference"):
		return &machinev1.NutanixFailureDomainReferenceApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("OpenShiftMachineV1Beta1MachineTemplate"):
		return &machinev1.OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("OpenStackFailureDomain"):
		return &machinev1.OpenStackFailureDomainApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("RootVolume"):
		return &machinev1.RootVolumeApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("VSphereFailureDomain"):
		return &machinev1.VSphereFailureDomainApplyConfiguration{}

		// Group=machine.openshift.io, Version=v1beta1
	case v1beta1.SchemeGroupVersion.WithKind("Condition"):
		return &machinev1beta1.ConditionApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("LastOperation"):
		return &machinev1beta1.LastOperationApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("LifecycleHook"):
		return &machinev1beta1.LifecycleHookApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("LifecycleHooks"):
		return &machinev1beta1.LifecycleHooksApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("Machine"):
		return &machinev1beta1.MachineApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("MachineHealthCheck"):
		return &machinev1beta1.MachineHealthCheckApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("MachineHealthCheckSpec"):
		return &machinev1beta1.MachineHealthCheckSpecApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("MachineHealthCheckStatus"):
		return &machinev1beta1.MachineHealthCheckStatusApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("MachineSet"):
		return &machinev1beta1.MachineSetApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("MachineSetSpec"):
		return &machinev1beta1.MachineSetSpecApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("MachineSetStatus"):
		return &machinev1beta1.MachineSetStatusApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("MachineSpec"):
		return &machinev1beta1.MachineSpecApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("MachineStatus"):
		return &machinev1beta1.MachineStatusApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("MachineTemplateSpec"):
		return &machinev1beta1.MachineTemplateSpecApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("ObjectMeta"):
		return &machinev1beta1.ObjectMetaApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("ProviderSpec"):
		return &machinev1beta1.ProviderSpecApplyConfiguration{}
	case v1beta1.SchemeGroupVersion.WithKind("UnhealthyCondition"):
		return &machinev1beta1.UnhealthyConditionApplyConfiguration{}

	}
	return nil
}

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