func (b *StorageClassApplyConfiguration) WithUID(value types.UID) *StorageClassApplyConfiguration {
	b.ensureObjectMetaApplyConfigurationExists()
	b.UID = &value
	return b
}
WithUID sets the UID 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 UID field is set to the value of the last call.
package v1
import (
	corev1 "k8s.io/api/core/v1"
	storagev1 "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"
	applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1"
	internal "k8s.io/client-go/applyconfigurations/internal"
	v1 "k8s.io/client-go/applyconfigurations/meta/v1"
)
type StorageClassApplyConfiguration struct {
	v1.TypeMetaApplyConfiguration    `json:",inline"`
	*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
	Provisioner                      *string                                                            `json:"provisioner,omitempty"`
	Parameters                       map[string]string                                                  `json:"parameters,omitempty"`
	ReclaimPolicy                    *corev1.PersistentVolumeReclaimPolicy                              `json:"reclaimPolicy,omitempty"`
	MountOptions                     []string                                                           `json:"mountOptions,omitempty"`
	AllowVolumeExpansion             *bool                                                              `json:"allowVolumeExpansion,omitempty"`
	VolumeBindingMode                *storagev1.VolumeBindingMode                                       `json:"volumeBindingMode,omitempty"`
	AllowedTopologies                []applyconfigurationscorev1.TopologySelectorTermApplyConfiguration `json:"allowedTopologies,omitempty"`
}
func StorageClass(name string) *StorageClassApplyConfiguration {
	b := &StorageClassApplyConfiguration{}
	b.WithName(name)
	b.WithKind("StorageClass")
	b.WithAPIVersion("storage.k8s.io/v1")
	return b
}
func ExtractStorageClass(storageClass *storagev1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {
	return extractStorageClass(storageClass, fieldManager, "")
}
func ExtractStorageClassStatus(storageClass *storagev1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {
	return extractStorageClass(storageClass, fieldManager, "status")
}
func extractStorageClass(storageClass *storagev1.StorageClass, fieldManager string, subresource string) (*StorageClassApplyConfiguration, error) {
	b := &StorageClassApplyConfiguration{}
	err := managedfields.ExtractInto(storageClass, internal.Parser().Type("io.k8s.api.storage.v1.StorageClass"), fieldManager, b, subresource)
	if err != nil {
		return nil, err
	}
	b.WithName(storageClass.Name)
	b.WithKind("StorageClass")
	b.WithAPIVersion("storage.k8s.io/v1")
	return b, nil
}
func (b *StorageClassApplyConfiguration) WithKind(value string) *StorageClassApplyConfiguration {
	b.Kind = &value
	return b
}
func (b *StorageClassApplyConfiguration) WithAPIVersion(value string) *StorageClassApplyConfiguration {
	b.APIVersion = &value
	return b
}
func (b *StorageClassApplyConfiguration) WithName(value string) *StorageClassApplyConfiguration {
	b.ensureObjectMetaApplyConfigurationExists()
	b.Name = &value
	return b
}
func (b *StorageClassApplyConfiguration) WithGenerateName(value string) *StorageClassApplyConfiguration {
	b.ensureObjectMetaApplyConfigurationExists()
	b.GenerateName = &value
	return b
}
func (b *StorageClassApplyConfiguration) WithNamespace(value string) *StorageClassApplyConfiguration {
	b.ensureObjectMetaApplyConfigurationExists()
	b.Namespace = &value
	return b
}
func (b *StorageClassApplyConfiguration) WithSelfLink(value string) *StorageClassApplyConfiguration {
	b.ensureObjectMetaApplyConfigurationExists()
	b.SelfLink = &value
	return b
}