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

package applyconfigurations

import (
	v1 "github.com/openshift/api/oauth/v1"
	internal "github.com/openshift/client-go/oauth/applyconfigurations/internal"
	oauthv1 "github.com/openshift/client-go/oauth/applyconfigurations/oauth/v1"
	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=oauth.openshift.io, Version=v1
	case v1.SchemeGroupVersion.WithKind("ClusterRoleScopeRestriction"):
		return &oauthv1.ClusterRoleScopeRestrictionApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("OAuthAccessToken"):
		return &oauthv1.OAuthAccessTokenApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("OAuthAuthorizeToken"):
		return &oauthv1.OAuthAuthorizeTokenApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("OAuthClient"):
		return &oauthv1.OAuthClientApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("OAuthClientAuthorization"):
		return &oauthv1.OAuthClientAuthorizationApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("ScopeRestriction"):
		return &oauthv1.ScopeRestrictionApplyConfiguration{}
	case v1.SchemeGroupVersion.WithKind("UserOAuthAccessToken"):
		return &oauthv1.UserOAuthAccessTokenApplyConfiguration{}

	}
	return nil
}

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