func (b *CSIDriverApplyConfiguration) WithKind(value string) *CSIDriverApplyConfiguration {
	b.Kind = &value
	return b
}
WithKind sets the Kind field in the declarative configuration to the given value
and returns the receiver, so that objects can be built by chaining "With" function invocations.
If called multiple times, the Kind field is set to the value of the last call.
package v1
import (
	apistoragev1 "k8s.io/api/storage/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	types "k8s.io/apimachinery/pkg/types"
	managedfields "k8s.io/apimachinery/pkg/util/managedfields"
	internal "k8s.io/client-go/applyconfigurations/internal"
	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
)
type CSIDriverApplyConfiguration struct {
	v1.TypeMetaApplyConfiguration    `json:",inline"`
	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
	Spec                             *CSIDriverSpecApplyConfiguration `json:"spec,omitempty"`
}
func CSIDriver(name string) *CSIDriverApplyConfiguration {
	b := &CSIDriverApplyConfiguration{}
	b.WithName(name)
	b.WithKind("CSIDriver")
	b.WithAPIVersion("storage.k8s.io/v1")
	return b
}
func ExtractCSIDriver(cSIDriver *apistoragev1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {
	return extractCSIDriver(cSIDriver, fieldManager, "")
}
func ExtractCSIDriverStatus(cSIDriver *apistoragev1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {
	return extractCSIDriver(cSIDriver, fieldManager, "status")
}
func extractCSIDriver(cSIDriver *apistoragev1.CSIDriver, fieldManager string, subresource string) (*CSIDriverApplyConfiguration, error) {
	b := &CSIDriverApplyConfiguration{}
	err := managedfields.ExtractInto(cSIDriver, internal.Parser().Type("io.k8s.api.storage.v1.CSIDriver"), fieldManager, b, subresource)
	if err != nil {
		return nil, err
	}
	b.WithName(cSIDriver.Name)
	b.WithKind("CSIDriver")
	b.WithAPIVersion("storage.k8s.io/v1")
	return b, nil
}